From 4901b1c6c0091b59d4d5cbd6c07734ed7496c74d Mon Sep 17 00:00:00 2001 From: BobLChen Date: Sat, 10 Jul 2021 09:45:15 +0800 Subject: [PATCH] =?UTF-8?q?vulkan=20sdk=20=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 31 +- Engine/Monkey/Application/AppModuleBase.h | 10 +- .../GenericApplicationMessageHandler.h | 8 +- Engine/Monkey/Application/GenericWindow.h | 4 +- Engine/Monkey/Application/Linux/LinuxWindow.h | 4 +- .../Application/Windows/WinApplication.cpp | 10 +- Engine/Monkey/Common/Common.h | 4 +- Engine/Monkey/Demo/DVKCamera.h | 70 +- Engine/Monkey/Demo/DVKCommand.cpp | 2 +- Engine/Monkey/Demo/DVKCompute.cpp | 8 +- Engine/Monkey/Demo/DVKCompute.h | 6 +- Engine/Monkey/Demo/DVKIndexBuffer.cpp | 12 +- Engine/Monkey/Demo/DVKMaterial.cpp | 20 +- Engine/Monkey/Demo/DVKMaterial.h | 6 +- Engine/Monkey/Demo/DVKModel.cpp | 76 +- Engine/Monkey/Demo/DVKModel.h | 4 +- Engine/Monkey/Demo/DVKPipeline.cpp | 6 +- Engine/Monkey/Demo/DVKRenderTarget.cpp | 23 +- Engine/Monkey/Demo/DVKRenderTarget.h | 4 +- Engine/Monkey/Demo/DVKShader.cpp | 6 +- Engine/Monkey/Demo/DVKShader.h | 10 +- Engine/Monkey/Demo/DVKTexture.cpp | 34 +- Engine/Monkey/Demo/DVKUtils.h | 10 +- Engine/Monkey/Demo/DVKVertexBuffer.h | 4 +- Engine/Monkey/Demo/DemoBase.h | 4 +- Engine/Monkey/Demo/ImageGUIContext.cpp | 8 +- Engine/Monkey/Demo/ImageGUIContext.h | 2 +- Engine/Monkey/Engine.h | 2 +- .../Android/AndroidPlatformTime.h | 2 +- Engine/Monkey/GenericPlatform/InputManager.h | 18 +- .../GenericPlatform/Linux/LinuxPlatformTime.h | 2 +- .../GenericPlatform/Mac/MacPlatformTime.h | 2 +- .../Windows/WindowsPlatformTime.h | 4 +- Engine/Monkey/HAL/ClangPlatformAtomics.h | 76 +- .../HAL/Windows/WindowsPlatformAtomics.h | 76 +- Engine/Monkey/Launch/Launch.cpp | 4 +- Engine/Monkey/Math/Color.cpp | 26 +- Engine/Monkey/Math/Color.h | 98 +- Engine/Monkey/Math/GenericPlatformMath.h | 126 +- Engine/Monkey/Math/IntPoint.h | 116 +- Engine/Monkey/Math/IntVector.h | 130 +- Engine/Monkey/Math/Linux/LinuxPlatformMath.h | 30 +- Engine/Monkey/Math/Mac/MacPlatformMath.h | 30 +- Engine/Monkey/Math/Math.cpp | 15 +- Engine/Monkey/Math/Math.h | 156 +- Engine/Monkey/Math/Matrix4x4.h | 406 +- Engine/Monkey/Math/Plane.h | 86 +- Engine/Monkey/Math/Quat.h | 232 +- Engine/Monkey/Math/Rotator.h | 158 +- Engine/Monkey/Math/Vector2.h | 212 +- Engine/Monkey/Math/Vector3.h | 384 +- Engine/Monkey/Math/Vector4.h | 156 +- .../Monkey/Math/Windows/WindowsPlatformMath.h | 42 +- Engine/Monkey/Utils/Alignment.h | 8 +- Engine/Monkey/Utils/SecureHash.h | 2 +- Engine/Monkey/Utils/StringUtils.h | 2 +- Engine/Monkey/Vulkan/RHIDefinitions.h | 2 +- Engine/Monkey/Vulkan/VulkanDebug.cpp | 76 +- Engine/Monkey/Vulkan/VulkanDevice.cpp | 6 +- Engine/Monkey/Vulkan/VulkanDevice.h | 30 +- Engine/Monkey/Vulkan/VulkanFence.h | 8 +- Engine/Monkey/Vulkan/VulkanGlobals.h | 2 +- Engine/Monkey/Vulkan/VulkanLayers.cpp | 20 +- Engine/Monkey/Vulkan/VulkanMemory.cpp | 6 +- Engine/Monkey/Vulkan/VulkanMemory.h | 78 +- Engine/Monkey/Vulkan/VulkanQueue.h | 4 +- Engine/Monkey/Vulkan/VulkanRHI.h | 30 +- Engine/Monkey/Vulkan/VulkanSwapChain.cpp | 6 +- Engine/Monkey/Vulkan/VulkanSwapChain.h | 14 +- .../Vulkan/Windows/VulkanWindowsPlatform.cpp | 2 +- .../17_InputAttachments/InputAttachments.cpp | 7 +- .../18_DeferredShading/DeferredShading.cpp | 7 +- .../OptimizeDeferredShading.cpp | 7 +- examples/2_Triangle/Triangle.cpp | 2 +- examples/2_Triangle/Triangle.md | 16 +- examples/30_SkinInstance/SkinInstanceDemo.cpp | 2 +- examples/33_InstanceDraw/InstanceDrawDemo.cpp | 2 +- examples/34_SimpleShadow/SimpleShadowDemo.cpp | 2 +- examples/35_PCFShadow/PCFShadowDemo.cpp | 2 +- examples/36_OmniShadow/OmniShadowDemo.cpp | 2 +- .../37_CascadedShadow/CascadedShadowDemo.cpp | 2 +- examples/38_IndirectDraw/IndirectDrawDemo.cpp | 2 +- .../OcclusionQueryDemo.cpp | 10 +- .../QueryStatisticsDemo.cpp | 10 +- .../41_ComputeShader/ComputeShaderDemo.cpp | 2 +- .../OptimizeComputeShaderDemo.cpp | 2 +- .../ComputeParticlesDemo.cpp | 2 +- .../ComputeRaytracingDemo.cpp | 2 +- .../45_ComputeFrustum/ComputeFrustumDemo.cpp | 2 +- .../46_GeometryHouse/GeometryHouseDemo.cpp | 2 +- examples/47_DebugNormal/DebugNormalDemo.cpp | 2 +- .../GeometryOmniShadowDemo.cpp | 2 +- .../SimpleTessellationDemo.cpp | 2 +- .../50_PNTessellation/PNTessellationDemo.cpp | 2 +- examples/51_Pick/PickDemo.cpp | 2 +- examples/52_HDRPipeline/HDRPipelineDemo.cpp | 2 +- examples/53_SSAO/SSAODemo.cpp | 2 +- .../ThreadedRenderingDemo.cpp | 2 +- .../PBRDirectLightingDemo.cpp | 2 +- examples/56_PBR_IBL/PBRIBLDemo.cpp | 2 +- examples/57_GodRay/GodRayDemo.cpp | 2 +- examples/58_Imposter/ImposterDemo.cpp | 2 +- examples/59_MotionBlur/MotionBlurDemo.cpp | 2 +- examples/60_DepthPeeling/DepthPeelingDemo.cpp | 2 +- examples/61_CPURayTracing/ThreadEvent.h | 4 +- .../RTXRayTracingStartBasic.cpp | 14 +- .../RTXRayTracingMeshDemo.cpp | 17 +- .../RTXRayTracingSimpleDemo.cpp | 17 +- .../RTXRayTracingReflectionDemo.cpp | 17 +- .../RTXRayTracingHitGroupDemo.cpp | 20 +- .../RTXRayTracingMonteCarloDemo.cpp | 17 +- .../68_RTXPathTracing/RTXPathTracingDemo.cpp | 17 +- .../TileBasedForwardRenderingDemo.cpp | 2 +- .../ShuffleIntrinsicsDemo.cpp | 1 + examples/72_MeshLOD/MeshLodDemo.cpp | 2 +- .../assets/shaders/10_Pipelines/compile.py | 34 +- examples/assets/shaders/11_Texture/compile.py | 34 +- .../shaders/12_PushConstants/compile.py | 34 +- .../13_DynamicUniformBuffer/compile.py | 34 +- .../assets/shaders/14_TextureArray/compile.py | 34 +- .../assets/shaders/15_Texture3D/compile.py | 34 +- .../16_OptimizeShaderAndLayout/compile.py | 34 +- .../shaders/17_InputAttachments/compile.py | 34 +- .../shaders/18_DeferredShading/compile.py | 34 +- .../19_OptimizeDeferredShading/compile.py | 34 +- .../assets/shaders/20_Material/compile.py | 34 +- examples/assets/shaders/21_Stencil/compile.py | 34 +- .../assets/shaders/22_RenderTarget/compile.py | 34 +- .../assets/shaders/24_EdgeDetect/compile.py | 34 +- examples/assets/shaders/25_Bloom/compile.py | 34 +- .../shaders/26_SkeletonMatrix4x4/compile.py | 34 +- .../27_SkeletonPackIndexWeight/compile.py | 34 +- .../assets/shaders/28_SkeletonQuat/compile.py | 34 +- .../shaders/29_SkinInTexture/compile.py | 34 +- examples/assets/shaders/2_Triangle/compile.py | 34 +- .../assets/shaders/30_SkinInstance/compile.py | 34 +- examples/assets/shaders/31_MSAA/compile.py | 34 +- examples/assets/shaders/32_FXAA/compile.py | 34 +- .../assets/shaders/33_InstanceDraw/compile.py | 34 +- .../assets/shaders/34_SimpleShadow/compile.py | 34 +- .../assets/shaders/35_PCFShadow/compile.py | 34 +- .../assets/shaders/36_OmniShadow/compile.py | 34 +- .../shaders/37_CascadedShadow/compile.py | 34 +- .../assets/shaders/38_IndirectDraw/compile.py | 34 +- .../shaders/39_OcclusionQueries/compile.py | 34 +- .../shaders/40_QueryStatistics/compile.py | 34 +- .../shaders/41_ComputeShader/compile.py | 34 +- .../42_OptimizeComputeShader/compile.py | 34 +- .../shaders/43_ComputeParticles/compile.py | 34 +- .../shaders/44_ComputeRaytracing/compile.py | 34 +- .../shaders/45_ComputeFrustum/compile.py | 34 +- .../shaders/46_GeometryHouse/Point.frag.spv | Bin 500 -> 500 bytes .../shaders/46_GeometryHouse/Point.geom | 6 + .../shaders/46_GeometryHouse/Point.geom.spv | Bin 3528 -> 3424 bytes .../shaders/46_GeometryHouse/Point.vert.spv | Bin 1136 -> 1136 bytes .../shaders/46_GeometryHouse/compile.py | 34 +- .../shaders/47_DebugNormal/Line.frag.spv | Bin 500 -> 500 bytes .../assets/shaders/47_DebugNormal/Line.geom | 5 + .../shaders/47_DebugNormal/Line.geom.spv | Bin 3032 -> 2876 bytes .../shaders/47_DebugNormal/Line.vert.spv | Bin 1176 -> 1176 bytes .../shaders/47_DebugNormal/Normal.frag.spv | Bin 500 -> 500 bytes .../shaders/47_DebugNormal/Normal.vert.spv | Bin 2124 -> 2124 bytes .../assets/shaders/47_DebugNormal/compile.py | 34 +- .../48_GeometryOmniShadow/Depth.frag.spv | Bin 368 -> 368 bytes .../shaders/48_GeometryOmniShadow/Depth.geom | 5 + .../48_GeometryOmniShadow/Depth.geom.spv | Bin 4964 -> 4776 bytes .../48_GeometryOmniShadow/Depth.vert.spv | Bin 680 -> 680 bytes .../48_GeometryOmniShadow/PCFShadow.frag.spv | Bin 3720 -> 3720 bytes .../48_GeometryOmniShadow/PCFShadow.vert.spv | Bin 2384 -> 2384 bytes .../SimpleShadow.frag.spv | Bin 2500 -> 2500 bytes .../SimpleShadow.vert.spv | Bin 2384 -> 2384 bytes .../shaders/48_GeometryOmniShadow/compile.py | 34 +- .../49_SimpleTessellation/Simple.frag.spv | Bin 500 -> 500 bytes .../49_SimpleTessellation/Simple.vert.spv | Bin 624 -> 624 bytes .../49_SimpleTessellation/SimpleIso.tesc | 10 + .../49_SimpleTessellation/SimpleIso.tesc.spv | Bin 2264 -> 1936 bytes .../49_SimpleTessellation/SimpleIso.tese | 5 + .../49_SimpleTessellation/SimpleIso.tese.spv | Bin 2500 -> 2344 bytes .../49_SimpleTessellation/SimpleQuad.tesc | 10 + .../49_SimpleTessellation/SimpleQuad.tesc.spv | Bin 2264 -> 1936 bytes .../49_SimpleTessellation/SimpleQuad.tese | 5 + .../49_SimpleTessellation/SimpleQuad.tese.spv | Bin 2604 -> 2448 bytes .../49_SimpleTessellation/SimpleTri.tesc | 10 + .../49_SimpleTessellation/SimpleTri.tesc.spv | Bin 2264 -> 1936 bytes .../49_SimpleTessellation/SimpleTri.tese | 5 + .../49_SimpleTessellation/SimpleTri.tese.spv | Bin 2252 -> 2096 bytes .../shaders/49_SimpleTessellation/compile.py | 34 +- .../shaders/50_PNTessellation/Simple.frag.spv | Bin 728 -> 728 bytes .../shaders/50_PNTessellation/Simple.tesc | 10 + .../shaders/50_PNTessellation/Simple.tesc.spv | Bin 8312 -> 8316 bytes .../shaders/50_PNTessellation/Simple.tese | 5 + .../shaders/50_PNTessellation/Simple.tese.spv | Bin 9636 -> 9480 bytes .../shaders/50_PNTessellation/Simple.vert.spv | Bin 960 -> 960 bytes .../shaders/50_PNTessellation/compile.py | 34 +- examples/assets/shaders/51_Pick/compile.py | 34 +- .../assets/shaders/52_HDRPipeline/compile.py | 34 +- examples/assets/shaders/53_SSAO/compile.py | 34 +- .../shaders/54_ThreadedRendering/compile.py | 34 +- .../shaders/55_PBR_DirectLighting/compile.py | 34 +- examples/assets/shaders/56_PBR_IBL/compile.py | 34 +- examples/assets/shaders/57_GodRay/compile.py | 34 +- .../assets/shaders/58_Imposter/compile.py | 34 +- .../assets/shaders/59_MotionBlur/compile.py | 34 +- .../assets/shaders/60_DepthPeeling/compile.py | 34 +- .../shaders/61_CPURayTracing/compile.py | 34 +- .../shaders/62_RTXRayTracingBasic/compile.py | 34 +- .../shaders/63_RTXRayTracingMesh/compile.py | 34 +- .../shaders/64_RTXRayTracingSimple/compile.py | 34 +- .../65_RTXRayTracingReflection/compile.py | 34 +- .../66_RTXRayTracingHitGroup/compile.py | 34 +- .../67_RTXRayTracingMonteCarlo/compile.py | 34 +- .../shaders/68_RTXPathTracing/compile.py | 34 +- .../69_TileBasedForwardRendering/compile.py | 34 +- examples/assets/shaders/70_SDFFont/compile.py | 34 +- .../shaders/71_ShuffleIntrinsics/compile.py | 34 +- examples/assets/shaders/72_MeshLOD/compile.py | 34 +- .../assets/shaders/7_UniformBuffer/compile.py | 34 +- examples/assets/shaders/9_LoadMesh/compile.py | 34 +- external/SPIRV-Cross/CMakeLists.txt | 2 +- external/assimp/CMakeLists.txt | 3 +- external/assimp/code/CMakeLists.txt | 4 +- external/assimp/contrib/zlib/CMakeLists.txt | 2 +- external/assimp/revision.h | 2 +- external/imgui/CMakeLists.txt | 3 +- .../windows/bin/x64/glslangValidator.exe | Bin 7310136 -> 0 bytes .../windows/bin/x86/glslangValidator.exe | Bin 5735736 -> 0 bytes external/vulkan/windows/include/shaderc/env.h | 71 - .../vulkan/windows/include/shaderc/shaderc.h | 582 - .../windows/include/shaderc/shaderc.hpp | 595 - .../vulkan/windows/include/shaderc/status.h | 39 - .../windows/include/shaderc/visibility.h | 37 - .../windows/include/vulkan/GLSL.std.450.h | 131 - .../vulkan/windows/include/vulkan/spirv.h | 1972 - .../vulkan/windows/include/vulkan/spirv.hpp | 1981 - .../vulkan/windows/include/vulkan/spirv.hpp11 | 1981 - .../vulkan/windows/include/vulkan/spirv.json | 1437 - .../vulkan/windows/include/vulkan/spirv.lua | 1396 - .../vulkan/windows/include/vulkan/spirv.py | 1396 - .../include/vulkan/vk_enum_string_helper.h | 8324 + .../vulkan/windows/include/vulkan/vk_icd.h | 66 +- .../vulkan/windows/include/vulkan/vk_layer.h | 16 +- .../windows/include/vulkan/vk_platform.h | 18 +- .../vulkan/windows/include/vulkan/vulkan.h | 31 +- .../vulkan/windows/include/vulkan/vulkan.hpp | 141520 ++++++++++----- .../windows/include/vulkan/vulkan_android.h | 14 +- .../windows/include/vulkan/vulkan_beta.h | 704 + .../windows/include/vulkan/vulkan_core.h | 4450 +- .../windows/include/vulkan/vulkan_directfb.h | 54 + .../windows/include/vulkan/vulkan_fuchsia.h | 88 +- .../windows/include/vulkan/vulkan_ggp.h | 14 +- .../windows/include/vulkan/vulkan_ios.h | 16 +- .../windows/include/vulkan/vulkan_macos.h | 16 +- .../windows/include/vulkan/vulkan_metal.h | 14 +- .../windows/include/vulkan/vulkan_screen.h | 54 + .../vulkan/windows/include/vulkan/vulkan_vi.h | 14 +- .../windows/include/vulkan/vulkan_wayland.h | 14 +- .../windows/include/vulkan/vulkan_win32.h | 17 +- .../windows/include/vulkan/vulkan_xcb.h | 14 +- .../windows/include/vulkan/vulkan_xlib.h | 14 +- .../include/vulkan/vulkan_xlib_xrandr.h | 14 +- external/vulkan/windows/libs/x64/vulkan-1.lib | Bin 51718 -> 0 bytes external/vulkan/windows/libs/x86/vulkan-1.lib | Bin 55682 -> 0 bytes 262 files changed, 112610 insertions(+), 60308 deletions(-) delete mode 100644 external/vulkan/windows/bin/x64/glslangValidator.exe delete mode 100644 external/vulkan/windows/bin/x86/glslangValidator.exe delete mode 100644 external/vulkan/windows/include/shaderc/env.h delete mode 100644 external/vulkan/windows/include/shaderc/shaderc.h delete mode 100644 external/vulkan/windows/include/shaderc/shaderc.hpp delete mode 100644 external/vulkan/windows/include/shaderc/status.h delete mode 100644 external/vulkan/windows/include/shaderc/visibility.h delete mode 100644 external/vulkan/windows/include/vulkan/GLSL.std.450.h delete mode 100644 external/vulkan/windows/include/vulkan/spirv.h delete mode 100644 external/vulkan/windows/include/vulkan/spirv.hpp delete mode 100644 external/vulkan/windows/include/vulkan/spirv.hpp11 delete mode 100644 external/vulkan/windows/include/vulkan/spirv.json delete mode 100644 external/vulkan/windows/include/vulkan/spirv.lua delete mode 100644 external/vulkan/windows/include/vulkan/spirv.py create mode 100644 external/vulkan/windows/include/vulkan/vk_enum_string_helper.h create mode 100644 external/vulkan/windows/include/vulkan/vulkan_beta.h create mode 100644 external/vulkan/windows/include/vulkan/vulkan_directfb.h create mode 100644 external/vulkan/windows/include/vulkan/vulkan_screen.h delete mode 100644 external/vulkan/windows/libs/x64/vulkan-1.lib delete mode 100644 external/vulkan/windows/libs/x86/vulkan-1.lib diff --git a/CMakeLists.txt b/CMakeLists.txt index 21d2acd8..4ab3a405 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,45 +1,32 @@ cmake_minimum_required(VERSION 3.12.0) -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake") - project(VulkanTutorials) set_property(GLOBAL PROPERTY USE_FOLDERS ON) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -DNOMINMAX=1") +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +set(CMAKE_CXX_STANDARD 11) -# res data add_definitions(-DDEMO_RES_PATH=\"${CMAKE_SOURCE_DIR}/examples/\") +add_definitions(-DNOMINMAX=1) +add_definitions(-DMONKEY_DEBUG=1) if (WIN32) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DPLATFORM_WINDOWS=1 -DMONKEY_DEBUG=1") add_definitions(-D_CRT_SECURE_NO_WARNINGS) - if (CMAKE_SIZEOF_VOID_P EQUAL 8) - find_library(Vulkan_LIBRARY NAMES vulkan-1 HINTS "${CMAKE_SOURCE_DIR}/external/vulkan/windows/libs/x64" REQUIRED) - else (CMAKE_SIZEOF_VOID_P EQUAL 8) - find_library(Vulkan_LIBRARY NAMES vulkan-1 HINTS "${CMAKE_SOURCE_DIR}/external/vulkan/windows/libs/x86" REQUIRED) - endif (CMAKE_SIZEOF_VOID_P EQUAL 8) + add_definitions(-DPLATFORM_WINDOWS=1) include_directories( external/vulkan/windows/include/ ) -elseif (IOS) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DPLATFORM_IOS=1") - SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Metal -framework Foundation -framework QuartzCore -framework IOKit -framework UIKit -framework IOSurface") - set(Vulkan_LIBRARY "${CMAKE_SOURCE_DIR}/external/vulkan/ios/lib/libMoltenVK.a") - include_directories( - external/vulkan/ios/include/ - ) elseif (APPLE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DPLATFORM_MAC=1 -DMONKEY_DEBUG=1") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DPLATFORM_MAC=1") SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework Cocoa -framework QuartzCore") set(CMAKE_XCODE_GENERATE_SCHEME ON) set(XCODE_SCHEME_ENVIRONMENT ON) - find_library(Vulkan_LIBRARY NAMES vulkan HINTS "${CMAKE_SOURCE_DIR}/external/vulkan/macos/lib" REQUIRED) include_directories( external/vulkan/macos/include/ ) elseif (UNIX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DPLATFORM_LINUX=1 -DMONKEY_DEBUG=1") - find_library(Vulkan_LIBRARY NAMES vulkan HINTS "${CMAKE_SOURCE_DIR}/external/vulkan/linux/lib" REQUIRED) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DPLATFORM_LINUX=1") include_directories( external/vulkan/linux/include/ ) @@ -49,6 +36,8 @@ elseif (UNIX) ) endif () +find_package(Vulkan) + set(ALL_LIBS ${Vulkan_LIBRARY} imgui diff --git a/Engine/Monkey/Application/AppModuleBase.h b/Engine/Monkey/Application/AppModuleBase.h index 471cffe2..112b19a5 100644 --- a/Engine/Monkey/Application/AppModuleBase.h +++ b/Engine/Monkey/Application/AppModuleBase.h @@ -35,28 +35,28 @@ class AppModuleBase } - inline void SetSize(int32 width, int32 height) + FORCE_INLINE void SetSize(int32 width, int32 height) { m_Width = width; m_Height = height; } - inline std::shared_ptr GetVulkanRHI() const + FORCE_INLINE std::shared_ptr GetVulkanRHI() const { return Engine::Get()->GetVulkanRHI(); } - inline int32 GetWidth() const + FORCE_INLINE int32 GetWidth() const { return m_Width; } - inline int32 GetHeight() const + FORCE_INLINE int32 GetHeight() const { return m_Height; } - inline const std::string& GetTitle() + FORCE_INLINE const std::string& GetTitle() { return m_Title; } diff --git a/Engine/Monkey/Application/GenericApplicationMessageHandler.h b/Engine/Monkey/Application/GenericApplicationMessageHandler.h index 21e871e3..37950f6d 100644 --- a/Engine/Monkey/Application/GenericApplicationMessageHandler.h +++ b/Engine/Monkey/Application/GenericApplicationMessageHandler.h @@ -10,25 +10,25 @@ struct WindowSizeLimits { public: - inline WindowSizeLimits& SetMinWidth(float value) + FORCE_INLINE WindowSizeLimits& SetMinWidth(float value) { minWidth = value; return *this; } - inline WindowSizeLimits& SetMinHeight(float value) + FORCE_INLINE WindowSizeLimits& SetMinHeight(float value) { minHeight = value; return *this; } - inline WindowSizeLimits& SetMaxWidth(float value) + FORCE_INLINE WindowSizeLimits& SetMaxWidth(float value) { maxWidth = value; return *this; } - inline WindowSizeLimits& SetMaxHeight(float value) + FORCE_INLINE WindowSizeLimits& SetMaxHeight(float value) { maxHeight = value; return *this; diff --git a/Engine/Monkey/Application/GenericWindow.h b/Engine/Monkey/Application/GenericWindow.h index ee199306..d49fbcf3 100644 --- a/Engine/Monkey/Application/GenericWindow.h +++ b/Engine/Monkey/Application/GenericWindow.h @@ -15,7 +15,7 @@ namespace WindowMode NumWindowModes }; - static FORCEINLINE Type ConvertIntToWindowMode(int32 windowMode) + static FORCE_INLINE Type ConvertIntToWindowMode(int32 windowMode) { Type mode = Windowed; switch (windowMode) @@ -40,7 +40,7 @@ namespace WindowMode return mode; } - FORCEINLINE const char* LexToString(Type windowMode) + FORCE_INLINE const char* LexToString(Type windowMode) { switch (windowMode) { diff --git a/Engine/Monkey/Application/Linux/LinuxWindow.h b/Engine/Monkey/Application/Linux/LinuxWindow.h index cc6890bf..10b95670 100644 --- a/Engine/Monkey/Application/Linux/LinuxWindow.h +++ b/Engine/Monkey/Application/Linux/LinuxWindow.h @@ -82,12 +82,12 @@ class LinuxWindow : public GenericWindow return m_WindowMode; } - FORCEINLINE xcb_connection_t* GetConnection() const + FORCE_INLINE xcb_connection_t* GetConnection() const { return m_Connection; } - FORCEINLINE xcb_intern_atom_reply_t* GetAtomWmDeleteWindow() const + FORCE_INLINE xcb_intern_atom_reply_t* GetAtomWmDeleteWindow() const { return m_AtomWmDeleteWindow; } diff --git a/Engine/Monkey/Application/Windows/WinApplication.cpp b/Engine/Monkey/Application/Windows/WinApplication.cpp index 9457e8e4..ea8645be 100644 --- a/Engine/Monkey/Application/Windows/WinApplication.cpp +++ b/Engine/Monkey/Application/Windows/WinApplication.cpp @@ -100,7 +100,7 @@ int32 WinApplication::ProcessMessage(HWND hwnd, uint32 msg, WPARAM wParam, LPARA const int x = GET_X_LPARAM(lParam); const int y = GET_Y_LPARAM(lParam); - Vector2 pos(x, y); + Vector2 pos((float)x, (float)y); if (msg == WM_LBUTTONDOWN || msg == WM_LBUTTONUP) { button = MouseType::MOUSE_BUTTON_LEFT; @@ -146,7 +146,7 @@ int32 WinApplication::ProcessMessage(HWND hwnd, uint32 msg, WPARAM wParam, LPARA { const int x = GET_X_LPARAM(lParam); const int y = GET_Y_LPARAM(lParam); - Vector2 pos(x, y); + Vector2 pos((float)x, (float)y); m_MessageHandler->OnMouseMove(pos); return 0; } @@ -154,7 +154,7 @@ int32 WinApplication::ProcessMessage(HWND hwnd, uint32 msg, WPARAM wParam, LPARA { const int x = GET_X_LPARAM(lParam); const int y = GET_Y_LPARAM(lParam); - Vector2 pos(x, y); + Vector2 pos((float)x, (float)y); m_MessageHandler->OnMouseWheel((float)GET_WHEEL_DELTA_WPARAM(wParam) / (float)WHEEL_DELTA, pos); return 0; } @@ -162,7 +162,7 @@ int32 WinApplication::ProcessMessage(HWND hwnd, uint32 msg, WPARAM wParam, LPARA { const int x = GET_X_LPARAM(lParam); const int y = GET_Y_LPARAM(lParam); - Vector2 pos(x, y); + Vector2 pos((float)x, (float)y); m_MessageHandler->OnMouseWheel((float)GET_WHEEL_DELTA_WPARAM(wParam) / (float)WHEEL_DELTA, pos); return 0; } @@ -188,7 +188,7 @@ int32 WinApplication::ProcessMessage(HWND hwnd, uint32 msg, WPARAM wParam, LPARA } } - return DefWindowProc(hwnd, msg, wParam, lParam); + return (int32)DefWindowProc(hwnd, msg, wParam, lParam); } void WinApplication::SetMessageHandler(GenericApplicationMessageHandler* messageHandler) diff --git a/Engine/Monkey/Common/Common.h b/Engine/Monkey/Common/Common.h index 54bf7b53..c91979d7 100644 --- a/Engine/Monkey/Common/Common.h +++ b/Engine/Monkey/Common/Common.h @@ -23,9 +23,9 @@ typedef long SSIZE_T; #define ENGINE_NAME "MONKEY" #if PLATFORM_WINDOWS - #define FORCEINLINE __inline + #define FORCE_INLINE __inline #define CONSTEXPR constexpr #else - #define FORCEINLINE inline + #define FORCE_INLINE inline #define CONSTEXPR constexpr #endif diff --git a/Engine/Monkey/Demo/DVKCamera.h b/Engine/Monkey/Demo/DVKCamera.h index 13ae5879..cdb3a1e2 100644 --- a/Engine/Monkey/Demo/DVKCamera.h +++ b/Engine/Monkey/Demo/DVKCamera.h @@ -16,135 +16,135 @@ namespace vk_demo DVKCamera(); - FORCEINLINE void TranslateX(float distance) + FORCE_INLINE void TranslateX(float distance) { m_World.TranslateX(distance); } - FORCEINLINE void TranslateY(float distance) + FORCE_INLINE void TranslateY(float distance) { m_World.TranslateY(distance); } - FORCEINLINE void TranslateZ(float distance) + FORCE_INLINE void TranslateZ(float distance) { m_World.TranslateZ(distance); } - FORCEINLINE void RotateX(float angle) + FORCE_INLINE void RotateX(float angle) { m_World.RotateX(angle); } - FORCEINLINE void RotateY(float angle) + FORCE_INLINE void RotateY(float angle) { m_World.RotateY(angle); } - FORCEINLINE void RotateZ(float angle) + FORCE_INLINE void RotateZ(float angle) { m_World.RotateZ(angle); } - FORCEINLINE void LookAt(float x, float y, float z, float smooth = 1.0f) + FORCE_INLINE void LookAt(float x, float y, float z, float smooth = 1.0f) { LookAt(Vector3(x, y, z), smooth); } - FORCEINLINE void LookAt(const Vector3& target, float smooth = 1.0f) + FORCE_INLINE void LookAt(const Vector3& target, float smooth = 1.0f) { m_World.LookAt(target, nullptr, smooth); } - FORCEINLINE void LookAt(const Vector3& target, const Vector3& up, float smooth = 1.0f) + FORCE_INLINE void LookAt(const Vector3& target, const Vector3& up, float smooth = 1.0f) { m_World.LookAt(target, &up, smooth); } - FORCEINLINE void SetPosition(const Vector3& pos) + FORCE_INLINE void SetPosition(const Vector3& pos) { m_World.SetPosition(pos); } - FORCEINLINE void SetPosition(float x, float y, float z) + FORCE_INLINE void SetPosition(float x, float y, float z) { m_World.SetPosition(Vector3(x, y, z)); } - FORCEINLINE void SetOrientation(const Vector3& dir) + FORCE_INLINE void SetOrientation(const Vector3& dir) { m_World.SetOrientation(dir, &Vector3::UpVector, 1.0f); } - FORCEINLINE void SetRotation(const Vector3& rotation) + FORCE_INLINE void SetRotation(const Vector3& rotation) { m_World.SetRotation(rotation); } - FORCEINLINE void SetRotation(float eulerX, float eulerY, float eulerZ) + FORCE_INLINE void SetRotation(float eulerX, float eulerY, float eulerZ) { m_World.SetRotation(Vector3(eulerX, eulerY, eulerZ)); } - FORCEINLINE Vector3 GetRightVec() const + FORCE_INLINE Vector3 GetRightVec() const { return m_World.GetRight(); } - FORCEINLINE Vector3 GetUpVec() const + FORCE_INLINE Vector3 GetUpVec() const { return m_World.GetUp(); } - FORCEINLINE Vector3 GetForwardVec() const + FORCE_INLINE Vector3 GetForwardVec() const { return m_World.GetForward(); } - FORCEINLINE Vector3 GetLeftVec() const + FORCE_INLINE Vector3 GetLeftVec() const { return m_World.GetLeft(); } - FORCEINLINE Vector3 GetBackwardVec() const + FORCE_INLINE Vector3 GetBackwardVec() const { return m_World.GetBackward(); } - FORCEINLINE Vector3 GetDownVec() const + FORCE_INLINE Vector3 GetDownVec() const { return m_World.GetDown(); } - FORCEINLINE const Matrix4x4& GetView() + FORCE_INLINE const Matrix4x4& GetView() { m_View = m_World.Inverse(); return m_View; } - FORCEINLINE const Matrix4x4& GetProjection() + FORCE_INLINE const Matrix4x4& GetProjection() { return m_Projection; } - FORCEINLINE const Matrix4x4& GetViewProjection() + FORCE_INLINE const Matrix4x4& GetViewProjection() { m_View = m_World.Inverse(); m_ViewProjection = m_View * m_Projection; return m_ViewProjection; } - FORCEINLINE void SetTransform(const Matrix4x4& world) + FORCE_INLINE void SetTransform(const Matrix4x4& world) { m_World = world; } - FORCEINLINE const Matrix4x4& GetTransform() + FORCE_INLINE const Matrix4x4& GetTransform() { return m_World; } - FORCEINLINE void Perspective(float fovy, float width, float height, float zNear, float zFar) + FORCE_INLINE void Perspective(float fovy, float width, float height, float zNear, float zFar) { m_Fov = fovy; m_Near = zNear; @@ -154,7 +154,7 @@ namespace vk_demo m_Projection.Perspective(fovy, width, height, zNear, zFar); } - FORCEINLINE void Orthographic(float left, float right, float bottom, float top, float minZ, float maxZ) + FORCE_INLINE void Orthographic(float left, float right, float bottom, float top, float minZ, float maxZ) { m_Near = minZ; m_Far = maxZ; @@ -166,42 +166,42 @@ namespace vk_demo m_Projection.Orthographic(left, right, bottom, top, minZ, maxZ); } - FORCEINLINE float GetNear() const + FORCE_INLINE float GetNear() const { return m_Near; } - FORCEINLINE float GetFar() const + FORCE_INLINE float GetFar() const { return m_Far; } - FORCEINLINE float GetFov() const + FORCE_INLINE float GetFov() const { return m_Fov; } - FORCEINLINE float GetAspect() const + FORCE_INLINE float GetAspect() const { return m_Aspect; } - FORCEINLINE float GetLeft() const + FORCE_INLINE float GetLeft() const { return m_Left; } - FORCEINLINE float GetRight() const + FORCE_INLINE float GetRight() const { return m_Right; } - FORCEINLINE float GetBottom() const + FORCE_INLINE float GetBottom() const { return m_Bottom; } - FORCEINLINE float GetTop() const + FORCE_INLINE float GetTop() const { return m_Top; } diff --git a/Engine/Monkey/Demo/DVKCommand.cpp b/Engine/Monkey/Demo/DVKCommand.cpp index 7b437235..5ee57bdf 100644 --- a/Engine/Monkey/Demo/DVKCommand.cpp +++ b/Engine/Monkey/Demo/DVKCommand.cpp @@ -42,7 +42,7 @@ namespace vk_demo if (waitFlags.size() > 0) { - submitInfo.waitSemaphoreCount = waitSemaphores.size(); + submitInfo.waitSemaphoreCount = (uint32_t)waitSemaphores.size(); submitInfo.pWaitSemaphores = waitSemaphores.data(); submitInfo.pWaitDstStageMask = waitFlags.data(); } diff --git a/Engine/Monkey/Demo/DVKCompute.cpp b/Engine/Monkey/Demo/DVKCompute.cpp index af0082bd..f97e5810 100644 --- a/Engine/Monkey/Demo/DVKCompute.cpp +++ b/Engine/Monkey/Demo/DVKCompute.cpp @@ -12,7 +12,7 @@ namespace vk_demo ringBuffer->device = vulkanDevice->GetInstanceHandle(); ringBuffer->bufferSize = 8 * 1024 * 1024; // 8MB ringBuffer->bufferOffset = ringBuffer->bufferSize; - ringBuffer->minAlignment = vulkanDevice->GetLimits().minUniformBufferOffsetAlignment; + ringBuffer->minAlignment = (uint32)vulkanDevice->GetLimits().minUniformBufferOffsetAlignment; ringBuffer->realBuffer = vk_demo::DVKBuffer::CreateBuffer( vulkanDevice, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, @@ -170,7 +170,7 @@ namespace vk_demo commandBuffer, bindPoint, GetPipelineLayout(), - 0, GetDescriptorSets().size(), GetDescriptorSets().data(), + 0, (uint32_t)GetDescriptorSets().size(), GetDescriptorSets().data(), dynamicOffsetCount, dynOffsets ); } @@ -192,7 +192,7 @@ namespace vk_demo if (it->second.bufferInfo.buffer != buffer->buffer) { - it->second.dataSize = buffer->size; + it->second.dataSize = (uint32)buffer->size; it->second.bufferInfo.buffer = buffer->buffer; it->second.bufferInfo.offset = 0; it->second.bufferInfo.range = buffer->size; @@ -224,7 +224,7 @@ namespace vk_demo memcpy(ringCPUData + ringOffset, dataPtr, bufferSize); // 记录Offset - dynamicOffsets[it->second.dynamicIndex] = ringOffset; + dynamicOffsets[it->second.dynamicIndex] = (uint32)ringOffset; } void DVKCompute::SetStorageTexture(const std::string& name, DVKTexture* texture) diff --git a/Engine/Monkey/Demo/DVKCompute.h b/Engine/Monkey/Demo/DVKCompute.h index 35354b3b..77ebd1df 100644 --- a/Engine/Monkey/Demo/DVKCompute.h +++ b/Engine/Monkey/Demo/DVKCompute.h @@ -47,17 +47,17 @@ namespace vk_demo void SetStorageBuffer(const std::string& name, DVKBuffer* buffer); - inline VkPipeline GetPipeline() const + FORCE_INLINE VkPipeline GetPipeline() const { return pipeline; } - inline VkPipelineLayout GetPipelineLayout() const + FORCE_INLINE VkPipelineLayout GetPipelineLayout() const { return shader->pipelineLayout; } - inline std::vector& GetDescriptorSets() const + FORCE_INLINE std::vector& GetDescriptorSets() const { return descriptorSet->descriptorSets; } diff --git a/Engine/Monkey/Demo/DVKIndexBuffer.cpp b/Engine/Monkey/Demo/DVKIndexBuffer.cpp index afc7d75d..a2eaa95b 100644 --- a/Engine/Monkey/Demo/DVKIndexBuffer.cpp +++ b/Engine/Monkey/Demo/DVKIndexBuffer.cpp @@ -9,9 +9,9 @@ namespace vk_demo VkDevice device = vulkanDevice->GetInstanceHandle(); DVKIndexBuffer* indexBuffer = new DVKIndexBuffer(); - indexBuffer->device = device; - indexBuffer->indexCount = indices.size(); - indexBuffer->indexType = VK_INDEX_TYPE_UINT32; + indexBuffer->device = device; + indexBuffer->indexCount = (int32)indices.size(); + indexBuffer->indexType = VK_INDEX_TYPE_UINT32; vk_demo::DVKBuffer* indexStaging = vk_demo::DVKBuffer::CreateBuffer( vulkanDevice, @@ -48,9 +48,9 @@ namespace vk_demo VkDevice device = vulkanDevice->GetInstanceHandle(); DVKIndexBuffer* indexBuffer = new DVKIndexBuffer(); - indexBuffer->device = device; - indexBuffer->indexCount = indices.size(); - indexBuffer->indexType = VK_INDEX_TYPE_UINT16; + indexBuffer->device = device; + indexBuffer->indexCount = (int32)indices.size(); + indexBuffer->indexType = VK_INDEX_TYPE_UINT16; vk_demo::DVKBuffer* indexStaging = vk_demo::DVKBuffer::CreateBuffer( vulkanDevice, diff --git a/Engine/Monkey/Demo/DVKMaterial.cpp b/Engine/Monkey/Demo/DVKMaterial.cpp index afd577c9..afc0730b 100644 --- a/Engine/Monkey/Demo/DVKMaterial.cpp +++ b/Engine/Monkey/Demo/DVKMaterial.cpp @@ -13,7 +13,7 @@ namespace vk_demo ringBuffer->device = vulkanDevice->GetInstanceHandle(); ringBuffer->bufferSize = 32 * 1024 * 1024; // 32MB ringBuffer->bufferOffset = ringBuffer->bufferSize; - ringBuffer->minAlignment = vulkanDevice->GetLimits().minUniformBufferOffsetAlignment; + ringBuffer->minAlignment = (uint32)vulkanDevice->GetLimits().minUniformBufferOffsetAlignment; ringBuffer->realBuffer = vk_demo::DVKBuffer::CreateBuffer( vulkanDevice, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, @@ -212,7 +212,7 @@ namespace vk_demo // 拷贝数据 memcpy(ringCPUData + ringOffset, it->second.dataContent.data(), bufferSize); // 记录Offset - globalOffsets[it->second.dynamicIndex] = ringOffset; + globalOffsets[it->second.dynamicIndex] = (uint32)ringOffset; } } @@ -223,20 +223,20 @@ namespace vk_demo void DVKMaterial::BeginObject() { - int32 index = perObjectIndexes.size(); + int32 index = (int32)perObjectIndexes.size(); perObjectIndexes.push_back(index); int32 offsetStart = index * dynamicOffsetCount; // 扩充dynamicOffsets尺寸以便能够保持每个Object的参数 if (offsetStart + dynamicOffsetCount > dynamicOffsets.size()) { - for (int32 i = 0; i < dynamicOffsetCount; ++i) { + for (uint32 i = 0; i < dynamicOffsetCount; ++i) { dynamicOffsets.push_back(0); } } // 拷贝GlobalOffsets - for (int32 offsetIndex = offsetStart; offsetIndex < dynamicOffsetCount; ++offsetIndex) { + for (uint32 offsetIndex = offsetStart; offsetIndex < dynamicOffsetCount; ++offsetIndex) { dynamicOffsets[offsetIndex] = globalOffsets[offsetIndex - offsetStart]; } } @@ -247,7 +247,7 @@ namespace vk_demo for (int32 i = 0; i < perObjectIndexes.size(); ++i) { int32 offsetStart = i * dynamicOffsetCount; - for (int32 offsetIndex = offsetStart; offsetIndex < dynamicOffsetCount; ++offsetIndex) { + for (uint32 offsetIndex = offsetStart; offsetIndex < dynamicOffsetCount; ++offsetIndex) { if (dynamicOffsets[offsetIndex] == MAX_uint32) { MLOGE("Uniform not set\n"); } @@ -256,7 +256,7 @@ namespace vk_demo if (perObjectIndexes.size() == 0) { - for (int32 i = 0; i < dynamicOffsetCount; ++i) { + for (uint32 i = 0; i < dynamicOffsetCount; ++i) { if (globalOffsets[i] == MAX_uint32) { MLOGE("Uniform not set\n"); } @@ -280,7 +280,7 @@ namespace vk_demo commandBuffer, bindPoint, GetPipelineLayout(), - 0, GetDescriptorSets().size(), GetDescriptorSets().data(), + 0, (uint32_t)GetDescriptorSets().size(), GetDescriptorSets().data(), dynamicOffsetCount, dynOffsets ); } @@ -314,7 +314,7 @@ namespace vk_demo memcpy(ringCPUData + ringOffset, dataPtr, bufferSize); // 记录Offset - dynOffsets[it->second.dynamicIndex] = ringOffset; + dynOffsets[it->second.dynamicIndex] = (uint32)ringOffset; } void DVKMaterial::SetGlobalUniform(const std::string& name, void* dataPtr, uint32 size) @@ -384,7 +384,7 @@ namespace vk_demo if (it->second.bufferInfo.buffer != buffer->buffer) { - it->second.dataSize = buffer->size; + it->second.dataSize = (uint32)buffer->size; it->second.bufferInfo.buffer = buffer->buffer; it->second.bufferInfo.offset = 0; it->second.bufferInfo.range = buffer->size; diff --git a/Engine/Monkey/Demo/DVKMaterial.h b/Engine/Monkey/Demo/DVKMaterial.h index fe1197af..c09d9905 100644 --- a/Engine/Monkey/Demo/DVKMaterial.h +++ b/Engine/Monkey/Demo/DVKMaterial.h @@ -126,17 +126,17 @@ namespace vk_demo void SetInputAttachment(const std::string& name, DVKTexture* texture); - inline VkPipeline GetPipeline() const + FORCE_INLINE VkPipeline GetPipeline() const { return pipeline->pipeline; } - inline VkPipelineLayout GetPipelineLayout() const + FORCE_INLINE VkPipelineLayout GetPipelineLayout() const { return pipeline->pipelineLayout; } - inline std::vector& GetDescriptorSets() const + FORCE_INLINE std::vector& GetDescriptorSets() const { return descriptorSet->descriptorSets; } diff --git a/Engine/Monkey/Demo/DVKModel.cpp b/Engine/Monkey/Demo/DVKModel.cpp index e2041348..8b6a08c9 100644 --- a/Engine/Monkey/Demo/DVKModel.cpp +++ b/Engine/Monkey/Demo/DVKModel.cpp @@ -84,9 +84,9 @@ namespace vk_demo } DVKPrimitive* primitive = new DVKPrimitive(); - primitive->vertices = vertices; - primitive->indices = indices; - primitive->vertexCount = vertices.size() / stride * 4; + primitive->vertices = vertices; + primitive->indices = indices; + primitive->vertexCount = (int32)vertices.size() / stride * 4; if (cmdBuffer) { @@ -166,10 +166,10 @@ namespace vk_demo void DVKModel::LoadBones(const aiScene* aiScene) { std::unordered_map boneIndexMap; - for (int32 i = 0; i < aiScene->mNumMeshes; ++i) + for (int32 i = 0; i < (int32)aiScene->mNumMeshes; ++i) { aiMesh* aimesh = aiScene->mMeshes[i]; - for (int32 j = 0; j < aimesh->mNumBones; ++j) + for (int32 j = 0; j < (int32)aimesh->mNumBones; ++j) { aiBone* aibone = aimesh->mBones[j]; std::string name = aibone->mName.C_Str(); @@ -178,7 +178,7 @@ namespace vk_demo if (it == boneIndexMap.end()) { // new bone - int32 index = bones.size(); + int32 index = (int32)bones.size(); DVKBone* bone = new DVKBone(); bone->index = index; bone->parent = -1; @@ -198,7 +198,7 @@ namespace vk_demo { std::unordered_map boneIndexMap; - for (int32 i = 0; i < aiMesh->mNumBones; ++i) + for (int32 i = 0; i < (int32)aiMesh->mNumBones; ++i) { aiBone* boneInfo = aiMesh->mBones[i]; std::string boneName(boneInfo->mName.C_Str()); @@ -208,7 +208,7 @@ namespace vk_demo int32 meshBoneIndex = 0; auto it = boneIndexMap.find(boneIndex); if (it == boneIndexMap.end()) { - meshBoneIndex = mesh->bones.size(); + meshBoneIndex = (int32)mesh->bones.size(); mesh->bones.push_back(boneIndex); boneIndexMap.insert(std::make_pair(boneIndex, meshBoneIndex)); } @@ -259,7 +259,7 @@ namespace vk_demo MMath::RandRange(0.0f, 1.0f) ); - for (int32 i = 0; i < aiMesh->mNumVertices; ++i) + for (int32 i = 0; i < (int32)aiMesh->mNumVertices; ++i) { for (int32 j = 0; j < attributes.size(); ++j) { @@ -346,16 +346,16 @@ namespace vk_demo int32 idx3 = skin.indices[3]; uint32 packIndex = (idx0 << 24) + (idx1 << 16) + (idx2 << 8) + idx3; - uint16 weight0 = skin.weights[0] * 65535; - uint16 weight1 = skin.weights[1] * 65535; - uint16 weight2 = skin.weights[2] * 65535; - uint16 weight3 = skin.weights[3] * 65535; + uint16 weight0 = uint16(skin.weights[0] * 65535); + uint16 weight1 = uint16(skin.weights[1] * 65535); + uint16 weight2 = uint16(skin.weights[2] * 65535); + uint16 weight3 = uint16(skin.weights[3] * 65535); uint32 packWeight0 = (weight0 << 16) + weight1; uint32 packWeight1 = (weight2 << 16) + weight3; - vertices.push_back(packIndex); - vertices.push_back(packWeight0); - vertices.push_back(packWeight1); + vertices.push_back((float)packIndex); + vertices.push_back((float)packWeight0); + vertices.push_back((float)packWeight1); } else { @@ -369,10 +369,10 @@ namespace vk_demo if (mesh->isSkin) { DVKVertexSkin& skin = skinInfoMap[i]; - vertices.push_back(skin.indices[0]); - vertices.push_back(skin.indices[1]); - vertices.push_back(skin.indices[2]); - vertices.push_back(skin.indices[3]); + vertices.push_back((float)skin.indices[0]); + vertices.push_back((float)skin.indices[1]); + vertices.push_back((float)skin.indices[2]); + vertices.push_back((float)skin.indices[3]); } else { @@ -417,7 +417,7 @@ namespace vk_demo void DVKModel::LoadIndices(std::vector& indices, const aiMesh* aiMesh, const aiScene* aiScene) { - for (int32 i = 0; i < aiMesh->mNumFaces; ++i) + for (int32 i = 0; i < (int32)aiMesh->mNumFaces; ++i) { indices.push_back(aiMesh->mFaces[i].mIndices[0]); indices.push_back(aiMesh->mFaces[i].mIndices[1]); @@ -427,7 +427,7 @@ namespace vk_demo void DVKModel::LoadPrimitives(std::vector& vertices, std::vector& indices, DVKMesh* mesh, const aiMesh* aiMesh, const aiScene* aiScene) { - int32 stride = vertices.size() / aiMesh->mNumVertices; + int32 stride = (int32)vertices.size() / aiMesh->mNumVertices; if (indices.size() > 65535) { @@ -448,7 +448,7 @@ namespace vk_demo if (it == indicesMap.end()) { uint32 start = idx * stride; - newIdx = primitive->vertices.size() / stride; + newIdx = (uint32)primitive->vertices.size() / stride; primitive->vertices.insert(primitive->vertices.end(), vertices.begin() + start, vertices.begin() + start + stride); indicesMap.insert(std::make_pair(idx, newIdx)); } @@ -493,8 +493,8 @@ namespace vk_demo for (int32 i = 0; i < mesh->primitives.size(); ++i) { DVKPrimitive* primitive = mesh->primitives[i]; - primitive->vertexCount = primitive->vertices.size() / stride; - primitive->triangleNum = primitive->indices.size() / 3; + primitive->vertexCount = (int32)primitive->vertices.size() / stride; + primitive->triangleNum = (int32)primitive->indices.size() / 3; mesh->vertexCount += primitive->vertexCount; mesh->triangleCount += primitive->triangleNum; @@ -519,8 +519,8 @@ namespace vk_demo // load vertex data std::vector vertices; - Vector3 mmin( MAX_int32, MAX_int32, MAX_int32); - Vector3 mmax(-MAX_int32, -MAX_int32, -MAX_int32); + Vector3 mmin( MAX_FLT, MAX_FLT, MAX_FLT); + Vector3 mmax(-MAX_FLT, -MAX_FLT, -MAX_FLT); LoadVertexDatas(skinInfoMap, vertices, mmax, mmin, mesh, aiMesh, aiScene); // load indices @@ -551,7 +551,7 @@ namespace vk_demo // mesh if (aiNode->mNumMeshes > 0) { - for (int i = 0; i < aiNode->mNumMeshes; ++i) + for (uint32 i = 0; i < aiNode->mNumMeshes; ++i) { DVKMesh* vkMesh = LoadMesh(aiScene->mMeshes[aiNode->mMeshes[i]], aiScene); vkMesh->linkNode = vkNode; @@ -574,7 +574,7 @@ namespace vk_demo } // children node - for (int32 i = 0; i < aiNode->mNumChildren; ++i) + for (int32 i = 0; i < (int32)aiNode->mNumChildren; ++i) { DVKNode* childNode = LoadNode(aiNode->mChildren[i], aiScene); childNode->parent = vkNode; @@ -594,15 +594,15 @@ namespace vk_demo void DVKModel::LoadAnim(const aiScene* aiScene) { - for (int32 i = 0; i < aiScene->mNumAnimations; ++i) + for (int32 i = 0; i < (int32)aiScene->mNumAnimations; ++i) { aiAnimation* aianimation = aiScene->mAnimations[i]; - float timeTick = aianimation->mTicksPerSecond != 0 ? aianimation->mTicksPerSecond : 25.0f; + float timeTick = aianimation->mTicksPerSecond != 0 ? (float)aianimation->mTicksPerSecond : 25.0f; animations.push_back(DVKAnimation()); DVKAnimation& dvkAnimation = animations.back(); - for (int32 j = 0; j < aianimation->mNumChannels; ++j) + for (int32 j = 0; j < (int32)aianimation->mNumChannels; ++j) { aiNodeAnim* nodeAnim = aianimation->mChannels[j]; std::string nodeName = nodeAnim->mNodeName.C_Str(); @@ -614,28 +614,28 @@ namespace vk_demo animClip.duration = 0.0f; // position - for (int32 index = 0; index < nodeAnim->mNumPositionKeys; ++index) + for (int32 index = 0; index < (int32)nodeAnim->mNumPositionKeys; ++index) { aiVectorKey& aikey = nodeAnim->mPositionKeys[index]; - animClip.positions.keys.push_back(aikey.mTime / timeTick); + animClip.positions.keys.push_back((float)aikey.mTime / timeTick); animClip.positions.values.push_back(Vector3(aikey.mValue.x, aikey.mValue.y, aikey.mValue.z)); animClip.duration = MMath::Max((float)aikey.mTime / timeTick, animClip.duration); } // scale - for (int32 index = 0; index < nodeAnim->mNumScalingKeys; ++index) + for (int32 index = 0; index < (int32)nodeAnim->mNumScalingKeys; ++index) { aiVectorKey& aikey = nodeAnim->mScalingKeys[index]; - animClip.scales.keys.push_back(aikey.mTime / timeTick); + animClip.scales.keys.push_back((float)aikey.mTime / timeTick); animClip.scales.values.push_back(Vector3(aikey.mValue.x, aikey.mValue.y, aikey.mValue.z)); animClip.duration = MMath::Max((float)aikey.mTime / timeTick, animClip.duration); } // rotation - for (int32 index = 0; index < nodeAnim->mNumRotationKeys; ++index) + for (int32 index = 0; index < (int32)nodeAnim->mNumRotationKeys; ++index) { aiQuatKey& aikey = nodeAnim->mRotationKeys[index]; - animClip.rotations.keys.push_back(aikey.mTime / timeTick); + animClip.rotations.keys.push_back((float)aikey.mTime / timeTick); animClip.rotations.values.push_back(Quat(aikey.mValue.x, aikey.mValue.y, aikey.mValue.z, aikey.mValue.w)); animClip.duration = MMath::Max((float)aikey.mTime / timeTick, animClip.duration); } diff --git a/Engine/Monkey/Demo/DVKModel.h b/Engine/Monkey/Demo/DVKModel.h index a9c3fb8f..03f81836 100644 --- a/Engine/Monkey/Demo/DVKModel.h +++ b/Engine/Monkey/Demo/DVKModel.h @@ -350,8 +350,8 @@ namespace vk_demo DVKBoundingBox GetBounds() { DVKBoundingBox bounds; - bounds.min.Set( MAX_int32, MAX_int32, MAX_int32); - bounds.max.Set(-MAX_int32, -MAX_int32, -MAX_int32); + bounds.min.Set( MAX_FLT, MAX_FLT, MAX_FLT); + bounds.max.Set(-MAX_FLT, -MAX_FLT, -MAX_FLT); CalcBounds(bounds); bounds.UpdateCorners(); return bounds; diff --git a/Engine/Monkey/Demo/DVKPipeline.cpp b/Engine/Monkey/Demo/DVKPipeline.cpp index 424f094f..436fc5b2 100644 --- a/Engine/Monkey/Demo/DVKPipeline.cpp +++ b/Engine/Monkey/Demo/DVKPipeline.cpp @@ -21,9 +21,9 @@ namespace vk_demo VkPipelineVertexInputStateCreateInfo vertexInputState; ZeroVulkanStruct(vertexInputState, VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO); - vertexInputState.vertexBindingDescriptionCount = inputBindings.size(); + vertexInputState.vertexBindingDescriptionCount = (uint32_t)inputBindings.size(); vertexInputState.pVertexBindingDescriptions = inputBindings.data(); - vertexInputState.vertexAttributeDescriptionCount = vertexInputAttributs.size(); + vertexInputState.vertexAttributeDescriptionCount = (uint32_t)vertexInputAttributs.size(); vertexInputState.pVertexAttributeDescriptions = vertexInputAttributs.data(); VkPipelineColorBlendStateCreateInfo colorBlendState; @@ -58,7 +58,7 @@ namespace vk_demo pipelineCreateInfo.layout = pipelineLayout; pipelineCreateInfo.renderPass = renderPass; pipelineCreateInfo.subpass = pipelineInfo.subpass; - pipelineCreateInfo.stageCount = shaderStages.size(); + pipelineCreateInfo.stageCount = (uint32_t)shaderStages.size(); pipelineCreateInfo.pStages = shaderStages.data(); pipelineCreateInfo.pVertexInputState = &vertexInputState; pipelineCreateInfo.pInputAssemblyState = &(pipelineInfo.inputAssemblyState); diff --git a/Engine/Monkey/Demo/DVKRenderTarget.cpp b/Engine/Monkey/Demo/DVKRenderTarget.cpp index ed0a6b51..59323bb0 100644 --- a/Engine/Monkey/Demo/DVKRenderTarget.cpp +++ b/Engine/Monkey/Demo/DVKRenderTarget.cpp @@ -119,15 +119,20 @@ namespace vk_demo if (rtLayout.extent3D.depth > 1 && rtLayout.multiview) { - const uint32 viewMask = (1 << rtLayout.extent3D.depth) - 1; - const uint32 correlationMask = (1 << rtLayout.extent3D.depth) - 1; + uint32 MultiviewMask = (0b1 << rtLayout.extent3D.depth) - 1; + + const uint32_t ViewMask[2] = { MultiviewMask, MultiviewMask }; + const uint32_t CorrelationMask = MultiviewMask; VkRenderPassMultiviewCreateInfo multiviewCreateInfo; ZeroVulkanStruct(multiviewCreateInfo, VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO); + multiviewCreateInfo.pNext = nullptr; multiviewCreateInfo.subpassCount = numSubpasses; - multiviewCreateInfo.pViewMasks = &viewMask; + multiviewCreateInfo.pViewMasks = ViewMask; + multiviewCreateInfo.dependencyCount = 0; + multiviewCreateInfo.pViewOffsets = nullptr; multiviewCreateInfo.correlationMaskCount = 1; - multiviewCreateInfo.pCorrelationMasks = &correlationMask; + multiviewCreateInfo.pCorrelationMasks = &CorrelationMask; renderPassCreateInfo.pNext = &multiviewCreateInfo; } @@ -161,11 +166,11 @@ namespace vk_demo VkFramebufferCreateInfo frameBufferCreateInfo; ZeroVulkanStruct(frameBufferCreateInfo, VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO); frameBufferCreateInfo.renderPass = renderPass.renderPass; - frameBufferCreateInfo.attachmentCount = attachmentTextureViews.size(); + frameBufferCreateInfo.attachmentCount = (uint32_t)attachmentTextureViews.size(); frameBufferCreateInfo.pAttachments = attachmentTextureViews.data(); frameBufferCreateInfo.width = rtLayout.extent3D.width; frameBufferCreateInfo.height = rtLayout.extent3D.height; - frameBufferCreateInfo.layers = rtLayout.extent3D.depth; + frameBufferCreateInfo.layers = rtLayout.multiview ? 1 : rtLayout.extent3D.depth; VERIFYVULKANRESULT(vkCreateFramebuffer(device, &frameBufferCreateInfo, VULKAN_CPU_ALLOCATOR, &frameBuffer)); extent2D.width = rtLayout.extent3D.width; @@ -202,8 +207,8 @@ namespace vk_demo VkViewport viewport = {}; viewport.x = 0; - viewport.y = extent2D.height; - viewport.width = extent2D.width; + viewport.y = (float)extent2D.height; + viewport.width = (float)extent2D.width; viewport.height = -(float)extent2D.height; // flip y axis viewport.minDepth = 0.0f; viewport.maxDepth = 1.0f; @@ -222,7 +227,7 @@ namespace vk_demo renderPassBeginInfo.renderArea.offset.y = 0; renderPassBeginInfo.renderArea.extent.width = extent2D.width; renderPassBeginInfo.renderArea.extent.height = extent2D.height; - renderPassBeginInfo.clearValueCount = clearValues.size(); + renderPassBeginInfo.clearValueCount = (uint32_t)clearValues.size(); renderPassBeginInfo.pClearValues = clearValues.data(); vkCmdBeginRenderPass(commandBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE); diff --git a/Engine/Monkey/Demo/DVKRenderTarget.h b/Engine/Monkey/Demo/DVKRenderTarget.h index bcc49bd2..450eaf10 100644 --- a/Engine/Monkey/Demo/DVKRenderTarget.h +++ b/Engine/Monkey/Demo/DVKRenderTarget.h @@ -296,12 +296,12 @@ namespace vk_demo void EndRenderPass(VkCommandBuffer cmdBuffer); - inline VkRenderPass GetRenderPass() const + FORCE_INLINE VkRenderPass GetRenderPass() const { return renderPass->renderPass; } - inline VkFramebuffer GetFrameBuffer() const + FORCE_INLINE VkFramebuffer GetFrameBuffer() const { return frameBuffer->frameBuffer; } diff --git a/Engine/Monkey/Demo/DVKShader.cpp b/Engine/Monkey/Demo/DVKShader.cpp index 16c10b60..935d1b85 100644 --- a/Engine/Monkey/Demo/DVKShader.cpp +++ b/Engine/Monkey/Demo/DVKShader.cpp @@ -119,7 +119,7 @@ namespace vk_demo spirv_cross::SPIRType base_type = compiler.get_type(res.base_type_id); const std::string &varName = compiler.get_name(res.id); const std::string &typeName = compiler.get_name(res.base_type_id); - uint32 uniformBufferStructSize = compiler.get_declared_struct_size(type); + uint32 uniformBufferStructSize = (uint32)compiler.get_declared_struct_size(type); int32 set = compiler.get_decoration(res.id, spv::DecorationDescriptorSet); int32 binding = compiler.get_decoration(res.id, spv::DecorationBinding); @@ -461,7 +461,7 @@ namespace vk_demo VkDescriptorSetLayoutCreateInfo descSetLayoutInfo; ZeroVulkanStruct(descSetLayoutInfo, VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO); - descSetLayoutInfo.bindingCount = setLayoutInfo.bindings.size(); + descSetLayoutInfo.bindingCount = (uint32_t)setLayoutInfo.bindings.size(); descSetLayoutInfo.pBindings = setLayoutInfo.bindings.data(); VERIFYVULKANRESULT(vkCreateDescriptorSetLayout(device, &descSetLayoutInfo, VULKAN_CPU_ALLOCATOR, &descriptorSetLayout)); @@ -470,7 +470,7 @@ namespace vk_demo VkPipelineLayoutCreateInfo pipeLayoutInfo; ZeroVulkanStruct(pipeLayoutInfo, VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO); - pipeLayoutInfo.setLayoutCount = descriptorSetLayouts.size(); + pipeLayoutInfo.setLayoutCount = (uint32_t)descriptorSetLayouts.size(); pipeLayoutInfo.pSetLayouts = descriptorSetLayouts.data(); VERIFYVULKANRESULT(vkCreatePipelineLayout(device, &pipeLayoutInfo, VULKAN_CPU_ALLOCATOR, &pipelineLayout)); } diff --git a/Engine/Monkey/Demo/DVKShader.h b/Engine/Monkey/Demo/DVKShader.h index 9e0f50e1..f4266091 100644 --- a/Engine/Monkey/Demo/DVKShader.h +++ b/Engine/Monkey/Demo/DVKShader.h @@ -78,7 +78,7 @@ namespace vk_demo } } - return VK_DESCRIPTOR_TYPE_END_RANGE; + return VK_DESCRIPTOR_TYPE_MAX_ENUM; } void AddDescriptorSetLayoutBinding(const std::string& varName, int32 set, VkDescriptorSetLayoutBinding binding) @@ -242,7 +242,7 @@ namespace vk_demo VkDescriptorPoolCreateInfo descriptorPoolInfo; ZeroVulkanStruct(descriptorPoolInfo, VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO); - descriptorPoolInfo.poolSizeCount = poolSizes.size(); + descriptorPoolInfo.poolSizeCount = (uint32_t)poolSizes.size(); descriptorPoolInfo.pPoolSizes = poolSizes.data(); descriptorPoolInfo.maxSets = maxSet; VERIFYVULKANRESULT(vkCreateDescriptorPool(inDevice, &descriptorPoolInfo, VULKAN_CPU_ALLOCATOR, &descriptorPool)); @@ -268,12 +268,12 @@ namespace vk_demo return false; } - usedSet += descriptorSetLayouts.size(); + usedSet += (int32)descriptorSetLayouts.size(); VkDescriptorSetAllocateInfo allocInfo; ZeroVulkanStruct(allocInfo, VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO); allocInfo.descriptorPool = descriptorPool; - allocInfo.descriptorSetCount = descriptorSetLayouts.size(); + allocInfo.descriptorSetCount = (uint32_t)descriptorSetLayouts.size(); allocInfo.pSetLayouts = descriptorSetLayouts.data(); VERIFYVULKANRESULT(vkAllocateDescriptorSets(device, &allocInfo, descriptorSet)); @@ -427,7 +427,7 @@ namespace vk_demo dvkSet->setLayoutsInfo = setLayoutsInfo; dvkSet->descriptorSets.resize(setLayoutsInfo.setLayouts.size()); - for (int32 i = descriptorSetPools.size() - 1; i >= 0; --i) + for (int32 i = (int32)descriptorSetPools.size() - 1; i >= 0; --i) { if (descriptorSetPools[i]->AllocateDescriptorSet(dvkSet->descriptorSets.data())) { return dvkSet; diff --git a/Engine/Monkey/Demo/DVKTexture.cpp b/Engine/Monkey/Demo/DVKTexture.cpp index 88064c96..7c17320f 100644 --- a/Engine/Monkey/Demo/DVKTexture.cpp +++ b/Engine/Monkey/Demo/DVKTexture.cpp @@ -11,7 +11,7 @@ namespace vk_demo DVKTexture* DVKTexture::Create2D(const uint8* rgbaData, uint32 size, VkFormat format, int32 width, int32 height, std::shared_ptr vulkanDevice, DVKCommandBuffer* cmdBuffer, VkImageUsageFlags imageUsageFlags, ImageLayoutBarrier imageLayout) { - int32 mipLevels = MMath::FloorToInt(MMath::Log2(MMath::Max(width, height))) + 1; + int32 mipLevels = MMath::FloorToInt(MMath::Log2((float)MMath::Max(width, height))) + 1; VkDevice device = vulkanDevice->GetInstanceHandle(); DVKBuffer* stagingBuffer = DVKBuffer::CreateBuffer(vulkanDevice, VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, size); @@ -91,7 +91,7 @@ namespace vk_demo vk_demo::ImagePipelineBarrier(cmdBuffer->cmdBuffer, image, ImageLayoutBarrier::TransferDest, ImageLayoutBarrier::TransferSource, subresourceRange); // Generate the mip chain - for (uint32_t i = 1; i < mipLevels; i++) + for (uint32_t i = 1; i < (uint32_t)mipLevels; i++) { VkImageBlit imageBlit = {}; @@ -153,7 +153,7 @@ namespace vk_demo samplerInfo.borderColor = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE; samplerInfo.maxAnisotropy = 1.0; samplerInfo.anisotropyEnable = VK_FALSE; - samplerInfo.maxLod = mipLevels; + samplerInfo.maxLod = (float)mipLevels; samplerInfo.minLod = 0.0f; VERIFYVULKANRESULT(vkCreateSampler(device, &samplerInfo, VULKAN_CPU_ALLOCATOR, &imageSampler)); @@ -233,7 +233,7 @@ namespace vk_demo VkDevice device = vulkanDevice->GetInstanceHandle(); int32 mipLevels = 1; if (mipmaps) { - mipLevels = MMath::FloorToInt(MMath::Log2(MMath::Max(width, height))) + 1; + mipLevels = MMath::FloorToInt(MMath::Log2((float)MMath::Max(width, height))) + 1; } uint32 memoryTypeIndex = 0; @@ -284,7 +284,7 @@ namespace vk_demo samplerInfo.borderColor = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE; samplerInfo.maxAnisotropy = 1.0; samplerInfo.anisotropyEnable = VK_FALSE; - samplerInfo.maxLod = mipLevels; + samplerInfo.maxLod = (float)mipLevels; samplerInfo.minLod = 0.0f; VERIFYVULKANRESULT(vkCreateSampler(device, &samplerInfo, VULKAN_CPU_ALLOCATOR, &imageSampler)); @@ -426,7 +426,7 @@ namespace vk_demo samplerInfo.borderColor = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE; samplerInfo.maxAnisotropy = 1.0; samplerInfo.anisotropyEnable = VK_FALSE; - samplerInfo.maxLod = mipLevels; + samplerInfo.maxLod = (float)mipLevels; samplerInfo.minLod = 0.0f; VERIFYVULKANRESULT(vkCreateSampler(device, &samplerInfo, VULKAN_CPU_ALLOCATOR, &imageSampler)); @@ -539,7 +539,7 @@ namespace vk_demo samplerInfo.borderColor = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE; samplerInfo.maxAnisotropy = 1.0; samplerInfo.anisotropyEnable = VK_FALSE; - samplerInfo.maxLod = mipLevels; + samplerInfo.maxLod = (float)mipLevels; samplerInfo.minLod = 0.0f; VERIFYVULKANRESULT(vkCreateSampler(device, &samplerInfo, VULKAN_CPU_ALLOCATOR, &imageSampler)); @@ -670,9 +670,9 @@ namespace vk_demo // 图片信息,TextureArray要求尺寸一致 int32 width = images[0].width; int32 height = images[0].height; - int32 numArray = images.size(); + int32 numArray = (int32)images.size(); VkFormat format = VK_FORMAT_R32G32B32A32_SFLOAT; - int32 mipLevels = MMath::FloorToInt(MMath::Log2(MMath::Max(width, height))) + 1; + int32 mipLevels = MMath::FloorToInt(MMath::Log2((float)MMath::Max(width, height))) + 1; VkDevice device = vulkanDevice->GetInstanceHandle(); uint32 memoryTypeIndex = 0; @@ -757,12 +757,12 @@ namespace vk_demo bufferCopyRegions.push_back(bufferCopyRegion); } - vkCmdCopyBufferToImage(cmdBuffer->cmdBuffer, stagingBuffer->buffer, image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, bufferCopyRegions.size(), bufferCopyRegions.data()); + vkCmdCopyBufferToImage(cmdBuffer->cmdBuffer, stagingBuffer->buffer, image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, (uint32_t)bufferCopyRegions.size(), bufferCopyRegions.data()); ImagePipelineBarrier(cmdBuffer->cmdBuffer, image, ImageLayoutBarrier::TransferDest, ImageLayoutBarrier::TransferSource, subresourceRange); // Generate the mip chain - for (uint32_t i = 1; i < mipLevels; i++) + for (int32 i = 1; i < mipLevels; i++) { VkImageBlit imageBlit = {}; @@ -818,7 +818,7 @@ namespace vk_demo samplerInfo.borderColor = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE; samplerInfo.maxAnisotropy = 1.0; samplerInfo.anisotropyEnable = VK_FALSE; - samplerInfo.maxLod = mipLevels; + samplerInfo.maxLod = (float)mipLevels; samplerInfo.minLod = 0; VERIFYVULKANRESULT(vkCreateSampler(device, &samplerInfo, VULKAN_CPU_ALLOCATOR, &imageSampler)); @@ -895,9 +895,9 @@ namespace vk_demo // 图片信息,TextureArray要求尺寸一致 int32 width = images[0].width; int32 height = images[0].height; - int32 numArray = images.size(); + int32 numArray = (int32)images.size(); VkFormat format = VK_FORMAT_R8G8B8A8_UNORM; - int32 mipLevels = MMath::FloorToInt(MMath::Log2(MMath::Max(width, height))) + 1; + int32 mipLevels = MMath::FloorToInt(MMath::Log2((float)MMath::Max(width, height))) + 1; VkDevice device = vulkanDevice->GetInstanceHandle(); uint32 memoryTypeIndex = 0; @@ -981,12 +981,12 @@ namespace vk_demo bufferCopyRegions.push_back(bufferCopyRegion); } - vkCmdCopyBufferToImage(cmdBuffer->cmdBuffer, stagingBuffer->buffer, image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, bufferCopyRegions.size(), bufferCopyRegions.data()); + vkCmdCopyBufferToImage(cmdBuffer->cmdBuffer, stagingBuffer->buffer, image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, (uint32_t)bufferCopyRegions.size(), bufferCopyRegions.data()); ImagePipelineBarrier(cmdBuffer->cmdBuffer, image, ImageLayoutBarrier::TransferDest, ImageLayoutBarrier::TransferSource, subresourceRange); // Generate the mip chain - for (uint32_t i = 1; i < mipLevels; i++) + for (int32 i = 1; i < mipLevels; i++) { VkImageBlit imageBlit = {}; @@ -1042,7 +1042,7 @@ namespace vk_demo samplerInfo.borderColor = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE; samplerInfo.maxAnisotropy = 1.0; samplerInfo.anisotropyEnable = VK_FALSE; - samplerInfo.maxLod = mipLevels; + samplerInfo.maxLod = (float)mipLevels; samplerInfo.minLod = 0; VERIFYVULKANRESULT(vkCreateSampler(device, &samplerInfo, VULKAN_CPU_ALLOCATOR, &imageSampler)); diff --git a/Engine/Monkey/Demo/DVKUtils.h b/Engine/Monkey/Demo/DVKUtils.h index 62c485e2..f75bdfc5 100644 --- a/Engine/Monkey/Demo/DVKUtils.h +++ b/Engine/Monkey/Demo/DVKUtils.h @@ -9,7 +9,7 @@ namespace vk_demo { - inline VkShaderModule LoadSPIPVShader(VkDevice device, const std::string& filepath) + FORCE_INLINE VkShaderModule LoadSPIPVShader(VkDevice device, const std::string& filepath) { uint8* dataPtr = nullptr; uint32 dataSize = 0; @@ -27,7 +27,7 @@ namespace vk_demo return shaderModule; } - inline VkImageLayout GetImageLayout(ImageLayoutBarrier target) + FORCE_INLINE VkImageLayout GetImageLayout(ImageLayoutBarrier target) { VkImageLayout layout = VK_IMAGE_LAYOUT_UNDEFINED; @@ -103,7 +103,7 @@ namespace vk_demo return layout; } - inline VkPipelineStageFlags GetImageBarrierFlags(ImageLayoutBarrier target, VkAccessFlags& accessFlags, VkImageLayout& layout) + FORCE_INLINE VkPipelineStageFlags GetImageBarrierFlags(ImageLayoutBarrier target, VkAccessFlags& accessFlags, VkImageLayout& layout) { VkPipelineStageFlags stageFlags = (VkPipelineStageFlags)0; switch (target) @@ -198,13 +198,13 @@ namespace vk_demo return stageFlags; } - inline void SetImageBarrierInfo(ImageLayoutBarrier source, ImageLayoutBarrier dest, VkImageMemoryBarrier& inOutBarrier, VkPipelineStageFlags& inOutSourceStage, VkPipelineStageFlags& inOutDestStage) + FORCE_INLINE void SetImageBarrierInfo(ImageLayoutBarrier source, ImageLayoutBarrier dest, VkImageMemoryBarrier& inOutBarrier, VkPipelineStageFlags& inOutSourceStage, VkPipelineStageFlags& inOutDestStage) { inOutSourceStage |= GetImageBarrierFlags(source, inOutBarrier.srcAccessMask, inOutBarrier.oldLayout); inOutDestStage |= GetImageBarrierFlags(dest, inOutBarrier.dstAccessMask, inOutBarrier.newLayout); } - inline void ImagePipelineBarrier(VkCommandBuffer cmdBuffer, VkImage image, ImageLayoutBarrier source, ImageLayoutBarrier dest, const VkImageSubresourceRange& subresourceRange) + FORCE_INLINE void ImagePipelineBarrier(VkCommandBuffer cmdBuffer, VkImage image, ImageLayoutBarrier source, ImageLayoutBarrier dest, const VkImageSubresourceRange& subresourceRange) { VkImageMemoryBarrier imageBarrier; ZeroVulkanStruct(imageBarrier, VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER); diff --git a/Engine/Monkey/Demo/DVKVertexBuffer.h b/Engine/Monkey/Demo/DVKVertexBuffer.h index b552da97..f7f5e881 100644 --- a/Engine/Monkey/Demo/DVKVertexBuffer.h +++ b/Engine/Monkey/Demo/DVKVertexBuffer.h @@ -17,7 +17,7 @@ namespace vk_demo { - inline int32 VertexAttributeToSize(VertexAttribute attribute) + FORCE_INLINE int32 VertexAttributeToSize(VertexAttribute attribute) { // count * sizeof(float) if (attribute == VertexAttribute::VA_Position) { @@ -71,7 +71,7 @@ namespace vk_demo return 0; } - inline VkFormat VertexAttributeToVkFormat(VertexAttribute attribute) + FORCE_INLINE VkFormat VertexAttributeToVkFormat(VertexAttribute attribute) { VkFormat format = VK_FORMAT_R32G32B32_SFLOAT; if (attribute == VertexAttribute::VA_Position) { diff --git a/Engine/Monkey/Demo/DemoBase.h b/Engine/Monkey/Demo/DemoBase.h index fbd80c69..43d9fffb 100644 --- a/Engine/Monkey/Demo/DemoBase.h +++ b/Engine/Monkey/Demo/DemoBase.h @@ -72,7 +72,7 @@ class DemoBase : public AppModuleBase m_LastFrameTime += delta; if (m_LastFrameTime >= 1.0f) { - m_LastFPS = m_FrameCounter; + m_LastFPS = m_FrameCounter; m_FrameCounter = 0; m_LastFrameTime = 0.0f; } @@ -150,5 +150,5 @@ class DemoBase : public AppModuleBase int32 m_FrameCounter = 0; float m_LastFrameTime = 0.0f; - float m_LastFPS = 0.0f; + int32 m_LastFPS = 0; }; diff --git a/Engine/Monkey/Demo/ImageGUIContext.cpp b/Engine/Monkey/Demo/ImageGUIContext.cpp index f3b1f5d3..cbcbf0d8 100644 --- a/Engine/Monkey/Demo/ImageGUIContext.cpp +++ b/Engine/Monkey/Demo/ImageGUIContext.cpp @@ -113,10 +113,10 @@ void ImageGUIContext::Init(const std::string& font) ImGui::CreateContext(); ImGui::StyleColorsLight(); - float windowWidth = Engine::Get()->GetPlatformWindow()->GetWidth(); - float windowHeight = Engine::Get()->GetPlatformWindow()->GetHeight(); - float frameWidth = Engine::Get()->GetVulkanRHI()->GetSwapChain()->GetWidth(); - float frameHeight = Engine::Get()->GetVulkanRHI()->GetSwapChain()->GetHeight(); + float windowWidth = (float)Engine::Get()->GetPlatformWindow()->GetWidth(); + float windowHeight = (float)Engine::Get()->GetPlatformWindow()->GetHeight(); + float frameWidth = (float)Engine::Get()->GetVulkanRHI()->GetSwapChain()->GetWidth(); + float frameHeight = (float)Engine::Get()->GetVulkanRHI()->GetSwapChain()->GetHeight(); m_Scale = frameWidth / windowWidth; m_FontPath = font; diff --git a/Engine/Monkey/Demo/ImageGUIContext.h b/Engine/Monkey/Demo/ImageGUIContext.h index 481e4c14..9a5e46be 100644 --- a/Engine/Monkey/Demo/ImageGUIContext.h +++ b/Engine/Monkey/Demo/ImageGUIContext.h @@ -105,7 +105,7 @@ class ImageGUIContext void BindDrawCmd(const VkCommandBuffer& commandBuffer, const VkRenderPass& renderPass, int32 subpass = 0, VkSampleCountFlagBits sampleCount = VK_SAMPLE_COUNT_1_BIT); - inline float GetScale() const + FORCE_INLINE float GetScale() const { return m_Scale; } diff --git a/Engine/Monkey/Engine.h b/Engine/Monkey/Engine.h index c45e45dc..05af8035 100644 --- a/Engine/Monkey/Engine.h +++ b/Engine/Monkey/Engine.h @@ -72,7 +72,7 @@ class Engine m_AppInstanceExtensions.push_back(name); } - inline void SetPhysicalDeviceFeatures(VkPhysicalDeviceFeatures2* deviceFeatures) + FORCE_INLINE void SetPhysicalDeviceFeatures(VkPhysicalDeviceFeatures2* deviceFeatures) { m_PhysicalDeviceFeatures2 = deviceFeatures; } diff --git a/Engine/Monkey/GenericPlatform/Android/AndroidPlatformTime.h b/Engine/Monkey/GenericPlatform/Android/AndroidPlatformTime.h index 8984e0bc..888ff186 100644 --- a/Engine/Monkey/GenericPlatform/Android/AndroidPlatformTime.h +++ b/Engine/Monkey/GenericPlatform/Android/AndroidPlatformTime.h @@ -10,7 +10,7 @@ class AndroidPlatformTime static double InitTiming(); - static FORCEINLINE double Seconds() + static FORCE_INLINE double Seconds() { struct timeval tv; gettimeofday(&tv, 0); diff --git a/Engine/Monkey/GenericPlatform/InputManager.h b/Engine/Monkey/GenericPlatform/InputManager.h index 79c36258..b6865cd7 100644 --- a/Engine/Monkey/GenericPlatform/InputManager.h +++ b/Engine/Monkey/GenericPlatform/InputManager.h @@ -28,7 +28,7 @@ class InputManager static void Init(); - FORCEINLINE static KeyboardType GetKeyFromKeyCode(int32 keyCode) + FORCE_INLINE static KeyboardType GetKeyFromKeyCode(int32 keyCode) { auto it = s_KeyboardTypesMap.find(keyCode); if (it == s_KeyboardTypesMap.end()) { @@ -37,13 +37,13 @@ class InputManager return it->second; } - FORCEINLINE static void Reset() + FORCE_INLINE static void Reset() { s_MouseDelta = 0; s_IsMouseMoveing = false; } - FORCEINLINE static bool IsMouseDown(MouseType type) + FORCE_INLINE static bool IsMouseDown(MouseType type) { auto it = s_MouseActions.find((int32)type); if (it == s_MouseActions.end()) { @@ -52,7 +52,7 @@ class InputManager return it->second == true; } - FORCEINLINE static bool IsMouseUp(MouseType type) + FORCE_INLINE static bool IsMouseUp(MouseType type) { auto it = s_MouseActions.find((int32)type); if (it == s_MouseActions.end()) { @@ -61,7 +61,7 @@ class InputManager return it->second == false; } - FORCEINLINE static bool IsKeyDown(KeyboardType key) + FORCE_INLINE static bool IsKeyDown(KeyboardType key) { auto it = s_KeyActions.find((int32)key); if (it == s_KeyActions.end()) { @@ -70,7 +70,7 @@ class InputManager return it->second == true; } - FORCEINLINE static bool IsKeyUp(KeyboardType key) + FORCE_INLINE static bool IsKeyUp(KeyboardType key) { auto it = s_KeyActions.find((int32)key); if (it == s_KeyActions.end()) { @@ -79,17 +79,17 @@ class InputManager return it->second == false; } - FORCEINLINE static const Vector2& GetMousePosition() + FORCE_INLINE static const Vector2& GetMousePosition() { return s_MouseLocation; } - FORCEINLINE static float GetMouseDelta() + FORCE_INLINE static float GetMouseDelta() { return s_MouseDelta; } - FORCEINLINE static bool IsMouseMoving() + FORCE_INLINE static bool IsMouseMoving() { return s_IsMouseMoveing; } diff --git a/Engine/Monkey/GenericPlatform/Linux/LinuxPlatformTime.h b/Engine/Monkey/GenericPlatform/Linux/LinuxPlatformTime.h index ea9f86ce..8474d735 100644 --- a/Engine/Monkey/GenericPlatform/Linux/LinuxPlatformTime.h +++ b/Engine/Monkey/GenericPlatform/Linux/LinuxPlatformTime.h @@ -10,7 +10,7 @@ class LinuxPlatformTime static double InitTiming(); - static FORCEINLINE double Seconds() + static FORCE_INLINE double Seconds() { struct timeval tv; gettimeofday(&tv, 0); diff --git a/Engine/Monkey/GenericPlatform/Mac/MacPlatformTime.h b/Engine/Monkey/GenericPlatform/Mac/MacPlatformTime.h index 6b4122f6..870a287a 100644 --- a/Engine/Monkey/GenericPlatform/Mac/MacPlatformTime.h +++ b/Engine/Monkey/GenericPlatform/Mac/MacPlatformTime.h @@ -10,7 +10,7 @@ class MacPlatformTime static double InitTiming(); - static FORCEINLINE double Seconds() + static FORCE_INLINE double Seconds() { struct timeval tv; gettimeofday(&tv, 0); diff --git a/Engine/Monkey/GenericPlatform/Windows/WindowsPlatformTime.h b/Engine/Monkey/GenericPlatform/Windows/WindowsPlatformTime.h index be3a6efd..5a905136 100644 --- a/Engine/Monkey/GenericPlatform/Windows/WindowsPlatformTime.h +++ b/Engine/Monkey/GenericPlatform/Windows/WindowsPlatformTime.h @@ -10,14 +10,14 @@ class WindowsPlatformTime static double InitTiming(); - static FORCEINLINE double Seconds() + static FORCE_INLINE double Seconds() { LARGE_INTEGER cycles; QueryPerformanceCounter(&cycles); return cycles.QuadPart * GetSecondsPerCycle() + 16777216.0; } - static FORCEINLINE double GetSecondsPerCycle() + static FORCE_INLINE double GetSecondsPerCycle() { return s_SecondsPerCycle; } diff --git a/Engine/Monkey/HAL/ClangPlatformAtomics.h b/Engine/Monkey/HAL/ClangPlatformAtomics.h index 61fa70f6..e92e62a2 100644 --- a/Engine/Monkey/HAL/ClangPlatformAtomics.h +++ b/Engine/Monkey/HAL/ClangPlatformAtomics.h @@ -5,208 +5,208 @@ struct ClangPlatformAtomics : public GenericPlatformAtomics { - static FORCEINLINE int8 InterlockedIncrement(volatile int8* Value) + static FORCE_INLINE int8 InterlockedIncrement(volatile int8* Value) { return __sync_fetch_and_add(Value, 1) + 1; } - static FORCEINLINE int16 InterlockedIncrement(volatile int16* Value) + static FORCE_INLINE int16 InterlockedIncrement(volatile int16* Value) { return __sync_fetch_and_add(Value, 1) + 1; } - static FORCEINLINE int32 InterlockedIncrement(volatile int32* Value) + static FORCE_INLINE int32 InterlockedIncrement(volatile int32* Value) { return __sync_fetch_and_add(Value, 1) + 1; } - static FORCEINLINE int64 InterlockedIncrement(volatile int64* Value) + static FORCE_INLINE int64 InterlockedIncrement(volatile int64* Value) { return __sync_fetch_and_add(Value, 1) + 1; } - static FORCEINLINE int8 InterlockedDecrement(volatile int8* Value) + static FORCE_INLINE int8 InterlockedDecrement(volatile int8* Value) { return __sync_fetch_and_sub(Value, 1) - 1; } - static FORCEINLINE int16 InterlockedDecrement(volatile int16* Value) + static FORCE_INLINE int16 InterlockedDecrement(volatile int16* Value) { return __sync_fetch_and_sub(Value, 1) - 1; } - static FORCEINLINE int32 InterlockedDecrement(volatile int32* Value) + static FORCE_INLINE int32 InterlockedDecrement(volatile int32* Value) { return __sync_fetch_and_sub(Value, 1) - 1; } - static FORCEINLINE int64 InterlockedDecrement(volatile int64* Value) + static FORCE_INLINE int64 InterlockedDecrement(volatile int64* Value) { return __sync_fetch_and_sub(Value, 1) - 1; } - static FORCEINLINE int8 InterlockedAdd(volatile int8* Value, int8 Amount) + static FORCE_INLINE int8 InterlockedAdd(volatile int8* Value, int8 Amount) { return __sync_fetch_and_add(Value, Amount); } - static FORCEINLINE int16 InterlockedAdd(volatile int16* Value, int16 Amount) + static FORCE_INLINE int16 InterlockedAdd(volatile int16* Value, int16 Amount) { return __sync_fetch_and_add(Value, Amount); } - static FORCEINLINE int32 InterlockedAdd(volatile int32* Value, int32 Amount) + static FORCE_INLINE int32 InterlockedAdd(volatile int32* Value, int32 Amount) { return __sync_fetch_and_add(Value, Amount); } - static FORCEINLINE int64 InterlockedAdd(volatile int64* Value, int64 Amount) + static FORCE_INLINE int64 InterlockedAdd(volatile int64* Value, int64 Amount) { return __sync_fetch_and_add(Value, Amount); } - static FORCEINLINE int8 InterlockedExchange(volatile int8* Value, int8 Exchange) + static FORCE_INLINE int8 InterlockedExchange(volatile int8* Value, int8 Exchange) { return __sync_lock_test_and_set(Value, Exchange); } - static FORCEINLINE int16 InterlockedExchange(volatile int16* Value, int16 Exchange) + static FORCE_INLINE int16 InterlockedExchange(volatile int16* Value, int16 Exchange) { return __sync_lock_test_and_set(Value, Exchange); } - static FORCEINLINE int32 InterlockedExchange(volatile int32* Value, int32 Exchange) + static FORCE_INLINE int32 InterlockedExchange(volatile int32* Value, int32 Exchange) { return __sync_lock_test_and_set(Value, Exchange); } - static FORCEINLINE int64 InterlockedExchange(volatile int64* Value, int64 Exchange) + static FORCE_INLINE int64 InterlockedExchange(volatile int64* Value, int64 Exchange) { return __sync_lock_test_and_set(Value, Exchange); } - static FORCEINLINE void* InterlockedExchangePtr(void** Dest, void* Exchange) + static FORCE_INLINE void* InterlockedExchangePtr(void** Dest, void* Exchange) { return __sync_lock_test_and_set(Dest, Exchange); } - static FORCEINLINE int8 InterlockedCompareExchange(volatile int8* Dest, int8 Exchange, int8 Comperand) + static FORCE_INLINE int8 InterlockedCompareExchange(volatile int8* Dest, int8 Exchange, int8 Comperand) { return __sync_val_compare_and_swap(Dest, Comperand, Exchange); } - static FORCEINLINE int16 InterlockedCompareExchange(volatile int16* Dest, int16 Exchange, int16 Comperand) + static FORCE_INLINE int16 InterlockedCompareExchange(volatile int16* Dest, int16 Exchange, int16 Comperand) { return __sync_val_compare_and_swap(Dest, Comperand, Exchange); } - static FORCEINLINE int32 InterlockedCompareExchange(volatile int32* Dest, int32 Exchange, int32 Comperand) + static FORCE_INLINE int32 InterlockedCompareExchange(volatile int32* Dest, int32 Exchange, int32 Comperand) { return __sync_val_compare_and_swap(Dest, Comperand, Exchange); } - static FORCEINLINE int64 InterlockedCompareExchange(volatile int64* Dest, int64 Exchange, int64 Comperand) + static FORCE_INLINE int64 InterlockedCompareExchange(volatile int64* Dest, int64 Exchange, int64 Comperand) { return __sync_val_compare_and_swap(Dest, Comperand, Exchange); } - static FORCEINLINE int8 AtomicRead(volatile const int8* Src) + static FORCE_INLINE int8 AtomicRead(volatile const int8* Src) { int8 Result; __atomic_load((volatile int8*)Src, &Result, __ATOMIC_SEQ_CST); return Result; } - static FORCEINLINE int16 AtomicRead(volatile const int16* Src) + static FORCE_INLINE int16 AtomicRead(volatile const int16* Src) { int16 Result; __atomic_load((volatile int16*)Src, &Result, __ATOMIC_SEQ_CST); return Result; } - static FORCEINLINE int32 AtomicRead(volatile const int32* Src) + static FORCE_INLINE int32 AtomicRead(volatile const int32* Src) { int32 Result; __atomic_load((volatile int32*)Src, &Result, __ATOMIC_SEQ_CST); return Result; } - static FORCEINLINE int64 AtomicRead(volatile const int64* Src) + static FORCE_INLINE int64 AtomicRead(volatile const int64* Src) { int64 Result; __atomic_load((volatile int64*)Src, &Result, __ATOMIC_SEQ_CST); return Result; } - static FORCEINLINE int8 AtomicRead_Relaxed(volatile const int8* Src) + static FORCE_INLINE int8 AtomicRead_Relaxed(volatile const int8* Src) { int8 Result; __atomic_load((volatile int8*)Src, &Result, __ATOMIC_RELAXED); return Result; } - static FORCEINLINE int16 AtomicRead_Relaxed(volatile const int16* Src) + static FORCE_INLINE int16 AtomicRead_Relaxed(volatile const int16* Src) { int16 Result; __atomic_load((volatile int16*)Src, &Result, __ATOMIC_RELAXED); return Result; } - static FORCEINLINE int32 AtomicRead_Relaxed(volatile const int32* Src) + static FORCE_INLINE int32 AtomicRead_Relaxed(volatile const int32* Src) { int32 Result; __atomic_load((volatile int32*)Src, &Result, __ATOMIC_RELAXED); return Result; } - static FORCEINLINE int64 AtomicRead_Relaxed(volatile const int64* Src) + static FORCE_INLINE int64 AtomicRead_Relaxed(volatile const int64* Src) { int64 Result; __atomic_load((volatile int64*)Src, &Result, __ATOMIC_RELAXED); return Result; } - static FORCEINLINE void AtomicStore(volatile int8* Src, int8 Val) + static FORCE_INLINE void AtomicStore(volatile int8* Src, int8 Val) { __atomic_store((volatile int8*)Src, &Val, __ATOMIC_SEQ_CST); } - static FORCEINLINE void AtomicStore(volatile int16* Src, int16 Val) + static FORCE_INLINE void AtomicStore(volatile int16* Src, int16 Val) { __atomic_store((volatile int16*)Src, &Val, __ATOMIC_SEQ_CST); } - static FORCEINLINE void AtomicStore(volatile int32* Src, int32 Val) + static FORCE_INLINE void AtomicStore(volatile int32* Src, int32 Val) { __atomic_store((volatile int32*)Src, &Val, __ATOMIC_SEQ_CST); } - static FORCEINLINE void AtomicStore(volatile int64* Src, int64 Val) + static FORCE_INLINE void AtomicStore(volatile int64* Src, int64 Val) { __atomic_store((volatile int64*)Src, &Val, __ATOMIC_SEQ_CST); } - static FORCEINLINE void AtomicStore_Relaxed(volatile int8* Src, int8 Val) + static FORCE_INLINE void AtomicStore_Relaxed(volatile int8* Src, int8 Val) { __atomic_store((volatile int8*)Src, &Val, __ATOMIC_RELAXED); } - static FORCEINLINE void AtomicStore_Relaxed(volatile int16* Src, int16 Val) + static FORCE_INLINE void AtomicStore_Relaxed(volatile int16* Src, int16 Val) { __atomic_store((volatile int16*)Src, &Val, __ATOMIC_RELAXED); } - static FORCEINLINE void AtomicStore_Relaxed(volatile int32* Src, int32 Val) + static FORCE_INLINE void AtomicStore_Relaxed(volatile int32* Src, int32 Val) { __atomic_store((volatile int32*)Src, &Val, __ATOMIC_RELAXED); } - static FORCEINLINE void AtomicStore_Relaxed(volatile int64* Src, int64 Val) + static FORCE_INLINE void AtomicStore_Relaxed(volatile int64* Src, int64 Val) { __atomic_store((volatile int64*)Src, &Val, __ATOMIC_RELAXED); } - static FORCEINLINE void* InterlockedCompareExchangePointer(void** Dest, void* Exchange, void* Comperand) + static FORCE_INLINE void* InterlockedCompareExchangePointer(void** Dest, void* Exchange, void* Comperand) { return __sync_val_compare_and_swap(Dest, Comperand, Exchange); } diff --git a/Engine/Monkey/HAL/Windows/WindowsPlatformAtomics.h b/Engine/Monkey/HAL/Windows/WindowsPlatformAtomics.h index 4316dcd4..5e1b8065 100644 --- a/Engine/Monkey/HAL/Windows/WindowsPlatformAtomics.h +++ b/Engine/Monkey/HAL/Windows/WindowsPlatformAtomics.h @@ -13,22 +13,22 @@ struct WindowsPlatformAtomics : public GenericPlatformAtomics static_assert(sizeof(int32) == sizeof(long) && alignof(int32) == alignof(long), "int32 must be compatible with long"); static_assert(sizeof(int64) == sizeof(long long) && alignof(int64) == alignof(long long), "int64 must be compatible with long long"); - static FORCEINLINE int8 InterlockedIncrement(volatile int8* value) + static FORCE_INLINE int8 InterlockedIncrement(volatile int8* value) { return (int8)_InterlockedExchangeAdd8((char*)value, 1) + 1; } - static FORCEINLINE int16 InterlockedIncrement(volatile int16* value) + static FORCE_INLINE int16 InterlockedIncrement(volatile int16* value) { return (int16)_InterlockedIncrement16((short*)value); } - static FORCEINLINE int32 InterlockedIncrement(volatile int32* value) + static FORCE_INLINE int32 InterlockedIncrement(volatile int32* value) { return (int32)::_InterlockedIncrement((long*)value); } - static FORCEINLINE int64 InterlockedIncrement(volatile int64* value) + static FORCE_INLINE int64 InterlockedIncrement(volatile int64* value) { #if PLATFORM_64BITS return (int64)::_InterlockedIncrement64((long long*)value); @@ -43,22 +43,22 @@ struct WindowsPlatformAtomics : public GenericPlatformAtomics #endif } - static FORCEINLINE int8 InterlockedDecrement(volatile int8* value) + static FORCE_INLINE int8 InterlockedDecrement(volatile int8* value) { return (int8)::_InterlockedExchangeAdd8((char*)value, -1) - 1; } - static FORCEINLINE int16 InterlockedDecrement(volatile int16* value) + static FORCE_INLINE int16 InterlockedDecrement(volatile int16* value) { return (int16)::_InterlockedDecrement16((short*)value); } - static FORCEINLINE int32 InterlockedDecrement(volatile int32* value) + static FORCE_INLINE int32 InterlockedDecrement(volatile int32* value) { return (int32)::_InterlockedDecrement((long*)value); } - static FORCEINLINE int64 InterlockedDecrement(volatile int64* value) + static FORCE_INLINE int64 InterlockedDecrement(volatile int64* value) { #if PLATFORM_64BITS return (int64)::_InterlockedDecrement64((long long*)value); @@ -73,22 +73,22 @@ struct WindowsPlatformAtomics : public GenericPlatformAtomics #endif } - static FORCEINLINE int8 InterlockedAdd(volatile int8* value, int8 amount) + static FORCE_INLINE int8 InterlockedAdd(volatile int8* value, int8 amount) { return (int8)::_InterlockedExchangeAdd8((char*)value, (char)amount); } - static FORCEINLINE int16 InterlockedAdd(volatile int16* value, int16 amount) + static FORCE_INLINE int16 InterlockedAdd(volatile int16* value, int16 amount) { return (int16)::_InterlockedExchangeAdd16((short*)value, (short)amount); } - static FORCEINLINE int32 InterlockedAdd(volatile int32* value, int32 amount) + static FORCE_INLINE int32 InterlockedAdd(volatile int32* value, int32 amount) { return (int32)::_InterlockedExchangeAdd((long*)value, (long)amount); } - static FORCEINLINE int64 InterlockedAdd(volatile int64* value, int64 amount) + static FORCE_INLINE int64 InterlockedAdd(volatile int64* value, int64 amount) { #if PLATFORM_64BITS return (int64)::_InterlockedExchangeAdd64((int64*)value, (int64)amount); @@ -103,22 +103,22 @@ struct WindowsPlatformAtomics : public GenericPlatformAtomics #endif } - static FORCEINLINE int8 InterlockedExchange(volatile int8* value, int8 exchange) + static FORCE_INLINE int8 InterlockedExchange(volatile int8* value, int8 exchange) { return (int8)::_InterlockedExchange8((char*)value, (char)exchange); } - static FORCEINLINE int16 InterlockedExchange(volatile int16* value, int16 exchange) + static FORCE_INLINE int16 InterlockedExchange(volatile int16* value, int16 exchange) { return (int16)::_InterlockedExchange16((short*)value, (short)exchange); } - static FORCEINLINE int32 InterlockedExchange(volatile int32* value, int32 exchange) + static FORCE_INLINE int32 InterlockedExchange(volatile int32* value, int32 exchange) { return (int32)::_InterlockedExchange((long*)value, (long)exchange); } - static FORCEINLINE int64 InterlockedExchange(volatile int64* value, int64 exchange) + static FORCE_INLINE int64 InterlockedExchange(volatile int64* value, int64 exchange) { #if PLATFORM_64BITS return (int64)::_InterlockedExchange64((long long*)value, (long long)exchange); @@ -133,7 +133,7 @@ struct WindowsPlatformAtomics : public GenericPlatformAtomics #endif } - static FORCEINLINE void* InterlockedExchangePtr(void** dest, void* exchange) + static FORCE_INLINE void* InterlockedExchangePtr(void** dest, void* exchange) { #if PLATFORM_64BITS return (void*)::_InterlockedExchange64((int64*)(dest), (int64)(exchange)); @@ -142,62 +142,62 @@ struct WindowsPlatformAtomics : public GenericPlatformAtomics #endif } - static FORCEINLINE int8 InterlockedCompareExchange(volatile int8* dest, int8 exchange, int8 comparand) + static FORCE_INLINE int8 InterlockedCompareExchange(volatile int8* dest, int8 exchange, int8 comparand) { return (int8)::_InterlockedCompareExchange8((char*)dest, (char)exchange, (char)comparand); } - static FORCEINLINE int16 InterlockedCompareExchange(volatile int16* dest, int16 exchange, int16 comparand) + static FORCE_INLINE int16 InterlockedCompareExchange(volatile int16* dest, int16 exchange, int16 comparand) { return (int16)::_InterlockedCompareExchange16((short*)dest, (short)exchange, (short)comparand); } - static FORCEINLINE int32 InterlockedCompareExchange(volatile int32* dest, int32 exchange, int32 comparand) + static FORCE_INLINE int32 InterlockedCompareExchange(volatile int32* dest, int32 exchange, int32 comparand) { return (int32)::_InterlockedCompareExchange((long*)dest, (long)exchange, (long)comparand); } - static FORCEINLINE int64 InterlockedCompareExchange(volatile int64* dest, int64 exchange, int64 comparand) + static FORCE_INLINE int64 InterlockedCompareExchange(volatile int64* dest, int64 exchange, int64 comparand) { return (int64)::_InterlockedCompareExchange64(dest, exchange, comparand); } - static FORCEINLINE int8 AtomicRead(volatile const int8* src) + static FORCE_INLINE int8 AtomicRead(volatile const int8* src) { return InterlockedCompareExchange((int8*)src, 0, 0); } - static FORCEINLINE int16 AtomicRead(volatile const int16* src) + static FORCE_INLINE int16 AtomicRead(volatile const int16* src) { return InterlockedCompareExchange((int16*)src, 0, 0); } - static FORCEINLINE int32 AtomicRead(volatile const int32* src) + static FORCE_INLINE int32 AtomicRead(volatile const int32* src) { return InterlockedCompareExchange((int32*)src, 0, 0); } - static FORCEINLINE int64 AtomicRead(volatile const int64* src) + static FORCE_INLINE int64 AtomicRead(volatile const int64* src) { return InterlockedCompareExchange((int64*)src, 0, 0); } - static FORCEINLINE int8 AtomicRead_Relaxed(volatile const int8* src) + static FORCE_INLINE int8 AtomicRead_Relaxed(volatile const int8* src) { return *src; } - static FORCEINLINE int16 AtomicRead_Relaxed(volatile const int16* src) + static FORCE_INLINE int16 AtomicRead_Relaxed(volatile const int16* src) { return *src; } - static FORCEINLINE int32 AtomicRead_Relaxed(volatile const int32* src) + static FORCE_INLINE int32 AtomicRead_Relaxed(volatile const int32* src) { return *src; } - static FORCEINLINE int64 AtomicRead_Relaxed(volatile const int64* src) + static FORCE_INLINE int64 AtomicRead_Relaxed(volatile const int64* src) { #if PLATFORM_64BITS return *src; @@ -206,42 +206,42 @@ struct WindowsPlatformAtomics : public GenericPlatformAtomics #endif } - static FORCEINLINE void AtomicStore(volatile int8* src, int8 val) + static FORCE_INLINE void AtomicStore(volatile int8* src, int8 val) { InterlockedExchange(src, val); } - static FORCEINLINE void AtomicStore(volatile int16* src, int16 val) + static FORCE_INLINE void AtomicStore(volatile int16* src, int16 val) { InterlockedExchange(src, val); } - static FORCEINLINE void AtomicStore(volatile int32* src, int32 val) + static FORCE_INLINE void AtomicStore(volatile int32* src, int32 val) { InterlockedExchange(src, val); } - static FORCEINLINE void AtomicStore(volatile int64* src, int64 val) + static FORCE_INLINE void AtomicStore(volatile int64* src, int64 val) { InterlockedExchange(src, val); } - static FORCEINLINE void AtomicStore_Relaxed(volatile int8* src, int8 val) + static FORCE_INLINE void AtomicStore_Relaxed(volatile int8* src, int8 val) { *src = val; } - static FORCEINLINE void AtomicStore_Relaxed(volatile int16* src, int16 val) + static FORCE_INLINE void AtomicStore_Relaxed(volatile int16* src, int16 val) { *src = val; } - static FORCEINLINE void AtomicStore_Relaxed(volatile int32* src, int32 val) + static FORCE_INLINE void AtomicStore_Relaxed(volatile int32* src, int32 val) { *src = val; } - static FORCEINLINE void AtomicStore_Relaxed(volatile int64* src, int64 val) + static FORCE_INLINE void AtomicStore_Relaxed(volatile int64* src, int64 val) { #if PLATFORM_64BITS *src = val; @@ -250,7 +250,7 @@ struct WindowsPlatformAtomics : public GenericPlatformAtomics #endif } - static FORCEINLINE void* InterlockedCompareExchangePointer(void** dest, void* exchange, void* comparand) + static FORCE_INLINE void* InterlockedCompareExchangePointer(void** dest, void* exchange, void* comparand) { #if PLATFORM_64BITS return (void*)::_InterlockedCompareExchange64((int64*)dest, (int64)exchange, (int64)comparand); diff --git a/Engine/Monkey/Launch/Launch.cpp b/Engine/Monkey/Launch/Launch.cpp index d4216749..36bfe4ce 100644 --- a/Engine/Monkey/Launch/Launch.cpp +++ b/Engine/Monkey/Launch/Launch.cpp @@ -74,12 +74,12 @@ void EngineLoop() double nowT = GenericPlatformTime::Seconds(); double delta = nowT - g_LastTime; - g_AppModule->Loop(g_CurrTime, delta); + g_AppModule->Loop((float)g_CurrTime, (float)delta); // reset between module and engine InputManager::Reset(); - g_GameEngine->Tick(g_CurrTime, delta); + g_GameEngine->Tick((float)g_CurrTime, (float)delta); g_LastTime = nowT; g_CurrTime = g_CurrTime + delta; diff --git a/Engine/Monkey/Math/Color.cpp b/Engine/Monkey/Math/Color.cpp index f3b77200..6912c949 100644 --- a/Engine/Monkey/Math/Color.cpp +++ b/Engine/Monkey/Math/Color.cpp @@ -25,7 +25,7 @@ const Color Color::Turquoise(26, 188, 156); const Color Color::Silver(189, 195, 199); const Color Color::Emerald(46, 204, 113); -float LinearColor::pow22OneOver255Table[256] = +double LinearColor::pow22OneOver255Table[256] = { 0, 5.07705190066176E-06, 2.33280046660989E-05, 5.69217657121931E-05, 0.000107187362341244, 0.000175123977503027, 0.000261543754548491, 0.000367136269815943, 0.000492503787191433, 0.000638182842167022, 0.000804658499513058, 0.000992374304074325, 0.0012017395224384, 0.00143313458967186, 0.00168691531678928, 0.00196341621339647, 0.00226295316070643, @@ -58,7 +58,7 @@ float LinearColor::pow22OneOver255Table[256] = 0.948964938178195, 0.957369576199527, 0.96581465350313, 0.974300202388861, 0.982826255053791, 0.99139284359294, 1 }; -float LinearColor::sRGBToLinearTable[256] = +double LinearColor::sRGBToLinearTable[256] = { 0, 0.000303526983548838, 0.000607053967097675, 0.000910580950646512, 0.00121410793419535, 0.00151763491774419, @@ -118,18 +118,18 @@ static const float OneOver255 = 1.0f / 255.0f; LinearColor::LinearColor(const Color& Color) { - r = sRGBToLinearTable[Color.r]; - g = sRGBToLinearTable[Color.g]; - b = sRGBToLinearTable[Color.b]; + r = (float)sRGBToLinearTable[Color.r]; + g = (float)sRGBToLinearTable[Color.g]; + b = (float)sRGBToLinearTable[Color.b]; a = float(Color.a) * OneOver255; } LinearColor LinearColor::FromSRGBColor(const Color& color) { LinearColor result; - result.r = sRGBToLinearTable[color.r]; - result.g = sRGBToLinearTable[color.g]; - result.b = sRGBToLinearTable[color.b]; + result.r = (float)sRGBToLinearTable[color.r]; + result.g = (float)sRGBToLinearTable[color.g]; + result.b = (float)sRGBToLinearTable[color.b]; result.a = float(color.a) * OneOver255; return result; } @@ -137,9 +137,9 @@ LinearColor LinearColor::FromSRGBColor(const Color& color) LinearColor LinearColor::FromPow22Color(const Color& color) { LinearColor result; - result.r = pow22OneOver255Table[color.r]; - result.g = pow22OneOver255Table[color.g]; - result.b = pow22OneOver255Table[color.b]; + result.r = (float)pow22OneOver255Table[color.r]; + result.g = (float)pow22OneOver255Table[color.g]; + result.b = (float)pow22OneOver255Table[color.b]; result.a = float(color.a) * OneOver255; return result; } @@ -160,7 +160,7 @@ Color LinearColor::ToRGBE() const result.r = MMath::Clamp(MMath::TruncToInt(r * scale), 0, 255); result.g = MMath::Clamp(MMath::TruncToInt(g * scale), 0, 255); result.b = MMath::Clamp(MMath::TruncToInt(b * scale), 0, 255); - result.a = MMath::Clamp(MMath::TruncToInt(exponent), -128, 127) + 128; + result.a = MMath::Clamp(MMath::TruncToInt((float)exponent), -128, 127) + 128; } return result; @@ -224,7 +224,7 @@ LinearColor Color::FromRGBE() const } else { - const float scale = ldexp(1 / 255.0, a - 128); + const float scale = (float)ldexp(1 / 255.0, a - 128); return LinearColor(r * scale, g * scale, b * scale, 1.0f); } } diff --git a/Engine/Monkey/Math/Color.h b/Engine/Monkey/Math/Color.h index f4e6397b..a8c06938 100644 --- a/Engine/Monkey/Math/Color.h +++ b/Engine/Monkey/Math/Color.h @@ -33,8 +33,8 @@ struct LinearColor static const LinearColor Blue; static const LinearColor Yellow; - static float pow22OneOver255Table[256]; - static float sRGBToLinearTable[256]; + static double pow22OneOver255Table[256]; + static double sRGBToLinearTable[256]; public: @@ -58,31 +58,31 @@ struct LinearColor } - FORCEINLINE Color ToRGBE() const; + FORCE_INLINE Color ToRGBE() const; - FORCEINLINE LinearColor LinearRGBToHSV() const; + FORCE_INLINE LinearColor LinearRGBToHSV() const; - FORCEINLINE LinearColor HSVToLinearRGB() const; + FORCE_INLINE LinearColor HSVToLinearRGB() const; - FORCEINLINE Color Quantize() const; + FORCE_INLINE Color Quantize() const; - FORCEINLINE Color QuantizeRound() const; + FORCE_INLINE Color QuantizeRound() const; - FORCEINLINE Color ToFColor(const bool sRGB) const; + FORCE_INLINE Color ToFColor(const bool sRGB) const; - FORCEINLINE LinearColor Desaturate(float desaturation) const; + FORCE_INLINE LinearColor Desaturate(float desaturation) const; - FORCEINLINE float& Component(int32 index) + FORCE_INLINE float& Component(int32 index) { return (&r)[index]; } - FORCEINLINE const float& Component(int32 index) const + FORCE_INLINE const float& Component(int32 index) const { return (&r)[index]; } - FORCEINLINE LinearColor operator+(const LinearColor& rhs) const + FORCE_INLINE LinearColor operator+(const LinearColor& rhs) const { return LinearColor( this->r + rhs.r, @@ -92,7 +92,7 @@ struct LinearColor ); } - FORCEINLINE LinearColor& operator+=(const LinearColor& rhs) + FORCE_INLINE LinearColor& operator+=(const LinearColor& rhs) { r += rhs.r; g += rhs.g; @@ -102,7 +102,7 @@ struct LinearColor return *this; } - FORCEINLINE LinearColor operator-(const LinearColor& rhs) const + FORCE_INLINE LinearColor operator-(const LinearColor& rhs) const { return LinearColor( this->r - rhs.r, @@ -112,7 +112,7 @@ struct LinearColor ); } - FORCEINLINE LinearColor& operator-=(const LinearColor& rhs) + FORCE_INLINE LinearColor& operator-=(const LinearColor& rhs) { r -= rhs.r; g -= rhs.g; @@ -122,7 +122,7 @@ struct LinearColor return *this; } - FORCEINLINE LinearColor operator*(const LinearColor& rhs) const + FORCE_INLINE LinearColor operator*(const LinearColor& rhs) const { return LinearColor( this->r * rhs.r, @@ -132,7 +132,7 @@ struct LinearColor ); } - FORCEINLINE LinearColor& operator*=(const LinearColor& rhs) + FORCE_INLINE LinearColor& operator*=(const LinearColor& rhs) { r *= rhs.r; g *= rhs.g; @@ -142,7 +142,7 @@ struct LinearColor return *this; } - FORCEINLINE LinearColor operator*(float scalar) const + FORCE_INLINE LinearColor operator*(float scalar) const { return LinearColor( this->r * scalar, @@ -152,7 +152,7 @@ struct LinearColor ); } - FORCEINLINE LinearColor& operator*=(float scalar) + FORCE_INLINE LinearColor& operator*=(float scalar) { r *= scalar; g *= scalar; @@ -162,7 +162,7 @@ struct LinearColor return *this; } - FORCEINLINE LinearColor operator/(const LinearColor& rhs) const + FORCE_INLINE LinearColor operator/(const LinearColor& rhs) const { return LinearColor( this->r / rhs.r, @@ -172,7 +172,7 @@ struct LinearColor ); } - FORCEINLINE LinearColor& operator/=(const LinearColor& rhs) + FORCE_INLINE LinearColor& operator/=(const LinearColor& rhs) { r /= rhs.r; g /= rhs.g; @@ -182,7 +182,7 @@ struct LinearColor return *this; } - FORCEINLINE LinearColor operator/(float scalar) const + FORCE_INLINE LinearColor operator/(float scalar) const { const float invScalar = 1.0f / scalar; @@ -194,7 +194,7 @@ struct LinearColor ); } - FORCEINLINE LinearColor& operator/=(float scalar) + FORCE_INLINE LinearColor& operator/=(float scalar) { const float invScalar = 1.0f / scalar; @@ -206,7 +206,7 @@ struct LinearColor return *this; } - FORCEINLINE LinearColor GetClamped(float inMin = 0.0f, float inMax = 1.0f) const + FORCE_INLINE LinearColor GetClamped(float inMin = 0.0f, float inMax = 1.0f) const { LinearColor ret; @@ -218,59 +218,59 @@ struct LinearColor return ret; } - FORCEINLINE bool operator==(const LinearColor& other) const + FORCE_INLINE bool operator==(const LinearColor& other) const { return this->r == other.r && this->g == other.g && this->b == other.b && this->a == other.a; } - FORCEINLINE bool operator!=(const LinearColor& Other) const + FORCE_INLINE bool operator!=(const LinearColor& Other) const { return this->r != Other.r || this->g != Other.g || this->b != Other.b || this->a != Other.a; } - FORCEINLINE bool Equals(const LinearColor& other, float tolerance = KINDA_SMALL_NUMBER) const + FORCE_INLINE bool Equals(const LinearColor& other, float tolerance = KINDA_SMALL_NUMBER) const { return MMath::Abs(this->r - other.r) < tolerance && MMath::Abs(this->g - other.g) < tolerance && MMath::Abs(this->b - other.b) < tolerance && MMath::Abs(this->a - other.a) < tolerance; } - FORCEINLINE LinearColor CopyWithNewOpacity(float newOpacicty) const + FORCE_INLINE LinearColor CopyWithNewOpacity(float newOpacicty) const { LinearColor newCopy = *this; newCopy.a = newOpacicty; return newCopy; } - FORCEINLINE float ComputeLuminance() const + FORCE_INLINE float ComputeLuminance() const { return r * 0.3f + g * 0.59f + b * 0.11f; } - FORCEINLINE float GetMax() const + FORCE_INLINE float GetMax() const { return MMath::Max(MMath::Max(MMath::Max(r, g), b), a); } - FORCEINLINE bool IsAlmostBlack() const + FORCE_INLINE bool IsAlmostBlack() const { return MMath::Square(r) < DELTA && MMath::Square(g) < DELTA && MMath::Square(b) < DELTA; } - FORCEINLINE float GetMin() const + FORCE_INLINE float GetMin() const { return MMath::Min(MMath::Min(MMath::Min(r, g), b), a); } - FORCEINLINE float GetLuminance() const + FORCE_INLINE float GetLuminance() const { return r * 0.3f + g * 0.59f + b * 0.11f; } - FORCEINLINE std::string ToString() const + FORCE_INLINE std::string ToString() const { return StringUtils::Printf("(r=%f,g=%f,b=%f,a=%f)", r, g, b, a); } - static FORCEINLINE float Dist(const LinearColor &v1, const LinearColor &v2) + static FORCE_INLINE float Dist(const LinearColor &v1, const LinearColor &v2) { return MMath::Sqrt(MMath::Square(v2.r - v1.r) + MMath::Square(v2.g - v1.g) + MMath::Square(v2.b - v1.b) + MMath::Square(v2.a - v1.a)); } @@ -333,27 +333,27 @@ struct Color DWColor() = inColor; } - FORCEINLINE uint32& DWColor() + FORCE_INLINE uint32& DWColor() { return *((uint32*)this); } - FORCEINLINE const uint32& DWColor() const + FORCE_INLINE const uint32& DWColor() const { return *((uint32*)this); } - FORCEINLINE bool operator==(const Color &C) const + FORCE_INLINE bool operator==(const Color &C) const { return DWColor() == C.DWColor(); } - FORCEINLINE bool operator!=(const Color& C) const + FORCE_INLINE bool operator!=(const Color& C) const { return DWColor() != C.DWColor(); } - FORCEINLINE void operator+=(const Color& C) + FORCE_INLINE void operator+=(const Color& C) { r = (uint8)MMath::Min((int32)r + (int32)C.r, 255); g = (uint8)MMath::Min((int32)g + (int32)C.g, 255); @@ -361,42 +361,42 @@ struct Color a = (uint8)MMath::Min((int32)a + (int32)C.a, 255); } - FORCEINLINE Color WithAlpha(uint8 alpha) const + FORCE_INLINE Color WithAlpha(uint8 alpha) const { return Color(r, g, b, alpha); } - FORCEINLINE LinearColor ReinterpretAsLinear() const + FORCE_INLINE LinearColor ReinterpretAsLinear() const { return LinearColor(r / 255.f, g / 255.f, b / 255.f, a / 255.f); } - FORCEINLINE std::string ToHex() const + FORCE_INLINE std::string ToHex() const { return StringUtils::Printf("%02X%02X%02X%02X", r, g, b, a); } - FORCEINLINE std::string ToString() const + FORCE_INLINE std::string ToString() const { return StringUtils::Printf("(r=%i,g=%i,b=%i,a=%i)", r, g, b, a); } - FORCEINLINE uint32 ToPackedARGB() const + FORCE_INLINE uint32 ToPackedARGB() const { return (a << 24) | (r << 16) | (g << 8) | (b << 0); } - FORCEINLINE uint32 ToPackedABGR() const + FORCE_INLINE uint32 ToPackedABGR() const { return (a << 24) | (b << 16) | (g << 8) | (r << 0); } - FORCEINLINE uint32 ToPackedRGBA() const + FORCE_INLINE uint32 ToPackedRGBA() const { return (r << 24) | (g << 16) | (b << 8) | (a << 0); } - FORCEINLINE uint32 ToPackedBGRA() const + FORCE_INLINE uint32 ToPackedBGRA() const { return (b << 24) | (g << 16) | (r << 8) | (a << 0); } @@ -413,7 +413,7 @@ struct Color explicit Color(const LinearColor& linearColor); }; -FORCEINLINE LinearColor operator*(float scalar, const LinearColor& Color) +FORCE_INLINE LinearColor operator*(float scalar, const LinearColor& Color) { return Color.operator*(scalar); } \ No newline at end of file diff --git a/Engine/Monkey/Math/GenericPlatformMath.h b/Engine/Monkey/Math/GenericPlatformMath.h index f658d178..e3ca6161 100644 --- a/Engine/Monkey/Math/GenericPlatformMath.h +++ b/Engine/Monkey/Math/GenericPlatformMath.h @@ -9,107 +9,107 @@ struct GenericPlatformMath { - static CONSTEXPR FORCEINLINE float TruncToFloat(float f) + static CONSTEXPR FORCE_INLINE float TruncToFloat(float f) { return (float)TruncToInt(f); } - static CONSTEXPR FORCEINLINE int32 TruncToInt(float f) + static CONSTEXPR FORCE_INLINE int32 TruncToInt(float f) { return (int32)(f); } - static FORCEINLINE int32 FloorToInt(float f) + static FORCE_INLINE int32 FloorToInt(float f) { return TruncToInt(floorf(f)); } - static FORCEINLINE float FloorToFloat(float f) + static FORCE_INLINE float FloorToFloat(float f) { return floorf(f); } - static FORCEINLINE double FloorToDouble(double f) + static FORCE_INLINE double FloorToDouble(double f) { return floor(f); } - static FORCEINLINE int32 RoundToInt(float f) + static FORCE_INLINE int32 RoundToInt(float f) { return FloorToInt(f + 0.5f); } - static FORCEINLINE float RoundToFloat(float f) + static FORCE_INLINE float RoundToFloat(float f) { return FloorToFloat(f + 0.5f); } - static FORCEINLINE double RoundToDouble(double f) + static FORCE_INLINE double RoundToDouble(double f) { return FloorToDouble(f + 0.5); } - static FORCEINLINE int32 CeilToInt(float f) + static FORCE_INLINE int32 CeilToInt(float f) { return TruncToInt(ceilf(f)); } - static FORCEINLINE float CeilToFloat(float f) + static FORCE_INLINE float CeilToFloat(float f) { return ceilf(f); } - static FORCEINLINE double CeilToDouble(double f) + static FORCE_INLINE double CeilToDouble(double f) { return ceil(f); } - static FORCEINLINE float Fractional(float value) + static FORCE_INLINE float Fractional(float value) { return value - TruncToFloat(value); } - static FORCEINLINE float Frac(float value) + static FORCE_INLINE float Frac(float value) { return value - FloorToFloat(value); } - static FORCEINLINE float Modf(const float value, float* outIntPart) + static FORCE_INLINE float Modf(const float value, float* outIntPart) { return modff(value, outIntPart); } - static FORCEINLINE double Modf(const double value, double* outIntPart) + static FORCE_INLINE double Modf(const double value, double* outIntPart) { return modf(value, outIntPart); } - static FORCEINLINE float Exp(float value) + static FORCE_INLINE float Exp(float value) { return expf(value); } - static FORCEINLINE float Exp2(float value) + static FORCE_INLINE float Exp2(float value) { return powf(2.f, value); } - static FORCEINLINE float Loge(float value) + static FORCE_INLINE float Loge(float value) { return logf(value); } - static FORCEINLINE float LogX(float base, float value) + static FORCE_INLINE float LogX(float base, float value) { return Loge(value) / Loge(base); } - static FORCEINLINE float Log2(float value) + static FORCE_INLINE float Log2(float value) { return Loge(value) * 1.4426950f; } - static FORCEINLINE float Fmod(float x, float y) + static FORCE_INLINE float Fmod(float x, float y) { if (fabsf(y) <= 1.e-8f) { return 0.f; @@ -126,97 +126,97 @@ struct GenericPlatformMath return result; } - static FORCEINLINE float Sin(float value) + static FORCE_INLINE float Sin(float value) { return sinf(value); } - static FORCEINLINE float Asin(float value) + static FORCE_INLINE float Asin(float value) { return asinf((value < -1.f) ? -1.f : ((value < 1.f) ? value : 1.f)); } - static FORCEINLINE float Sinh(float value) + static FORCE_INLINE float Sinh(float value) { return sinhf(value); } - static FORCEINLINE float Cos(float value) + static FORCE_INLINE float Cos(float value) { return cosf(value); } - static FORCEINLINE float Acos(float value) + static FORCE_INLINE float Acos(float value) { return acosf((value < -1.f) ? -1.f : ((value < 1.f) ? value : 1.f)); } - static FORCEINLINE float Tan(float value) + static FORCE_INLINE float Tan(float value) { return tanf(value); } - static FORCEINLINE float Atan(float value) + static FORCE_INLINE float Atan(float value) { return atanf(value); } - static FORCEINLINE float Sqrt(float value) + static FORCE_INLINE float Sqrt(float value) { return sqrtf(value); } - static FORCEINLINE float Pow(float a, float b) + static FORCE_INLINE float Pow(float a, float b) { return powf(a, b); } - static FORCEINLINE float InvSqrt(float f) + static FORCE_INLINE float InvSqrt(float f) { return 1.0f / sqrtf(f); } - static FORCEINLINE float InvSqrtEst(float f) + static FORCE_INLINE float InvSqrtEst(float f) { return InvSqrt(f); } - static FORCEINLINE bool IsNaN(float f) + static FORCE_INLINE bool IsNaN(float f) { return ((*(uint32*)&f) & 0x7FFFFFFF) > 0x7F800000; } - static FORCEINLINE bool IsFinite(float f) + static FORCE_INLINE bool IsFinite(float f) { return ((*(uint32*)&f) & 0x7F800000) != 0x7F800000; } - static FORCEINLINE bool IsNegativeFloat(const float& f) + static FORCE_INLINE bool IsNegativeFloat(const float& f) { return ((*(uint32*)&f) >= (uint32)0x80000000); } - static FORCEINLINE bool IsNegativeDouble(const double& f) + static FORCE_INLINE bool IsNegativeDouble(const double& f) { return ((*(uint64*)&f) >= (uint64)0x8000000000000000); } - static FORCEINLINE int32 Rand() + static FORCE_INLINE int32 Rand() { return rand(); } - static FORCEINLINE void RandInit(int32 seed) + static FORCE_INLINE void RandInit(int32 seed) { srand(seed); } - static FORCEINLINE float FRand() + static FORCE_INLINE float FRand() { return Rand() / (float)RAND_MAX; } - static FORCEINLINE uint32 FloorLog2(uint32 value) + static FORCE_INLINE uint32 FloorLog2(uint32 value) { uint32 pos = 0; @@ -252,7 +252,7 @@ struct GenericPlatformMath return (value == 0) ? 0 : pos; } - static FORCEINLINE uint64 FloorLog2_64(uint64 value) + static FORCE_INLINE uint64 FloorLog2_64(uint64 value) { uint64 pos = 0; if (value >= 1ull << 32) @@ -293,7 +293,7 @@ struct GenericPlatformMath return (value == 0) ? 0 : pos; } - static FORCEINLINE uint32 CountLeadingZeros(uint32 value) + static FORCE_INLINE uint32 CountLeadingZeros(uint32 value) { if (value == 0) { return 32; @@ -301,7 +301,7 @@ struct GenericPlatformMath return 31 - FloorLog2(value); } - static FORCEINLINE uint64 CountLeadingZeros64(uint64 value) + static FORCE_INLINE uint64 CountLeadingZeros64(uint64 value) { if (value == 0) { return 64; @@ -309,7 +309,7 @@ struct GenericPlatformMath return 63 - FloorLog2_64(value); } - static FORCEINLINE uint32 CountTrailingZeros(uint32 value) + static FORCE_INLINE uint32 CountTrailingZeros(uint32 value) { if (value == 0) { return 32; @@ -326,7 +326,7 @@ struct GenericPlatformMath return result; } - static FORCEINLINE uint64 CountTrailingZeros64(uint64 value) + static FORCE_INLINE uint64 CountTrailingZeros64(uint64 value) { if (value == 0) { return 64; @@ -342,29 +342,29 @@ struct GenericPlatformMath return result; } - static FORCEINLINE uint32 CeilLogTwo(uint32 value) + static FORCE_INLINE uint32 CeilLogTwo(uint32 value) { int32 bitmask = ((int32)(CountLeadingZeros(value) << 26)) >> 31; return (32 - CountLeadingZeros(value - 1)) & (~bitmask); } - static FORCEINLINE uint64 CeilLogTwo64(uint64 value) + static FORCE_INLINE uint64 CeilLogTwo64(uint64 value) { int64 bitmask = ((int64)(CountLeadingZeros64(value) << 57)) >> 63; return (64 - CountLeadingZeros64(value - 1)) & (~bitmask); } - static FORCEINLINE uint32 RoundUpToPowerOfTwo(uint32 value) + static FORCE_INLINE uint32 RoundUpToPowerOfTwo(uint32 value) { return 1 << CeilLogTwo(value); } - static FORCEINLINE uint64 RoundUpToPowerOfTwo64(uint64 value) + static FORCE_INLINE uint64 RoundUpToPowerOfTwo64(uint64 value) { return uint64(1) << CeilLogTwo64(value); } - static FORCEINLINE uint32 MortonCode2(uint32 x) + static FORCE_INLINE uint32 MortonCode2(uint32 x) { x &= 0x0000ffff; x = (x ^ (x << 8)) & 0x00ff00ff; @@ -374,7 +374,7 @@ struct GenericPlatformMath return x; } - static FORCEINLINE uint32 ReverseMortonCode2(uint32 x) + static FORCE_INLINE uint32 ReverseMortonCode2(uint32 x) { x &= 0x55555555; x = (x ^ (x >> 1)) & 0x33333333; @@ -384,7 +384,7 @@ struct GenericPlatformMath return x; } - static FORCEINLINE uint32 MortonCode3(uint32 x) + static FORCE_INLINE uint32 MortonCode3(uint32 x) { x &= 0x000003ff; x = (x ^ (x << 16)) & 0xff0000ff; @@ -394,7 +394,7 @@ struct GenericPlatformMath return x; } - static FORCEINLINE uint32 ReverseMortonCode3(uint32 x) + static FORCE_INLINE uint32 ReverseMortonCode3(uint32 x) { x &= 0x09249249; x = (x ^ (x >> 2)) & 0x030c30c3; @@ -404,41 +404,41 @@ struct GenericPlatformMath return x; } - static CONSTEXPR FORCEINLINE float FloatSelect(float comparand, float valueGEZero, float valueLTZero) + static CONSTEXPR FORCE_INLINE float FloatSelect(float comparand, float valueGEZero, float valueLTZero) { return comparand >= 0.f ? valueGEZero : valueLTZero; } - static CONSTEXPR FORCEINLINE double FloatSelect(double comparand, double valueGEZero, double valueLTZero) + static CONSTEXPR FORCE_INLINE double FloatSelect(double comparand, double valueGEZero, double valueLTZero) { return comparand >= 0.f ? valueGEZero : valueLTZero; } template< class T > - static CONSTEXPR FORCEINLINE T Abs(const T a) + static CONSTEXPR FORCE_INLINE T Abs(const T a) { return (a >= (T)0) ? a : -a; } template< class T > - static CONSTEXPR FORCEINLINE T Sign(const T a) + static CONSTEXPR FORCE_INLINE T Sign(const T a) { return (a > (T)0) ? (T)1 : ((a < (T)0) ? (T)-1 : (T)0); } template< class T > - static CONSTEXPR FORCEINLINE T Max(const T a, const T b) + static CONSTEXPR FORCE_INLINE T Max(const T a, const T b) { return (a >= b) ? a : b; } template< class T > - static CONSTEXPR FORCEINLINE T Min(const T a, const T b) + static CONSTEXPR FORCE_INLINE T Min(const T a, const T b) { return (a <= b) ? a : b; } - static FORCEINLINE int32 CountBits(uint64 bits) + static FORCE_INLINE int32 CountBits(uint64 bits) { bits -= (bits >> 1) & 0x5555555555555555ull; bits = (bits & 0x3333333333333333ull) + ((bits >> 2) & 0x3333333333333333ull); @@ -447,7 +447,7 @@ struct GenericPlatformMath } template< class T > - static FORCEINLINE T Min(const std::vector& values, int32* minIndex = NULL) + static FORCE_INLINE T Min(const std::vector& values, int32* minIndex = NULL) { if (values.size() == 0) { @@ -477,7 +477,7 @@ struct GenericPlatformMath } template< class T > - static FORCEINLINE T Max(const std::vector& values, int32* maxIndex = NULL) + static FORCE_INLINE T Max(const std::vector& values, int32* maxIndex = NULL) { if (values.size() == 0) { @@ -516,7 +516,7 @@ struct GenericPlatformMath }; template<> -FORCEINLINE float GenericPlatformMath::Abs(const float a) +FORCE_INLINE float GenericPlatformMath::Abs(const float a) { return fabsf(a); } diff --git a/Engine/Monkey/Math/IntPoint.h b/Engine/Monkey/Math/IntPoint.h index 1ff7b862..4231afe4 100644 --- a/Engine/Monkey/Math/IntPoint.h +++ b/Engine/Monkey/Math/IntPoint.h @@ -24,227 +24,227 @@ struct IntPoint IntPoint(int32 inX, int32 inY); - FORCEINLINE const int32& operator()(int32 pointIndex) const; + FORCE_INLINE const int32& operator()(int32 pointIndex) const; - FORCEINLINE int32& operator()(int32 pointIndex); + FORCE_INLINE int32& operator()(int32 pointIndex); - FORCEINLINE int32& operator[](int32 index); + FORCE_INLINE int32& operator[](int32 index); - FORCEINLINE int32 operator[](int32 index) const; + FORCE_INLINE int32 operator[](int32 index) const; - FORCEINLINE IntPoint& operator=(const IntPoint& other); + FORCE_INLINE IntPoint& operator=(const IntPoint& other); - FORCEINLINE bool operator==(const IntPoint& other) const; + FORCE_INLINE bool operator==(const IntPoint& other) const; - FORCEINLINE bool operator!=(const IntPoint& other) const; + FORCE_INLINE bool operator!=(const IntPoint& other) const; - FORCEINLINE IntPoint& operator*=(int32 scale); + FORCE_INLINE IntPoint& operator*=(int32 scale); - FORCEINLINE IntPoint& operator/=(int32 divisor); + FORCE_INLINE IntPoint& operator/=(int32 divisor); - FORCEINLINE IntPoint& operator+=(const IntPoint& other); + FORCE_INLINE IntPoint& operator+=(const IntPoint& other); - FORCEINLINE IntPoint& operator-=(const IntPoint& other); + FORCE_INLINE IntPoint& operator-=(const IntPoint& other); - FORCEINLINE IntPoint& operator/=(const IntPoint& other); + FORCE_INLINE IntPoint& operator/=(const IntPoint& other); - FORCEINLINE IntPoint operator*(int32 scale) const; + FORCE_INLINE IntPoint operator*(int32 scale) const; - FORCEINLINE IntPoint operator/(int32 divisor) const; + FORCE_INLINE IntPoint operator/(int32 divisor) const; - FORCEINLINE IntPoint operator+(const IntPoint& other) const; + FORCE_INLINE IntPoint operator+(const IntPoint& other) const; - FORCEINLINE IntPoint operator-(const IntPoint& other) const; + FORCE_INLINE IntPoint operator-(const IntPoint& other) const; - FORCEINLINE IntPoint operator/(const IntPoint& other) const; + FORCE_INLINE IntPoint operator/(const IntPoint& other) const; - FORCEINLINE IntPoint ComponentMin(const IntPoint& other) const; + FORCE_INLINE IntPoint ComponentMin(const IntPoint& other) const; - FORCEINLINE IntPoint ComponentMax(const IntPoint& other) const; + FORCE_INLINE IntPoint ComponentMax(const IntPoint& other) const; - FORCEINLINE int32 GetMax() const; + FORCE_INLINE int32 GetMax() const; - FORCEINLINE int32 GetMin() const; + FORCE_INLINE int32 GetMin() const; - FORCEINLINE int32 Size() const; + FORCE_INLINE int32 Size() const; - FORCEINLINE int32 SizeSquared() const; + FORCE_INLINE int32 SizeSquared() const; - FORCEINLINE std::string ToString() const; + FORCE_INLINE std::string ToString() const; - static FORCEINLINE int32 Num(); + static FORCE_INLINE int32 Num(); - static FORCEINLINE IntPoint DivideAndRoundUp(IntPoint lhs, int32 divisor); + static FORCE_INLINE IntPoint DivideAndRoundUp(IntPoint lhs, int32 divisor); - static FORCEINLINE IntPoint DivideAndRoundUp(IntPoint lhs, IntPoint divisor); + static FORCE_INLINE IntPoint DivideAndRoundUp(IntPoint lhs, IntPoint divisor); - static FORCEINLINE IntPoint DivideAndRoundDown(IntPoint lhs, int32 divisor); + static FORCE_INLINE IntPoint DivideAndRoundDown(IntPoint lhs, int32 divisor); }; -FORCEINLINE IntPoint::IntPoint() +FORCE_INLINE IntPoint::IntPoint() : x(0) , y(0) { } -FORCEINLINE IntPoint::IntPoint(int32 inX, int32 inY) +FORCE_INLINE IntPoint::IntPoint(int32 inX, int32 inY) : x(inX) , y(inY) { } -FORCEINLINE const int32& IntPoint::operator()(int32 pointIndex) const +FORCE_INLINE const int32& IntPoint::operator()(int32 pointIndex) const { return (&x)[pointIndex]; } -FORCEINLINE int32& IntPoint::operator()(int32 pointIndex) +FORCE_INLINE int32& IntPoint::operator()(int32 pointIndex) { return (&x)[pointIndex]; } -FORCEINLINE int32 IntPoint::Num() +FORCE_INLINE int32 IntPoint::Num() { return 2; } -FORCEINLINE bool IntPoint::operator==(const IntPoint& other) const +FORCE_INLINE bool IntPoint::operator==(const IntPoint& other) const { return x == other.x && y == other.y; } -FORCEINLINE bool IntPoint::operator!=(const IntPoint& other) const +FORCE_INLINE bool IntPoint::operator!=(const IntPoint& other) const { return x != other.x || y != other.y; } -FORCEINLINE IntPoint& IntPoint::operator*=(int32 scale) +FORCE_INLINE IntPoint& IntPoint::operator*=(int32 scale) { x *= scale; y *= scale; return *this; } -FORCEINLINE IntPoint& IntPoint::operator/=(int32 divisor) +FORCE_INLINE IntPoint& IntPoint::operator/=(int32 divisor) { x /= divisor; y /= divisor; return *this; } -FORCEINLINE IntPoint& IntPoint::operator+=(const IntPoint& other) +FORCE_INLINE IntPoint& IntPoint::operator+=(const IntPoint& other) { x += other.x; y += other.y; return *this; } -FORCEINLINE IntPoint& IntPoint::operator-=(const IntPoint& other) +FORCE_INLINE IntPoint& IntPoint::operator-=(const IntPoint& other) { x -= other.x; y -= other.y; return *this; } -FORCEINLINE IntPoint& IntPoint::operator/=(const IntPoint& other) +FORCE_INLINE IntPoint& IntPoint::operator/=(const IntPoint& other) { x /= other.x; y /= other.y; return *this; } -FORCEINLINE IntPoint& IntPoint::operator=(const IntPoint& other) +FORCE_INLINE IntPoint& IntPoint::operator=(const IntPoint& other) { x = other.x; y = other.y; return *this; } -FORCEINLINE IntPoint IntPoint::operator*(int32 scale) const +FORCE_INLINE IntPoint IntPoint::operator*(int32 scale) const { return IntPoint(*this) *= scale; } -FORCEINLINE IntPoint IntPoint::operator/(int32 divisor) const +FORCE_INLINE IntPoint IntPoint::operator/(int32 divisor) const { return IntPoint(*this) /= divisor; } -FORCEINLINE int32& IntPoint::operator[](int32 index) +FORCE_INLINE int32& IntPoint::operator[](int32 index) { return ((index == 0) ? x : y); } -FORCEINLINE int32 IntPoint::operator[](int32 index) const +FORCE_INLINE int32 IntPoint::operator[](int32 index) const { return ((index == 0) ? x : y); } -FORCEINLINE IntPoint IntPoint::ComponentMin(const IntPoint& other) const +FORCE_INLINE IntPoint IntPoint::ComponentMin(const IntPoint& other) const { return IntPoint(std::min(x, other.x), std::min(y, other.y)); } -FORCEINLINE IntPoint IntPoint::ComponentMax(const IntPoint& other) const +FORCE_INLINE IntPoint IntPoint::ComponentMax(const IntPoint& other) const { return IntPoint(std::max(x, other.x), std::max(y, other.y)); } -FORCEINLINE IntPoint IntPoint::DivideAndRoundUp(IntPoint lhs, int32 divisor) +FORCE_INLINE IntPoint IntPoint::DivideAndRoundUp(IntPoint lhs, int32 divisor) { return IntPoint(MMath::DivideAndRoundUp(lhs.x, divisor), MMath::DivideAndRoundUp(lhs.y, divisor)); } -FORCEINLINE IntPoint IntPoint::DivideAndRoundUp(IntPoint lhs, IntPoint divisor) +FORCE_INLINE IntPoint IntPoint::DivideAndRoundUp(IntPoint lhs, IntPoint divisor) { return IntPoint(MMath::DivideAndRoundUp(lhs.x, divisor.x), MMath::DivideAndRoundUp(lhs.y, divisor.y)); } -FORCEINLINE IntPoint IntPoint::DivideAndRoundDown(IntPoint lhs, int32 divisor) +FORCE_INLINE IntPoint IntPoint::DivideAndRoundDown(IntPoint lhs, int32 divisor) { return IntPoint(MMath::DivideAndRoundDown(lhs.x, divisor), MMath::DivideAndRoundDown(lhs.y, divisor)); } -FORCEINLINE IntPoint IntPoint::operator+(const IntPoint& other) const +FORCE_INLINE IntPoint IntPoint::operator+(const IntPoint& other) const { return IntPoint(*this) += other; } -FORCEINLINE IntPoint IntPoint::operator-(const IntPoint& other) const +FORCE_INLINE IntPoint IntPoint::operator-(const IntPoint& other) const { return IntPoint(*this) -= other; } -FORCEINLINE IntPoint IntPoint::operator/(const IntPoint& other) const +FORCE_INLINE IntPoint IntPoint::operator/(const IntPoint& other) const { return IntPoint(*this) /= other; } -FORCEINLINE int32 IntPoint::GetMax() const +FORCE_INLINE int32 IntPoint::GetMax() const { return std::max(x, y); } -FORCEINLINE int32 IntPoint::GetMin() const +FORCE_INLINE int32 IntPoint::GetMin() const { return std::min(x, y); } -FORCEINLINE int32 IntPoint::Size() const +FORCE_INLINE int32 IntPoint::Size() const { int64 x64 = (int64)x; int64 y64 = (int64)x; return int32(std::sqrt(float(x64 * x64 + y64 * y64))); } -FORCEINLINE int32 IntPoint::SizeSquared() const +FORCE_INLINE int32 IntPoint::SizeSquared() const { return x * x + y * y; } -FORCEINLINE std::string IntPoint::ToString() const +FORCE_INLINE std::string IntPoint::ToString() const { return StringUtils::Printf("X=%d Y=%d", x, y); } diff --git a/Engine/Monkey/Math/IntVector.h b/Engine/Monkey/Math/IntVector.h index 3abb9381..6d76a117 100644 --- a/Engine/Monkey/Math/IntVector.h +++ b/Engine/Monkey/Math/IntVector.h @@ -29,52 +29,52 @@ struct IntVector explicit IntVector(Vector3 v); - FORCEINLINE const int32& operator()(int32 index) const; + FORCE_INLINE const int32& operator()(int32 index) const; - FORCEINLINE int32& operator()(int32 index); + FORCE_INLINE int32& operator()(int32 index); - FORCEINLINE const int32& operator[](int32 index) const; + FORCE_INLINE const int32& operator[](int32 index) const; - FORCEINLINE int32& operator[](int32 index); + FORCE_INLINE int32& operator[](int32 index); - FORCEINLINE bool operator==(const IntVector& other) const; + FORCE_INLINE bool operator==(const IntVector& other) const; - FORCEINLINE bool operator!=(const IntVector& other) const; + FORCE_INLINE bool operator!=(const IntVector& other) const; - FORCEINLINE IntVector& operator*=(int32 scale); + FORCE_INLINE IntVector& operator*=(int32 scale); - FORCEINLINE IntVector& operator/=(int32 divisor); + FORCE_INLINE IntVector& operator/=(int32 divisor); - FORCEINLINE IntVector& operator+=(const IntVector& other); + FORCE_INLINE IntVector& operator+=(const IntVector& other); - FORCEINLINE IntVector& operator-=(const IntVector& other); + FORCE_INLINE IntVector& operator-=(const IntVector& other); - FORCEINLINE IntVector& operator=(const IntVector& other); + FORCE_INLINE IntVector& operator=(const IntVector& other); - FORCEINLINE IntVector operator*(int32 scale) const; + FORCE_INLINE IntVector operator*(int32 scale) const; - FORCEINLINE IntVector operator/(int32 divisor) const; + FORCE_INLINE IntVector operator/(int32 divisor) const; - FORCEINLINE IntVector operator+(const IntVector& other) const; + FORCE_INLINE IntVector operator+(const IntVector& other) const; - FORCEINLINE IntVector operator-(const IntVector& other) const; + FORCE_INLINE IntVector operator-(const IntVector& other) const; - FORCEINLINE bool IsZero() const; + FORCE_INLINE bool IsZero() const; - FORCEINLINE int32 GetMax() const; + FORCE_INLINE int32 GetMax() const; - FORCEINLINE int32 GetMin() const; + FORCE_INLINE int32 GetMin() const; - FORCEINLINE int32 Size() const; + FORCE_INLINE int32 Size() const; - FORCEINLINE std::string ToString() const; + FORCE_INLINE std::string ToString() const; - FORCEINLINE static IntVector DivideAndRoundUp(IntVector lhs, int32 divisor); + FORCE_INLINE static IntVector DivideAndRoundUp(IntVector lhs, int32 divisor); - FORCEINLINE static int32 Num(); + FORCE_INLINE static int32 Num(); }; -FORCEINLINE IntVector::IntVector() +FORCE_INLINE IntVector::IntVector() : x(0) , y(0) , z(0) @@ -82,7 +82,7 @@ FORCEINLINE IntVector::IntVector() } -FORCEINLINE IntVector::IntVector(int32 inX, int32 inY, int32 inZ) +FORCE_INLINE IntVector::IntVector(int32 inX, int32 inY, int32 inZ) : x(inX) , y(inY) , z(inZ) @@ -90,7 +90,7 @@ FORCEINLINE IntVector::IntVector(int32 inX, int32 inY, int32 inZ) } -FORCEINLINE IntVector::IntVector(int32 inValue) +FORCE_INLINE IntVector::IntVector(int32 inValue) : x(inValue) , y(inValue) , z(inValue) @@ -98,37 +98,37 @@ FORCEINLINE IntVector::IntVector(int32 inValue) } -FORCEINLINE const int32& IntVector::operator()(int32 index) const +FORCE_INLINE const int32& IntVector::operator()(int32 index) const { return (&x)[index]; } -FORCEINLINE int32& IntVector::operator()(int32 index) +FORCE_INLINE int32& IntVector::operator()(int32 index) { return (&x)[index]; } -FORCEINLINE const int32& IntVector::operator[](int32 index) const +FORCE_INLINE const int32& IntVector::operator[](int32 index) const { return (&x)[index]; } -FORCEINLINE int32& IntVector::operator[](int32 index) +FORCE_INLINE int32& IntVector::operator[](int32 index) { return (&x)[index]; } -FORCEINLINE bool IntVector::operator==(const IntVector& other) const +FORCE_INLINE bool IntVector::operator==(const IntVector& other) const { return x == other.x && y == other.y && z == other.z; } -FORCEINLINE bool IntVector::operator!=(const IntVector& other) const +FORCE_INLINE bool IntVector::operator!=(const IntVector& other) const { return x != other.x || y != other.y || z != other.z; } -FORCEINLINE IntVector& IntVector::operator*=(int32 scale) +FORCE_INLINE IntVector& IntVector::operator*=(int32 scale) { x *= scale; y *= scale; @@ -136,7 +136,7 @@ FORCEINLINE IntVector& IntVector::operator*=(int32 scale) return *this; } -FORCEINLINE IntVector& IntVector::operator/=(int32 divisor) +FORCE_INLINE IntVector& IntVector::operator/=(int32 divisor) { x /= divisor; y /= divisor; @@ -144,7 +144,7 @@ FORCEINLINE IntVector& IntVector::operator/=(int32 divisor) return *this; } -FORCEINLINE IntVector& IntVector::operator+=(const IntVector& other) +FORCE_INLINE IntVector& IntVector::operator+=(const IntVector& other) { x += other.x; y += other.y; @@ -152,7 +152,7 @@ FORCEINLINE IntVector& IntVector::operator+=(const IntVector& other) return *this; } -FORCEINLINE IntVector& IntVector::operator-=(const IntVector& other) +FORCE_INLINE IntVector& IntVector::operator-=(const IntVector& other) { x -= other.x; y -= other.y; @@ -160,7 +160,7 @@ FORCEINLINE IntVector& IntVector::operator-=(const IntVector& other) return *this; } -FORCEINLINE IntVector& IntVector::operator=(const IntVector& other) +FORCE_INLINE IntVector& IntVector::operator=(const IntVector& other) { x = other.x; y = other.y; @@ -168,60 +168,60 @@ FORCEINLINE IntVector& IntVector::operator=(const IntVector& other) return *this; } -FORCEINLINE IntVector IntVector::operator*(int32 scale) const +FORCE_INLINE IntVector IntVector::operator*(int32 scale) const { return IntVector(*this) *= scale; } -FORCEINLINE IntVector IntVector::operator/(int32 divisor) const +FORCE_INLINE IntVector IntVector::operator/(int32 divisor) const { return IntVector(*this) /= divisor; } -FORCEINLINE IntVector IntVector::operator+(const IntVector& other) const +FORCE_INLINE IntVector IntVector::operator+(const IntVector& other) const { return IntVector(*this) += other; } -FORCEINLINE IntVector IntVector::operator-(const IntVector& other) const +FORCE_INLINE IntVector IntVector::operator-(const IntVector& other) const { return IntVector(*this) -= other; } -FORCEINLINE IntVector IntVector::DivideAndRoundUp(IntVector lhs, int32 divisor) +FORCE_INLINE IntVector IntVector::DivideAndRoundUp(IntVector lhs, int32 divisor) { return IntVector(MMath::DivideAndRoundUp(lhs.x, divisor), MMath::DivideAndRoundUp(lhs.y, divisor), MMath::DivideAndRoundUp(lhs.z, divisor)); } -FORCEINLINE int32 IntVector::GetMax() const +FORCE_INLINE int32 IntVector::GetMax() const { return MMath::Max(MMath::Max(x, y), z); } -FORCEINLINE int32 IntVector::GetMin() const +FORCE_INLINE int32 IntVector::GetMin() const { return MMath::Min(MMath::Min(x, y), z); } -FORCEINLINE int32 IntVector::Num() +FORCE_INLINE int32 IntVector::Num() { return 3; } -FORCEINLINE int32 IntVector::Size() const +FORCE_INLINE int32 IntVector::Size() const { - int64 x64 = (int64)x; - int64 y64 = (int64)y; - int64 z64 = (int64)z; - return int32(MMath::Sqrt(x64 * x64 + y64 * y64 + z64 * z64)); + float xx = (float)(x * x); + float yy = (float)(y * y); + float zz = (float)(z * z); + return int32(MMath::Sqrt(xx + yy + zz)); } -FORCEINLINE bool IntVector::IsZero() const +FORCE_INLINE bool IntVector::IsZero() const { return *this == ZeroValue; } -FORCEINLINE std::string IntVector::ToString() const +FORCE_INLINE std::string IntVector::ToString() const { return StringUtils::Printf("x=%d y=%d z=%d", x, y, z); } @@ -235,12 +235,12 @@ struct IntVector4 int32 w; public: - FORCEINLINE IntVector4() + FORCE_INLINE IntVector4() { } - FORCEINLINE IntVector4(int32 inX, int32 inY, int32 inZ, int32 InW) + FORCE_INLINE IntVector4(int32 inX, int32 inY, int32 inZ, int32 InW) : x(inX) , y(inY) , z(inZ) @@ -249,7 +249,7 @@ struct IntVector4 } - FORCEINLINE explicit IntVector4(int32 inValue) + FORCE_INLINE explicit IntVector4(int32 inValue) : x(inValue) , y(inValue) , z(inValue) @@ -258,22 +258,22 @@ struct IntVector4 } - FORCEINLINE const int32& operator[](int32 index) const + FORCE_INLINE const int32& operator[](int32 index) const { return (&x)[index]; } - FORCEINLINE int32& operator[](int32 index) + FORCE_INLINE int32& operator[](int32 index) { return (&x)[index]; } - FORCEINLINE bool operator==(const IntVector4& other) const + FORCE_INLINE bool operator==(const IntVector4& other) const { return x == other.x && y == other.y && z == other.z && w == other.w; } - FORCEINLINE bool operator!=(const IntVector4& other) const + FORCE_INLINE bool operator!=(const IntVector4& other) const { return x != other.x || y != other.y || z != other.z || w != other.w; } @@ -288,12 +288,12 @@ struct UintVector4 uint32 w; public: - FORCEINLINE UintVector4() + FORCE_INLINE UintVector4() { } - FORCEINLINE UintVector4(uint32 inX, uint32 inY, uint32 inZ, uint32 InW) + FORCE_INLINE UintVector4(uint32 inX, uint32 inY, uint32 inZ, uint32 InW) : x(inX) , y(inY) , z(inZ) @@ -302,7 +302,7 @@ struct UintVector4 } - FORCEINLINE explicit UintVector4(uint32 inValue) + FORCE_INLINE explicit UintVector4(uint32 inValue) : x(inValue) , y(inValue) , z(inValue) @@ -311,22 +311,22 @@ struct UintVector4 } - FORCEINLINE const uint32& operator[](int32 index) const + FORCE_INLINE const uint32& operator[](int32 index) const { return (&x)[index]; } - FORCEINLINE uint32& operator[](int32 index) + FORCE_INLINE uint32& operator[](int32 index) { return (&x)[index]; } - FORCEINLINE bool operator==(const UintVector4& other) const + FORCE_INLINE bool operator==(const UintVector4& other) const { return x == other.x && y == other.y && z == other.z && w == other.w; } - FORCEINLINE bool operator!=(const UintVector4& other) const + FORCE_INLINE bool operator!=(const UintVector4& other) const { return x != other.x || y != other.y || z != other.z || w != other.w; } diff --git a/Engine/Monkey/Math/Linux/LinuxPlatformMath.h b/Engine/Monkey/Math/Linux/LinuxPlatformMath.h index e47519b9..21d22168 100644 --- a/Engine/Monkey/Math/Linux/LinuxPlatformMath.h +++ b/Engine/Monkey/Math/Linux/LinuxPlatformMath.h @@ -6,7 +6,7 @@ struct LinuxPlatformMath : public GenericPlatformMath { - static FORCEINLINE uint32 CountLeadingZeros(uint32 value) + static FORCE_INLINE uint32 CountLeadingZeros(uint32 value) { if (value == 0) { @@ -15,7 +15,7 @@ struct LinuxPlatformMath : public GenericPlatformMath return __builtin_clz(value); } - static FORCEINLINE uint64 CountLeadingZeros64(uint64 value) + static FORCE_INLINE uint64 CountLeadingZeros64(uint64 value) { if (value == 0) { @@ -24,7 +24,7 @@ struct LinuxPlatformMath : public GenericPlatformMath return __builtin_clzll(value); } - static FORCEINLINE uint32 CountTrailingZeros(uint32 value) + static FORCE_INLINE uint32 CountTrailingZeros(uint32 value) { if (value == 0) { @@ -33,7 +33,7 @@ struct LinuxPlatformMath : public GenericPlatformMath return __builtin_ctz(value); } - static FORCEINLINE uint64 CountTrailingZeros64(uint64 value) + static FORCE_INLINE uint64 CountTrailingZeros64(uint64 value) { if (value == 0) { @@ -42,57 +42,57 @@ struct LinuxPlatformMath : public GenericPlatformMath return __builtin_ctzll(value); } - static FORCEINLINE int32 TruncToInt(float f) + static FORCE_INLINE int32 TruncToInt(float f) { return _mm_cvtt_ss2si(_mm_set_ss(f)); } - static FORCEINLINE float TruncToFloat(float f) + static FORCE_INLINE float TruncToFloat(float f) { return (float)TruncToInt(f); } - static FORCEINLINE int32 RoundToInt(float f) + static FORCE_INLINE int32 RoundToInt(float f) { return _mm_cvt_ss2si(_mm_set_ss(f + f + 0.5f)) >> 1; } - static FORCEINLINE float RoundToFloat(float f) + static FORCE_INLINE float RoundToFloat(float f) { return (float)RoundToInt(f); } - static FORCEINLINE int32 FloorToInt(float f) + static FORCE_INLINE int32 FloorToInt(float f) { return _mm_cvt_ss2si(_mm_set_ss(f + f - 0.5f)) >> 1; } - static FORCEINLINE float FloorToFloat(float f) + static FORCE_INLINE float FloorToFloat(float f) { return (float)FloorToInt(f); } - static FORCEINLINE int32 CeilToInt(float f) + static FORCE_INLINE int32 CeilToInt(float f) { return -(_mm_cvt_ss2si(_mm_set_ss(-0.5f - (f + f))) >> 1); } - static FORCEINLINE int32 CountBits(uint64 bits) + static FORCE_INLINE int32 CountBits(uint64 bits) { return __builtin_popcountll(bits); } - static FORCEINLINE float CeilToFloat(float f) + static FORCE_INLINE float CeilToFloat(float f) { return (float)CeilToInt(f); } - static FORCEINLINE bool IsNaN(float a) + static FORCE_INLINE bool IsNaN(float a) { return isnan(a) != 0; } - static FORCEINLINE bool IsFinite(float a) + static FORCE_INLINE bool IsFinite(float a) { return isfinite(a); } diff --git a/Engine/Monkey/Math/Mac/MacPlatformMath.h b/Engine/Monkey/Math/Mac/MacPlatformMath.h index c6b021d5..a343ce9e 100644 --- a/Engine/Monkey/Math/Mac/MacPlatformMath.h +++ b/Engine/Monkey/Math/Mac/MacPlatformMath.h @@ -6,7 +6,7 @@ struct MacPlatformMath : public GenericPlatformMath { - static FORCEINLINE uint32 CountLeadingZeros(uint32 value) + static FORCE_INLINE uint32 CountLeadingZeros(uint32 value) { if (value == 0) { @@ -15,7 +15,7 @@ struct MacPlatformMath : public GenericPlatformMath return __builtin_clz(value); } - static FORCEINLINE uint64 CountLeadingZeros64(uint64 value) + static FORCE_INLINE uint64 CountLeadingZeros64(uint64 value) { if (value == 0) { @@ -24,7 +24,7 @@ struct MacPlatformMath : public GenericPlatformMath return __builtin_clzll(value); } - static FORCEINLINE uint32 CountTrailingZeros(uint32 value) + static FORCE_INLINE uint32 CountTrailingZeros(uint32 value) { if (value == 0) { @@ -33,7 +33,7 @@ struct MacPlatformMath : public GenericPlatformMath return __builtin_ctz(value); } - static FORCEINLINE uint64 CountTrailingZeros64(uint64 value) + static FORCE_INLINE uint64 CountTrailingZeros64(uint64 value) { if (value == 0) { @@ -42,57 +42,57 @@ struct MacPlatformMath : public GenericPlatformMath return __builtin_ctzll(value); } - static FORCEINLINE int32 TruncToInt(float f) + static FORCE_INLINE int32 TruncToInt(float f) { return _mm_cvtt_ss2si(_mm_set_ss(f)); } - static FORCEINLINE float TruncToFloat(float f) + static FORCE_INLINE float TruncToFloat(float f) { return (float)TruncToInt(f); } - static FORCEINLINE int32 RoundToInt(float f) + static FORCE_INLINE int32 RoundToInt(float f) { return _mm_cvt_ss2si(_mm_set_ss(f + f + 0.5f)) >> 1; } - static FORCEINLINE float RoundToFloat(float f) + static FORCE_INLINE float RoundToFloat(float f) { return (float)RoundToInt(f); } - static FORCEINLINE int32 FloorToInt(float f) + static FORCE_INLINE int32 FloorToInt(float f) { return _mm_cvt_ss2si(_mm_set_ss(f + f - 0.5f)) >> 1; } - static FORCEINLINE float FloorToFloat(float f) + static FORCE_INLINE float FloorToFloat(float f) { return (float)FloorToInt(f); } - static FORCEINLINE int32 CeilToInt(float f) + static FORCE_INLINE int32 CeilToInt(float f) { return -(_mm_cvt_ss2si(_mm_set_ss(-0.5f - (f + f))) >> 1); } - static FORCEINLINE int32 CountBits(uint64 bits) + static FORCE_INLINE int32 CountBits(uint64 bits) { return __builtin_popcountll(bits); } - static FORCEINLINE float CeilToFloat(float f) + static FORCE_INLINE float CeilToFloat(float f) { return (float)CeilToInt(f); } - static FORCEINLINE bool IsNaN(float a) + static FORCE_INLINE bool IsNaN(float a) { return isnan(a) != 0; } - static FORCEINLINE bool IsFinite(float a) + static FORCE_INLINE bool IsFinite(float a) { return isfinite(a); } diff --git a/Engine/Monkey/Math/Math.cpp b/Engine/Monkey/Math/Math.cpp index a3a96dec..0d1e7295 100644 --- a/Engine/Monkey/Math/Math.cpp +++ b/Engine/Monkey/Math/Math.cpp @@ -329,15 +329,16 @@ float MMath::RoundHalfToEven(float value) double MMath::RoundHalfToEven(double value) { - value = MMath::TruncateToHalfIfClose(value); + float fValue = (float)value; + fValue = MMath::TruncateToHalfIfClose(fValue); - const bool bIsNegative = value < 0.0f; - const bool bValueIsEven = static_cast(FloorToFloat(((bIsNegative) ? -value : value))) % 2 == 0; + const bool bIsNegative = fValue < 0.0f; + const bool bValueIsEven = static_cast(FloorToFloat(((bIsNegative) ? -fValue : fValue))) % 2 == 0; if (bValueIsEven) { - return (bIsNegative) ? FloorToFloat(value + 0.5f) : CeilToFloat(value - 0.5f); + return (bIsNegative) ? FloorToFloat(fValue + 0.5f) : CeilToFloat(fValue - 0.5f); } else { - return (bIsNegative) ? CeilToFloat(value - 0.5f) : FloorToFloat(value + 0.5f); + return (bIsNegative) ? CeilToFloat(fValue - 0.5f) : FloorToFloat(fValue + 0.5f); } } @@ -406,8 +407,8 @@ float MMath::PerlinNoise1D(const float value) const int32 bx0 = ((int32)t) & bm; const int32 bx1 = (bx0 + 1) & bm; const float rx0 = t - (int32)t; - const float rx1 = rx0 - 1.; - const float sx = (rx0 * rx0 * (3. - 2. * rx0)); + const float rx1 = rx0 - 1.0f; + const float sx = (rx0 * rx0 * (3.0f - 2.0f * rx0)); const float u = rx0 * g[p[bx0]]; const float v = rx1 * g[p[bx1]]; diff --git a/Engine/Monkey/Math/Math.h b/Engine/Monkey/Math/Math.h index cbeaae2e..69e093b5 100644 --- a/Engine/Monkey/Math/Math.h +++ b/Engine/Monkey/Math/Math.h @@ -71,33 +71,33 @@ struct MMath : public PlatformMath static const uint32 BitFlag[32]; public: - static FORCEINLINE int32 RandHelper(int32 value) + static FORCE_INLINE int32 RandHelper(int32 value) { return value > 0 ? Min(TruncToInt(FRand() * value), value - 1) : 0; } - static FORCEINLINE int32 RandRange(int32 inMin, int32 inMax) + static FORCE_INLINE int32 RandRange(int32 inMin, int32 inMax) { const int32 range = (inMax - inMin) + 1; return inMin + RandHelper(range); } - static FORCEINLINE float RandRange(float inMin, float inMax) + static FORCE_INLINE float RandRange(float inMin, float inMax) { return FRandRange(inMin, inMax); } - static FORCEINLINE float FRandRange(float inMin, float inMax) + static FORCE_INLINE float FRandRange(float inMin, float inMax) { return inMin + (inMax - inMin) * FRand(); } - static FORCEINLINE bool RandBool() + static FORCE_INLINE bool RandBool() { return (RandRange(0, 1) == 1) ? true : false; } - static FORCEINLINE void Inverse4x4(double* dst, const float* src) + static FORCE_INLINE void Inverse4x4(double* dst, const float* src) { const double s0 = (double)(src[0]); const double s1 = (double)(src[1]); @@ -144,80 +144,80 @@ struct MMath : public PlatformMath } } - static FORCEINLINE float GetMappedRangeValueClamped(const Vector2& inputRange, const Vector2& outputRange, const float value) + static FORCE_INLINE float GetMappedRangeValueClamped(const Vector2& inputRange, const Vector2& outputRange, const float value) { const float clampedPct = Clamp(GetRangePct(inputRange, value), 0.f, 1.f); return GetRangeValue(outputRange, clampedPct); } - static FORCEINLINE float GetMappedRangeValueUnclamped(const Vector2& inputRange, const Vector2& outputRange, const float value) + static FORCE_INLINE float GetMappedRangeValueUnclamped(const Vector2& inputRange, const Vector2& outputRange, const float value) { return GetRangeValue(outputRange, GetRangePct(inputRange, value)); } template< class U > - static FORCEINLINE bool IsWithin(const U& testValue, const U& minValue, const U& maxValue) + static FORCE_INLINE bool IsWithin(const U& testValue, const U& minValue, const U& maxValue) { return ((testValue >= minValue) && (testValue < maxValue)); } template< class U > - static FORCEINLINE bool IsWithinInclusive(const U& testValue, const U& minValue, const U& maxValue) + static FORCE_INLINE bool IsWithinInclusive(const U& testValue, const U& minValue, const U& maxValue) { return ((testValue >= minValue) && (testValue <= maxValue)); } - static FORCEINLINE bool IsNearlyEqual(float a, float b, float errorTolerance = SMALL_NUMBER) + static FORCE_INLINE bool IsNearlyEqual(float a, float b, float errorTolerance = SMALL_NUMBER) { return Abs(a - b) <= errorTolerance; } - static FORCEINLINE bool IsNearlyEqual(double a, double b, double errorTolerance = SMALL_NUMBER) + static FORCE_INLINE bool IsNearlyEqual(double a, double b, double errorTolerance = SMALL_NUMBER) { return Abs(a - b) <= errorTolerance; } - static FORCEINLINE bool IsNearlyZero(float value, float errorTolerance = SMALL_NUMBER) + static FORCE_INLINE bool IsNearlyZero(float value, float errorTolerance = SMALL_NUMBER) { return Abs(value) <= errorTolerance; } - static FORCEINLINE bool IsNearlyZero(double value, double errorTolerance = SMALL_NUMBER) + static FORCE_INLINE bool IsNearlyZero(double value, double errorTolerance = SMALL_NUMBER) { return Abs(value) <= errorTolerance; } template - static FORCEINLINE bool IsPowerOfTwo(T value) + static FORCE_INLINE bool IsPowerOfTwo(T value) { return ((value & (value - 1)) == (T)0); } template< class T > - static FORCEINLINE T Max3(const T a, const T b, const T c) + static FORCE_INLINE T Max3(const T a, const T b, const T c) { return Max(Max(a, b), c); } template< class T > - static FORCEINLINE T Min3(const T a, const T b, const T c) + static FORCE_INLINE T Min3(const T a, const T b, const T c) { return Min(Min(a, b), c); } template< class T > - static FORCEINLINE T Square(const T a) + static FORCE_INLINE T Square(const T a) { return a * a; } template< class T > - static FORCEINLINE T Clamp(const T x, const T inMin, const T inMax) + static FORCE_INLINE T Clamp(const T x, const T inMin, const T inMax) { return x < inMin ? inMin : x < inMax ? x : inMax; } - static FORCEINLINE float GridSnap(float location, float grid) + static FORCE_INLINE float GridSnap(float location, float grid) { if (grid == 0.0f) { return location; @@ -227,7 +227,7 @@ struct MMath : public PlatformMath } } - static FORCEINLINE double GridSnap(double location, double grid) + static FORCE_INLINE double GridSnap(double location, double grid) { if (grid == 0.0) { return location; @@ -238,32 +238,32 @@ struct MMath : public PlatformMath } template - static FORCEINLINE T DivideAndRoundUp(T dividend, T divisor) + static FORCE_INLINE T DivideAndRoundUp(T dividend, T divisor) { return (dividend + divisor - 1) / divisor; } template - static FORCEINLINE T DivideAndRoundDown(T dividend, T divisor) + static FORCE_INLINE T DivideAndRoundDown(T dividend, T divisor) { return dividend / divisor; } template - static FORCEINLINE T DivideAndRoundNearest(T dividend, T divisor) + static FORCE_INLINE T DivideAndRoundNearest(T dividend, T divisor) { return (dividend >= 0) ? (dividend + divisor / 2) / divisor : (dividend - divisor / 2 + 1) / divisor; } - static FORCEINLINE float Log2(float value) + static FORCE_INLINE float Log2(float value) { static const float logToLog2 = 1.f / Loge(2.f); return Loge(value) * logToLog2; } - static FORCEINLINE void SinCos(float* scalarSin, float* scalarCos, float value) + static FORCE_INLINE void SinCos(float* scalarSin, float* scalarCos, float value) { float quotient = (INV_PI * 0.5f) * value; if (value >= 0.0f) { @@ -298,7 +298,7 @@ struct MMath : public PlatformMath #define FASTASIN_HALF_PI (1.5707963050f) - static FORCEINLINE float FastAsin(float value) + static FORCE_INLINE float FastAsin(float value) { bool nonnegative = (value >= 0.0f); float x = MMath::Abs(value); @@ -314,18 +314,18 @@ struct MMath : public PlatformMath #undef FASTASIN_HALF_PI template - static FORCEINLINE auto RadiansToDegrees(T const& radVal) -> decltype(radVal * (180.f / PI)) + static FORCE_INLINE auto RadiansToDegrees(T const& radVal) -> decltype(radVal * (180.f / PI)) { return radVal * (180.f / PI); } template - static FORCEINLINE auto DegreesToRadians(T const& degVal) -> decltype(degVal * (PI / 180.f)) + static FORCE_INLINE auto DegreesToRadians(T const& degVal) -> decltype(degVal * (PI / 180.f)) { return degVal * (PI / 180.f); } - static FORCEINLINE void VectorMatrixMultiply(void* result, const void* matrix1, const void* matrix2) + static FORCE_INLINE void VectorMatrixMultiply(void* result, const void* matrix1, const void* matrix2) { typedef float Float4x4[4][4]; const Float4x4& a = *((const Float4x4*) matrix1); @@ -355,7 +355,7 @@ struct MMath : public PlatformMath memcpy(result, &temp, 16 * sizeof(float)); } - static FORCEINLINE void VectorMatrixInverse(void* dstMatrix, const void* srcMatrix) + static FORCE_INLINE void VectorMatrixInverse(void* dstMatrix, const void* srcMatrix) { typedef float Float4x4[4][4]; const Float4x4& m = *((const Float4x4*)srcMatrix); @@ -439,7 +439,7 @@ struct MMath : public PlatformMath memcpy(dstMatrix, &result, 16 * sizeof(float)); } - static FORCEINLINE void VectorTransformVector(void* result, const void* vec, const void* matrix) + static FORCE_INLINE void VectorTransformVector(void* result, const void* vec, const void* matrix) { typedef float Float4[4]; typedef float Float4x4[4][4]; @@ -454,7 +454,7 @@ struct MMath : public PlatformMath rVec4[3] = vec4[0] * m44[0][3] + vec4[1] * m44[1][3] + vec4[2] * m44[2][3] + vec4[3] * m44[3][3]; } - static FORCEINLINE void VectorQuaternionMultiply(void* result, const void* quat1, const void* quat2) + static FORCE_INLINE void VectorQuaternionMultiply(void* result, const void* quat1, const void* quat2) { typedef float Float4[4]; const Float4& a = *((const Float4*)quat1); @@ -478,7 +478,7 @@ struct MMath : public PlatformMath r[3] = t0 + t9 - t5; } - static FORCEINLINE float FindDeltaAngleDegrees(float a1, float a2) + static FORCE_INLINE float FindDeltaAngleDegrees(float a1, float a2) { float delta = a2 - a1; @@ -492,7 +492,7 @@ struct MMath : public PlatformMath return delta; } - static FORCEINLINE float FindDeltaAngleRadians(float a1, float a2) + static FORCE_INLINE float FindDeltaAngleRadians(float a1, float a2) { float delta = a2 - a1; @@ -506,7 +506,7 @@ struct MMath : public PlatformMath return delta; } - static FORCEINLINE float UnwindRadians(float value) + static FORCE_INLINE float UnwindRadians(float value) { while (value > PI) { value -= ((float)PI * 2.0f); @@ -519,7 +519,7 @@ struct MMath : public PlatformMath return value; } - static FORCEINLINE float UnwindDegrees(float value) + static FORCE_INLINE float UnwindDegrees(float value) { while (value > 180.f) { value -= 360.f; @@ -532,19 +532,19 @@ struct MMath : public PlatformMath return value; } - static FORCEINLINE void CartesianToPolar(const float x, const float y, float& outRad, float& outAng) + static FORCE_INLINE void CartesianToPolar(const float x, const float y, float& outRad, float& outAng) { outRad = Sqrt(Square(x) + Square(y)); outAng = Atan2(y, x); } - static FORCEINLINE void PolarToCartesian(const float rad, const float ang, float& outX, float& outY) + static FORCE_INLINE void PolarToCartesian(const float rad, const float ang, float& outX, float& outY) { outX = rad * Cos(ang); outY = rad * Sin(ang); } - static FORCEINLINE float GetRangePct(float minValue, float maxValue, float value) + static FORCE_INLINE float GetRangePct(float minValue, float maxValue, float value) { const float divisor = maxValue - minValue; if (MMath::IsNearlyZero(divisor)) { @@ -555,25 +555,25 @@ struct MMath : public PlatformMath } template< class T, class U > - static FORCEINLINE T Lerp(const T& a, const T& b, const U& alpha) + static FORCE_INLINE T Lerp(const T& a, const T& b, const U& alpha) { return (T)(a + alpha * (b - a)); } template< class T > - static FORCEINLINE T LerpStable(const T& a, const T& b, double alpha) + static FORCE_INLINE T LerpStable(const T& a, const T& b, double alpha) { return (T)((a * (1.0 - alpha)) + (b * alpha)); } template< class T > - static FORCEINLINE T LerpStable(const T& a, const T& b, float alpha) + static FORCE_INLINE T LerpStable(const T& a, const T& b, float alpha) { return (T)((a * (1.0f - alpha)) + (b * alpha)); } template< class T, class U > - static FORCEINLINE T BiLerp(const T& p00, const T& p10, const T& p01, const T& p11, const U& fracX, const U& fracY) + static FORCE_INLINE T BiLerp(const T& p00, const T& p10, const T& p01, const T& p11, const U& fracX, const U& fracY) { return Lerp( Lerp(p00, p10, fracX), @@ -583,7 +583,7 @@ struct MMath : public PlatformMath } template< class T, class U > - static FORCEINLINE T CubicInterp(const T& p0, const T& t0, const T& p1, const T& t1, const U& a) + static FORCE_INLINE T CubicInterp(const T& p0, const T& t0, const T& p1, const T& t1, const U& a) { const float a2 = a * a; const float a3 = a2 * a; @@ -592,7 +592,7 @@ struct MMath : public PlatformMath } template< class T, class U > - static FORCEINLINE T CubicInterpDerivative(const T& p0, const T& t0, const T& p1, const T& t1, const U& a) + static FORCE_INLINE T CubicInterpDerivative(const T& p0, const T& t0, const T& p1, const T& t1, const U& a) { T x = 6.f * p0 + 3.f * t0 + 3.f * t1 - 6.f * p1; T y = -6.f * p0 - 4.f * t0 - 2.f * t1 + 6.f * p1; @@ -602,7 +602,7 @@ struct MMath : public PlatformMath } template< class T, class U > - static FORCEINLINE T CubicInterpSecondDerivative(const T& p0, const T& t0, const T& p1, const T& t1, const U& a) + static FORCE_INLINE T CubicInterpSecondDerivative(const T& p0, const T& t0, const T& p1, const T& t1, const U& a) { T x = 12.f * p0 + 6.f * t0 + 6.f * t1 - 12.f * p1; T y = -6.f * p0 - 4.f * t0 - 2.f * t1 + 6.f * p1; @@ -611,21 +611,21 @@ struct MMath : public PlatformMath } template< class T > - static FORCEINLINE T InterpEaseIn(const T& a, const T& b, float alpha, float exp) + static FORCE_INLINE T InterpEaseIn(const T& a, const T& b, float alpha, float exp) { float const modifiedAlpha = Pow(alpha, exp); return Lerp(a, b, modifiedAlpha); } template< class T > - static FORCEINLINE T InterpEaseOut(const T& a, const T& b, float alpha, float exp) + static FORCE_INLINE T InterpEaseOut(const T& a, const T& b, float alpha, float exp) { float const modifiedAlpha = 1.f - Pow(1.f - alpha, exp); return Lerp(a, b, modifiedAlpha); } template< class T > - static FORCEINLINE T InterpEaseInOut(const T& a, const T& b, float alpha, float exp) + static FORCE_INLINE T InterpEaseInOut(const T& a, const T& b, float alpha, float exp) { return Lerp(a, b, (alpha < 0.5f) ? InterpEaseIn(0.f, 1.f, alpha * 2.f, exp) * 0.5f : @@ -633,7 +633,7 @@ struct MMath : public PlatformMath } template< class T > - static FORCEINLINE T InterpStep(const T& a, const T& b, float alpha, int32 steps) + static FORCE_INLINE T InterpStep(const T& a, const T& b, float alpha, int32 steps) { if (steps <= 1 || alpha <= 0) { return a; @@ -650,21 +650,21 @@ struct MMath : public PlatformMath } template< class T > - static FORCEINLINE T InterpSinIn(const T& a, const T& b, float alpha) + static FORCE_INLINE T InterpSinIn(const T& a, const T& b, float alpha) { float const modifiedAlpha = -1.f * Cos(alpha * HALF_PI) + 1.f; return Lerp(a, b, modifiedAlpha); } template< class T > - static FORCEINLINE T InterpSinOut(const T& a, const T& b, float alpha) + static FORCE_INLINE T InterpSinOut(const T& a, const T& b, float alpha) { float const modifiedAlpha = Sin(alpha * HALF_PI); return Lerp(a, b, modifiedAlpha); } template< class T > - static FORCEINLINE T InterpSinInOut(const T& a, const T& b, float alpha) + static FORCE_INLINE T InterpSinInOut(const T& a, const T& b, float alpha) { return Lerp(a, b, (alpha < 0.5f) ? InterpSinIn(0.f, 1.f, alpha * 2.f) * 0.5f : @@ -672,21 +672,21 @@ struct MMath : public PlatformMath } template< class T > - static FORCEINLINE T InterpExpoIn(const T& a, const T& b, float alpha) + static FORCE_INLINE T InterpExpoIn(const T& a, const T& b, float alpha) { float const modifiedAlpha = (alpha == 0.f) ? 0.f : Pow(2.f, 10.f * (alpha - 1.f)); return Lerp(a, b, modifiedAlpha); } template< class T > - static FORCEINLINE T InterpExpoOut(const T& a, const T& b, float alpha) + static FORCE_INLINE T InterpExpoOut(const T& a, const T& b, float alpha) { float const modifiedAlpha = (alpha == 1.f) ? 1.f : -Pow(2.f, -10.f * alpha) + 1.f; return Lerp(a, b, modifiedAlpha); } template< class T > - static FORCEINLINE T InterpExpoInOut(const T& a, const T& b, float alpha) + static FORCE_INLINE T InterpExpoInOut(const T& a, const T& b, float alpha) { return Lerp(a, b, (alpha < 0.5f) ? InterpExpoIn(0.f, 1.f, alpha * 2.f) * 0.5f : @@ -694,14 +694,14 @@ struct MMath : public PlatformMath } template< class T > - static FORCEINLINE T InterpCircularIn(const T& a, const T& b, float alpha) + static FORCE_INLINE T InterpCircularIn(const T& a, const T& b, float alpha) { float const modifiedAlpha = -1.f * (Sqrt(1.f - alpha * alpha) - 1.f); return Lerp(a, b, modifiedAlpha); } template< class T > - static FORCEINLINE T InterpCircularOut(const T& a, const T& b, float alpha) + static FORCE_INLINE T InterpCircularOut(const T& a, const T& b, float alpha) { alpha -= 1.f; float const modifiedAlpha = Sqrt(1.f - alpha * alpha); @@ -709,7 +709,7 @@ struct MMath : public PlatformMath } template< class T > - static FORCEINLINE T InterpCircularInOut(const T& a, const T& b, float alpha) + static FORCE_INLINE T InterpCircularInOut(const T& a, const T& b, float alpha) { return Lerp(a, b, (alpha < 0.5f) ? InterpCircularIn(0.f, 1.f, alpha * 2.f) * 0.5f : @@ -717,7 +717,7 @@ struct MMath : public PlatformMath } template - static FORCEINLINE U CubicCRSplineInterp(const U& p0, const U& p1, const U& p2, const U& p3, const float t0, const float t1, const float t2, const float t3, const float t) + static FORCE_INLINE U CubicCRSplineInterp(const U& p0, const U& p1, const U& p2, const U& p3, const float t0, const float t1, const float t2, const float t3, const float t) { float invT1MinusT0 = 1.0f / (t1 - t0); U l01 = (p0 * ((t1 - t) * invT1MinusT0)) + (p1 * ((t - t0) * invT1MinusT0)); @@ -735,7 +735,7 @@ struct MMath : public PlatformMath } template< class U > - static FORCEINLINE U CubicCRSplineInterpSafe(const U& p0, const U& p1, const U& p2, const U& p3, const float t0, const float t1, const float t2, const float t3, const float t) + static FORCE_INLINE U CubicCRSplineInterpSafe(const U& p0, const U& p1, const U& p2, const U& p3, const float t0, const float t1, const float t2, const float t3, const float t) { float t1MinusT0 = (t1 - t0); float t2MinusT1 = (t2 - t1); @@ -762,52 +762,52 @@ struct MMath : public PlatformMath return ((l012 * ((t2 - t) * invT2MinusT1)) + (l123 * ((t - t1) * invT2MinusT1))); } - static FORCEINLINE float MakePulsatingValue(const double inCurrentTime, const float inPulsesPerSecond, const float inPhase = 0.0f) + static FORCE_INLINE float MakePulsatingValue(const double inCurrentTime, const float inPulsesPerSecond, const float inPhase = 0.0f) { return (float)(0.5f + 0.5f * MMath::Sin(((0.25f + inPhase) * PI * 2.0f) + ((float)inCurrentTime * PI * 2.0f) * inPulsesPerSecond)); } - static FORCEINLINE float RoundFromZero(float f) + static FORCE_INLINE float RoundFromZero(float f) { return (f < 0.0f) ? FloorToFloat(f) : CeilToFloat(f); } - static FORCEINLINE double RoundFromZero(double f) + static FORCE_INLINE double RoundFromZero(double f) { return (f < 0.0) ? FloorToDouble(f) : CeilToDouble(f); } - static FORCEINLINE float RoundToZero(float f) + static FORCE_INLINE float RoundToZero(float f) { return (f < 0.0f) ? CeilToFloat(f) : FloorToFloat(f); } - static FORCEINLINE double RoundToZero(double f) + static FORCE_INLINE double RoundToZero(double f) { return (f < 0.0) ? CeilToDouble(f) : FloorToDouble(f); } - static FORCEINLINE float RoundToNegativeInfinity(float f) + static FORCE_INLINE float RoundToNegativeInfinity(float f) { return FloorToFloat(f); } - static FORCEINLINE double RoundToNegativeInfinity(double f) + static FORCE_INLINE double RoundToNegativeInfinity(double f) { return FloorToDouble(f); } - static FORCEINLINE float RoundToPositiveInfinity(float f) + static FORCE_INLINE float RoundToPositiveInfinity(float f) { return CeilToFloat(f); } - static FORCEINLINE double RoundToPositiveInfinity(double f) + static FORCE_INLINE double RoundToPositiveInfinity(double f) { return CeilToDouble(f); } - static FORCEINLINE float SmoothStep(float a, float b, float X) + static FORCE_INLINE float SmoothStep(float a, float b, float X) { if (X < a) { return 0.0f; @@ -819,7 +819,7 @@ struct MMath : public PlatformMath return InterpFraction * InterpFraction * (3.0f - 2.0f * InterpFraction); } - static FORCEINLINE bool ExtractBoolFromBitfield(uint8* ptr, uint32 index) + static FORCE_INLINE bool ExtractBoolFromBitfield(uint8* ptr, uint32 index) { uint8* bytePtr = ptr + index / 8; uint8 mast = 1 << (index & 0x7); @@ -827,7 +827,7 @@ struct MMath : public PlatformMath return (*bytePtr & mast) != 0; } - static FORCEINLINE void SetBoolInBitField(uint8* ptr, uint32 index, bool bset) + static FORCE_INLINE void SetBoolInBitField(uint8* ptr, uint32 index, bool bset) { uint8* bytePtr = ptr + index / 8; uint8 mast = 1 << (index & 0x7); @@ -840,19 +840,19 @@ struct MMath : public PlatformMath } } - static FORCEINLINE uint8 Quantize8UnsignedByte(float x) + static FORCE_INLINE uint8 Quantize8UnsignedByte(float x) { int32 Ret = (int32)(x * 255.999f); return Ret; } - static FORCEINLINE uint8 Quantize8SignedByte(float x) + static FORCE_INLINE uint8 Quantize8SignedByte(float x) { float y = x * 0.5f + 0.5f; return Quantize8UnsignedByte(y); } - static FORCEINLINE int32 GreatestCommonDivisor(int32 a, int32 b) + static FORCE_INLINE int32 GreatestCommonDivisor(int32 a, int32 b) { while (b != 0) { int32 t = b; @@ -862,7 +862,7 @@ struct MMath : public PlatformMath return a; } - static FORCEINLINE int32 LeastCommonMultiplier(int32 a, int32 b) + static FORCE_INLINE int32 LeastCommonMultiplier(int32 a, int32 b) { int32 currentGcd = GreatestCommonDivisor(a, b); return currentGcd == 0 ? 0 : (a / currentGcd) * b; diff --git a/Engine/Monkey/Math/Matrix4x4.h b/Engine/Monkey/Math/Matrix4x4.h index b90961e3..44c1c7d5 100644 --- a/Engine/Monkey/Math/Matrix4x4.h +++ b/Engine/Monkey/Math/Matrix4x4.h @@ -35,205 +35,205 @@ struct Matrix4x4 Matrix4x4(const Rotator& rot, const Vector3& origin); - FORCEINLINE void Perspective(float halfFOV, float width, float height, float minZ, float maxZ); + FORCE_INLINE void Perspective(float halfFOV, float width, float height, float minZ, float maxZ); - FORCEINLINE void Orthographic(float left, float right, float bottom, float top, float minZ, float maxZ); + FORCE_INLINE void Orthographic(float left, float right, float bottom, float top, float minZ, float maxZ); - FORCEINLINE void SetIdentity(); + FORCE_INLINE void SetIdentity(); - FORCEINLINE void Prepend(const Matrix4x4& other); + FORCE_INLINE void Prepend(const Matrix4x4& other); - FORCEINLINE void Append(const Matrix4x4& other); + FORCE_INLINE void Append(const Matrix4x4& other); - FORCEINLINE void PrependRotation(const Rotator& rotator, const Vector3& pivot); + FORCE_INLINE void PrependRotation(const Rotator& rotator, const Vector3& pivot); - FORCEINLINE void AppendRotation(const Rotator& rotator, const Vector3& pivot); + FORCE_INLINE void AppendRotation(const Rotator& rotator, const Vector3& pivot); - FORCEINLINE void PrependRotation(const float degrees, const Vector3& axis, const Vector3* pivot = nullptr); + FORCE_INLINE void PrependRotation(const float degrees, const Vector3& axis, const Vector3* pivot = nullptr); - FORCEINLINE void AppendRotation(const float degrees, const Vector3& axis, const Vector3* pivot = nullptr); + FORCE_INLINE void AppendRotation(const float degrees, const Vector3& axis, const Vector3* pivot = nullptr); - FORCEINLINE void AppendTranslation(const Vector3& translation); + FORCE_INLINE void AppendTranslation(const Vector3& translation); - FORCEINLINE void PrependTranslation(const Vector3& translation); + FORCE_INLINE void PrependTranslation(const Vector3& translation); - FORCEINLINE void TranslateAxis(const Vector3& axis, float distance); + FORCE_INLINE void TranslateAxis(const Vector3& axis, float distance); - FORCEINLINE void TranslateX(float distance); + FORCE_INLINE void TranslateX(float distance); - FORCEINLINE void TranslateY(float distance); + FORCE_INLINE void TranslateY(float distance); - FORCEINLINE void TranslateZ(float distance); + FORCE_INLINE void TranslateZ(float distance); - FORCEINLINE void RotateAxis(const Vector3& axis, float angle, const Vector3* pivot); + FORCE_INLINE void RotateAxis(const Vector3& axis, float angle, const Vector3* pivot); - FORCEINLINE void RotateX(float angle, bool local = true, const Vector3* pivot = nullptr); + FORCE_INLINE void RotateX(float angle, bool local = true, const Vector3* pivot = nullptr); - FORCEINLINE void RotateY(float angle, bool local = true, const Vector3* pivot = nullptr); + FORCE_INLINE void RotateY(float angle, bool local = true, const Vector3* pivot = nullptr); - FORCEINLINE void RotateZ(float angle, bool local = true, const Vector3* pivot = nullptr); + FORCE_INLINE void RotateZ(float angle, bool local = true, const Vector3* pivot = nullptr); - FORCEINLINE void AppendScale(const Vector3& scale); + FORCE_INLINE void AppendScale(const Vector3& scale); - FORCEINLINE void PrependScale(const Vector3& scale); + FORCE_INLINE void PrependScale(const Vector3& scale); - FORCEINLINE void CopyColumnFrom(int32 column, const Vector4 &vec); + FORCE_INLINE void CopyColumnFrom(int32 column, const Vector4 &vec); - FORCEINLINE void CopyColumnTo(int32 column, Vector4 &vec) const; + FORCE_INLINE void CopyColumnTo(int32 column, Vector4 &vec) const; - FORCEINLINE void Decompose(Style style, Vector4& outPos, Vector4& outScale, Vector4& outRot) const; + FORCE_INLINE void Decompose(Style style, Vector4& outPos, Vector4& outScale, Vector4& outRot) const; - FORCEINLINE void Recompose(const Vector4& pos, const Vector4& scale, const Vector4& rot); + FORCE_INLINE void Recompose(const Vector4& pos, const Vector4& scale, const Vector4& rot); - FORCEINLINE Vector4 DeltaTransformVector(const Vector4& v) const; + FORCE_INLINE Vector4 DeltaTransformVector(const Vector4& v) const; - FORCEINLINE void CopyRawDataTo(float* rawData) const; + FORCE_INLINE void CopyRawDataTo(float* rawData) const; - FORCEINLINE void CopyRawDataFrom(float* rawData); + FORCE_INLINE void CopyRawDataFrom(float* rawData); - FORCEINLINE void SetOrientation(const Vector3& dir, const Vector3* up, float smooth); + FORCE_INLINE void SetOrientation(const Vector3& dir, const Vector3* up, float smooth); - FORCEINLINE void LookAt(float x, float y, float z, const Vector3* up = nullptr, float smooth = 1.0f); + FORCE_INLINE void LookAt(float x, float y, float z, const Vector3* up = nullptr, float smooth = 1.0f); - FORCEINLINE void LookAt(Vector3 target, const Vector3* up = nullptr, float smooth = 1.0f); + FORCE_INLINE void LookAt(Vector3 target, const Vector3* up = nullptr, float smooth = 1.0f); - FORCEINLINE void CopyRawFrom(int32 column, const Vector4 &vec); + FORCE_INLINE void CopyRawFrom(int32 column, const Vector4 &vec); - FORCEINLINE void CopyRawTo(int32 column, Vector4 &vec) const; + FORCE_INLINE void CopyRawTo(int32 column, Vector4 &vec) const; - FORCEINLINE Matrix4x4 operator* (const Matrix4x4& other) const; + FORCE_INLINE Matrix4x4 operator* (const Matrix4x4& other) const; - FORCEINLINE void operator*=(const Matrix4x4& other); + FORCE_INLINE void operator*=(const Matrix4x4& other); - FORCEINLINE Matrix4x4 operator+ (const Matrix4x4& other) const; + FORCE_INLINE Matrix4x4 operator+ (const Matrix4x4& other) const; - FORCEINLINE void operator+=(const Matrix4x4& other); + FORCE_INLINE void operator+=(const Matrix4x4& other); - FORCEINLINE Matrix4x4 operator* (float other) const; + FORCE_INLINE Matrix4x4 operator* (float other) const; - FORCEINLINE void operator*=(float other); + FORCE_INLINE void operator*=(float other); - FORCEINLINE bool operator==(const Matrix4x4& other) const; + FORCE_INLINE bool operator==(const Matrix4x4& other) const; - FORCEINLINE bool Equals(const Matrix4x4& other, float tolerance = KINDA_SMALL_NUMBER) const; + FORCE_INLINE bool Equals(const Matrix4x4& other, float tolerance = KINDA_SMALL_NUMBER) const; - FORCEINLINE bool operator!=(const Matrix4x4& other) const; + FORCE_INLINE bool operator!=(const Matrix4x4& other) const; - FORCEINLINE Vector4 TransformVector4(const Vector4& v) const; + FORCE_INLINE Vector4 TransformVector4(const Vector4& v) const; - FORCEINLINE Vector4 TransformPosition(const Vector3 &v) const; + FORCE_INLINE Vector4 TransformPosition(const Vector3 &v) const; - FORCEINLINE Vector3 InverseTransformPosition(const Vector3 &v) const; + FORCE_INLINE Vector3 InverseTransformPosition(const Vector3 &v) const; - FORCEINLINE Vector4 TransformVector(const Vector3& v) const; + FORCE_INLINE Vector4 TransformVector(const Vector3& v) const; - FORCEINLINE Vector3 InverseTransformVector(const Vector3 &v) const; + FORCE_INLINE Vector3 InverseTransformVector(const Vector3 &v) const; - FORCEINLINE Matrix4x4 GetTransposed() const; + FORCE_INLINE Matrix4x4 GetTransposed() const; - FORCEINLINE void SetTransposed(); + FORCE_INLINE void SetTransposed(); - FORCEINLINE float Determinant() const; + FORCE_INLINE float Determinant() const; - FORCEINLINE float RotDeterminant() const; + FORCE_INLINE float RotDeterminant() const; - FORCEINLINE Matrix4x4 InverseFast() const; + FORCE_INLINE Matrix4x4 InverseFast() const; - FORCEINLINE void SetInverseFast(); + FORCE_INLINE void SetInverseFast(); - FORCEINLINE Matrix4x4 Inverse() const; + FORCE_INLINE Matrix4x4 Inverse() const; - FORCEINLINE void SetInverse(); + FORCE_INLINE void SetInverse(); - FORCEINLINE Matrix4x4 TransposeAdjoint() const; + FORCE_INLINE Matrix4x4 TransposeAdjoint() const; - FORCEINLINE void RemoveScaling(float tolerance = SMALL_NUMBER); + FORCE_INLINE void RemoveScaling(float tolerance = SMALL_NUMBER); - FORCEINLINE Matrix4x4 GetMatrixWithoutScale(float tolerance = SMALL_NUMBER) const; + FORCE_INLINE Matrix4x4 GetMatrixWithoutScale(float tolerance = SMALL_NUMBER) const; - FORCEINLINE Vector3 ExtractScaling(float tolerance = SMALL_NUMBER); + FORCE_INLINE Vector3 ExtractScaling(float tolerance = SMALL_NUMBER); - FORCEINLINE Vector3 GetScaleVector(float tolerance = SMALL_NUMBER) const; + FORCE_INLINE Vector3 GetScaleVector(float tolerance = SMALL_NUMBER) const; - FORCEINLINE Vector3 GetRotation() const; + FORCE_INLINE Vector3 GetRotation() const; - FORCEINLINE void SetRotation(const Vector3& rotation); + FORCE_INLINE void SetRotation(const Vector3& rotation); - FORCEINLINE Vector3 GetScale() const; + FORCE_INLINE Vector3 GetScale() const; - FORCEINLINE void ScaleX(float scale); + FORCE_INLINE void ScaleX(float scale); - FORCEINLINE void ScaleY(float scale); + FORCE_INLINE void ScaleY(float scale); - FORCEINLINE void ScaleZ(float scale); + FORCE_INLINE void ScaleZ(float scale); - FORCEINLINE void SetScale(const Vector3& scale, float smooth); + FORCE_INLINE void SetScale(const Vector3& scale, float smooth); - FORCEINLINE Matrix4x4 RemoveTranslation() const; + FORCE_INLINE Matrix4x4 RemoveTranslation() const; - FORCEINLINE Matrix4x4 ConcatTranslation(const Vector3& translation) const; + FORCE_INLINE Matrix4x4 ConcatTranslation(const Vector3& translation) const; - FORCEINLINE bool ContainsNaN() const; + FORCE_INLINE bool ContainsNaN() const; - FORCEINLINE void ScaleTranslation(const Vector3& scale3D); + FORCE_INLINE void ScaleTranslation(const Vector3& scale3D); - FORCEINLINE float GetMaximumAxisScale() const; + FORCE_INLINE float GetMaximumAxisScale() const; - FORCEINLINE Vector3 GetOrigin() const; + FORCE_INLINE Vector3 GetOrigin() const; - FORCEINLINE Vector3 GetScaledAxis(Axis::Type axis) const; + FORCE_INLINE Vector3 GetScaledAxis(Axis::Type axis) const; - FORCEINLINE void GetScaledAxes(Vector3& x, Vector3& y, Vector3& z) const; + FORCE_INLINE void GetScaledAxes(Vector3& x, Vector3& y, Vector3& z) const; - FORCEINLINE Vector3 GetUnitAxis(Axis::Type axis) const; + FORCE_INLINE Vector3 GetUnitAxis(Axis::Type axis) const; - FORCEINLINE void GetUnitAxes(Vector3& x, Vector3& y, Vector3& z) const; + FORCE_INLINE void GetUnitAxes(Vector3& x, Vector3& y, Vector3& z) const; - FORCEINLINE void SetAxis(int32 i, const Vector3& axis); + FORCE_INLINE void SetAxis(int32 i, const Vector3& axis); - FORCEINLINE void SetOrigin(const Vector3& newOrigin); + FORCE_INLINE void SetOrigin(const Vector3& newOrigin); - FORCEINLINE void SetPosition(const Vector3& pos); + FORCE_INLINE void SetPosition(const Vector3& pos); - FORCEINLINE void SetAxes(Vector3* axis0 = nullptr, Vector3* axis1 = nullptr, Vector3* axis2 = nullptr, Vector3* origin = nullptr); + FORCE_INLINE void SetAxes(Vector3* axis0 = nullptr, Vector3* axis1 = nullptr, Vector3* axis2 = nullptr, Vector3* origin = nullptr); - FORCEINLINE Vector3 GetColumn(int32 col) const; + FORCE_INLINE Vector3 GetColumn(int32 col) const; - FORCEINLINE Vector3 GetRight() const; + FORCE_INLINE Vector3 GetRight() const; - FORCEINLINE Vector3 GetUp() const; + FORCE_INLINE Vector3 GetUp() const; - FORCEINLINE Vector3 GetForward() const; + FORCE_INLINE Vector3 GetForward() const; - FORCEINLINE Vector3 GetLeft() const; + FORCE_INLINE Vector3 GetLeft() const; - FORCEINLINE Vector3 GetBackward() const; + FORCE_INLINE Vector3 GetBackward() const; - FORCEINLINE Vector3 GetDown() const; + FORCE_INLINE Vector3 GetDown() const; - FORCEINLINE bool GetFrustumNearPlane(Plane& outPlane) const; + FORCE_INLINE bool GetFrustumNearPlane(Plane& outPlane) const; - FORCEINLINE bool GetFrustumFarPlane(Plane& outPlane) const; + FORCE_INLINE bool GetFrustumFarPlane(Plane& outPlane) const; - FORCEINLINE bool GetFrustumLeftPlane(Plane& outPlane) const; + FORCE_INLINE bool GetFrustumLeftPlane(Plane& outPlane) const; - FORCEINLINE bool GetFrustumRightPlane(Plane& outPlane) const; + FORCE_INLINE bool GetFrustumRightPlane(Plane& outPlane) const; - FORCEINLINE bool GetFrustumTopPlane(Plane& outPlane) const; + FORCE_INLINE bool GetFrustumTopPlane(Plane& outPlane) const; - FORCEINLINE bool GetFrustumBottomPlane(Plane& outPlane) const; + FORCE_INLINE bool GetFrustumBottomPlane(Plane& outPlane) const; - FORCEINLINE void Mirror(Axis::Type mirrorAxis, Axis::Type flipAxis); + FORCE_INLINE void Mirror(Axis::Type mirrorAxis, Axis::Type flipAxis); - FORCEINLINE void To3x4MatrixTranspose(float* Out) const; + FORCE_INLINE void To3x4MatrixTranspose(float* Out) const; Rotator ToRotator() const; Quat ToQuat() const; - FORCEINLINE std::string ToString() const; + FORCE_INLINE std::string ToString() const; - FORCEINLINE static void GetAxisRotation(float u, float v, float w, const float a, const float b, const float c, const float degress, Matrix4x4& m); + FORCE_INLINE static void GetAxisRotation(float u, float v, float w, const float a, const float b, const float c, const float degress, Matrix4x4& m); }; template @@ -249,13 +249,13 @@ class TMatrix }; template -FORCEINLINE TMatrix::TMatrix() +FORCE_INLINE TMatrix::TMatrix() { } template -FORCEINLINE TMatrix::TMatrix(const Matrix4x4& InMatrix) +FORCE_INLINE TMatrix::TMatrix(const Matrix4x4& InMatrix) { for (uint32 RowIndex = 0; (RowIndex < NumRows) && (RowIndex < 4); RowIndex++) { @@ -265,7 +265,7 @@ FORCEINLINE TMatrix::TMatrix(const Matrix4x4& InMatrix) } } -FORCEINLINE Matrix4x4::Matrix4x4() +FORCE_INLINE Matrix4x4::Matrix4x4() { m[0][0] = 1; m[0][1] = 0; m[0][2] = 0; m[0][3] = 0; m[1][0] = 0; m[1][1] = 1; m[1][2] = 0; m[1][3] = 0; @@ -273,7 +273,7 @@ FORCEINLINE Matrix4x4::Matrix4x4() m[3][0] = 0; m[3][1] = 0; m[3][2] = 0; m[3][3] = 1; } -FORCEINLINE Matrix4x4::Matrix4x4(const Plane& inX, const Plane& inY, const Plane& inZ, const Plane& inW) +FORCE_INLINE Matrix4x4::Matrix4x4(const Plane& inX, const Plane& inY, const Plane& inZ, const Plane& inW) { m[0][0] = inX.x; m[0][1] = inX.y; m[0][2] = inX.z; m[0][3] = inX.w; m[1][0] = inY.x; m[1][1] = inY.y; m[1][2] = inY.z; m[1][3] = inY.w; @@ -281,7 +281,7 @@ FORCEINLINE Matrix4x4::Matrix4x4(const Plane& inX, const Plane& inY, const Plane m[3][0] = inW.x; m[3][1] = inW.y; m[3][2] = inW.z; m[3][3] = inW.w; } -FORCEINLINE Matrix4x4::Matrix4x4(const Rotator& rot, const Vector3& origin) +FORCE_INLINE Matrix4x4::Matrix4x4(const Rotator& rot, const Vector3& origin) { float sp, sy, sr; float cp, cy, cr; @@ -294,7 +294,7 @@ FORCEINLINE Matrix4x4::Matrix4x4(const Rotator& rot, const Vector3& origin) m[3][0] = origin.x; m[3][1] = origin.y; m[3][2] = origin.z; m[3][3] = 1.f; } -FORCEINLINE Matrix4x4::Matrix4x4(const Vector3& inX, const Vector3& inY, const Vector3& inZ, const Vector3& inW) +FORCE_INLINE Matrix4x4::Matrix4x4(const Vector3& inX, const Vector3& inY, const Vector3& inZ, const Vector3& inW) { m[0][0] = inX.x; m[0][1] = inX.y; m[0][2] = inX.z; m[0][3] = 0.0f; m[1][0] = inY.x; m[1][1] = inY.y; m[1][2] = inY.z; m[1][3] = 0.0f; @@ -302,7 +302,7 @@ FORCEINLINE Matrix4x4::Matrix4x4(const Vector3& inX, const Vector3& inY, const V m[3][0] = inW.x; m[3][1] = inW.y; m[3][2] = inW.z; m[3][3] = 1.0f; } -FORCEINLINE void Matrix4x4::To3x4MatrixTranspose(float* out) const +FORCE_INLINE void Matrix4x4::To3x4MatrixTranspose(float* out) const { const float* src = &(m[0][0]); float* dest = out; @@ -323,7 +323,7 @@ FORCEINLINE void Matrix4x4::To3x4MatrixTranspose(float* out) const dest[11] = src[14]; // [3][2] } -FORCEINLINE std::string Matrix4x4::ToString() const +FORCE_INLINE std::string Matrix4x4::ToString() const { std::string output; @@ -335,7 +335,7 @@ FORCEINLINE std::string Matrix4x4::ToString() const return output; } -FORCEINLINE void Matrix4x4::SetIdentity() +FORCE_INLINE void Matrix4x4::SetIdentity() { m[0][0] = 1; m[0][1] = 0; m[0][2] = 0; m[0][3] = 0; m[1][0] = 0; m[1][1] = 1; m[1][2] = 0; m[1][3] = 0; @@ -343,19 +343,19 @@ FORCEINLINE void Matrix4x4::SetIdentity() m[3][0] = 0; m[3][1] = 0; m[3][2] = 0; m[3][3] = 1; } -FORCEINLINE void Matrix4x4::PrependRotation(const Rotator& rotator, const Vector3& pivot) +FORCE_INLINE void Matrix4x4::PrependRotation(const Rotator& rotator, const Vector3& pivot) { Matrix4x4 rotMatrix(rotator, pivot); MMath::VectorMatrixMultiply(this, &rotMatrix, this); } -FORCEINLINE void Matrix4x4::AppendRotation(const Rotator& rotator, const Vector3& pivot) +FORCE_INLINE void Matrix4x4::AppendRotation(const Rotator& rotator, const Vector3& pivot) { Matrix4x4 rotMatrix(rotator, pivot); MMath::VectorMatrixMultiply(this, this, &rotMatrix); } -FORCEINLINE void Matrix4x4::PrependRotation(const float degrees, const Vector3& axis, const Vector3* pivot) +FORCE_INLINE void Matrix4x4::PrependRotation(const float degrees, const Vector3& axis, const Vector3* pivot) { Matrix4x4 matrix; if (pivot) { @@ -367,7 +367,7 @@ FORCEINLINE void Matrix4x4::PrependRotation(const float degrees, const Vector3& Prepend(matrix); } -FORCEINLINE void Matrix4x4::AppendRotation(const float degrees, const Vector3& axis, const Vector3* pivot) +FORCE_INLINE void Matrix4x4::AppendRotation(const float degrees, const Vector3& axis, const Vector3* pivot) { Matrix4x4 matrix; if (pivot) { @@ -379,14 +379,14 @@ FORCEINLINE void Matrix4x4::AppendRotation(const float degrees, const Vector3& a Append(matrix); } -FORCEINLINE void Matrix4x4::AppendTranslation(const Vector3& translation) +FORCE_INLINE void Matrix4x4::AppendTranslation(const Vector3& translation) { m[3][0] += translation.x; m[3][1] += translation.y; m[3][2] += translation.z; } -FORCEINLINE void Matrix4x4::TranslateY(float distance) +FORCE_INLINE void Matrix4x4::TranslateY(float distance) { Vector4 pos; Vector4 up; @@ -398,7 +398,7 @@ FORCEINLINE void Matrix4x4::TranslateY(float distance) CopyRawFrom(3, pos); } -FORCEINLINE void Matrix4x4::TranslateZ(float distance) +FORCE_INLINE void Matrix4x4::TranslateZ(float distance) { Vector4 pos; Vector4 dir; @@ -410,7 +410,7 @@ FORCEINLINE void Matrix4x4::TranslateZ(float distance) CopyRawFrom(3, pos); } -FORCEINLINE void Matrix4x4::TranslateAxis(const Vector3& axis, float distance) +FORCE_INLINE void Matrix4x4::TranslateAxis(const Vector3& axis, float distance) { Vector4 pos; CopyRawTo(3, pos); @@ -420,7 +420,7 @@ FORCEINLINE void Matrix4x4::TranslateAxis(const Vector3& axis, float distance) CopyRawFrom(3, pos); } -FORCEINLINE void Matrix4x4::TranslateX(float distance) +FORCE_INLINE void Matrix4x4::TranslateX(float distance) { Vector4 pos; Vector4 right; @@ -432,7 +432,7 @@ FORCEINLINE void Matrix4x4::TranslateX(float distance) CopyRawFrom(3, pos); } -FORCEINLINE void Matrix4x4::GetAxisRotation(float u, float v, float w, const float a, const float b, const float c, const float degress, Matrix4x4& m) +FORCE_INLINE void Matrix4x4::GetAxisRotation(float u, float v, float w, const float a, const float b, const float c, const float degress, Matrix4x4& m) { float rad = degress / 180.0f * PI; @@ -473,7 +473,7 @@ FORCEINLINE void Matrix4x4::GetAxisRotation(float u, float v, float w, const flo m.m[3][3] = 1; } -FORCEINLINE void Matrix4x4::RotateX(float angle, bool local, const Vector3* pivot) +FORCE_INLINE void Matrix4x4::RotateX(float angle, bool local, const Vector3* pivot) { if (local) { Vector3 vec = GetRight(); @@ -484,7 +484,7 @@ FORCEINLINE void Matrix4x4::RotateX(float angle, bool local, const Vector3* pivo } } -FORCEINLINE void Matrix4x4::RotateY(float angle, bool local, const Vector3* pivot) +FORCE_INLINE void Matrix4x4::RotateY(float angle, bool local, const Vector3* pivot) { if (local) { Vector3 vec = GetUp(); @@ -495,7 +495,7 @@ FORCEINLINE void Matrix4x4::RotateY(float angle, bool local, const Vector3* pivo } } -FORCEINLINE void Matrix4x4::RotateZ(float angle, bool local, const Vector3* pivot) +FORCE_INLINE void Matrix4x4::RotateZ(float angle, bool local, const Vector3* pivot) { if (local) { Vector3 vec = GetForward(); @@ -506,7 +506,7 @@ FORCEINLINE void Matrix4x4::RotateZ(float angle, bool local, const Vector3* pivo } } -FORCEINLINE void Matrix4x4::RotateAxis(const Vector3& axis, float angle, const Vector3* pivot) +FORCE_INLINE void Matrix4x4::RotateAxis(const Vector3& axis, float angle, const Vector3* pivot) { Vector3 vec; vec.x = axis.x; @@ -525,14 +525,14 @@ FORCEINLINE void Matrix4x4::RotateAxis(const Vector3& axis, float angle, const V } } -FORCEINLINE void Matrix4x4::PrependTranslation(const Vector3& translation) +FORCE_INLINE void Matrix4x4::PrependTranslation(const Vector3& translation) { Matrix4x4 matrix; matrix.SetOrigin(translation); Prepend(matrix); } -FORCEINLINE void Matrix4x4::AppendScale(const Vector3& scale) +FORCE_INLINE void Matrix4x4::AppendScale(const Vector3& scale) { Matrix4x4 matrix; matrix.SetIdentity(); @@ -542,7 +542,7 @@ FORCEINLINE void Matrix4x4::AppendScale(const Vector3& scale) Append(matrix); } -FORCEINLINE void Matrix4x4::PrependScale(const Vector3& scale) +FORCE_INLINE void Matrix4x4::PrependScale(const Vector3& scale) { Matrix4x4 matrix; matrix.SetIdentity(); @@ -552,17 +552,17 @@ FORCEINLINE void Matrix4x4::PrependScale(const Vector3& scale) Prepend(matrix); } -FORCEINLINE void Matrix4x4::Prepend(const Matrix4x4& other) +FORCE_INLINE void Matrix4x4::Prepend(const Matrix4x4& other) { MMath::VectorMatrixMultiply(this, &other, this); } -FORCEINLINE void Matrix4x4::Append(const Matrix4x4& other) +FORCE_INLINE void Matrix4x4::Append(const Matrix4x4& other) { MMath::VectorMatrixMultiply(this, this, &other); } -FORCEINLINE void Matrix4x4::CopyColumnFrom(int32 column, const Vector4 &vec) +FORCE_INLINE void Matrix4x4::CopyColumnFrom(int32 column, const Vector4 &vec) { m[0][column] = vec.x; m[1][column] = vec.y; @@ -570,7 +570,7 @@ FORCEINLINE void Matrix4x4::CopyColumnFrom(int32 column, const Vector4 &vec) m[3][column] = vec.w; } -FORCEINLINE void Matrix4x4::CopyColumnTo(int32 column, Vector4 &vec) const +FORCE_INLINE void Matrix4x4::CopyColumnTo(int32 column, Vector4 &vec) const { vec.x = m[0][column]; vec.y = m[1][column]; @@ -578,7 +578,7 @@ FORCEINLINE void Matrix4x4::CopyColumnTo(int32 column, Vector4 &vec) const vec.w = m[3][column]; } -FORCEINLINE void Matrix4x4::CopyRawDataFrom(float* rawData) +FORCE_INLINE void Matrix4x4::CopyRawDataFrom(float* rawData) { m[0][0] = rawData[0]; m[0][1] = rawData[1]; m[0][2] = rawData[2]; m[0][3] = rawData[3]; m[1][0] = rawData[4]; m[1][1] = rawData[5]; m[1][2] = rawData[6]; m[1][3] = rawData[7]; @@ -586,7 +586,7 @@ FORCEINLINE void Matrix4x4::CopyRawDataFrom(float* rawData) m[3][0] = rawData[12]; m[3][1] = rawData[13]; m[3][2] = rawData[14]; m[3][3] = rawData[15]; } -FORCEINLINE void Matrix4x4::CopyRawDataTo(float* rawData) const +FORCE_INLINE void Matrix4x4::CopyRawDataTo(float* rawData) const { rawData[0] = m[0][0]; rawData[1] = m[0][1]; @@ -609,7 +609,7 @@ FORCEINLINE void Matrix4x4::CopyRawDataTo(float* rawData) const rawData[15] = m[3][3]; } -FORCEINLINE Vector4 Matrix4x4::DeltaTransformVector(const Vector4& v) const +FORCE_INLINE Vector4 Matrix4x4::DeltaTransformVector(const Vector4& v) const { float x = v.x; float y = v.y; @@ -622,7 +622,7 @@ FORCEINLINE Vector4 Matrix4x4::DeltaTransformVector(const Vector4& v) const ); } -FORCEINLINE void Matrix4x4::Recompose(const Vector4& pos, const Vector4& scale, const Vector4& rot) +FORCE_INLINE void Matrix4x4::Recompose(const Vector4& pos, const Vector4& scale, const Vector4& rot) { SetIdentity(); AppendScale(scale); @@ -648,7 +648,7 @@ FORCEINLINE void Matrix4x4::Recompose(const Vector4& pos, const Vector4& scale, m[3][3] = 1.0f; } -FORCEINLINE void Matrix4x4::Decompose(Style style, Vector4& outPos, Vector4& outScale, Vector4& outRot) const +FORCE_INLINE void Matrix4x4::Decompose(Style style, Vector4& outPos, Vector4& outScale, Vector4& outRot) const { float mr[16] = { 0.0f }; CopyRawDataTo(mr); @@ -729,18 +729,18 @@ FORCEINLINE void Matrix4x4::Decompose(Style style, Vector4& outPos, Vector4& out } } -FORCEINLINE void Matrix4x4::LookAt(float x, float y, float z, const Vector3* up, float smooth) +FORCE_INLINE void Matrix4x4::LookAt(float x, float y, float z, const Vector3* up, float smooth) { Vector3 vector(x - m[3][0], y - m[3][1], z - m[3][2]); SetOrientation(vector, up, smooth); } -FORCEINLINE void Matrix4x4::LookAt(Vector3 target, const Vector3* up, float smooth) +FORCE_INLINE void Matrix4x4::LookAt(Vector3 target, const Vector3* up, float smooth) { LookAt(target.x, target.y, target.z, up, smooth); } -FORCEINLINE void Matrix4x4::SetOrientation(const Vector3& dir, const Vector3* up, float smooth) +FORCE_INLINE void Matrix4x4::SetOrientation(const Vector3& dir, const Vector3* up, float smooth) { Vector3 scale; @@ -802,7 +802,7 @@ FORCEINLINE void Matrix4x4::SetOrientation(const Vector3& dir, const Vector3* up CopyRawFrom(2, Vector4(tempDir, 0.0f)); } -FORCEINLINE void Matrix4x4::CopyRawFrom(int32 raw, const Vector4 &vec) +FORCE_INLINE void Matrix4x4::CopyRawFrom(int32 raw, const Vector4 &vec) { m[raw][0] = vec.x; m[raw][1] = vec.y; @@ -810,7 +810,7 @@ FORCEINLINE void Matrix4x4::CopyRawFrom(int32 raw, const Vector4 &vec) m[raw][3] = vec.w; } -FORCEINLINE void Matrix4x4::CopyRawTo(int32 raw, Vector4 &vec) const +FORCE_INLINE void Matrix4x4::CopyRawTo(int32 raw, Vector4 &vec) const { vec.x = m[raw][0]; vec.y = m[raw][1]; @@ -818,19 +818,19 @@ FORCEINLINE void Matrix4x4::CopyRawTo(int32 raw, Vector4 &vec) const vec.w = m[raw][3]; } -FORCEINLINE void Matrix4x4::operator*=(const Matrix4x4& other) +FORCE_INLINE void Matrix4x4::operator*=(const Matrix4x4& other) { MMath::VectorMatrixMultiply(this, this, &other); } -FORCEINLINE Matrix4x4 Matrix4x4::operator*(const Matrix4x4& other) const +FORCE_INLINE Matrix4x4 Matrix4x4::operator*(const Matrix4x4& other) const { Matrix4x4 result; MMath::VectorMatrixMultiply(&result, this, &other); return result; } -FORCEINLINE Matrix4x4 Matrix4x4::operator+(const Matrix4x4& other) const +FORCE_INLINE Matrix4x4 Matrix4x4::operator+(const Matrix4x4& other) const { Matrix4x4 resultMat; @@ -844,12 +844,12 @@ FORCEINLINE Matrix4x4 Matrix4x4::operator+(const Matrix4x4& other) const return resultMat; } -FORCEINLINE void Matrix4x4::operator+=(const Matrix4x4& other) +FORCE_INLINE void Matrix4x4::operator+=(const Matrix4x4& other) { *this = *this + other; } -FORCEINLINE Matrix4x4 Matrix4x4::operator*(float other) const +FORCE_INLINE Matrix4x4 Matrix4x4::operator*(float other) const { Matrix4x4 resultMat; @@ -863,12 +863,12 @@ FORCEINLINE Matrix4x4 Matrix4x4::operator*(float other) const return resultMat; } -FORCEINLINE void Matrix4x4::operator*=(float other) +FORCE_INLINE void Matrix4x4::operator*=(float other) { *this = *this * other; } -FORCEINLINE bool Matrix4x4::operator==(const Matrix4x4& other) const +FORCE_INLINE bool Matrix4x4::operator==(const Matrix4x4& other) const { for (int32 x = 0; x < 4; x++) { @@ -883,7 +883,7 @@ FORCEINLINE bool Matrix4x4::operator==(const Matrix4x4& other) const return true; } -FORCEINLINE bool Matrix4x4::Equals(const Matrix4x4& other, float tolerance) const +FORCE_INLINE bool Matrix4x4::Equals(const Matrix4x4& other, float tolerance) const { for (int32 x = 0; x < 4; x++) { @@ -898,30 +898,30 @@ FORCEINLINE bool Matrix4x4::Equals(const Matrix4x4& other, float tolerance) cons return true; } -FORCEINLINE bool Matrix4x4::operator!=(const Matrix4x4& other) const +FORCE_INLINE bool Matrix4x4::operator!=(const Matrix4x4& other) const { return !(*this == other); } -FORCEINLINE Vector4 Matrix4x4::TransformVector4(const Vector4 &v) const +FORCE_INLINE Vector4 Matrix4x4::TransformVector4(const Vector4 &v) const { Vector4 result; MMath::VectorTransformVector(&result, &v, this); return result; } -FORCEINLINE Vector4 Matrix4x4::TransformPosition(const Vector3 &v) const +FORCE_INLINE Vector4 Matrix4x4::TransformPosition(const Vector3 &v) const { return TransformVector4(Vector4(v.x, v.y, v.z, 1.0f)); } -FORCEINLINE Vector3 Matrix4x4::InverseTransformPosition(const Vector3 &v) const +FORCE_INLINE Vector3 Matrix4x4::InverseTransformPosition(const Vector3 &v) const { Matrix4x4 invSelf = this->InverseFast(); return invSelf.TransformPosition(v); } -FORCEINLINE Vector4 Matrix4x4::TransformVector(const Vector3& v) const +FORCE_INLINE Vector4 Matrix4x4::TransformVector(const Vector3& v) const { Vector4 col0; Vector4 col1; @@ -941,18 +941,18 @@ FORCEINLINE Vector4 Matrix4x4::TransformVector(const Vector3& v) const return temp; } -FORCEINLINE Vector3 Matrix4x4::InverseTransformVector(const Vector3 &v) const +FORCE_INLINE Vector3 Matrix4x4::InverseTransformVector(const Vector3 &v) const { Matrix4x4 invSelf = this->InverseFast(); return invSelf.TransformVector(v); } -FORCEINLINE void Matrix4x4::SetTransposed() +FORCE_INLINE void Matrix4x4::SetTransposed() { *this = GetTransposed(); } -FORCEINLINE Matrix4x4 Matrix4x4::GetTransposed() const +FORCE_INLINE Matrix4x4 Matrix4x4::GetTransposed() const { Matrix4x4 result; @@ -979,7 +979,7 @@ FORCEINLINE Matrix4x4 Matrix4x4::GetTransposed() const return result; } -FORCEINLINE float Matrix4x4::Determinant() const +FORCE_INLINE float Matrix4x4::Determinant() const { return m[0][0] * ( @@ -1007,7 +1007,7 @@ FORCEINLINE float Matrix4x4::Determinant() const ); } -FORCEINLINE float Matrix4x4::RotDeterminant() const +FORCE_INLINE float Matrix4x4::RotDeterminant() const { return m[0][0] * (m[1][1] * m[2][2] - m[1][2] * m[2][1]) - @@ -1015,24 +1015,24 @@ FORCEINLINE float Matrix4x4::RotDeterminant() const m[2][0] * (m[0][1] * m[1][2] - m[0][2] * m[1][1]); } -FORCEINLINE void Matrix4x4::SetInverseFast() +FORCE_INLINE void Matrix4x4::SetInverseFast() { *this = InverseFast(); } -FORCEINLINE Matrix4x4 Matrix4x4::InverseFast() const +FORCE_INLINE Matrix4x4 Matrix4x4::InverseFast() const { Matrix4x4 result; MMath::VectorMatrixInverse(&result, this); return result; } -FORCEINLINE void Matrix4x4::SetInverse() +FORCE_INLINE void Matrix4x4::SetInverse() { *this = Inverse(); } -FORCEINLINE Matrix4x4 Matrix4x4::Inverse() const +FORCE_INLINE Matrix4x4 Matrix4x4::Inverse() const { Matrix4x4 result; @@ -1057,7 +1057,7 @@ FORCEINLINE Matrix4x4 Matrix4x4::Inverse() const return result; } -FORCEINLINE Matrix4x4 Matrix4x4::TransposeAdjoint() const +FORCE_INLINE Matrix4x4 Matrix4x4::TransposeAdjoint() const { Matrix4x4 ta; @@ -1084,7 +1084,7 @@ FORCEINLINE Matrix4x4 Matrix4x4::TransposeAdjoint() const return ta; } -FORCEINLINE void Matrix4x4::RemoveScaling(float tolerance) +FORCE_INLINE void Matrix4x4::RemoveScaling(float tolerance) { const float squareSum0 = (m[0][0] * m[0][0]) + (m[0][1] * m[0][1]) + (m[0][2] * m[0][2]); const float squareSum1 = (m[1][0] * m[1][0]) + (m[1][1] * m[1][1]) + (m[1][2] * m[1][2]); @@ -1103,14 +1103,14 @@ FORCEINLINE void Matrix4x4::RemoveScaling(float tolerance) m[2][2] *= scale2; } -FORCEINLINE Matrix4x4 Matrix4x4::GetMatrixWithoutScale(float tolerance) const +FORCE_INLINE Matrix4x4 Matrix4x4::GetMatrixWithoutScale(float tolerance) const { Matrix4x4 result = *this; result.RemoveScaling(tolerance); return result; } -FORCEINLINE Vector3 Matrix4x4::ExtractScaling(float tolerance) +FORCE_INLINE Vector3 Matrix4x4::ExtractScaling(float tolerance) { Vector3 scale3D(0, 0, 0); @@ -1163,7 +1163,7 @@ FORCEINLINE Vector3 Matrix4x4::ExtractScaling(float tolerance) return scale3D; } -FORCEINLINE void Matrix4x4::ScaleX(float scale) +FORCE_INLINE void Matrix4x4::ScaleX(float scale) { Vector4 right; CopyRawTo(0, right); @@ -1176,7 +1176,7 @@ FORCEINLINE void Matrix4x4::ScaleX(float scale) CopyRawFrom(0, right); } -FORCEINLINE void Matrix4x4::ScaleY(float scale) +FORCE_INLINE void Matrix4x4::ScaleY(float scale) { Vector4 up; CopyRawTo(1, up); @@ -1189,7 +1189,7 @@ FORCEINLINE void Matrix4x4::ScaleY(float scale) CopyRawFrom(1, up); } -FORCEINLINE void Matrix4x4::ScaleZ(float scale) +FORCE_INLINE void Matrix4x4::ScaleZ(float scale) { Vector4 dir; CopyRawTo(2, dir); @@ -1202,7 +1202,7 @@ FORCEINLINE void Matrix4x4::ScaleZ(float scale) CopyRawFrom(2, dir); } -FORCEINLINE void Matrix4x4::SetScale(const Vector3& scale, float smooth) +FORCE_INLINE void Matrix4x4::SetScale(const Vector3& scale, float smooth) { Vector4 right; CopyRawTo(0, right); @@ -1240,7 +1240,7 @@ FORCEINLINE void Matrix4x4::SetScale(const Vector3& scale, float smooth) CopyRawFrom(2, dir); } -FORCEINLINE void Matrix4x4::SetRotation(const Vector3& rotation) +FORCE_INLINE void Matrix4x4::SetRotation(const Vector3& rotation) { Vector4 pos; Vector4 rot; @@ -1255,7 +1255,7 @@ FORCEINLINE void Matrix4x4::SetRotation(const Vector3& rotation) Recompose(pos, scale, rot); } -FORCEINLINE Vector3 Matrix4x4::GetRotation() const +FORCE_INLINE Vector3 Matrix4x4::GetRotation() const { Vector4 pos; Vector4 rot; @@ -1266,7 +1266,7 @@ FORCEINLINE Vector3 Matrix4x4::GetRotation() const return Vector3(MMath::RadiansToDegrees(rot.x), MMath::RadiansToDegrees(rot.y), MMath::RadiansToDegrees(rot.z)); } -FORCEINLINE Vector3 Matrix4x4::GetScale() const +FORCE_INLINE Vector3 Matrix4x4::GetScale() const { Vector4 temp; @@ -1282,7 +1282,7 @@ FORCEINLINE Vector3 Matrix4x4::GetScale() const return Vector3(scaleX, scaleY, scaleZ); } -FORCEINLINE Vector3 Matrix4x4::GetScaleVector(float tolerance) const +FORCE_INLINE Vector3 Matrix4x4::GetScaleVector(float tolerance) const { Vector3 scale3D(1, 1, 1); @@ -1300,7 +1300,7 @@ FORCEINLINE Vector3 Matrix4x4::GetScaleVector(float tolerance) const return scale3D; } -FORCEINLINE Matrix4x4 Matrix4x4::RemoveTranslation() const +FORCE_INLINE Matrix4x4 Matrix4x4::RemoveTranslation() const { Matrix4x4 result = *this; result.m[3][0] = 0.0f; @@ -1309,7 +1309,7 @@ FORCEINLINE Matrix4x4 Matrix4x4::RemoveTranslation() const return result; } -FORCEINLINE Matrix4x4 Matrix4x4::ConcatTranslation(const Vector3& translation) const +FORCE_INLINE Matrix4x4 Matrix4x4::ConcatTranslation(const Vector3& translation) const { Matrix4x4 result; @@ -1337,7 +1337,7 @@ FORCEINLINE Matrix4x4 Matrix4x4::ConcatTranslation(const Vector3& translation) c return result; } -FORCEINLINE bool Matrix4x4::ContainsNaN() const +FORCE_INLINE bool Matrix4x4::ContainsNaN() const { for (int32 i = 0; i < 4; i++) { @@ -1352,7 +1352,7 @@ FORCEINLINE bool Matrix4x4::ContainsNaN() const return false; } -FORCEINLINE float Matrix4x4::GetMaximumAxisScale() const +FORCE_INLINE float Matrix4x4::GetMaximumAxisScale() const { const float maxRowScaleSquared = MMath::Max( GetScaledAxis(Axis::X).SizeSquared(), @@ -1364,19 +1364,19 @@ FORCEINLINE float Matrix4x4::GetMaximumAxisScale() const return MMath::Sqrt(maxRowScaleSquared); } -FORCEINLINE void Matrix4x4::ScaleTranslation(const Vector3& inScale3D) +FORCE_INLINE void Matrix4x4::ScaleTranslation(const Vector3& inScale3D) { m[3][0] *= inScale3D.x; m[3][1] *= inScale3D.y; m[3][2] *= inScale3D.z; } -FORCEINLINE Vector3 Matrix4x4::GetOrigin() const +FORCE_INLINE Vector3 Matrix4x4::GetOrigin() const { return Vector3(m[3][0], m[3][1], m[3][2]); } -FORCEINLINE Vector3 Matrix4x4::GetScaledAxis(Axis::Type inAxis) const +FORCE_INLINE Vector3 Matrix4x4::GetScaledAxis(Axis::Type inAxis) const { switch (inAxis) { @@ -1394,19 +1394,19 @@ FORCEINLINE Vector3 Matrix4x4::GetScaledAxis(Axis::Type inAxis) const } } -FORCEINLINE void Matrix4x4::GetScaledAxes(Vector3 &x, Vector3 &y, Vector3 &z) const +FORCE_INLINE void Matrix4x4::GetScaledAxes(Vector3 &x, Vector3 &y, Vector3 &z) const { x.x = m[0][0]; x.y = m[0][1]; x.z = m[0][2]; y.x = m[1][0]; y.y = m[1][1]; y.z = m[1][2]; z.x = m[2][0]; z.y = m[2][1]; z.z = m[2][2]; } -FORCEINLINE Vector3 Matrix4x4::GetUnitAxis(Axis::Type inAxis) const +FORCE_INLINE Vector3 Matrix4x4::GetUnitAxis(Axis::Type inAxis) const { return GetScaledAxis(inAxis).GetSafeNormal(); } -FORCEINLINE void Matrix4x4::GetUnitAxes(Vector3 &x, Vector3 &y, Vector3 &z) const +FORCE_INLINE void Matrix4x4::GetUnitAxes(Vector3 &x, Vector3 &y, Vector3 &z) const { GetScaledAxes(x, y, z); x.Normalize(); @@ -1414,28 +1414,28 @@ FORCEINLINE void Matrix4x4::GetUnitAxes(Vector3 &x, Vector3 &y, Vector3 &z) cons z.Normalize(); } -FORCEINLINE void Matrix4x4::SetAxis(int32 i, const Vector3& axis) +FORCE_INLINE void Matrix4x4::SetAxis(int32 i, const Vector3& axis) { m[i][0] = axis.x; m[i][1] = axis.y; m[i][2] = axis.z; } -FORCEINLINE void Matrix4x4::SetOrigin(const Vector3& newOrigin) +FORCE_INLINE void Matrix4x4::SetOrigin(const Vector3& newOrigin) { m[3][0] = newOrigin.x; m[3][1] = newOrigin.y; m[3][2] = newOrigin.z; } -FORCEINLINE void Matrix4x4::SetPosition(const Vector3& pos) +FORCE_INLINE void Matrix4x4::SetPosition(const Vector3& pos) { m[3][0] = pos.x; m[3][1] = pos.y; m[3][2] = pos.z; } -FORCEINLINE void Matrix4x4::SetAxes(Vector3* axis0, Vector3* axis1, Vector3* axis2, Vector3* origin) +FORCE_INLINE void Matrix4x4::SetAxes(Vector3* axis0, Vector3* axis1, Vector3* axis2, Vector3* origin) { if (axis0 != NULL) { @@ -1463,54 +1463,54 @@ FORCEINLINE void Matrix4x4::SetAxes(Vector3* axis0, Vector3* axis1, Vector3* axi } } -FORCEINLINE Vector3 Matrix4x4::GetRight() const +FORCE_INLINE Vector3 Matrix4x4::GetRight() const { Vector4 right; CopyRawTo(0, right); return Vector3(right.x, right.y, right.z); } -FORCEINLINE Vector3 Matrix4x4::GetUp() const +FORCE_INLINE Vector3 Matrix4x4::GetUp() const { Vector4 up; CopyRawTo(1, up); return Vector3(up.x, up.y, up.z); } -FORCEINLINE Vector3 Matrix4x4::GetForward() const +FORCE_INLINE Vector3 Matrix4x4::GetForward() const { Vector4 forward; CopyRawTo(2, forward); return Vector3(forward.x, forward.y, forward.z); } -FORCEINLINE Vector3 Matrix4x4::GetLeft() const +FORCE_INLINE Vector3 Matrix4x4::GetLeft() const { Vector4 right; CopyRawTo(0, right); return Vector3(-right.x, -right.y, -right.z); } -FORCEINLINE Vector3 Matrix4x4::GetBackward() const +FORCE_INLINE Vector3 Matrix4x4::GetBackward() const { Vector4 forward; CopyRawTo(2, forward); return Vector3(-forward.x, -forward.y, -forward.z); } -FORCEINLINE Vector3 Matrix4x4::GetDown() const +FORCE_INLINE Vector3 Matrix4x4::GetDown() const { Vector4 up; CopyRawTo(1, up); return Vector3(-up.x, -up.y, -up.z); } -FORCEINLINE Vector3 Matrix4x4::GetColumn(int32 i) const +FORCE_INLINE Vector3 Matrix4x4::GetColumn(int32 i) const { return Vector3(m[0][i], m[1][i], m[2][i]); } -FORCEINLINE bool MakeFrustumPlane(float a, float b, float c, float d, Plane& outPlane) +FORCE_INLINE bool MakeFrustumPlane(float a, float b, float c, float d, Plane& outPlane) { const float lengthSquared = a * a + b * b + c * c; if (lengthSquared > DELTA * DELTA) @@ -1525,7 +1525,7 @@ FORCEINLINE bool MakeFrustumPlane(float a, float b, float c, float d, Plane& out } } -FORCEINLINE bool Matrix4x4::GetFrustumNearPlane(Plane& outPlane) const +FORCE_INLINE bool Matrix4x4::GetFrustumNearPlane(Plane& outPlane) const { return MakeFrustumPlane( m[0][2], @@ -1536,7 +1536,7 @@ FORCEINLINE bool Matrix4x4::GetFrustumNearPlane(Plane& outPlane) const ); } -FORCEINLINE bool Matrix4x4::GetFrustumFarPlane(Plane& outPlane) const +FORCE_INLINE bool Matrix4x4::GetFrustumFarPlane(Plane& outPlane) const { return MakeFrustumPlane( m[0][3] - m[0][2], @@ -1547,7 +1547,7 @@ FORCEINLINE bool Matrix4x4::GetFrustumFarPlane(Plane& outPlane) const ); } -FORCEINLINE bool Matrix4x4::GetFrustumLeftPlane(Plane& outPlane) const +FORCE_INLINE bool Matrix4x4::GetFrustumLeftPlane(Plane& outPlane) const { return MakeFrustumPlane( m[0][3] + m[0][0], @@ -1558,7 +1558,7 @@ FORCEINLINE bool Matrix4x4::GetFrustumLeftPlane(Plane& outPlane) const ); } -FORCEINLINE bool Matrix4x4::GetFrustumRightPlane(Plane& outPlane) const +FORCE_INLINE bool Matrix4x4::GetFrustumRightPlane(Plane& outPlane) const { return MakeFrustumPlane( m[0][3] - m[0][0], @@ -1569,7 +1569,7 @@ FORCEINLINE bool Matrix4x4::GetFrustumRightPlane(Plane& outPlane) const ); } -FORCEINLINE bool Matrix4x4::GetFrustumTopPlane(Plane& outPlane) const +FORCE_INLINE bool Matrix4x4::GetFrustumTopPlane(Plane& outPlane) const { return MakeFrustumPlane( m[0][3] - m[0][1], @@ -1580,7 +1580,7 @@ FORCEINLINE bool Matrix4x4::GetFrustumTopPlane(Plane& outPlane) const ); } -FORCEINLINE bool Matrix4x4::GetFrustumBottomPlane(Plane& outPlane) const +FORCE_INLINE bool Matrix4x4::GetFrustumBottomPlane(Plane& outPlane) const { return MakeFrustumPlane( m[0][3] + m[0][1], @@ -1591,7 +1591,7 @@ FORCEINLINE bool Matrix4x4::GetFrustumBottomPlane(Plane& outPlane) const ); } -FORCEINLINE void Matrix4x4::Mirror(Axis::Type mirrorAxis, Axis::Type flipAxis) +FORCE_INLINE void Matrix4x4::Mirror(Axis::Type mirrorAxis, Axis::Type flipAxis) { if (mirrorAxis == Axis::X) { @@ -1635,7 +1635,7 @@ FORCEINLINE void Matrix4x4::Mirror(Axis::Type mirrorAxis, Axis::Type flipAxis) } } -FORCEINLINE void Matrix4x4::Perspective(float fovy, float width, float height, float zNear, float zFar) +FORCE_INLINE void Matrix4x4::Perspective(float fovy, float width, float height, float zNear, float zFar) { float aspect = width / height; float tanHalfFovy = MMath::Tan(fovy / 2); @@ -1646,7 +1646,7 @@ FORCEINLINE void Matrix4x4::Perspective(float fovy, float width, float height, f m[3][0] = 0.0f; m[3][1] = 0.0f; m[3][2] = zFar * zNear / (zNear - zFar); m[3][3] = 0.0f; } -FORCEINLINE void Matrix4x4::Orthographic(float left, float right, float bottom, float top, float zNear, float zFar) +FORCE_INLINE void Matrix4x4::Orthographic(float left, float right, float bottom, float top, float zNear, float zFar) { m[0][0] = 2.0f / (right - left); m[0][1] = 0.0f; m[0][2] = 0.0f; m[0][3] = 0.0f; m[1][0] = 0.0f; m[1][1] = 2.0f / (top - bottom); m[1][2] = 0.0f; m[1][3] = 0.0f; diff --git a/Engine/Monkey/Math/Plane.h b/Engine/Monkey/Math/Plane.h index 82b32dc5..45e3b5e6 100644 --- a/Engine/Monkey/Math/Plane.h +++ b/Engine/Monkey/Math/Plane.h @@ -27,98 +27,98 @@ struct Plane : public Vector3 Plane(Vector3 a, Vector3 b, Vector3 c); - FORCEINLINE float PlaneDot(const Vector3 &p) const; + FORCE_INLINE float PlaneDot(const Vector3 &p) const; - FORCEINLINE bool Normalize(float tolerance = SMALL_NUMBER); + FORCE_INLINE bool Normalize(float tolerance = SMALL_NUMBER); - FORCEINLINE Plane Flip() const; + FORCE_INLINE Plane Flip() const; - FORCEINLINE Plane TransformBy(const Matrix4x4& m) const; + FORCE_INLINE Plane TransformBy(const Matrix4x4& m) const; - FORCEINLINE Plane TransformByUsingAdjointT(const Matrix4x4& m, float detM, const Matrix4x4& ta) const; + FORCE_INLINE Plane TransformByUsingAdjointT(const Matrix4x4& m, float detM, const Matrix4x4& ta) const; - FORCEINLINE bool operator==(const Plane& v) const; + FORCE_INLINE bool operator==(const Plane& v) const; - FORCEINLINE bool operator!=(const Plane& v) const; + FORCE_INLINE bool operator!=(const Plane& v) const; - FORCEINLINE bool Equals(const Plane& v, float tolerance = KINDA_SMALL_NUMBER) const; + FORCE_INLINE bool Equals(const Plane& v, float tolerance = KINDA_SMALL_NUMBER) const; - FORCEINLINE float operator|(const Plane& v) const; + FORCE_INLINE float operator|(const Plane& v) const; - FORCEINLINE Plane operator+(const Plane& v) const; + FORCE_INLINE Plane operator+(const Plane& v) const; - FORCEINLINE Plane operator-(const Plane& v) const; + FORCE_INLINE Plane operator-(const Plane& v) const; - FORCEINLINE Plane operator/(float scale) const; + FORCE_INLINE Plane operator/(float scale) const; - FORCEINLINE Plane operator*(float scale) const; + FORCE_INLINE Plane operator*(float scale) const; - FORCEINLINE Plane operator*(const Plane& v); + FORCE_INLINE Plane operator*(const Plane& v); - FORCEINLINE Plane operator+=(const Plane& v); + FORCE_INLINE Plane operator+=(const Plane& v); - FORCEINLINE Plane operator-=(const Plane& v); + FORCE_INLINE Plane operator-=(const Plane& v); - FORCEINLINE Plane operator*=(float scale); + FORCE_INLINE Plane operator*=(float scale); - FORCEINLINE Plane operator*=(const Plane& v); + FORCE_INLINE Plane operator*=(const Plane& v); - FORCEINLINE Plane operator/=(float v); + FORCE_INLINE Plane operator/=(float v); }; -FORCEINLINE Plane::Plane() +FORCE_INLINE Plane::Plane() { } -FORCEINLINE Plane::Plane(const Plane& p) +FORCE_INLINE Plane::Plane(const Plane& p) : Vector3(p) , w(p.w) { } -FORCEINLINE Plane::Plane(const Vector4& v) +FORCE_INLINE Plane::Plane(const Vector4& v) : Vector3(v) , w(v.w) { } -FORCEINLINE Plane::Plane(float inX, float inY, float inZ, float inW) +FORCE_INLINE Plane::Plane(float inX, float inY, float inZ, float inW) : Vector3(inX, inY, inZ) , w(inW) { } -FORCEINLINE Plane::Plane(Vector3 inNormal, float inW) +FORCE_INLINE Plane::Plane(Vector3 inNormal, float inW) : Vector3(inNormal) , w(inW) { } -FORCEINLINE Plane::Plane(Vector3 inBase, const Vector3 &inNormal) +FORCE_INLINE Plane::Plane(Vector3 inBase, const Vector3 &inNormal) : Vector3(inNormal) , w(inBase | inNormal) { } -FORCEINLINE Plane::Plane(Vector3 a, Vector3 b, Vector3 c) +FORCE_INLINE Plane::Plane(Vector3 a, Vector3 b, Vector3 c) : Vector3(((b - a) ^ (c - a)).GetSafeNormal()) { w = a | (Vector3)(*this); } -FORCEINLINE float Plane::PlaneDot(const Vector3 &p) const +FORCE_INLINE float Plane::PlaneDot(const Vector3 &p) const { return x * p.x + y * p.y + z * p.z - w; } -FORCEINLINE bool Plane::Normalize(float tolerance) +FORCE_INLINE bool Plane::Normalize(float tolerance) { const float squareSum = x * x + y * y + z * z; if (squareSum > tolerance) @@ -133,58 +133,58 @@ FORCEINLINE bool Plane::Normalize(float tolerance) return false; } -FORCEINLINE Plane Plane::Flip() const +FORCE_INLINE Plane Plane::Flip() const { return Plane(-x, -y, -z, -w); } -FORCEINLINE bool Plane::operator==(const Plane& v) const +FORCE_INLINE bool Plane::operator==(const Plane& v) const { return (x == v.x) && (y == v.y) && (z == v.z) && (w == v.w); } -FORCEINLINE bool Plane::operator!=(const Plane& v) const +FORCE_INLINE bool Plane::operator!=(const Plane& v) const { return (x != v.x) || (y != v.y) || (z != v.z) || (w != v.w); } -FORCEINLINE bool Plane::Equals(const Plane& v, float tolerance) const +FORCE_INLINE bool Plane::Equals(const Plane& v, float tolerance) const { return (MMath::Abs(x - v.x) < tolerance) && (MMath::Abs(y - v.y) < tolerance) && (MMath::Abs(z - v.z) < tolerance) && (MMath::Abs(w - v.w) < tolerance); } -FORCEINLINE float Plane::operator|(const Plane& v) const +FORCE_INLINE float Plane::operator|(const Plane& v) const { return x * v.x + y * v.y + z * v.z + w * v.w; } -FORCEINLINE Plane Plane::operator+(const Plane& v) const +FORCE_INLINE Plane Plane::operator+(const Plane& v) const { return Plane(x + v.x, y + v.y, z + v.z, w + v.w); } -FORCEINLINE Plane Plane::operator-(const Plane& v) const +FORCE_INLINE Plane Plane::operator-(const Plane& v) const { return Plane(x - v.x, y - v.y, z - v.z, w - v.w); } -FORCEINLINE Plane Plane::operator/(float scale) const +FORCE_INLINE Plane Plane::operator/(float scale) const { const float RScale = 1.f / scale; return Plane(x * RScale, y * RScale, z * RScale, w * RScale); } -FORCEINLINE Plane Plane::operator*(float scale) const +FORCE_INLINE Plane Plane::operator*(float scale) const { return Plane(x * scale, y * scale, z * scale, w * scale); } -FORCEINLINE Plane Plane::operator*(const Plane& v) +FORCE_INLINE Plane Plane::operator*(const Plane& v) { return Plane(x * v.x, y * v.y, z * v.z, w * v.w); } -FORCEINLINE Plane Plane::operator+=(const Plane& v) +FORCE_INLINE Plane Plane::operator+=(const Plane& v) { x += v.x; y += v.y; @@ -193,7 +193,7 @@ FORCEINLINE Plane Plane::operator+=(const Plane& v) return *this; } -FORCEINLINE Plane Plane::operator-=(const Plane& v) +FORCE_INLINE Plane Plane::operator-=(const Plane& v) { x -= v.x; y -= v.y; @@ -202,7 +202,7 @@ FORCEINLINE Plane Plane::operator-=(const Plane& v) return *this; } -FORCEINLINE Plane Plane::operator*=(float scale) +FORCE_INLINE Plane Plane::operator*=(float scale) { x *= scale; y *= scale; @@ -211,7 +211,7 @@ FORCEINLINE Plane Plane::operator*=(float scale) return *this; } -FORCEINLINE Plane Plane::operator*=(const Plane& v) +FORCE_INLINE Plane Plane::operator*=(const Plane& v) { x *= v.x; y *= v.y; @@ -220,7 +220,7 @@ FORCEINLINE Plane Plane::operator*=(const Plane& v) return *this; } -FORCEINLINE Plane Plane::operator/=(float v) +FORCE_INLINE Plane Plane::operator/=(float v) { const float rv = 1.f / v; x *= rv; diff --git a/Engine/Monkey/Math/Quat.h b/Engine/Monkey/Math/Quat.h index 6c606a51..8de9c400 100644 --- a/Engine/Monkey/Math/Quat.h +++ b/Engine/Monkey/Math/Quat.h @@ -33,149 +33,149 @@ struct Quat explicit Quat(const Rotator& r); - FORCEINLINE Quat operator+(const Quat& q) const; + FORCE_INLINE Quat operator+(const Quat& q) const; - FORCEINLINE Quat operator+=(const Quat& q); + FORCE_INLINE Quat operator+=(const Quat& q); - FORCEINLINE Quat operator-(const Quat& q) const; + FORCE_INLINE Quat operator-(const Quat& q) const; - FORCEINLINE bool Equals(const Quat& q, float tolerance = KINDA_SMALL_NUMBER) const; + FORCE_INLINE bool Equals(const Quat& q, float tolerance = KINDA_SMALL_NUMBER) const; - FORCEINLINE bool IsIdentity(float tolerance = SMALL_NUMBER) const; + FORCE_INLINE bool IsIdentity(float tolerance = SMALL_NUMBER) const; - FORCEINLINE Quat operator-=(const Quat& q); + FORCE_INLINE Quat operator-=(const Quat& q); - FORCEINLINE Quat operator*(const Quat& q) const; + FORCE_INLINE Quat operator*(const Quat& q) const; - FORCEINLINE Quat operator*=(const Quat& q); + FORCE_INLINE Quat operator*=(const Quat& q); - FORCEINLINE Vector3 operator*(const Vector3& v) const; + FORCE_INLINE Vector3 operator*(const Vector3& v) const; - FORCEINLINE Matrix4x4 operator*(const Matrix4x4& m) const; + FORCE_INLINE Matrix4x4 operator*(const Matrix4x4& m) const; - FORCEINLINE Quat operator*=(const float scale); + FORCE_INLINE Quat operator*=(const float scale); - FORCEINLINE Quat operator*(const float scale) const; + FORCE_INLINE Quat operator*(const float scale) const; - FORCEINLINE Quat operator/=(const float scale); + FORCE_INLINE Quat operator/=(const float scale); - FORCEINLINE Quat operator/(const float scale) const; + FORCE_INLINE Quat operator/(const float scale) const; - FORCEINLINE bool operator==(const Quat& q) const; + FORCE_INLINE bool operator==(const Quat& q) const; - FORCEINLINE bool operator!=(const Quat& q) const; + FORCE_INLINE bool operator!=(const Quat& q) const; - FORCEINLINE float operator|(const Quat& q) const; + FORCE_INLINE float operator|(const Quat& q) const; - FORCEINLINE Vector3 Euler() const; + FORCE_INLINE Vector3 Euler() const; - FORCEINLINE void Normalize(float tolerance = SMALL_NUMBER); + FORCE_INLINE void Normalize(float tolerance = SMALL_NUMBER); - FORCEINLINE Quat GetNormalized(float tolerance = SMALL_NUMBER) const; + FORCE_INLINE Quat GetNormalized(float tolerance = SMALL_NUMBER) const; - FORCEINLINE bool IsNormalized() const; + FORCE_INLINE bool IsNormalized() const; - FORCEINLINE float Size() const; + FORCE_INLINE float Size() const; - FORCEINLINE float SizeSquared() const; + FORCE_INLINE float SizeSquared() const; - FORCEINLINE float GetAngle() const; + FORCE_INLINE float GetAngle() const; - FORCEINLINE void ToAxisAndAngle(Vector3& axis, float& angle) const; + FORCE_INLINE void ToAxisAndAngle(Vector3& axis, float& angle) const; - FORCEINLINE void ToSwingTwist(const Vector3& inTwistAxis, Quat& outSwing, Quat& outTwist) const; + FORCE_INLINE void ToSwingTwist(const Vector3& inTwistAxis, Quat& outSwing, Quat& outTwist) const; - FORCEINLINE Vector3 RotateVector(Vector3 v) const; + FORCE_INLINE Vector3 RotateVector(Vector3 v) const; - FORCEINLINE Vector3 UnrotateVector(Vector3 v) const; + FORCE_INLINE Vector3 UnrotateVector(Vector3 v) const; - FORCEINLINE Quat Log() const; + FORCE_INLINE Quat Log() const; - FORCEINLINE Quat Exp() const; + FORCE_INLINE Quat Exp() const; - FORCEINLINE Quat Inverse() const; + FORCE_INLINE Quat Inverse() const; - FORCEINLINE void EnforceShortestArcWith(const Quat& otherQuat); + FORCE_INLINE void EnforceShortestArcWith(const Quat& otherQuat); - FORCEINLINE Vector3 GetAxisX() const; + FORCE_INLINE Vector3 GetAxisX() const; - FORCEINLINE Vector3 GetAxisY() const; + FORCE_INLINE Vector3 GetAxisY() const; - FORCEINLINE Vector3 GetAxisZ() const; + FORCE_INLINE Vector3 GetAxisZ() const; - FORCEINLINE Vector3 GetForwardVector() const; + FORCE_INLINE Vector3 GetForwardVector() const; - FORCEINLINE Vector3 GetRightVector() const; + FORCE_INLINE Vector3 GetRightVector() const; - FORCEINLINE Vector3 GetUpVector() const; + FORCE_INLINE Vector3 GetUpVector() const; - FORCEINLINE Vector3 GetVector() const; + FORCE_INLINE Vector3 GetVector() const; - FORCEINLINE Rotator GetRotator() const; + FORCE_INLINE Rotator GetRotator() const; - FORCEINLINE Vector3 GetRotationAxis() const; + FORCE_INLINE Vector3 GetRotationAxis() const; - FORCEINLINE Matrix4x4 ToMatrix() const; + FORCE_INLINE Matrix4x4 ToMatrix() const; - FORCEINLINE void ToMatrix(Matrix4x4& outMatrix) const; + FORCE_INLINE void ToMatrix(Matrix4x4& outMatrix) const; - FORCEINLINE float AngularDistance(const Quat& q) const; + FORCE_INLINE float AngularDistance(const Quat& q) const; - FORCEINLINE bool ContainsNaN() const; + FORCE_INLINE bool ContainsNaN() const; - FORCEINLINE std::string ToString() const; + FORCE_INLINE std::string ToString() const; - static FORCEINLINE Quat MakeFromEuler(const Vector3& euler); + static FORCE_INLINE Quat MakeFromEuler(const Vector3& euler); static Quat FindBetweenNormals(const Vector3& normal1, const Vector3& mormal2); static Quat FindBetweenVectors(const Vector3& vector1, const Vector3& vector2); - static FORCEINLINE float Error(const Quat& q1, const Quat& q2); + static FORCE_INLINE float Error(const Quat& q1, const Quat& q2); - static FORCEINLINE float ErrorAutoNormalize(const Quat& a, const Quat& b); + static FORCE_INLINE float ErrorAutoNormalize(const Quat& a, const Quat& b); - static FORCEINLINE Quat FastLerp(const Quat& a, const Quat& b, const float alpha); + static FORCE_INLINE Quat FastLerp(const Quat& a, const Quat& b, const float alpha); - static FORCEINLINE Quat FastBilerp(const Quat& p00, const Quat& p10, const Quat& p01, const Quat& p11, float fracX, float fracY); + static FORCE_INLINE Quat FastBilerp(const Quat& p00, const Quat& p10, const Quat& p01, const Quat& p11, float fracX, float fracY); static Quat SlerpNotNormalized(const Quat &quat1, const Quat &quat2, float slerp); static Quat SlerpFullPathNotNormalized(const Quat &quat1, const Quat &quat2, float alpha); - static FORCEINLINE Quat Squad(const Quat& quat1, const Quat& tang1, const Quat& quat2, const Quat& tang2, float alpha); + static FORCE_INLINE Quat Squad(const Quat& quat1, const Quat& tang1, const Quat& quat2, const Quat& tang2, float alpha); - static FORCEINLINE Quat SquadFullPath(const Quat& quat1, const Quat& tang1, const Quat& quat2, const Quat& tang2, float alpha); + static FORCE_INLINE Quat SquadFullPath(const Quat& quat1, const Quat& tang1, const Quat& quat2, const Quat& tang2, float alpha); - static FORCEINLINE void CalcTangents(const Quat& prevP, const Quat& p, const Quat& nextP, float tension, Quat& outTan); + static FORCE_INLINE void CalcTangents(const Quat& prevP, const Quat& p, const Quat& nextP, float tension, Quat& outTan); - static FORCEINLINE Quat slerp(const Quat &quat1, const Quat &quat2, float slerp) + static FORCE_INLINE Quat slerp(const Quat &quat1, const Quat &quat2, float slerp) { return SlerpNotNormalized(quat1, quat2, slerp).GetNormalized(); } - static FORCEINLINE Quat SlerpFullPath(const Quat &quat1, const Quat &quat2, float alpha) + static FORCE_INLINE Quat SlerpFullPath(const Quat &quat1, const Quat &quat2, float alpha) { return SlerpFullPathNotNormalized(quat1, quat2, alpha).GetNormalized(); } - static FORCEINLINE Quat FindBetween(const Vector3& vector1, const Vector3& vector2) + static FORCE_INLINE Quat FindBetween(const Vector3& vector1, const Vector3& vector2) { return FindBetweenVectors(vector1, vector2); } - FORCEINLINE void DiagnosticCheckNaN() const + FORCE_INLINE void DiagnosticCheckNaN() const { } - FORCEINLINE void DiagnosticCheckNaN(const char* Message) const + FORCE_INLINE void DiagnosticCheckNaN(const char* Message) const { } }; -FORCEINLINE Quat::Quat(const Matrix4x4& m) +FORCE_INLINE Quat::Quat(const Matrix4x4& m) { if (m.GetScaledAxis(Axis::X).IsNearlyZero() || m.GetScaledAxis(Axis::Y).IsNearlyZero() || m.GetScaledAxis(Axis::Z).IsNearlyZero()) { @@ -235,18 +235,18 @@ FORCEINLINE Quat::Quat(const Matrix4x4& m) } } -FORCEINLINE Quat::Quat(const Rotator& r) +FORCE_INLINE Quat::Quat(const Rotator& r) { *this = r.Quaternion(); DiagnosticCheckNaN(); } -FORCEINLINE Quat::Quat() +FORCE_INLINE Quat::Quat() { } -FORCEINLINE Quat::Quat(float inX, float inY, float inZ, float inW) +FORCE_INLINE Quat::Quat(float inX, float inY, float inZ, float inW) : x(inX) , y(inY) , z(inZ) @@ -255,7 +255,7 @@ FORCEINLINE Quat::Quat(float inX, float inY, float inZ, float inW) DiagnosticCheckNaN(); } -FORCEINLINE Quat::Quat(const Quat& q) +FORCE_INLINE Quat::Quat(const Quat& q) : x(q.x) , y(q.y) , z(q.z) @@ -264,7 +264,7 @@ FORCEINLINE Quat::Quat(const Quat& q) } -FORCEINLINE Quat::Quat(Vector3 axis, float angleRad) +FORCE_INLINE Quat::Quat(Vector3 axis, float angleRad) { const float halfA = 0.5f * angleRad; float s, c; @@ -278,12 +278,12 @@ FORCEINLINE Quat::Quat(Vector3 axis, float angleRad) DiagnosticCheckNaN(); } -FORCEINLINE Vector3 Quat::operator*(const Vector3& v) const +FORCE_INLINE Vector3 Quat::operator*(const Vector3& v) const { return RotateVector(v); } -FORCEINLINE Matrix4x4 Quat::operator*(const Matrix4x4& m) const +FORCE_INLINE Matrix4x4 Quat::operator*(const Matrix4x4& m) const { Matrix4x4 result; Quat vt, vr; @@ -301,17 +301,17 @@ FORCEINLINE Matrix4x4 Quat::operator*(const Matrix4x4& m) const return result; } -FORCEINLINE std::string Quat::ToString() const +FORCE_INLINE std::string Quat::ToString() const { return StringUtils::Printf("x=%.9f y=%.9f z=%.9f w=%.9f", x, y, z, w); } -FORCEINLINE Quat Quat::operator+(const Quat& q) const +FORCE_INLINE Quat Quat::operator+(const Quat& q) const { return Quat(x + q.x, y + q.y, z + q.z, w + q.w); } -FORCEINLINE Quat Quat::operator+=(const Quat& q) +FORCE_INLINE Quat Quat::operator+=(const Quat& q) { this->x += q.x; this->y += q.y; @@ -321,23 +321,23 @@ FORCEINLINE Quat Quat::operator+=(const Quat& q) return *this; } -FORCEINLINE Quat Quat::operator-(const Quat& q) const +FORCE_INLINE Quat Quat::operator-(const Quat& q) const { return Quat(x - q.x, y - q.y, z - q.z, w - q.w); } -FORCEINLINE bool Quat::Equals(const Quat& q, float tolerance) const +FORCE_INLINE bool Quat::Equals(const Quat& q, float tolerance) const { return (MMath::Abs(x - q.x) <= tolerance && MMath::Abs(y - q.y) <= tolerance && MMath::Abs(z - q.z) <= tolerance && MMath::Abs(w - q.w) <= tolerance) || (MMath::Abs(x + q.x) <= tolerance && MMath::Abs(y + q.y) <= tolerance && MMath::Abs(z + q.z) <= tolerance && MMath::Abs(w + q.w) <= tolerance); } -FORCEINLINE bool Quat::IsIdentity(float tolerance) const +FORCE_INLINE bool Quat::IsIdentity(float tolerance) const { return Equals(Quat::Identity, tolerance); } -FORCEINLINE Quat Quat::operator-=(const Quat& q) +FORCE_INLINE Quat Quat::operator-=(const Quat& q) { this->x -= q.x; this->y -= q.y; @@ -347,13 +347,13 @@ FORCEINLINE Quat Quat::operator-=(const Quat& q) return *this; } -FORCEINLINE Quat Quat::operator*=(const Quat& q) +FORCE_INLINE Quat Quat::operator*=(const Quat& q) { MMath::VectorQuaternionMultiply(this, this, &q); return *this; } -FORCEINLINE Quat Quat::operator*(const Quat& q) const +FORCE_INLINE Quat Quat::operator*(const Quat& q) const { Quat result; MMath::VectorQuaternionMultiply((void*)(&result), (const void*)(this), (const void*)(&q)); @@ -361,7 +361,7 @@ FORCEINLINE Quat Quat::operator*(const Quat& q) const return result; } -FORCEINLINE Quat Quat::operator*=(const float scale) +FORCE_INLINE Quat Quat::operator*=(const float scale) { x *= scale; y *= scale; @@ -371,12 +371,12 @@ FORCEINLINE Quat Quat::operator*=(const float scale) return *this; } -FORCEINLINE Quat Quat::operator*(const float scale) const +FORCE_INLINE Quat Quat::operator*(const float scale) const { return Quat(scale * x, scale * y, scale * z, scale * w); } -FORCEINLINE Quat Quat::operator/=(const float scale) +FORCE_INLINE Quat Quat::operator/=(const float scale) { const float recip = 1.0f / scale; x *= recip; @@ -387,28 +387,28 @@ FORCEINLINE Quat Quat::operator/=(const float scale) return *this; } -FORCEINLINE Quat Quat::operator/(const float scale) const +FORCE_INLINE Quat Quat::operator/(const float scale) const { const float recip = 1.0f / scale; return Quat(x * recip, y * recip, z * recip, w * recip); } -FORCEINLINE bool Quat::operator==(const Quat& q) const +FORCE_INLINE bool Quat::operator==(const Quat& q) const { return x == q.x && y == q.y && z == q.z && w == q.w; } -FORCEINLINE bool Quat::operator!=(const Quat& q) const +FORCE_INLINE bool Quat::operator!=(const Quat& q) const { return x != q.x || y != q.y || z != q.z || w != q.w; } -FORCEINLINE float Quat::operator|(const Quat& q) const +FORCE_INLINE float Quat::operator|(const Quat& q) const { return x * q.x + y * q.y + z * q.z + w * q.w; } -FORCEINLINE void Quat::Normalize(float tolerance) +FORCE_INLINE void Quat::Normalize(float tolerance) { const float squareSum = x * x + y * y + z * z + w * w; if (squareSum >= tolerance) @@ -425,40 +425,40 @@ FORCEINLINE void Quat::Normalize(float tolerance) } } -FORCEINLINE Quat Quat::GetNormalized(float tolerance) const +FORCE_INLINE Quat Quat::GetNormalized(float tolerance) const { Quat result(*this); result.Normalize(tolerance); return result; } -FORCEINLINE bool Quat::IsNormalized() const +FORCE_INLINE bool Quat::IsNormalized() const { return (MMath::Abs(1.f - SizeSquared()) < THRESH_QUAT_NORMALIZED); } -FORCEINLINE float Quat::Size() const +FORCE_INLINE float Quat::Size() const { return MMath::Sqrt(x * x + y * y + z * z + w * w); } -FORCEINLINE float Quat::SizeSquared() const +FORCE_INLINE float Quat::SizeSquared() const { return (x * x + y * y + z * z + w * w); } -FORCEINLINE float Quat::GetAngle() const +FORCE_INLINE float Quat::GetAngle() const { return 2.f * MMath::Acos(w); } -FORCEINLINE void Quat::ToAxisAndAngle(Vector3& axis, float& angle) const +FORCE_INLINE void Quat::ToAxisAndAngle(Vector3& axis, float& angle) const { angle = GetAngle(); axis = GetRotationAxis(); } -FORCEINLINE Vector3 Quat::GetRotationAxis() const +FORCE_INLINE Vector3 Quat::GetRotationAxis() const { const float s = MMath::Sqrt(MMath::Max(1.f - (w * w), 0.f)); if (s >= 0.0001f) { @@ -467,13 +467,13 @@ FORCEINLINE Vector3 Quat::GetRotationAxis() const return Vector3(1.f, 0.f, 0.f); } -FORCEINLINE float Quat::AngularDistance(const Quat& q) const +FORCE_INLINE float Quat::AngularDistance(const Quat& q) const { float innerProd = x * q.x + y * q.y + z * q.z + w * q.w; return MMath::Acos((2 * innerProd * innerProd) - 1.f); } -FORCEINLINE Vector3 Quat::RotateVector(Vector3 v) const +FORCE_INLINE Vector3 Quat::RotateVector(Vector3 v) const { const Vector3 q(x, y, z); const Vector3 t = 2.f * Vector3::CrossProduct(q, v); @@ -481,7 +481,7 @@ FORCEINLINE Vector3 Quat::RotateVector(Vector3 v) const return result; } -FORCEINLINE Vector3 Quat::UnrotateVector(Vector3 v) const +FORCE_INLINE Vector3 Quat::UnrotateVector(Vector3 v) const { const Vector3 q(-x, -y, -z); const Vector3 t = 2.f * Vector3::CrossProduct(q, v); @@ -489,12 +489,12 @@ FORCEINLINE Vector3 Quat::UnrotateVector(Vector3 v) const return result; } -FORCEINLINE Quat Quat::Inverse() const +FORCE_INLINE Quat Quat::Inverse() const { return Quat(-x, -y, -z, w); } -FORCEINLINE Quat Quat::Log() const +FORCE_INLINE Quat Quat::Log() const { Quat result; result.w = 0.f; @@ -522,7 +522,7 @@ FORCEINLINE Quat Quat::Log() const return result; } -FORCEINLINE Quat Quat::Exp() const +FORCE_INLINE Quat Quat::Exp() const { const float angle = MMath::Sqrt(x * x + y * y + z * z); const float sinAngle = MMath::Sin(angle); @@ -547,7 +547,7 @@ FORCEINLINE Quat Quat::Exp() const return result; } -FORCEINLINE void Quat::EnforceShortestArcWith(const Quat& otherQuat) +FORCE_INLINE void Quat::EnforceShortestArcWith(const Quat& otherQuat) { const float dotResult = (otherQuat | *this); const float bias = MMath::FloatSelect(dotResult, 1.0f, -1.0f); @@ -557,48 +557,48 @@ FORCEINLINE void Quat::EnforceShortestArcWith(const Quat& otherQuat) w *= bias; } -FORCEINLINE Vector3 Quat::GetAxisX() const +FORCE_INLINE Vector3 Quat::GetAxisX() const { return RotateVector(Vector3(1.f, 0.f, 0.f)); } -FORCEINLINE Vector3 Quat::GetAxisY() const +FORCE_INLINE Vector3 Quat::GetAxisY() const { return RotateVector(Vector3(0.f, 1.f, 0.f)); } -FORCEINLINE Vector3 Quat::GetAxisZ() const +FORCE_INLINE Vector3 Quat::GetAxisZ() const { return RotateVector(Vector3(0.f, 0.f, 1.f)); } -FORCEINLINE Vector3 Quat::GetForwardVector() const +FORCE_INLINE Vector3 Quat::GetForwardVector() const { return GetAxisX(); } -FORCEINLINE Vector3 Quat::GetRightVector() const +FORCE_INLINE Vector3 Quat::GetRightVector() const { return GetAxisY(); } -FORCEINLINE Vector3 Quat::GetUpVector() const +FORCE_INLINE Vector3 Quat::GetUpVector() const { return GetAxisZ(); } -FORCEINLINE Vector3 Quat::GetVector() const +FORCE_INLINE Vector3 Quat::GetVector() const { return GetAxisX(); } -FORCEINLINE float Quat::Error(const Quat& q1, const Quat& q2) +FORCE_INLINE float Quat::Error(const Quat& q1, const Quat& q2) { const float cosom = MMath::Abs(q1.x * q2.x + q1.y * q2.y + q1.z * q2.z + q1.w * q2.w); return (MMath::Abs(cosom) < 0.9999999f) ? MMath::Acos(cosom)*(1.f / PI) : 0.0f; } -FORCEINLINE float Quat::ErrorAutoNormalize(const Quat& a, const Quat& b) +FORCE_INLINE float Quat::ErrorAutoNormalize(const Quat& a, const Quat& b) { Quat q1 = a; q1.Normalize(); @@ -607,7 +607,7 @@ FORCEINLINE float Quat::ErrorAutoNormalize(const Quat& a, const Quat& b) return Quat::Error(q1, q2); } -FORCEINLINE void Quat::ToMatrix(Matrix4x4& outMatrix) const +FORCE_INLINE void Quat::ToMatrix(Matrix4x4& outMatrix) const { const float x2 = x + x; const float y2 = y + y; const float z2 = z + z; const float xx = x * x2; const float xy = x * y2; const float xz = x * z2; @@ -620,21 +620,21 @@ FORCEINLINE void Quat::ToMatrix(Matrix4x4& outMatrix) const outMatrix.m[0][3] = 0.0f; outMatrix.m[1][3] = 0.0f; outMatrix.m[2][3] = 0.0f; outMatrix.m[3][3] = 1.0f; } -FORCEINLINE Matrix4x4 Quat::ToMatrix() const +FORCE_INLINE Matrix4x4 Quat::ToMatrix() const { Matrix4x4 matrix; ToMatrix(matrix); return matrix; } -FORCEINLINE Quat Quat::FastLerp(const Quat& a, const Quat& b, const float alpha) +FORCE_INLINE Quat Quat::FastLerp(const Quat& a, const Quat& b, const float alpha) { const float dotResult = (a | b); const float bias = MMath::FloatSelect(dotResult, 1.0f, -1.0f); return (b * alpha) + (a * (bias * (1.f - alpha))); } -FORCEINLINE Quat Quat::FastBilerp(const Quat& p00, const Quat& p10, const Quat& p01, const Quat& p11, float fracX, float fracY) +FORCE_INLINE Quat Quat::FastBilerp(const Quat& p00, const Quat& p10, const Quat& p01, const Quat& p11, float fracX, float fracY) { return Quat::FastLerp( Quat::FastLerp(p00, p10, fracX), @@ -643,7 +643,7 @@ FORCEINLINE Quat Quat::FastBilerp(const Quat& p00, const Quat& p10, const Quat& ); } -FORCEINLINE bool Quat::ContainsNaN() const +FORCE_INLINE bool Quat::ContainsNaN() const { return ( !MMath::IsFinite(x) || @@ -653,15 +653,15 @@ FORCEINLINE bool Quat::ContainsNaN() const ); } -// inline functions +// FORCE_INLINE functions template -FORCEINLINE Quat MMath::Lerp(const Quat& a, const Quat& b, const U& alpha) +FORCE_INLINE Quat MMath::Lerp(const Quat& a, const Quat& b, const U& alpha) { return Quat::slerp(a, b, alpha); } template -FORCEINLINE Quat MMath::BiLerp(const Quat& p00, const Quat& p10, const Quat& p01, const Quat& p11, float fracX, float fracY) +FORCE_INLINE Quat MMath::BiLerp(const Quat& p00, const Quat& p10, const Quat& p01, const Quat& p11, float fracX, float fracY) { Quat result; result = Lerp( @@ -673,7 +673,7 @@ FORCEINLINE Quat MMath::BiLerp(const Quat& p00, const Quat& p10, const Quat& p01 } template -FORCEINLINE Quat MMath::CubicInterp(const Quat& P0, const Quat& T0, const Quat& P1, const Quat& T1, const U& a) +FORCE_INLINE Quat MMath::CubicInterp(const Quat& P0, const Quat& T0, const Quat& P1, const Quat& T1, const U& a) { return Quat::Squad(P0, T0, P1, T1, a); } diff --git a/Engine/Monkey/Math/Rotator.h b/Engine/Monkey/Math/Rotator.h index 83d08b73..ce70d0e3 100644 --- a/Engine/Monkey/Math/Rotator.h +++ b/Engine/Monkey/Math/Rotator.h @@ -29,99 +29,99 @@ struct Rotator explicit Rotator(const Quat& quat); - FORCEINLINE Rotator operator+(const Rotator& r) const; + FORCE_INLINE Rotator operator+(const Rotator& r) const; - FORCEINLINE Rotator operator-(const Rotator& r) const; + FORCE_INLINE Rotator operator-(const Rotator& r) const; - FORCEINLINE Rotator operator*(float scale) const; + FORCE_INLINE Rotator operator*(float scale) const; - FORCEINLINE Rotator operator*=(float scale); + FORCE_INLINE Rotator operator*=(float scale); - FORCEINLINE bool operator==(const Rotator& r) const; + FORCE_INLINE bool operator==(const Rotator& r) const; - FORCEINLINE bool operator!=(const Rotator& v) const; + FORCE_INLINE bool operator!=(const Rotator& v) const; - FORCEINLINE Rotator operator+=(const Rotator& r); + FORCE_INLINE Rotator operator+=(const Rotator& r); - FORCEINLINE Rotator operator-=(const Rotator& r); + FORCE_INLINE Rotator operator-=(const Rotator& r); - FORCEINLINE bool IsNearlyZero(float tolerance = KINDA_SMALL_NUMBER) const; + FORCE_INLINE bool IsNearlyZero(float tolerance = KINDA_SMALL_NUMBER) const; - FORCEINLINE bool IsZero() const; + FORCE_INLINE bool IsZero() const; - FORCEINLINE bool Equals(const Rotator& r, float tolerance = KINDA_SMALL_NUMBER) const; + FORCE_INLINE bool Equals(const Rotator& r, float tolerance = KINDA_SMALL_NUMBER) const; - FORCEINLINE Rotator Add(float deltaPitch, float deltaYaw, float deltaRoll); + FORCE_INLINE Rotator Add(float deltaPitch, float deltaYaw, float deltaRoll); - FORCEINLINE Rotator GetInverse() const; + FORCE_INLINE Rotator GetInverse() const; - FORCEINLINE Rotator GridSnap(const Rotator& rotGrid) const; + FORCE_INLINE Rotator GridSnap(const Rotator& rotGrid) const; - FORCEINLINE Vector3 GetVector() const; + FORCE_INLINE Vector3 GetVector() const; Quat Quaternion() const; - FORCEINLINE Vector3 Euler() const; + FORCE_INLINE Vector3 Euler() const; - FORCEINLINE Vector3 RotateVector(const Vector3& v) const; + FORCE_INLINE Vector3 RotateVector(const Vector3& v) const; - FORCEINLINE Vector3 UnrotateVector(const Vector3& v) const; + FORCE_INLINE Vector3 UnrotateVector(const Vector3& v) const; - FORCEINLINE Rotator Clamp() const; + FORCE_INLINE Rotator Clamp() const; - FORCEINLINE Rotator GetNormalized() const; + FORCE_INLINE Rotator GetNormalized() const; - FORCEINLINE Rotator GetDenormalized() const; + FORCE_INLINE Rotator GetDenormalized() const; - FORCEINLINE float GetComponentForAxis(Axis::Type Axis) const; + FORCE_INLINE float GetComponentForAxis(Axis::Type Axis) const; - FORCEINLINE void SetComponentForAxis(Axis::Type Axis, float Component); + FORCE_INLINE void SetComponentForAxis(Axis::Type Axis, float Component); - FORCEINLINE void Normalize(); + FORCE_INLINE void Normalize(); - FORCEINLINE void GetWindingAndRemainder(Rotator& winding, Rotator& remainder) const; + FORCE_INLINE void GetWindingAndRemainder(Rotator& winding, Rotator& remainder) const; - FORCEINLINE float GetManhattanDistance(const Rotator & rotator) const; + FORCE_INLINE float GetManhattanDistance(const Rotator & rotator) const; - FORCEINLINE Rotator GetEquivalentRotator() const; + FORCE_INLINE Rotator GetEquivalentRotator() const; - FORCEINLINE void SetClosestToMe(Rotator& makeClosest) const; + FORCE_INLINE void SetClosestToMe(Rotator& makeClosest) const; - FORCEINLINE std::string ToString() const; + FORCE_INLINE std::string ToString() const; - FORCEINLINE bool ContainsNaN() const; + FORCE_INLINE bool ContainsNaN() const; - FORCEINLINE static float ClampAxis(float angle); + FORCE_INLINE static float ClampAxis(float angle); - FORCEINLINE static float NormalizeAxis(float angle); + FORCE_INLINE static float NormalizeAxis(float angle); - FORCEINLINE static uint8 CompressAxisToByte(float angle); + FORCE_INLINE static uint8 CompressAxisToByte(float angle); - FORCEINLINE static float DecompressAxisFromByte(uint8 angle); + FORCE_INLINE static float DecompressAxisFromByte(uint8 angle); - FORCEINLINE static uint16 CompressAxisToShort(float angle); + FORCE_INLINE static uint16 CompressAxisToShort(float angle); - FORCEINLINE static float DecompressAxisFromShort(uint16 angle); + FORCE_INLINE static float DecompressAxisFromShort(uint16 angle); - FORCEINLINE static Rotator MakeFromEuler(const Vector3& Euler); + FORCE_INLINE static Rotator MakeFromEuler(const Vector3& Euler); - FORCEINLINE void DiagnosticCheckNaN() const + FORCE_INLINE void DiagnosticCheckNaN() const { } - FORCEINLINE void DiagnosticCheckNaN(const char* message) const + FORCE_INLINE void DiagnosticCheckNaN(const char* message) const { } }; -FORCEINLINE Rotator::Rotator() +FORCE_INLINE Rotator::Rotator() { } -FORCEINLINE Rotator::Rotator(float inF) +FORCE_INLINE Rotator::Rotator(float inF) : pitch(inF) , yaw(inF) , roll(inF) @@ -129,7 +129,7 @@ FORCEINLINE Rotator::Rotator(float inF) DiagnosticCheckNaN(); } -FORCEINLINE Rotator::Rotator(float inPitch, float inYaw, float inRoll) +FORCE_INLINE Rotator::Rotator(float inPitch, float inYaw, float inRoll) : pitch(inPitch) , yaw(inYaw) , roll(inRoll) @@ -137,22 +137,22 @@ FORCEINLINE Rotator::Rotator(float inPitch, float inYaw, float inRoll) DiagnosticCheckNaN(); } -FORCEINLINE Rotator Rotator::operator+(const Rotator& r) const +FORCE_INLINE Rotator Rotator::operator+(const Rotator& r) const { return Rotator(pitch + r.pitch, yaw + r.yaw, roll + r.roll); } -FORCEINLINE Rotator Rotator::operator-(const Rotator& r) const +FORCE_INLINE Rotator Rotator::operator-(const Rotator& r) const { return Rotator(pitch - r.pitch, yaw - r.yaw, roll - r.roll); } -FORCEINLINE Rotator Rotator::operator*(float scale) const +FORCE_INLINE Rotator Rotator::operator*(float scale) const { return Rotator(pitch * scale, yaw * scale, roll * scale); } -FORCEINLINE Rotator Rotator::operator*= (float scale) +FORCE_INLINE Rotator Rotator::operator*= (float scale) { pitch = pitch * scale; yaw = yaw * scale; @@ -161,17 +161,17 @@ FORCEINLINE Rotator Rotator::operator*= (float scale) return *this; } -FORCEINLINE bool Rotator::operator==(const Rotator& r) const +FORCE_INLINE bool Rotator::operator==(const Rotator& r) const { return pitch == r.pitch && yaw == r.yaw && roll == r.roll; } -FORCEINLINE bool Rotator::operator!=(const Rotator& v) const +FORCE_INLINE bool Rotator::operator!=(const Rotator& v) const { return pitch != v.pitch || yaw != v.yaw || roll != v.roll; } -FORCEINLINE Rotator Rotator::operator+=(const Rotator& r) +FORCE_INLINE Rotator Rotator::operator+=(const Rotator& r) { pitch += r.pitch; yaw += r.yaw; @@ -180,7 +180,7 @@ FORCEINLINE Rotator Rotator::operator+=(const Rotator& r) return *this; } -FORCEINLINE Rotator Rotator::operator-=(const Rotator& r) +FORCE_INLINE Rotator Rotator::operator-=(const Rotator& r) { pitch -= r.pitch; yaw -= r.yaw; @@ -189,26 +189,26 @@ FORCEINLINE Rotator Rotator::operator-=(const Rotator& r) return *this; } -FORCEINLINE bool Rotator::IsNearlyZero(float tolerance) const +FORCE_INLINE bool Rotator::IsNearlyZero(float tolerance) const { return MMath::Abs(NormalizeAxis(pitch)) <= tolerance && MMath::Abs(NormalizeAxis(yaw)) <= tolerance && MMath::Abs(NormalizeAxis(roll)) <= tolerance; } -FORCEINLINE bool Rotator::IsZero() const +FORCE_INLINE bool Rotator::IsZero() const { return (ClampAxis(pitch) == 0.f) && (ClampAxis(yaw) == 0.f) && (ClampAxis(roll) == 0.f); } -FORCEINLINE bool Rotator::Equals(const Rotator& rhs, float tolerance) const +FORCE_INLINE bool Rotator::Equals(const Rotator& rhs, float tolerance) const { return (MMath::Abs(NormalizeAxis(pitch - rhs.pitch)) <= tolerance) && (MMath::Abs(NormalizeAxis(yaw - rhs.yaw)) <= tolerance) && (MMath::Abs(NormalizeAxis(roll - rhs.roll)) <= tolerance); } -FORCEINLINE Rotator Rotator::Add(float deltaPitch, float deltaYaw, float deltaRoll) +FORCE_INLINE Rotator Rotator::Add(float deltaPitch, float deltaYaw, float deltaRoll) { yaw += deltaYaw; pitch += deltaPitch; @@ -217,7 +217,7 @@ FORCEINLINE Rotator Rotator::Add(float deltaPitch, float deltaYaw, float deltaRo return *this; } -FORCEINLINE Rotator Rotator::GridSnap(const Rotator& rotGrid) const +FORCE_INLINE Rotator Rotator::GridSnap(const Rotator& rotGrid) const { return Rotator ( @@ -227,12 +227,12 @@ FORCEINLINE Rotator Rotator::GridSnap(const Rotator& rotGrid) const ); } -FORCEINLINE Rotator Rotator::Clamp() const +FORCE_INLINE Rotator Rotator::Clamp() const { return Rotator(ClampAxis(pitch), ClampAxis(yaw), ClampAxis(roll)); } -FORCEINLINE float Rotator::ClampAxis(float angle) +FORCE_INLINE float Rotator::ClampAxis(float angle) { angle = MMath::Fmod(angle, 360.f); if (angle < 0.f) { @@ -241,7 +241,7 @@ FORCEINLINE float Rotator::ClampAxis(float angle) return angle; } -FORCEINLINE float Rotator::NormalizeAxis(float angle) +FORCE_INLINE float Rotator::NormalizeAxis(float angle) { angle = ClampAxis(angle); if (angle > 180.f) { @@ -250,34 +250,34 @@ FORCEINLINE float Rotator::NormalizeAxis(float angle) return angle; } -FORCEINLINE uint8 Rotator::CompressAxisToByte(float angle) +FORCE_INLINE uint8 Rotator::CompressAxisToByte(float angle) { return MMath::RoundToInt(angle * 256.f / 360.f) & 0xFF; } -FORCEINLINE float Rotator::DecompressAxisFromByte(uint8 angle) +FORCE_INLINE float Rotator::DecompressAxisFromByte(uint8 angle) { return (angle * 360.f / 256.f); } -FORCEINLINE uint16 Rotator::CompressAxisToShort(float angle) +FORCE_INLINE uint16 Rotator::CompressAxisToShort(float angle) { return MMath::RoundToInt(angle * 65536.f / 360.f) & 0xFFFF; } -FORCEINLINE float Rotator::DecompressAxisFromShort(uint16 angle) +FORCE_INLINE float Rotator::DecompressAxisFromShort(uint16 angle) { return (angle * 360.f / 65536.f); } -FORCEINLINE Rotator Rotator::GetNormalized() const +FORCE_INLINE Rotator Rotator::GetNormalized() const { Rotator rot = *this; rot.Normalize(); return rot; } -FORCEINLINE Rotator Rotator::GetDenormalized() const +FORCE_INLINE Rotator Rotator::GetDenormalized() const { Rotator rot = *this; rot.pitch = ClampAxis(rot.pitch); @@ -286,7 +286,7 @@ FORCEINLINE Rotator Rotator::GetDenormalized() const return rot; } -FORCEINLINE void Rotator::Normalize() +FORCE_INLINE void Rotator::Normalize() { pitch = NormalizeAxis(pitch); yaw = NormalizeAxis(yaw); @@ -294,7 +294,7 @@ FORCEINLINE void Rotator::Normalize() DiagnosticCheckNaN(); } -FORCEINLINE float Rotator::GetComponentForAxis(Axis::Type axis) const +FORCE_INLINE float Rotator::GetComponentForAxis(Axis::Type axis) const { switch (axis) { @@ -309,7 +309,7 @@ FORCEINLINE float Rotator::GetComponentForAxis(Axis::Type axis) const } } -FORCEINLINE void Rotator::SetComponentForAxis(Axis::Type axis, float component) +FORCE_INLINE void Rotator::SetComponentForAxis(Axis::Type axis, float component) { switch (axis) { @@ -327,7 +327,7 @@ FORCEINLINE void Rotator::SetComponentForAxis(Axis::Type axis, float component) } } -FORCEINLINE Vector3 Rotator::GetVector() const +FORCE_INLINE Vector3 Rotator::GetVector() const { float cp, sp, cy, sy; MMath::SinCos(&sp, &cp, MMath::DegreesToRadians(pitch)); @@ -336,17 +336,17 @@ FORCEINLINE Vector3 Rotator::GetVector() const return v; } -FORCEINLINE Vector3 Rotator::Euler() const +FORCE_INLINE Vector3 Rotator::Euler() const { return Vector3(roll, pitch, yaw); } -FORCEINLINE Rotator Rotator::MakeFromEuler(const Vector3& euler) +FORCE_INLINE Rotator Rotator::MakeFromEuler(const Vector3& euler) { return Rotator(euler.x, euler.y, euler.z); } -FORCEINLINE void Rotator::GetWindingAndRemainder(Rotator& winding, Rotator& remainder) const +FORCE_INLINE void Rotator::GetWindingAndRemainder(Rotator& winding, Rotator& remainder) const { remainder.yaw = NormalizeAxis(yaw); winding.yaw = yaw - remainder.yaw; @@ -358,12 +358,12 @@ FORCEINLINE void Rotator::GetWindingAndRemainder(Rotator& winding, Rotator& rema winding.roll = roll - remainder.roll; } -FORCEINLINE std::string Rotator::ToString() const +FORCE_INLINE std::string Rotator::ToString() const { return StringUtils::Printf("P=%f Y=%f r=%f", pitch, yaw, roll); } -FORCEINLINE bool Rotator::ContainsNaN() const +FORCE_INLINE bool Rotator::ContainsNaN() const { return !MMath::IsFinite(pitch) || @@ -371,17 +371,17 @@ FORCEINLINE bool Rotator::ContainsNaN() const !MMath::IsFinite(roll); } -FORCEINLINE float Rotator::GetManhattanDistance(const Rotator & rotator) const +FORCE_INLINE float Rotator::GetManhattanDistance(const Rotator & rotator) const { return MMath::Abs(yaw - rotator.yaw) + MMath::Abs(pitch - rotator.pitch) + MMath::Abs(roll - rotator.roll); } -FORCEINLINE Rotator Rotator::GetEquivalentRotator() const +FORCE_INLINE Rotator Rotator::GetEquivalentRotator() const { return Rotator(180.0f - pitch, yaw + 180.0f, roll + 180.0f); } -FORCEINLINE void Rotator::SetClosestToMe(Rotator& makeClosest) const +FORCE_INLINE void Rotator::SetClosestToMe(Rotator& makeClosest) const { Rotator otherChoice = makeClosest.GetEquivalentRotator(); float firstDiff = GetManhattanDistance(makeClosest); @@ -391,15 +391,15 @@ FORCEINLINE void Rotator::SetClosestToMe(Rotator& makeClosest) const } } -// inline functions +// FORCE_INLINE functions template -FORCEINLINE Rotator MMath::Lerp(const Rotator& a, const Rotator& b, const U& alpha) +FORCE_INLINE Rotator MMath::Lerp(const Rotator& a, const Rotator& b, const U& alpha) { return a + (b - a).GetNormalized() * alpha; } template -FORCEINLINE Rotator MMath::LerpRange(const Rotator& a, const Rotator& b, const U& alpha) +FORCE_INLINE Rotator MMath::LerpRange(const Rotator& a, const Rotator& b, const U& alpha) { return (a * (1 - alpha) + b * alpha).GetNormalized(); } diff --git a/Engine/Monkey/Math/Vector2.h b/Engine/Monkey/Math/Vector2.h index 0d9314f1..b226f947 100644 --- a/Engine/Monkey/Math/Vector2.h +++ b/Engine/Monkey/Math/Vector2.h @@ -21,275 +21,275 @@ struct Vector2 Vector2(IntPoint inPos); - FORCEINLINE Vector2 operator+(const Vector2& v) const; + FORCE_INLINE Vector2 operator+(const Vector2& v) const; - FORCEINLINE Vector2 operator-(const Vector2& v) const; + FORCE_INLINE Vector2 operator-(const Vector2& v) const; - FORCEINLINE Vector2 operator*(float scale) const; + FORCE_INLINE Vector2 operator*(float scale) const; - FORCEINLINE Vector2 operator+(float a) const; + FORCE_INLINE Vector2 operator+(float a) const; - FORCEINLINE Vector2 operator-(float a) const; + FORCE_INLINE Vector2 operator-(float a) const; - FORCEINLINE Vector2 operator*(const Vector2& v) const; + FORCE_INLINE Vector2 operator*(const Vector2& v) const; - FORCEINLINE Vector2 operator/(float scale) const; + FORCE_INLINE Vector2 operator/(float scale) const; - FORCEINLINE Vector2 operator/(const Vector2& v) const; + FORCE_INLINE Vector2 operator/(const Vector2& v) const; - FORCEINLINE float operator|(const Vector2& v) const; + FORCE_INLINE float operator|(const Vector2& v) const; - FORCEINLINE float operator^(const Vector2& v) const; + FORCE_INLINE float operator^(const Vector2& v) const; - FORCEINLINE bool operator==(const Vector2& v) const; + FORCE_INLINE bool operator==(const Vector2& v) const; - FORCEINLINE bool operator!=(const Vector2& v) const; + FORCE_INLINE bool operator!=(const Vector2& v) const; - FORCEINLINE bool operator<(const Vector2& other) const; + FORCE_INLINE bool operator<(const Vector2& other) const; - FORCEINLINE bool operator>(const Vector2& other) const; + FORCE_INLINE bool operator>(const Vector2& other) const; - FORCEINLINE bool operator<=(const Vector2& other) const; + FORCE_INLINE bool operator<=(const Vector2& other) const; - FORCEINLINE bool operator>=(const Vector2& other) const; + FORCE_INLINE bool operator>=(const Vector2& other) const; - FORCEINLINE Vector2 operator-() const; + FORCE_INLINE Vector2 operator-() const; - FORCEINLINE Vector2 operator+=(const Vector2& v); + FORCE_INLINE Vector2 operator+=(const Vector2& v); - FORCEINLINE Vector2 operator-=(const Vector2& v); + FORCE_INLINE Vector2 operator-=(const Vector2& v); - FORCEINLINE Vector2 operator*=(float scale); + FORCE_INLINE Vector2 operator*=(float scale); - FORCEINLINE Vector2 operator/=(float v); + FORCE_INLINE Vector2 operator/=(float v); - FORCEINLINE Vector2 operator*=(const Vector2& v); + FORCE_INLINE Vector2 operator*=(const Vector2& v); - FORCEINLINE Vector2 operator/=(const Vector2& v); + FORCE_INLINE Vector2 operator/=(const Vector2& v); - FORCEINLINE float& operator[](int32 index); + FORCE_INLINE float& operator[](int32 index); - FORCEINLINE float operator[](int32 index) const; + FORCE_INLINE float operator[](int32 index) const; - FORCEINLINE float& Component(int32 index); + FORCE_INLINE float& Component(int32 index); - FORCEINLINE float Component(int32 index) const; + FORCE_INLINE float Component(int32 index) const; - FORCEINLINE static float DotProduct(const Vector2& a, const Vector2& b); + FORCE_INLINE static float DotProduct(const Vector2& a, const Vector2& b); - FORCEINLINE static float DistSquared(const Vector2& v1, const Vector2& v2); + FORCE_INLINE static float DistSquared(const Vector2& v1, const Vector2& v2); - FORCEINLINE static float Distance(const Vector2& v1, const Vector2& v2); + FORCE_INLINE static float Distance(const Vector2& v1, const Vector2& v2); - FORCEINLINE static float CrossProduct(const Vector2& a, const Vector2& b); + FORCE_INLINE static float CrossProduct(const Vector2& a, const Vector2& b); - FORCEINLINE bool Equals(const Vector2& v, float tolerance = KINDA_SMALL_NUMBER) const; + FORCE_INLINE bool Equals(const Vector2& v, float tolerance = KINDA_SMALL_NUMBER) const; - FORCEINLINE void Set(float inX, float inY); + FORCE_INLINE void Set(float inX, float inY); - FORCEINLINE float GetMax() const; + FORCE_INLINE float GetMax() const; - FORCEINLINE float GetAbsMax() const; + FORCE_INLINE float GetAbsMax() const; - FORCEINLINE float GetMin() const; + FORCE_INLINE float GetMin() const; - FORCEINLINE float Size() const; + FORCE_INLINE float Size() const; - FORCEINLINE float SizeSquared() const; + FORCE_INLINE float SizeSquared() const; - FORCEINLINE Vector2 GetRotated(float angleDeg) const; + FORCE_INLINE Vector2 GetRotated(float angleDeg) const; - FORCEINLINE Vector2 GetSafeNormal(float tolerance = SMALL_NUMBER) const; + FORCE_INLINE Vector2 GetSafeNormal(float tolerance = SMALL_NUMBER) const; - FORCEINLINE void Normalize(float tolerance = SMALL_NUMBER); + FORCE_INLINE void Normalize(float tolerance = SMALL_NUMBER); - FORCEINLINE bool IsNearlyZero(float tolerance = KINDA_SMALL_NUMBER) const; + FORCE_INLINE bool IsNearlyZero(float tolerance = KINDA_SMALL_NUMBER) const; - FORCEINLINE void ToDirectionAndLength(Vector2 &outDir, float &outLength) const; + FORCE_INLINE void ToDirectionAndLength(Vector2 &outDir, float &outLength) const; - FORCEINLINE bool IsZero() const; + FORCE_INLINE bool IsZero() const; - FORCEINLINE IntPoint GetIntPoint() const; + FORCE_INLINE IntPoint GetIntPoint() const; - FORCEINLINE Vector2 RoundToVector() const; + FORCE_INLINE Vector2 RoundToVector() const; - FORCEINLINE Vector2 ClampAxes(float minAxisVal, float maxAxisVal) const; + FORCE_INLINE Vector2 ClampAxes(float minAxisVal, float maxAxisVal) const; - FORCEINLINE Vector2 GetSignVector() const; + FORCE_INLINE Vector2 GetSignVector() const; - FORCEINLINE Vector2 GetAbs() const; + FORCE_INLINE Vector2 GetAbs() const; - FORCEINLINE std::string ToString() const; + FORCE_INLINE std::string ToString() const; - FORCEINLINE void DiagnosticCheckNaN() + FORCE_INLINE void DiagnosticCheckNaN() { } - FORCEINLINE bool ContainsNaN() const + FORCE_INLINE bool ContainsNaN() const { return (!MMath::IsFinite(x) || !MMath::IsFinite(y)); } }; -FORCEINLINE Vector2::Vector2() +FORCE_INLINE Vector2::Vector2() : x(0) , y(0) { } -FORCEINLINE Vector2::Vector2(float inX, float inY) +FORCE_INLINE Vector2::Vector2(float inX, float inY) : x(inX) , y(inY) { } -FORCEINLINE Vector2::Vector2(IntPoint inPos) +FORCE_INLINE Vector2::Vector2(IntPoint inPos) : x((float)inPos.x) , y((float)inPos.y) { } -FORCEINLINE Vector2 operator*(float scale, const Vector2& v) +FORCE_INLINE Vector2 operator*(float scale, const Vector2& v) { return v.operator*(scale); } -FORCEINLINE Vector2 Vector2::operator+(const Vector2& v) const +FORCE_INLINE Vector2 Vector2::operator+(const Vector2& v) const { return Vector2(x + v.x, y + v.y); } -FORCEINLINE Vector2 Vector2::operator-(const Vector2& v) const +FORCE_INLINE Vector2 Vector2::operator-(const Vector2& v) const { return Vector2(x - v.x, y - v.y); } -FORCEINLINE Vector2 Vector2::operator*(float scale) const +FORCE_INLINE Vector2 Vector2::operator*(float scale) const { return Vector2(x * scale, y * scale); } -FORCEINLINE Vector2 Vector2::operator/(float scale) const +FORCE_INLINE Vector2 Vector2::operator/(float scale) const { const float invScale = 1.f / scale; return Vector2(x * invScale, y * invScale); } -FORCEINLINE Vector2 Vector2::operator+(float a) const +FORCE_INLINE Vector2 Vector2::operator+(float a) const { return Vector2(x + a, y + a); } -FORCEINLINE Vector2 Vector2::operator-(float a) const +FORCE_INLINE Vector2 Vector2::operator-(float a) const { return Vector2(x - a, y - a); } -FORCEINLINE Vector2 Vector2::operator*(const Vector2& v) const +FORCE_INLINE Vector2 Vector2::operator*(const Vector2& v) const { return Vector2(x * v.x, y * v.y); } -FORCEINLINE Vector2 Vector2::operator/(const Vector2& v) const +FORCE_INLINE Vector2 Vector2::operator/(const Vector2& v) const { return Vector2(x / v.x, y / v.y); } -FORCEINLINE float Vector2::operator|(const Vector2& v) const +FORCE_INLINE float Vector2::operator|(const Vector2& v) const { return x * v.x + y * v.y; } -FORCEINLINE float Vector2::operator^(const Vector2& v) const +FORCE_INLINE float Vector2::operator^(const Vector2& v) const { return x * v.y - y * v.x; } -FORCEINLINE float Vector2::DotProduct(const Vector2& a, const Vector2& b) +FORCE_INLINE float Vector2::DotProduct(const Vector2& a, const Vector2& b) { return a | b; } -FORCEINLINE float Vector2::DistSquared(const Vector2 &v1, const Vector2 &v2) +FORCE_INLINE float Vector2::DistSquared(const Vector2 &v1, const Vector2 &v2) { return MMath::Square(v2.x - v1.x) + MMath::Square(v2.y - v1.y); } -FORCEINLINE float Vector2::Distance(const Vector2& v1, const Vector2& v2) +FORCE_INLINE float Vector2::Distance(const Vector2& v1, const Vector2& v2) { return MMath::Sqrt(Vector2::DistSquared(v1, v2)); } -FORCEINLINE float Vector2::CrossProduct(const Vector2& a, const Vector2& b) +FORCE_INLINE float Vector2::CrossProduct(const Vector2& a, const Vector2& b) { return a ^ b; } -FORCEINLINE bool Vector2::operator==(const Vector2& v) const +FORCE_INLINE bool Vector2::operator==(const Vector2& v) const { return x == v.x && y == v.y; } -FORCEINLINE bool Vector2::operator!=(const Vector2& v) const +FORCE_INLINE bool Vector2::operator!=(const Vector2& v) const { return x != v.x || y != v.y; } -FORCEINLINE bool Vector2::operator<(const Vector2& other) const +FORCE_INLINE bool Vector2::operator<(const Vector2& other) const { return x < other.x && y < other.y; } -FORCEINLINE bool Vector2::operator>(const Vector2& other) const +FORCE_INLINE bool Vector2::operator>(const Vector2& other) const { return x > other.x && y > other.y; } -FORCEINLINE bool Vector2::operator<=(const Vector2& other) const +FORCE_INLINE bool Vector2::operator<=(const Vector2& other) const { return x <= other.x && y <= other.y; } -FORCEINLINE bool Vector2::operator>=(const Vector2& other) const +FORCE_INLINE bool Vector2::operator>=(const Vector2& other) const { return x >= other.x && y >= other.y; } -FORCEINLINE bool Vector2::Equals(const Vector2& v, float tolerance) const +FORCE_INLINE bool Vector2::Equals(const Vector2& v, float tolerance) const { return MMath::Abs(x - v.x) <= tolerance && MMath::Abs(y - v.y) <= tolerance; } -FORCEINLINE Vector2 Vector2::operator-() const +FORCE_INLINE Vector2 Vector2::operator-() const { return Vector2(-x, -y); } -FORCEINLINE Vector2 Vector2::operator+=(const Vector2& v) +FORCE_INLINE Vector2 Vector2::operator+=(const Vector2& v) { x += v.x; y += v.y; return *this; } -FORCEINLINE Vector2 Vector2::operator-=(const Vector2& v) +FORCE_INLINE Vector2 Vector2::operator-=(const Vector2& v) { x -= v.x; y -= v.y; return *this; } -FORCEINLINE Vector2 Vector2::operator*=(float scale) +FORCE_INLINE Vector2 Vector2::operator*=(float scale) { x *= scale; y *= scale; return *this; } -FORCEINLINE Vector2 Vector2::operator/=(float v) +FORCE_INLINE Vector2 Vector2::operator/=(float v) { const float invF = 1.f / v; x *= invF; @@ -297,69 +297,69 @@ FORCEINLINE Vector2 Vector2::operator/=(float v) return *this; } -FORCEINLINE Vector2 Vector2::operator*=(const Vector2& v) +FORCE_INLINE Vector2 Vector2::operator*=(const Vector2& v) { x *= v.x; y *= v.y; return *this; } -FORCEINLINE Vector2 Vector2::operator/=(const Vector2& v) +FORCE_INLINE Vector2 Vector2::operator/=(const Vector2& v) { x /= v.x; y /= v.y; return *this; } -FORCEINLINE float& Vector2::operator[](int32 index) +FORCE_INLINE float& Vector2::operator[](int32 index) { return ((index == 0) ? x : y); } -FORCEINLINE float Vector2::operator[](int32 index) const +FORCE_INLINE float Vector2::operator[](int32 index) const { return ((index == 0) ? x : y); } -FORCEINLINE void Vector2::Set(float inX, float inY) +FORCE_INLINE void Vector2::Set(float inX, float inY) { x = inX; y = inY; } -FORCEINLINE float Vector2::GetMax() const +FORCE_INLINE float Vector2::GetMax() const { return MMath::Max(x, y); } -FORCEINLINE float Vector2::GetAbsMax() const +FORCE_INLINE float Vector2::GetAbsMax() const { return MMath::Max(MMath::Abs(x), MMath::Abs(y)); } -FORCEINLINE float Vector2::GetMin() const +FORCE_INLINE float Vector2::GetMin() const { return MMath::Min(x, y); } -FORCEINLINE float Vector2::Size() const +FORCE_INLINE float Vector2::Size() const { return MMath::Sqrt(x*x + y * y); } -FORCEINLINE float Vector2::SizeSquared() const +FORCE_INLINE float Vector2::SizeSquared() const { return x * x + y * y; } -FORCEINLINE Vector2 Vector2::GetRotated(const float angleDeg) const +FORCE_INLINE Vector2 Vector2::GetRotated(const float angleDeg) const { float s, c; MMath::SinCos(&s, &c, MMath::DegreesToRadians(angleDeg)); return Vector2(c * x - s * y, s * x + c * y); } -FORCEINLINE Vector2 Vector2::GetSafeNormal(float tolerance) const +FORCE_INLINE Vector2 Vector2::GetSafeNormal(float tolerance) const { const float squareSum = x * x + y * y; if (squareSum > tolerance) @@ -370,7 +370,7 @@ FORCEINLINE Vector2 Vector2::GetSafeNormal(float tolerance) const return Vector2(0.f, 0.f); } -FORCEINLINE void Vector2::Normalize(float tolerance) +FORCE_INLINE void Vector2::Normalize(float tolerance) { const float squareSum = x * x + y * y; if (squareSum > tolerance) @@ -384,7 +384,7 @@ FORCEINLINE void Vector2::Normalize(float tolerance) y = 0.0f; } -FORCEINLINE void Vector2::ToDirectionAndLength(Vector2 &outDir, float &outLength) const +FORCE_INLINE void Vector2::ToDirectionAndLength(Vector2 &outDir, float &outLength) const { outLength = Size(); if (outLength > SMALL_NUMBER) @@ -398,42 +398,42 @@ FORCEINLINE void Vector2::ToDirectionAndLength(Vector2 &outDir, float &outLength } } -FORCEINLINE bool Vector2::IsNearlyZero(float tolerance) const +FORCE_INLINE bool Vector2::IsNearlyZero(float tolerance) const { return MMath::Abs(x) <= tolerance && MMath::Abs(y) <= tolerance; } -FORCEINLINE bool Vector2::IsZero() const +FORCE_INLINE bool Vector2::IsZero() const { return x == 0.f && y == 0.f; } -FORCEINLINE float& Vector2::Component(int32 index) +FORCE_INLINE float& Vector2::Component(int32 index) { return (&x)[index]; } -FORCEINLINE float Vector2::Component(int32 index) const +FORCE_INLINE float Vector2::Component(int32 index) const { return (&x)[index]; } -FORCEINLINE IntPoint Vector2::GetIntPoint() const +FORCE_INLINE IntPoint Vector2::GetIntPoint() const { return IntPoint(MMath::RoundToInt(x), MMath::RoundToInt(y)); } -FORCEINLINE Vector2 Vector2::RoundToVector() const +FORCE_INLINE Vector2 Vector2::RoundToVector() const { return Vector2((float)MMath::RoundToInt(x), (float)MMath::RoundToInt(y)); } -FORCEINLINE Vector2 Vector2::ClampAxes(float minAxisVal, float maxAxisVal) const +FORCE_INLINE Vector2 Vector2::ClampAxes(float minAxisVal, float maxAxisVal) const { return Vector2(MMath::Clamp(x, minAxisVal, maxAxisVal), MMath::Clamp(y, minAxisVal, maxAxisVal)); } -FORCEINLINE Vector2 Vector2::GetSignVector() const +FORCE_INLINE Vector2 Vector2::GetSignVector() const { return Vector2 ( @@ -442,12 +442,12 @@ FORCEINLINE Vector2 Vector2::GetSignVector() const ); } -FORCEINLINE Vector2 Vector2::GetAbs() const +FORCE_INLINE Vector2 Vector2::GetAbs() const { return Vector2(MMath::Abs(x), MMath::Abs(y)); } -FORCEINLINE std::string Vector2::ToString() const +FORCE_INLINE std::string Vector2::ToString() const { return StringUtils::Printf("x=%3.3f y=%3.3f", x, y); } diff --git a/Engine/Monkey/Math/Vector3.h b/Engine/Monkey/Math/Vector3.h index 79466426..aa71661e 100644 --- a/Engine/Monkey/Math/Vector3.h +++ b/Engine/Monkey/Math/Vector3.h @@ -42,219 +42,219 @@ struct Vector3 explicit Vector3(); - FORCEINLINE void Scale(float scale); + FORCE_INLINE void Scale(float scale); - FORCEINLINE Vector3 operator^(const Vector3& v) const; + FORCE_INLINE Vector3 operator^(const Vector3& v) const; - FORCEINLINE static Vector3 CrossProduct(const Vector3& a, const Vector3& b); + FORCE_INLINE static Vector3 CrossProduct(const Vector3& a, const Vector3& b); - FORCEINLINE float operator|(const Vector3& v) const; + FORCE_INLINE float operator|(const Vector3& v) const; - FORCEINLINE static float DotProduct(const Vector3& a, const Vector3& b); + FORCE_INLINE static float DotProduct(const Vector3& a, const Vector3& b); - FORCEINLINE Vector3 operator+(const Vector3& v) const; + FORCE_INLINE Vector3 operator+(const Vector3& v) const; - FORCEINLINE Vector3 operator-(const Vector3& v) const; + FORCE_INLINE Vector3 operator-(const Vector3& v) const; - FORCEINLINE Vector3 operator-(float bias) const; + FORCE_INLINE Vector3 operator-(float bias) const; - FORCEINLINE Vector3 operator+(float bias) const; + FORCE_INLINE Vector3 operator+(float bias) const; - FORCEINLINE Vector3 operator*(float scale) const; + FORCE_INLINE Vector3 operator*(float scale) const; - FORCEINLINE Vector3 operator/(float scale) const; + FORCE_INLINE Vector3 operator/(float scale) const; - FORCEINLINE Vector3 operator*(const Vector3& v) const; + FORCE_INLINE Vector3 operator*(const Vector3& v) const; - FORCEINLINE Vector3 operator/(const Vector3& v) const; + FORCE_INLINE Vector3 operator/(const Vector3& v) const; - FORCEINLINE bool operator==(const Vector3& v) const; + FORCE_INLINE bool operator==(const Vector3& v) const; - FORCEINLINE bool operator!=(const Vector3& v) const; + FORCE_INLINE bool operator!=(const Vector3& v) const; - FORCEINLINE bool Equals(const Vector3& v, float tolerance = KINDA_SMALL_NUMBER) const; + FORCE_INLINE bool Equals(const Vector3& v, float tolerance = KINDA_SMALL_NUMBER) const; - FORCEINLINE bool AllComponentsEqual(float tolerance = KINDA_SMALL_NUMBER) const; + FORCE_INLINE bool AllComponentsEqual(float tolerance = KINDA_SMALL_NUMBER) const; - FORCEINLINE Vector3 operator-() const; + FORCE_INLINE Vector3 operator-() const; - FORCEINLINE Vector3 operator+=(const Vector3& v); + FORCE_INLINE Vector3 operator+=(const Vector3& v); - FORCEINLINE Vector3 operator-=(const Vector3& v); + FORCE_INLINE Vector3 operator-=(const Vector3& v); - FORCEINLINE Vector3 operator*=(float scale); + FORCE_INLINE Vector3 operator*=(float scale); - FORCEINLINE Vector3 operator/=(float v); + FORCE_INLINE Vector3 operator/=(float v); - FORCEINLINE Vector3 operator*=(const Vector3& v); + FORCE_INLINE Vector3 operator*=(const Vector3& v); - FORCEINLINE Vector3 operator/=(const Vector3& v); + FORCE_INLINE Vector3 operator/=(const Vector3& v); - FORCEINLINE float& operator[](int32 index); + FORCE_INLINE float& operator[](int32 index); - FORCEINLINE float operator[](int32 index)const; + FORCE_INLINE float operator[](int32 index)const; - FORCEINLINE float& component(int32 index); + FORCE_INLINE float& component(int32 index); - FORCEINLINE float component(int32 index) const; + FORCE_INLINE float component(int32 index) const; - FORCEINLINE float GetComponentForAxis(Axis::Type axis) const; + FORCE_INLINE float GetComponentForAxis(Axis::Type axis) const; - FORCEINLINE void SetComponentForAxis(Axis::Type axis, float component); + FORCE_INLINE void SetComponentForAxis(Axis::Type axis, float component); - FORCEINLINE void Set(float inX, float inY, float inZ); + FORCE_INLINE void Set(float inX, float inY, float inZ); - FORCEINLINE float GetMax() const; + FORCE_INLINE float GetMax() const; - FORCEINLINE float GetAbsMax() const; + FORCE_INLINE float GetAbsMax() const; - FORCEINLINE float GetMin() const; + FORCE_INLINE float GetMin() const; - FORCEINLINE float GetAbsMin() const; + FORCE_INLINE float GetAbsMin() const; - FORCEINLINE Vector3 ComponentMin(const Vector3& other) const; + FORCE_INLINE Vector3 ComponentMin(const Vector3& other) const; - FORCEINLINE Vector3 ComponentMax(const Vector3& other) const; + FORCE_INLINE Vector3 ComponentMax(const Vector3& other) const; - FORCEINLINE Vector3 GetAbs() const; + FORCE_INLINE Vector3 GetAbs() const; - FORCEINLINE static Vector3 Min(const Vector3& a, const Vector3& b); + FORCE_INLINE static Vector3 Min(const Vector3& a, const Vector3& b); - FORCEINLINE static Vector3 Max(const Vector3& a, const Vector3& b); + FORCE_INLINE static Vector3 Max(const Vector3& a, const Vector3& b); - FORCEINLINE float Size() const; + FORCE_INLINE float Size() const; - FORCEINLINE float SizeSquared() const; + FORCE_INLINE float SizeSquared() const; - FORCEINLINE float Size2D() const; + FORCE_INLINE float Size2D() const; - FORCEINLINE float SizeSquared2D() const; + FORCE_INLINE float SizeSquared2D() const; - FORCEINLINE bool IsNearlyZero(float tolerance = KINDA_SMALL_NUMBER) const; + FORCE_INLINE bool IsNearlyZero(float tolerance = KINDA_SMALL_NUMBER) const; - FORCEINLINE bool IsZero() const; + FORCE_INLINE bool IsZero() const; - FORCEINLINE bool Normalize(float tolerance = SMALL_NUMBER); + FORCE_INLINE bool Normalize(float tolerance = SMALL_NUMBER); - FORCEINLINE bool IsNormalized() const; + FORCE_INLINE bool IsNormalized() const; - FORCEINLINE void ToDirectionAndLength(Vector3 &outDir, float &outLength) const; + FORCE_INLINE void ToDirectionAndLength(Vector3 &outDir, float &outLength) const; - FORCEINLINE Vector3 GetSignVector() const; + FORCE_INLINE Vector3 GetSignVector() const; - FORCEINLINE Vector3 Projection() const; + FORCE_INLINE Vector3 Projection() const; - FORCEINLINE Vector3 GetUnsafeNormal() const; + FORCE_INLINE Vector3 GetUnsafeNormal() const; - FORCEINLINE Vector3 GetClampedToSize(float min, float max) const; + FORCE_INLINE Vector3 GetClampedToSize(float min, float max) const; - FORCEINLINE Vector3 GetClampedToSize2D(float min, float max) const; + FORCE_INLINE Vector3 GetClampedToSize2D(float min, float max) const; - FORCEINLINE Vector3 GetClampedToMaxSize(float maxSize) const; + FORCE_INLINE Vector3 GetClampedToMaxSize(float maxSize) const; - FORCEINLINE Vector3 GetClampedToMaxSize2D(float maxSize) const; + FORCE_INLINE Vector3 GetClampedToMaxSize2D(float maxSize) const; - FORCEINLINE Vector3 Reciprocal() const; + FORCE_INLINE Vector3 Reciprocal() const; - FORCEINLINE bool IsUniform(float tolerance = KINDA_SMALL_NUMBER) const; + FORCE_INLINE bool IsUniform(float tolerance = KINDA_SMALL_NUMBER) const; - FORCEINLINE Vector3 MirrorByVector(const Vector3& mirrorNormal) const; + FORCE_INLINE Vector3 MirrorByVector(const Vector3& mirrorNormal) const; - FORCEINLINE Vector3 RotateAngleAxis(const float angleDeg, const Vector3& Axis) const; + FORCE_INLINE Vector3 RotateAngleAxis(const float angleDeg, const Vector3& Axis) const; - FORCEINLINE Vector3 GetSafeNormal(float tolerance = SMALL_NUMBER) const; + FORCE_INLINE Vector3 GetSafeNormal(float tolerance = SMALL_NUMBER) const; - FORCEINLINE Vector3 GetSafeNormal2D(float tolerance = SMALL_NUMBER) const; + FORCE_INLINE Vector3 GetSafeNormal2D(float tolerance = SMALL_NUMBER) const; - FORCEINLINE Vector3 GetUnsafeNormal2D() const; + FORCE_INLINE Vector3 GetUnsafeNormal2D() const; - FORCEINLINE float CosineAngle2D(Vector3 b) const; + FORCE_INLINE float CosineAngle2D(Vector3 b) const; - FORCEINLINE Vector3 ProjectOnTo(const Vector3& a) const; + FORCE_INLINE Vector3 ProjectOnTo(const Vector3& a) const; - FORCEINLINE Vector3 ProjectOnToNormal(const Vector3& normal) const; + FORCE_INLINE Vector3 ProjectOnToNormal(const Vector3& normal) const; - FORCEINLINE void FindBestAxisVectors(Vector3& axis1, Vector3& axis2) const; + FORCE_INLINE void FindBestAxisVectors(Vector3& axis1, Vector3& axis2) const; - FORCEINLINE void UnwindEuler(); + FORCE_INLINE void UnwindEuler(); - FORCEINLINE bool ContainsNaN() const; + FORCE_INLINE bool ContainsNaN() const; - FORCEINLINE bool IsUnit(float lengthSquaredTolerance = KINDA_SMALL_NUMBER) const; + FORCE_INLINE bool IsUnit(float lengthSquaredTolerance = KINDA_SMALL_NUMBER) const; - FORCEINLINE std::string ToString() const; + FORCE_INLINE std::string ToString() const; - FORCEINLINE Vector2 UnitCartesianToSpherical() const; + FORCE_INLINE Vector2 UnitCartesianToSpherical() const; - FORCEINLINE float HeadingAngle() const; + FORCE_INLINE float HeadingAngle() const; - FORCEINLINE Vector3 MirrorByPlane(const Plane& plane) const; + FORCE_INLINE Vector3 MirrorByPlane(const Plane& plane) const; - FORCEINLINE Quat ToOrientationQuat() const; + FORCE_INLINE Quat ToOrientationQuat() const; - FORCEINLINE Rotator Rotation() const; + FORCE_INLINE Rotator Rotation() const; - FORCEINLINE Rotator ToOrientationRotator() const; + FORCE_INLINE Rotator ToOrientationRotator() const; - static FORCEINLINE void CreateOrthonormalBasis(Vector3& xAxis, Vector3& yAxis, Vector3& zAxis); + static FORCE_INLINE void CreateOrthonormalBasis(Vector3& xAxis, Vector3& yAxis, Vector3& zAxis); - static FORCEINLINE bool PointsAreSame(const Vector3 &p, const Vector3 &q); + static FORCE_INLINE bool PointsAreSame(const Vector3 &p, const Vector3 &q); - static FORCEINLINE bool PointsAreNear(const Vector3 &point1, const Vector3 &point2, float dist); + static FORCE_INLINE bool PointsAreNear(const Vector3 &point1, const Vector3 &point2, float dist); - static FORCEINLINE float PointPlaneDist(const Vector3 &point, const Vector3 &planeBase, const Vector3 &planeNormal); + static FORCE_INLINE float PointPlaneDist(const Vector3 &point, const Vector3 &planeBase, const Vector3 &planeNormal); - static FORCEINLINE Vector3 PointPlaneProject(const Vector3& point, const Vector3& planeBase, const Vector3& planeNormal); + static FORCE_INLINE Vector3 PointPlaneProject(const Vector3& point, const Vector3& planeBase, const Vector3& planeNormal); - static FORCEINLINE Vector3 VectorPlaneProject(const Vector3& v, const Vector3& planeNormal); + static FORCE_INLINE Vector3 VectorPlaneProject(const Vector3& v, const Vector3& planeNormal); - static FORCEINLINE float Dist(const Vector3 &v1, const Vector3 &v2); + static FORCE_INLINE float Dist(const Vector3 &v1, const Vector3 &v2); - static FORCEINLINE float Distance(const Vector3 &v1, const Vector3 &v2) { return Dist(v1, v2); } + static FORCE_INLINE float Distance(const Vector3 &v1, const Vector3 &v2) { return Dist(v1, v2); } - static FORCEINLINE float DistXY(const Vector3 &v1, const Vector3 &v2); + static FORCE_INLINE float DistXY(const Vector3 &v1, const Vector3 &v2); - static FORCEINLINE float Dist2D(const Vector3 &v1, const Vector3 &v2) { return DistXY(v1, v2); } + static FORCE_INLINE float Dist2D(const Vector3 &v1, const Vector3 &v2) { return DistXY(v1, v2); } - static FORCEINLINE float distSquared(const Vector3 &v1, const Vector3 &v2); + static FORCE_INLINE float distSquared(const Vector3 &v1, const Vector3 &v2); - static FORCEINLINE float DistSquaredXY(const Vector3 &v1, const Vector3 &v2); + static FORCE_INLINE float DistSquaredXY(const Vector3 &v1, const Vector3 &v2); - static FORCEINLINE float DistSquared2D(const Vector3 &v1, const Vector3 &v2) { return DistSquaredXY(v1, v2); } + static FORCE_INLINE float DistSquared2D(const Vector3 &v1, const Vector3 &v2) { return DistSquaredXY(v1, v2); } - static FORCEINLINE bool Orthogonal(const Vector3& normal1, const Vector3& normal2, float OrthogonalCosineThreshold = THRESH_NORMALS_ARE_ORTHOGONAL); + static FORCE_INLINE bool Orthogonal(const Vector3& normal1, const Vector3& normal2, float OrthogonalCosineThreshold = THRESH_NORMALS_ARE_ORTHOGONAL); - static FORCEINLINE Vector3 RadiansToDegrees(const Vector3& radVector); + static FORCE_INLINE Vector3 RadiansToDegrees(const Vector3& radVector); - static FORCEINLINE Vector3 DegreesToRadians(const Vector3& degVector); + static FORCE_INLINE Vector3 DegreesToRadians(const Vector3& degVector); - static FORCEINLINE Vector3 PointPlaneProject(const Vector3& point, const Plane& plane); + static FORCE_INLINE Vector3 PointPlaneProject(const Vector3& point, const Plane& plane); - static FORCEINLINE Vector3 PointPlaneProject(const Vector3& point, const Vector3& a, const Vector3& b, const Vector3& c); + static FORCE_INLINE Vector3 PointPlaneProject(const Vector3& point, const Vector3& a, const Vector3& b, const Vector3& c); - FORCEINLINE void DiagnosticCheckNaN() const + FORCE_INLINE void DiagnosticCheckNaN() const { } - FORCEINLINE void DiagnosticCheckNaN(const char* message) const + FORCE_INLINE void DiagnosticCheckNaN(const char* message) const { } }; -FORCEINLINE Vector3::Vector3(const Vector2 v, float inZ) +FORCE_INLINE Vector3::Vector3(const Vector2 v, float inZ) : x(v.x), y(v.y), z(inZ) { DiagnosticCheckNaN(); } -FORCEINLINE Vector3::Vector3() +FORCE_INLINE Vector3::Vector3() { } -FORCEINLINE Vector3::Vector3(float inF) +FORCE_INLINE Vector3::Vector3(float inF) : x(inF) , y(inF) , z(inF) @@ -262,7 +262,7 @@ FORCEINLINE Vector3::Vector3(float inF) DiagnosticCheckNaN(); } -FORCEINLINE Vector3::Vector3(float inX, float inY, float inZ) +FORCE_INLINE Vector3::Vector3(float inX, float inY, float inZ) : x(inX) , y(inY) , z(inZ) @@ -270,7 +270,7 @@ FORCEINLINE Vector3::Vector3(float inX, float inY, float inZ) DiagnosticCheckNaN(); } -FORCEINLINE Vector3::Vector3(IntVector inVector) +FORCE_INLINE Vector3::Vector3(IntVector inVector) : x((float)inVector.x) , y((float)inVector.y) , z((float)inVector.z) @@ -278,7 +278,7 @@ FORCEINLINE Vector3::Vector3(IntVector inVector) DiagnosticCheckNaN(); } -FORCEINLINE Vector3::Vector3(IntPoint a) +FORCE_INLINE Vector3::Vector3(IntPoint a) : x((float)a.x) , y((float)a.y) , z(0.f) @@ -286,12 +286,12 @@ FORCEINLINE Vector3::Vector3(IntPoint a) DiagnosticCheckNaN(); } -FORCEINLINE Vector3 operator*(float scale, const Vector3& v) +FORCE_INLINE Vector3 operator*(float scale, const Vector3& v) { return v.operator*(scale); } -FORCEINLINE float ComputeSquaredDistanceFromBoxToPoint(const Vector3& mins, const Vector3& maxs, const Vector3& point) +FORCE_INLINE float ComputeSquaredDistanceFromBoxToPoint(const Vector3& mins, const Vector3& maxs, const Vector3& point) { float distSquared = 0.f; @@ -319,7 +319,7 @@ FORCEINLINE float ComputeSquaredDistanceFromBoxToPoint(const Vector3& mins, cons return distSquared; } -FORCEINLINE Vector3 Vector3::RotateAngleAxis(const float angleDeg, const Vector3& axis) const +FORCE_INLINE Vector3 Vector3::RotateAngleAxis(const float angleDeg, const Vector3& axis) const { float s, c; MMath::SinCos(&s, &c, MMath::DegreesToRadians(angleDeg)); @@ -345,7 +345,7 @@ FORCEINLINE Vector3 Vector3::RotateAngleAxis(const float angleDeg, const Vector3 ); } -FORCEINLINE void Vector3::CreateOrthonormalBasis(Vector3& xAxis, Vector3& yAxis, Vector3& zAxis) +FORCE_INLINE void Vector3::CreateOrthonormalBasis(Vector3& xAxis, Vector3& yAxis, Vector3& zAxis) { xAxis -= (xAxis | zAxis) / (zAxis | zAxis) * zAxis; yAxis -= (yAxis | zAxis) / (zAxis | zAxis) * zAxis; @@ -363,7 +363,7 @@ FORCEINLINE void Vector3::CreateOrthonormalBasis(Vector3& xAxis, Vector3& yAxis, zAxis.Normalize(); } -FORCEINLINE bool Vector3::PointsAreSame(const Vector3 &p, const Vector3 &q) +FORCE_INLINE bool Vector3::PointsAreSame(const Vector3 &p, const Vector3 &q) { float temp; temp = p.x - q.x; @@ -382,7 +382,7 @@ FORCEINLINE bool Vector3::PointsAreSame(const Vector3 &p, const Vector3 &q) return false; } -FORCEINLINE bool Vector3::PointsAreNear(const Vector3 &point1, const Vector3 &point2, float dist) +FORCE_INLINE bool Vector3::PointsAreNear(const Vector3 &point1, const Vector3 &point2, float dist) { float temp; temp = (point1.x - point2.x); if (MMath::Abs(temp) >= dist) return false; @@ -391,7 +391,7 @@ FORCEINLINE bool Vector3::PointsAreNear(const Vector3 &point1, const Vector3 &po return true; } -FORCEINLINE float Vector3::PointPlaneDist +FORCE_INLINE float Vector3::PointPlaneDist ( const Vector3 &point, const Vector3 &planeBase, @@ -401,17 +401,17 @@ FORCEINLINE float Vector3::PointPlaneDist return (point - planeBase) | planeNormal; } -FORCEINLINE Vector3 Vector3::PointPlaneProject(const Vector3& point, const Vector3& planeBase, const Vector3& PlaneNorm) +FORCE_INLINE Vector3 Vector3::PointPlaneProject(const Vector3& point, const Vector3& planeBase, const Vector3& PlaneNorm) { return point - Vector3::PointPlaneDist(point, planeBase, PlaneNorm) * PlaneNorm; } -FORCEINLINE Vector3 Vector3::VectorPlaneProject(const Vector3& v, const Vector3& planeNormal) +FORCE_INLINE Vector3 Vector3::VectorPlaneProject(const Vector3& v, const Vector3& planeNormal) { return v - v.ProjectOnToNormal(planeNormal); } -FORCEINLINE Vector3 Vector3::Min(const Vector3& a, const Vector3& b) +FORCE_INLINE Vector3 Vector3::Min(const Vector3& a, const Vector3& b) { Vector3 result; result.x = MMath::Min(a.x, b.x); @@ -420,7 +420,7 @@ FORCEINLINE Vector3 Vector3::Min(const Vector3& a, const Vector3& b) return result; } -FORCEINLINE Vector3 Vector3::Max(const Vector3& a, const Vector3& b) +FORCE_INLINE Vector3 Vector3::Max(const Vector3& a, const Vector3& b) { Vector3 result; result.x = MMath::Max(a.x, b.x); @@ -429,23 +429,23 @@ FORCEINLINE Vector3 Vector3::Max(const Vector3& a, const Vector3& b) return result; } -FORCEINLINE bool Vector3::Orthogonal(const Vector3& normal1, const Vector3& normal2, float OrthogonalCosineThreshold) +FORCE_INLINE bool Vector3::Orthogonal(const Vector3& normal1, const Vector3& normal2, float OrthogonalCosineThreshold) { const float NormalDot = normal1 | normal2; return MMath::Abs(NormalDot) <= OrthogonalCosineThreshold; } -FORCEINLINE Vector3 Vector3::RadiansToDegrees(const Vector3& radVector) +FORCE_INLINE Vector3 Vector3::RadiansToDegrees(const Vector3& radVector) { return radVector * (180.f / PI); } -FORCEINLINE Vector3 Vector3::DegreesToRadians(const Vector3& degVector) +FORCE_INLINE Vector3 Vector3::DegreesToRadians(const Vector3& degVector) { return degVector * (PI / 180.f); } -FORCEINLINE Vector3 Vector3::operator^(const Vector3& v) const +FORCE_INLINE Vector3 Vector3::operator^(const Vector3& v) const { return Vector3 ( @@ -455,95 +455,95 @@ FORCEINLINE Vector3 Vector3::operator^(const Vector3& v) const ); } -FORCEINLINE Vector3 Vector3::CrossProduct(const Vector3& a, const Vector3& b) +FORCE_INLINE Vector3 Vector3::CrossProduct(const Vector3& a, const Vector3& b) { return a ^ b; } -FORCEINLINE float Vector3::operator|(const Vector3& v) const +FORCE_INLINE float Vector3::operator|(const Vector3& v) const { return x * v.x + y * v.y + z * v.z; } -FORCEINLINE float Vector3::DotProduct(const Vector3& a, const Vector3& b) +FORCE_INLINE float Vector3::DotProduct(const Vector3& a, const Vector3& b) { return a | b; } -FORCEINLINE Vector3 Vector3::operator+(const Vector3& v) const +FORCE_INLINE Vector3 Vector3::operator+(const Vector3& v) const { return Vector3(x + v.x, y + v.y, z + v.z); } -FORCEINLINE Vector3 Vector3::operator-(const Vector3& v) const +FORCE_INLINE Vector3 Vector3::operator-(const Vector3& v) const { return Vector3(x - v.x, y - v.y, z - v.z); } -FORCEINLINE Vector3 Vector3::operator-(float bias) const +FORCE_INLINE Vector3 Vector3::operator-(float bias) const { return Vector3(x - bias, y - bias, z - bias); } -FORCEINLINE Vector3 Vector3::operator+(float bias) const +FORCE_INLINE Vector3 Vector3::operator+(float bias) const { return Vector3(x + bias, y + bias, z + bias); } -FORCEINLINE Vector3 Vector3::operator*(float scale) const +FORCE_INLINE Vector3 Vector3::operator*(float scale) const { return Vector3(x * scale, y * scale, z * scale); } -FORCEINLINE void Vector3::Scale(float scale) +FORCE_INLINE void Vector3::Scale(float scale) { x *= scale; y *= scale; z *= scale; } -FORCEINLINE Vector3 Vector3::operator/(float scale) const +FORCE_INLINE Vector3 Vector3::operator/(float scale) const { const float RScale = 1.f / scale; return Vector3(x * RScale, y * RScale, z * RScale); } -FORCEINLINE Vector3 Vector3::operator*(const Vector3& v) const +FORCE_INLINE Vector3 Vector3::operator*(const Vector3& v) const { return Vector3(x * v.x, y * v.y, z * v.z); } -FORCEINLINE Vector3 Vector3::operator/(const Vector3& v) const +FORCE_INLINE Vector3 Vector3::operator/(const Vector3& v) const { return Vector3(x / v.x, y / v.y, z / v.z); } -FORCEINLINE bool Vector3::operator==(const Vector3& v) const +FORCE_INLINE bool Vector3::operator==(const Vector3& v) const { return x == v.x && y == v.y && z == v.z; } -FORCEINLINE bool Vector3::operator!=(const Vector3& v) const +FORCE_INLINE bool Vector3::operator!=(const Vector3& v) const { return x != v.x || y != v.y || z != v.z; } -FORCEINLINE bool Vector3::Equals(const Vector3& v, float tolerance) const +FORCE_INLINE bool Vector3::Equals(const Vector3& v, float tolerance) const { return MMath::Abs(x - v.x) <= tolerance && MMath::Abs(y - v.y) <= tolerance && MMath::Abs(z - v.z) <= tolerance; } -FORCEINLINE bool Vector3::AllComponentsEqual(float tolerance) const +FORCE_INLINE bool Vector3::AllComponentsEqual(float tolerance) const { return MMath::Abs(x - y) <= tolerance && MMath::Abs(x - z) <= tolerance && MMath::Abs(y - z) <= tolerance; } -FORCEINLINE Vector3 Vector3::operator-() const +FORCE_INLINE Vector3 Vector3::operator-() const { return Vector3(-x, -y, -z); } -FORCEINLINE Vector3 Vector3::operator+=(const Vector3& v) +FORCE_INLINE Vector3 Vector3::operator+=(const Vector3& v) { x += v.x; y += v.y; @@ -552,7 +552,7 @@ FORCEINLINE Vector3 Vector3::operator+=(const Vector3& v) return *this; } -FORCEINLINE Vector3 Vector3::operator-=(const Vector3& v) +FORCE_INLINE Vector3 Vector3::operator-=(const Vector3& v) { x -= v.x; y -= v.y; @@ -561,7 +561,7 @@ FORCEINLINE Vector3 Vector3::operator-=(const Vector3& v) return *this; } -FORCEINLINE Vector3 Vector3::operator*=(float scale) +FORCE_INLINE Vector3 Vector3::operator*=(float scale) { x *= scale; y *= scale; @@ -570,7 +570,7 @@ FORCEINLINE Vector3 Vector3::operator*=(float scale) return *this; } -FORCEINLINE Vector3 Vector3::operator/=(float v) +FORCE_INLINE Vector3 Vector3::operator/=(float v) { const float RV = 1.f / v; x *= RV; @@ -580,7 +580,7 @@ FORCEINLINE Vector3 Vector3::operator/=(float v) return *this; } -FORCEINLINE Vector3 Vector3::operator*=(const Vector3& v) +FORCE_INLINE Vector3 Vector3::operator*=(const Vector3& v) { x *= v.x; y *= v.y; @@ -589,7 +589,7 @@ FORCEINLINE Vector3 Vector3::operator*=(const Vector3& v) return *this; } -FORCEINLINE Vector3 Vector3::operator/=(const Vector3& v) +FORCE_INLINE Vector3 Vector3::operator/=(const Vector3& v) { x /= v.x; y /= v.y; @@ -598,7 +598,7 @@ FORCEINLINE Vector3 Vector3::operator/=(const Vector3& v) return *this; } -FORCEINLINE float& Vector3::operator[](int32 index) +FORCE_INLINE float& Vector3::operator[](int32 index) { if (index == 0) { return x; @@ -611,7 +611,7 @@ FORCEINLINE float& Vector3::operator[](int32 index) } } -FORCEINLINE float Vector3::operator[](int32 index)const +FORCE_INLINE float Vector3::operator[](int32 index)const { if (index == 0) { return x; @@ -624,7 +624,7 @@ FORCEINLINE float Vector3::operator[](int32 index)const } } -FORCEINLINE void Vector3::Set(float inX, float inY, float inZ) +FORCE_INLINE void Vector3::Set(float inX, float inY, float inZ) { x = inX; y = inY; @@ -632,62 +632,62 @@ FORCEINLINE void Vector3::Set(float inX, float inY, float inZ) DiagnosticCheckNaN(); } -FORCEINLINE float Vector3::GetMax() const +FORCE_INLINE float Vector3::GetMax() const { return MMath::Max(MMath::Max(x, y), z); } -FORCEINLINE float Vector3::GetAbsMax() const +FORCE_INLINE float Vector3::GetAbsMax() const { return MMath::Max(MMath::Max(MMath::Abs(x), MMath::Abs(y)), MMath::Abs(z)); } -FORCEINLINE float Vector3::GetMin() const +FORCE_INLINE float Vector3::GetMin() const { return MMath::Min(MMath::Min(x, y), z); } -FORCEINLINE float Vector3::GetAbsMin() const +FORCE_INLINE float Vector3::GetAbsMin() const { return MMath::Min(MMath::Min(MMath::Abs(x), MMath::Abs(y)), MMath::Abs(z)); } -FORCEINLINE Vector3 Vector3::ComponentMin(const Vector3& other) const +FORCE_INLINE Vector3 Vector3::ComponentMin(const Vector3& other) const { return Vector3(MMath::Min(x, other.x), MMath::Min(y, other.y), MMath::Min(z, other.z)); } -FORCEINLINE Vector3 Vector3::ComponentMax(const Vector3& other) const +FORCE_INLINE Vector3 Vector3::ComponentMax(const Vector3& other) const { return Vector3(MMath::Max(x, other.x), MMath::Max(y, other.y), MMath::Max(z, other.z)); } -FORCEINLINE Vector3 Vector3::GetAbs() const +FORCE_INLINE Vector3 Vector3::GetAbs() const { return Vector3(MMath::Abs(x), MMath::Abs(y), MMath::Abs(z)); } -FORCEINLINE float Vector3::Size() const +FORCE_INLINE float Vector3::Size() const { return MMath::Sqrt(x * x + y * y + z * z); } -FORCEINLINE float Vector3::SizeSquared() const +FORCE_INLINE float Vector3::SizeSquared() const { return x * x + y * y + z * z; } -FORCEINLINE float Vector3::Size2D() const +FORCE_INLINE float Vector3::Size2D() const { return MMath::Sqrt(x*x + y * y); } -FORCEINLINE float Vector3::SizeSquared2D() const +FORCE_INLINE float Vector3::SizeSquared2D() const { return x * x + y * y; } -FORCEINLINE bool Vector3::IsNearlyZero(float tolerance) const +FORCE_INLINE bool Vector3::IsNearlyZero(float tolerance) const { return MMath::Abs(x) <= tolerance && @@ -695,12 +695,12 @@ FORCEINLINE bool Vector3::IsNearlyZero(float tolerance) const MMath::Abs(z) <= tolerance; } -FORCEINLINE bool Vector3::IsZero() const +FORCE_INLINE bool Vector3::IsZero() const { return x == 0.f && y == 0.f && z == 0.f; } -FORCEINLINE bool Vector3::Normalize(float tolerance) +FORCE_INLINE bool Vector3::Normalize(float tolerance) { const float squareSum = x * x + y * y + z * z; if (squareSum > tolerance) @@ -714,12 +714,12 @@ FORCEINLINE bool Vector3::Normalize(float tolerance) return false; } -FORCEINLINE bool Vector3::IsNormalized() const +FORCE_INLINE bool Vector3::IsNormalized() const { return (MMath::Abs(1.f - SizeSquared()) < THRESH_VECTOR_NORMALIZED); } -FORCEINLINE void Vector3::ToDirectionAndLength(Vector3 &outDir, float &outLength) const +FORCE_INLINE void Vector3::ToDirectionAndLength(Vector3 &outDir, float &outLength) const { outLength = Size(); if (outLength > SMALL_NUMBER) @@ -733,7 +733,7 @@ FORCEINLINE void Vector3::ToDirectionAndLength(Vector3 &outDir, float &outLength } } -FORCEINLINE Vector3 Vector3::GetSignVector() const +FORCE_INLINE Vector3 Vector3::GetSignVector() const { return Vector3 ( @@ -743,19 +743,19 @@ FORCEINLINE Vector3 Vector3::GetSignVector() const ); } -FORCEINLINE Vector3 Vector3::Projection() const +FORCE_INLINE Vector3 Vector3::Projection() const { const float rz = 1.f / z; return Vector3(x * rz, y * rz, 1); } -FORCEINLINE Vector3 Vector3::GetUnsafeNormal() const +FORCE_INLINE Vector3 Vector3::GetUnsafeNormal() const { const float scale = MMath::InvSqrt(x*x + y * y + z * z); return Vector3(x * scale, y * scale, z * scale); } -FORCEINLINE Vector3 Vector3::GetClampedToSize(float min, float max) const +FORCE_INLINE Vector3 Vector3::GetClampedToSize(float min, float max) const { float VecSize = Size(); const Vector3 VecDir = (VecSize > SMALL_NUMBER) ? (*this / VecSize) : Vector3::ZeroVector; @@ -763,7 +763,7 @@ FORCEINLINE Vector3 Vector3::GetClampedToSize(float min, float max) const return VecSize * VecDir; } -FORCEINLINE Vector3 Vector3::GetClampedToSize2D(float min, float max) const +FORCE_INLINE Vector3 Vector3::GetClampedToSize2D(float min, float max) const { float VecSize2D = Size2D(); const Vector3 VecDir = (VecSize2D > SMALL_NUMBER) ? (*this / VecSize2D) : Vector3::ZeroVector; @@ -771,7 +771,7 @@ FORCEINLINE Vector3 Vector3::GetClampedToSize2D(float min, float max) const return Vector3(VecSize2D * VecDir.x, VecSize2D * VecDir.y, z); } -FORCEINLINE Vector3 Vector3::GetClampedToMaxSize(float maxSize) const +FORCE_INLINE Vector3 Vector3::GetClampedToMaxSize(float maxSize) const { if (maxSize < KINDA_SMALL_NUMBER) { return Vector3::ZeroVector; @@ -787,7 +787,7 @@ FORCEINLINE Vector3 Vector3::GetClampedToMaxSize(float maxSize) const } } -FORCEINLINE Vector3 Vector3::GetClampedToMaxSize2D(float maxSize) const +FORCE_INLINE Vector3 Vector3::GetClampedToMaxSize2D(float maxSize) const { if (maxSize < KINDA_SMALL_NUMBER) { return Vector3(0.f, 0.f, z); @@ -803,17 +803,17 @@ FORCEINLINE Vector3 Vector3::GetClampedToMaxSize2D(float maxSize) const } } -FORCEINLINE float& Vector3::component(int32 index) +FORCE_INLINE float& Vector3::component(int32 index) { return (&x)[index]; } -FORCEINLINE float Vector3::component(int32 index) const +FORCE_INLINE float Vector3::component(int32 index) const { return (&x)[index]; } -FORCEINLINE float Vector3::GetComponentForAxis(Axis::Type axis) const +FORCE_INLINE float Vector3::GetComponentForAxis(Axis::Type axis) const { switch (axis) { @@ -828,7 +828,7 @@ FORCEINLINE float Vector3::GetComponentForAxis(Axis::Type axis) const } } -FORCEINLINE void Vector3::SetComponentForAxis(Axis::Type axis, float component) +FORCE_INLINE void Vector3::SetComponentForAxis(Axis::Type axis, float component) { switch (axis) { @@ -846,7 +846,7 @@ FORCEINLINE void Vector3::SetComponentForAxis(Axis::Type axis, float component) } } -FORCEINLINE Vector3 Vector3::Reciprocal() const +FORCE_INLINE Vector3 Vector3::Reciprocal() const { Vector3 recVector; if (x != 0.f) { @@ -873,24 +873,24 @@ FORCEINLINE Vector3 Vector3::Reciprocal() const return recVector; } -FORCEINLINE void Vector3::UnwindEuler() +FORCE_INLINE void Vector3::UnwindEuler() { x = MMath::UnwindDegrees(x); y = MMath::UnwindDegrees(y); z = MMath::UnwindDegrees(z); } -FORCEINLINE bool Vector3::IsUniform(float tolerance) const +FORCE_INLINE bool Vector3::IsUniform(float tolerance) const { return AllComponentsEqual(tolerance); } -FORCEINLINE Vector3 Vector3::MirrorByVector(const Vector3& mirrorNormal) const +FORCE_INLINE Vector3 Vector3::MirrorByVector(const Vector3& mirrorNormal) const { return *this - mirrorNormal * (2.f * (*this | mirrorNormal)); } -FORCEINLINE Vector3 Vector3::GetSafeNormal(float tolerance) const +FORCE_INLINE Vector3 Vector3::GetSafeNormal(float tolerance) const { const float squareSum = x * x + y * y + z * z; if (squareSum == 1.f) { @@ -903,7 +903,7 @@ FORCEINLINE Vector3 Vector3::GetSafeNormal(float tolerance) const return Vector3(x * scale, y * scale, z * scale); } -FORCEINLINE Vector3 Vector3::GetSafeNormal2D(float tolerance) const +FORCE_INLINE Vector3 Vector3::GetSafeNormal2D(float tolerance) const { const float squareSum = x * x + y * y; if (squareSum == 1.f) @@ -923,13 +923,13 @@ FORCEINLINE Vector3 Vector3::GetSafeNormal2D(float tolerance) const return Vector3(x*scale, y*scale, 0.f); } -FORCEINLINE Vector3 Vector3::GetUnsafeNormal2D() const +FORCE_INLINE Vector3 Vector3::GetUnsafeNormal2D() const { const float scale = MMath::InvSqrt(x * x + y * y); return Vector3(x * scale, y * scale, 0.f); } -FORCEINLINE float Vector3::CosineAngle2D(Vector3 b) const +FORCE_INLINE float Vector3::CosineAngle2D(Vector3 b) const { Vector3 a(*this); a.z = 0.0f; @@ -939,17 +939,17 @@ FORCEINLINE float Vector3::CosineAngle2D(Vector3 b) const return a | b; } -FORCEINLINE Vector3 Vector3::ProjectOnTo(const Vector3& a) const +FORCE_INLINE Vector3 Vector3::ProjectOnTo(const Vector3& a) const { return (a * ((*this | a) / (a | a))); } -FORCEINLINE Vector3 Vector3::ProjectOnToNormal(const Vector3& normal) const +FORCE_INLINE Vector3 Vector3::ProjectOnToNormal(const Vector3& normal) const { return (normal * (*this | normal)); } -FORCEINLINE bool Vector3::ContainsNaN() const +FORCE_INLINE bool Vector3::ContainsNaN() const { return ( !MMath::IsFinite(x) || @@ -958,24 +958,24 @@ FORCEINLINE bool Vector3::ContainsNaN() const ); } -FORCEINLINE bool Vector3::IsUnit(float lengthSquaredTolerance) const +FORCE_INLINE bool Vector3::IsUnit(float lengthSquaredTolerance) const { return MMath::Abs(1.0f - SizeSquared()) < lengthSquaredTolerance; } -FORCEINLINE std::string Vector3::ToString() const +FORCE_INLINE std::string Vector3::ToString() const { return StringUtils::Printf("x=%3.3f y=%3.3f z=%3.3f", x, y, z); } -FORCEINLINE Vector2 Vector3::UnitCartesianToSpherical() const +FORCE_INLINE Vector2 Vector3::UnitCartesianToSpherical() const { const float Theta = MMath::Acos(z / Size()); const float Phi = MMath::Atan2(y, x); return Vector2(Theta, Phi); } -FORCEINLINE float Vector3::HeadingAngle() const +FORCE_INLINE float Vector3::HeadingAngle() const { Vector3 planeDir = *this; planeDir.z = 0.f; @@ -987,27 +987,27 @@ FORCEINLINE float Vector3::HeadingAngle() const return angle; } -FORCEINLINE float Vector3::Dist(const Vector3 &v1, const Vector3 &v2) +FORCE_INLINE float Vector3::Dist(const Vector3 &v1, const Vector3 &v2) { return MMath::Sqrt(Vector3::distSquared(v1, v2)); } -FORCEINLINE float Vector3::DistXY(const Vector3 &v1, const Vector3 &v2) +FORCE_INLINE float Vector3::DistXY(const Vector3 &v1, const Vector3 &v2) { return MMath::Sqrt(Vector3::DistSquaredXY(v1, v2)); } -FORCEINLINE float Vector3::distSquared(const Vector3 &v1, const Vector3 &v2) +FORCE_INLINE float Vector3::distSquared(const Vector3 &v1, const Vector3 &v2) { return MMath::Square(v2.x - v1.x) + MMath::Square(v2.y - v1.y) + MMath::Square(v2.z - v1.z); } -FORCEINLINE float Vector3::DistSquaredXY(const Vector3 &v1, const Vector3 &v2) +FORCE_INLINE float Vector3::DistSquaredXY(const Vector3 &v1, const Vector3 &v2) { return MMath::Square(v2.x - v1.x) + MMath::Square(v2.y - v1.y); } -FORCEINLINE Vector3 ClampVector(const Vector3& v, const Vector3& min, const Vector3& max) +FORCE_INLINE Vector3 ClampVector(const Vector3& v, const Vector3& min, const Vector3& max) { return Vector3( MMath::Clamp(v.x, min.x, max.x), @@ -1016,7 +1016,7 @@ FORCEINLINE Vector3 ClampVector(const Vector3& v, const Vector3& min, const Vect ); } -FORCEINLINE void Vector3::FindBestAxisVectors(Vector3& axis1, Vector3& axis2) const +FORCE_INLINE void Vector3::FindBestAxisVectors(Vector3& axis1, Vector3& axis2) const { const float nx = MMath::Abs(x); const float ny = MMath::Abs(y); diff --git a/Engine/Monkey/Math/Vector4.h b/Engine/Monkey/Math/Vector4.h index 33337850..ad52e107 100644 --- a/Engine/Monkey/Math/Vector4.h +++ b/Engine/Monkey/Math/Vector4.h @@ -29,98 +29,98 @@ struct Vector4 explicit Vector4(Vector2 inXY, Vector2 inZW); - FORCEINLINE float& operator[](int32 index); + FORCE_INLINE float& operator[](int32 index); - FORCEINLINE float operator[](int32 index) const; + FORCE_INLINE float operator[](int32 index) const; - FORCEINLINE Vector4 operator-() const; + FORCE_INLINE Vector4 operator-() const; - FORCEINLINE Vector4 operator+(const Vector4& v) const; + FORCE_INLINE Vector4 operator+(const Vector4& v) const; - FORCEINLINE Vector4 operator+=(const Vector4& v); + FORCE_INLINE Vector4 operator+=(const Vector4& v); - FORCEINLINE Vector4 operator-(const Vector4& v) const; + FORCE_INLINE Vector4 operator-(const Vector4& v) const; - FORCEINLINE Vector4 operator-=(const Vector4& v); + FORCE_INLINE Vector4 operator-=(const Vector4& v); - FORCEINLINE Vector4 operator*(float scale) const; + FORCE_INLINE Vector4 operator*(float scale) const; - FORCEINLINE Vector4 operator/(float scale) const; + FORCE_INLINE Vector4 operator/(float scale) const; - FORCEINLINE Vector4 operator/(const Vector4& v) const; + FORCE_INLINE Vector4 operator/(const Vector4& v) const; - FORCEINLINE Vector4 operator*(const Vector4& v) const; + FORCE_INLINE Vector4 operator*(const Vector4& v) const; - FORCEINLINE Vector4 operator*=(const Vector4& v); + FORCE_INLINE Vector4 operator*=(const Vector4& v); - FORCEINLINE Vector4 operator/=(const Vector4& v); + FORCE_INLINE Vector4 operator/=(const Vector4& v); - FORCEINLINE Vector4 operator*=(float f); + FORCE_INLINE Vector4 operator*=(float f); - FORCEINLINE bool operator==(const Vector4& v) const; + FORCE_INLINE bool operator==(const Vector4& v) const; - FORCEINLINE bool operator!=(const Vector4& v) const; + FORCE_INLINE bool operator!=(const Vector4& v) const; - FORCEINLINE Vector4 operator^(const Vector4& v) const; + FORCE_INLINE Vector4 operator^(const Vector4& v) const; - FORCEINLINE float& Component(int32 index); + FORCE_INLINE float& Component(int32 index); - FORCEINLINE const float& Component(int32 index) const; + FORCE_INLINE const float& Component(int32 index) const; - FORCEINLINE bool Equals(const Vector4& v, float tolerance = KINDA_SMALL_NUMBER) const; + FORCE_INLINE bool Equals(const Vector4& v, float tolerance = KINDA_SMALL_NUMBER) const; - FORCEINLINE bool IsUnit3(float LengthSquaredTolerance = KINDA_SMALL_NUMBER) const; + FORCE_INLINE bool IsUnit3(float LengthSquaredTolerance = KINDA_SMALL_NUMBER) const; - FORCEINLINE std::string ToString() const; + FORCE_INLINE std::string ToString() const; - FORCEINLINE Vector4 GetSafeNormal(float tolerance = SMALL_NUMBER) const; + FORCE_INLINE Vector4 GetSafeNormal(float tolerance = SMALL_NUMBER) const; - FORCEINLINE Vector4 GetUnsafeNormal3() const; + FORCE_INLINE Vector4 GetUnsafeNormal3() const; - FORCEINLINE void Set(float inX, float inY, float inZ, float inW); + FORCE_INLINE void Set(float inX, float inY, float inZ, float inW); - FORCEINLINE float Size3() const; + FORCE_INLINE float Size3() const; - FORCEINLINE float SizeSquared3() const; + FORCE_INLINE float SizeSquared3() const; - FORCEINLINE float Size() const; + FORCE_INLINE float Size() const; - FORCEINLINE float SizeSquared() const; + FORCE_INLINE float SizeSquared() const; - FORCEINLINE bool ContainsNaN() const; + FORCE_INLINE bool ContainsNaN() const; - FORCEINLINE bool IsNearlyZero3(float tolerance = KINDA_SMALL_NUMBER) const; + FORCE_INLINE bool IsNearlyZero3(float tolerance = KINDA_SMALL_NUMBER) const; - FORCEINLINE Vector4 Reflect3(const Vector4& normal) const; + FORCE_INLINE Vector4 Reflect3(const Vector4& normal) const; - FORCEINLINE void FindBestAxisVectors3(Vector4& axis1, Vector4& axis2) const; + FORCE_INLINE void FindBestAxisVectors3(Vector4& axis1, Vector4& axis2) const; - FORCEINLINE static Vector4 Min(const Vector4& a, const Vector4& b); + FORCE_INLINE static Vector4 Min(const Vector4& a, const Vector4& b); - FORCEINLINE static Vector4 Max(const Vector4& a, const Vector4& b); + FORCE_INLINE static Vector4 Max(const Vector4& a, const Vector4& b); - FORCEINLINE void DiagnosticCheckNaN() + FORCE_INLINE void DiagnosticCheckNaN() { } - friend FORCEINLINE float Dot3(const Vector4& v1, const Vector4& v2) + friend FORCE_INLINE float Dot3(const Vector4& v1, const Vector4& v2) { return v1.x * v2.x + v1.y * v2.y + v1.z * v2.z; } - friend FORCEINLINE float Dot4(const Vector4& v1, const Vector4& v2) + friend FORCE_INLINE float Dot4(const Vector4& v1, const Vector4& v2) { return v1.x * v2.x + v1.y * v2.y + v1.z * v2.z + v1.w * v2.w; } - friend FORCEINLINE Vector4 operator*(float scale, const Vector4& v) + friend FORCE_INLINE Vector4 operator*(float scale, const Vector4& v) { return v.operator*(scale); } }; -FORCEINLINE Vector4::Vector4(const Vector3& inVector, float inW) +FORCE_INLINE Vector4::Vector4(const Vector3& inVector, float inW) : x(inVector.x) , y(inVector.y) , z(inVector.z) @@ -129,7 +129,7 @@ FORCEINLINE Vector4::Vector4(const Vector3& inVector, float inW) DiagnosticCheckNaN(); } -FORCEINLINE Vector4::Vector4(const LinearColor& InColor) +FORCE_INLINE Vector4::Vector4(const LinearColor& InColor) : x(InColor.r) , y(InColor.g) , z(InColor.b) @@ -138,7 +138,7 @@ FORCEINLINE Vector4::Vector4(const LinearColor& InColor) DiagnosticCheckNaN(); } -FORCEINLINE Vector4::Vector4(float inX, float inY, float inZ, float inW) +FORCE_INLINE Vector4::Vector4(float inX, float inY, float inZ, float inW) : x(inX) , y(inY) , z(inZ) @@ -147,7 +147,7 @@ FORCEINLINE Vector4::Vector4(float inX, float inY, float inZ, float inW) DiagnosticCheckNaN(); } -FORCEINLINE Vector4::Vector4(Vector2 inXY, Vector2 inZW) +FORCE_INLINE Vector4::Vector4(Vector2 inXY, Vector2 inZW) : x(inXY.x) , y(inXY.y) , z(inZW.x) @@ -156,17 +156,17 @@ FORCEINLINE Vector4::Vector4(Vector2 inXY, Vector2 inZW) DiagnosticCheckNaN(); } -FORCEINLINE float& Vector4::operator[](int32 index) +FORCE_INLINE float& Vector4::operator[](int32 index) { return (&x)[index]; } -FORCEINLINE float Vector4::operator[](int32 index) const +FORCE_INLINE float Vector4::operator[](int32 index) const { return (&x)[index]; } -FORCEINLINE void Vector4::Set(float inX, float inY, float inZ, float inW) +FORCE_INLINE void Vector4::Set(float inX, float inY, float inZ, float inW) { x = inX; y = inY; @@ -175,17 +175,17 @@ FORCEINLINE void Vector4::Set(float inX, float inY, float inZ, float inW) DiagnosticCheckNaN(); } -FORCEINLINE Vector4 Vector4::operator-() const +FORCE_INLINE Vector4 Vector4::operator-() const { return Vector4(-x, -y, -z, -w); } -FORCEINLINE Vector4 Vector4::operator+(const Vector4& v) const +FORCE_INLINE Vector4 Vector4::operator+(const Vector4& v) const { return Vector4(x + v.x, y + v.y, z + v.z, w + v.w); } -FORCEINLINE Vector4 Vector4::operator+=(const Vector4& v) +FORCE_INLINE Vector4 Vector4::operator+=(const Vector4& v) { x += v.x; y += v.y; @@ -195,12 +195,12 @@ FORCEINLINE Vector4 Vector4::operator+=(const Vector4& v) return *this; } -FORCEINLINE Vector4 Vector4::operator-(const Vector4& v) const +FORCE_INLINE Vector4 Vector4::operator-(const Vector4& v) const { return Vector4(x - v.x, y - v.y, z - v.z, w - v.w); } -FORCEINLINE Vector4 Vector4::operator-=(const Vector4& v) +FORCE_INLINE Vector4 Vector4::operator-=(const Vector4& v) { x -= v.x; y -= v.y; @@ -210,23 +210,23 @@ FORCEINLINE Vector4 Vector4::operator-=(const Vector4& v) return *this; } -FORCEINLINE Vector4 Vector4::operator*(float scale) const +FORCE_INLINE Vector4 Vector4::operator*(float scale) const { return Vector4(x * scale, y * scale, z * scale, w * scale); } -FORCEINLINE Vector4 Vector4::operator/(float scale) const +FORCE_INLINE Vector4 Vector4::operator/(float scale) const { const float invScale = 1.f / scale; return Vector4(x * invScale, y * invScale, z * invScale, w * invScale); } -FORCEINLINE Vector4 Vector4::operator*(const Vector4& v) const +FORCE_INLINE Vector4 Vector4::operator*(const Vector4& v) const { return Vector4(x * v.x, y * v.y, z * v.z, w * v.w); } -FORCEINLINE Vector4 Vector4::operator^(const Vector4& v) const +FORCE_INLINE Vector4 Vector4::operator^(const Vector4& v) const { return Vector4( y * v.z - z * v.y, @@ -236,37 +236,37 @@ FORCEINLINE Vector4 Vector4::operator^(const Vector4& v) const ); } -FORCEINLINE float& Vector4::Component(int32 index) +FORCE_INLINE float& Vector4::Component(int32 index) { return (&x)[index]; } -FORCEINLINE const float& Vector4::Component(int32 index) const +FORCE_INLINE const float& Vector4::Component(int32 index) const { return (&x)[index]; } -FORCEINLINE bool Vector4::operator==(const Vector4& v) const +FORCE_INLINE bool Vector4::operator==(const Vector4& v) const { return ((x == v.x) && (y == v.y) && (z == v.z) && (w == v.w)); } -FORCEINLINE bool Vector4::operator!=(const Vector4& v) const +FORCE_INLINE bool Vector4::operator!=(const Vector4& v) const { return ((x != v.x) || (y != v.y) || (z != v.z) || (w != v.w)); } -FORCEINLINE bool Vector4::Equals(const Vector4& v, float tolerance) const +FORCE_INLINE bool Vector4::Equals(const Vector4& v, float tolerance) const { return MMath::Abs(x - v.x) <= tolerance && MMath::Abs(y - v.y) <= tolerance && MMath::Abs(z - v.z) <= tolerance && MMath::Abs(w - v.w) <= tolerance; } -FORCEINLINE std::string Vector4::ToString() const +FORCE_INLINE std::string Vector4::ToString() const { return StringUtils::Printf("x=%3.3f y=%3.3f z=%3.3f w=%3.3f", x, y, z, w); } -FORCEINLINE Vector4 Vector4::GetSafeNormal(float tolerance) const +FORCE_INLINE Vector4 Vector4::GetSafeNormal(float tolerance) const { const float squareSum = x * x + y * y + z * z; if (squareSum > tolerance) @@ -277,38 +277,38 @@ FORCEINLINE Vector4 Vector4::GetSafeNormal(float tolerance) const return Vector4(0.f); } -FORCEINLINE Vector4 Vector4::GetUnsafeNormal3() const +FORCE_INLINE Vector4 Vector4::GetUnsafeNormal3() const { const float scale = MMath::InvSqrt(x * x + y * y + z * z); return Vector4(x * scale, y * scale, z * scale, 0.0f); } -FORCEINLINE float Vector4::Size3() const +FORCE_INLINE float Vector4::Size3() const { return MMath::Sqrt(x * x + y * y + z * z); } -FORCEINLINE float Vector4::SizeSquared3() const +FORCE_INLINE float Vector4::SizeSquared3() const { return x * x + y * y + z * z; } -FORCEINLINE float Vector4::Size() const +FORCE_INLINE float Vector4::Size() const { return MMath::Sqrt(x * x + y * y + z * z + w * w); } -FORCEINLINE float Vector4::SizeSquared() const +FORCE_INLINE float Vector4::SizeSquared() const { return x * x + y * y + z * z + w * w; } -FORCEINLINE bool Vector4::IsUnit3(float LengthSquaredTolerance) const +FORCE_INLINE bool Vector4::IsUnit3(float LengthSquaredTolerance) const { return MMath::Abs(1.0f - SizeSquared3()) < LengthSquaredTolerance; } -FORCEINLINE bool Vector4::ContainsNaN() const +FORCE_INLINE bool Vector4::ContainsNaN() const { return ( !MMath::IsFinite(x) || @@ -318,7 +318,7 @@ FORCEINLINE bool Vector4::ContainsNaN() const ); } -FORCEINLINE bool Vector4::IsNearlyZero3(float tolerance) const +FORCE_INLINE bool Vector4::IsNearlyZero3(float tolerance) const { return MMath::Abs(x) <= tolerance && @@ -326,12 +326,12 @@ FORCEINLINE bool Vector4::IsNearlyZero3(float tolerance) const MMath::Abs(z) <= tolerance; } -FORCEINLINE Vector4 Vector4::Reflect3(const Vector4& normal) const +FORCE_INLINE Vector4 Vector4::Reflect3(const Vector4& normal) const { return 2.0f * Dot3(*this, normal) * normal - *this; } -FORCEINLINE Vector4 Vector4::Min(const Vector4& a, const Vector4& b) +FORCE_INLINE Vector4 Vector4::Min(const Vector4& a, const Vector4& b) { Vector4 result; result.x = MMath::Min(a.x, b.x); @@ -341,7 +341,7 @@ FORCEINLINE Vector4 Vector4::Min(const Vector4& a, const Vector4& b) return result; } -FORCEINLINE Vector4 Vector4::Max(const Vector4& a, const Vector4& b) +FORCE_INLINE Vector4 Vector4::Max(const Vector4& a, const Vector4& b) { Vector4 result; result.x = MMath::Max(a.x, b.x); @@ -351,7 +351,7 @@ FORCEINLINE Vector4 Vector4::Max(const Vector4& a, const Vector4& b) return result; } -FORCEINLINE void Vector4::FindBestAxisVectors3(Vector4& axis1, Vector4& axis2) const +FORCE_INLINE void Vector4::FindBestAxisVectors3(Vector4& axis1, Vector4& axis2) const { const float nx = MMath::Abs(x); const float ny = MMath::Abs(y); @@ -370,7 +370,7 @@ FORCEINLINE void Vector4::FindBestAxisVectors3(Vector4& axis1, Vector4& axis2) c axis2 = axis1 ^ *this; } -FORCEINLINE Vector4 Vector4::operator*=(const Vector4& v) +FORCE_INLINE Vector4 Vector4::operator*=(const Vector4& v) { x *= v.x; y *= v.y; @@ -380,7 +380,7 @@ FORCEINLINE Vector4 Vector4::operator*=(const Vector4& v) return *this; } -FORCEINLINE Vector4 Vector4::operator/=(const Vector4& v) +FORCE_INLINE Vector4 Vector4::operator/=(const Vector4& v) { x /= v.x; y /= v.y; @@ -390,7 +390,7 @@ FORCEINLINE Vector4 Vector4::operator/=(const Vector4& v) return *this; } -FORCEINLINE Vector4 Vector4::operator*=(float f) +FORCE_INLINE Vector4 Vector4::operator*=(float f) { x *= f; y *= f; @@ -400,7 +400,7 @@ FORCEINLINE Vector4 Vector4::operator*=(float f) return *this; } -FORCEINLINE Vector4 Vector4::operator/(const Vector4& v) const +FORCE_INLINE Vector4 Vector4::operator/(const Vector4& v) const { return Vector4(x / v.x, y / v.y, z / v.z, w / v.w); } \ No newline at end of file diff --git a/Engine/Monkey/Math/Windows/WindowsPlatformMath.h b/Engine/Monkey/Math/Windows/WindowsPlatformMath.h index 1e0f9f1b..a33c417f 100644 --- a/Engine/Monkey/Math/Windows/WindowsPlatformMath.h +++ b/Engine/Monkey/Math/Windows/WindowsPlatformMath.h @@ -8,57 +8,57 @@ struct WindowsPlatformMath : public GenericPlatformMath { - static FORCEINLINE int32 TruncToInt(float f) + static FORCE_INLINE int32 TruncToInt(float f) { return _mm_cvtt_ss2si(_mm_set_ss(f)); } - static FORCEINLINE float TruncToFloat(float f) + static FORCE_INLINE float TruncToFloat(float f) { return (float)TruncToInt(f); } - static FORCEINLINE int32 RoundToInt(float f) + static FORCE_INLINE int32 RoundToInt(float f) { return _mm_cvt_ss2si(_mm_set_ss(f + f + 0.5f)) >> 1; } - static FORCEINLINE float RoundToFloat(float f) + static FORCE_INLINE float RoundToFloat(float f) { return (float)RoundToInt(f); } - static FORCEINLINE int32 FloorToInt(float f) + static FORCE_INLINE int32 FloorToInt(float f) { return _mm_cvt_ss2si(_mm_set_ss(f + f - 0.5f)) >> 1; } - static FORCEINLINE float FloorToFloat(float f) + static FORCE_INLINE float FloorToFloat(float f) { return (float)FloorToInt(f); } - static FORCEINLINE int32 CeilToInt(float f) + static FORCE_INLINE int32 CeilToInt(float f) { return -(_mm_cvt_ss2si(_mm_set_ss(-0.5f - (f + f))) >> 1); } - static FORCEINLINE float CeilToFloat(float f) + static FORCE_INLINE float CeilToFloat(float f) { return (float)CeilToInt(f); } - static FORCEINLINE bool IsNaN(float f) + static FORCE_INLINE bool IsNaN(float f) { return _isnan(f) != 0; } - static FORCEINLINE bool IsFinite(float f) + static FORCE_INLINE bool IsFinite(float f) { return _finite(f) != 0; } - static FORCEINLINE float InvSqrt(float f) + static FORCE_INLINE float InvSqrt(float f) { const __m128 fOneHalf = _mm_set_ss(0.5f); __m128 y0, x0, x1, x2, fOver2; @@ -80,7 +80,7 @@ struct WindowsPlatformMath : public GenericPlatformMath return temp; } - static FORCEINLINE float InvSqrtEst(float f) + static FORCE_INLINE float InvSqrtEst(float f) { const __m128 fOneHalf = _mm_set_ss(0.5f); __m128 y0, x0, x1, fOver2; @@ -99,7 +99,7 @@ struct WindowsPlatformMath : public GenericPlatformMath } #pragma intrinsic(_BitScanReverse) - static FORCEINLINE uint32 FloorLog2(uint32 value) + static FORCE_INLINE uint32 FloorLog2(uint32 value) { unsigned long log2; if (_BitScanReverse(&log2, value) != 0) @@ -110,7 +110,7 @@ struct WindowsPlatformMath : public GenericPlatformMath return 0; } - static FORCEINLINE uint32 CountLeadingZeros(uint32 value) + static FORCE_INLINE uint32 CountLeadingZeros(uint32 value) { unsigned long log2; if (_BitScanReverse(&log2, value) != 0) @@ -121,7 +121,7 @@ struct WindowsPlatformMath : public GenericPlatformMath return 32; } - static FORCEINLINE uint32 CountTrailingZeros(uint32 value) + static FORCE_INLINE uint32 CountTrailingZeros(uint32 value) { if (value == 0) { @@ -133,31 +133,31 @@ struct WindowsPlatformMath : public GenericPlatformMath return bitIndex; } - static FORCEINLINE uint32 CeilLogTwo(uint32 value) + static FORCE_INLINE uint32 CeilLogTwo(uint32 value) { int32 bitmask = ((int32)(CountLeadingZeros(value) << 26)) >> 31; return (32 - CountLeadingZeros(value - 1)) & (~bitmask); } - static FORCEINLINE uint32 RoundUpToPowerOfTwo(uint32 value) + static FORCE_INLINE uint32 RoundUpToPowerOfTwo(uint32 value) { return 1 << CeilLogTwo(value); } - static FORCEINLINE uint64 RoundUpToPowerOfTwo64(uint64 value) + static FORCE_INLINE uint64 RoundUpToPowerOfTwo64(uint64 value) { return uint64(1) << CeilLogTwo64(value); } #if PLATFORM_64BITS - static FORCEINLINE uint64 CeilLogTwo64(uint64 value) + static FORCE_INLINE uint64 CeilLogTwo64(uint64 value) { int64 bitmask = ((int64)(CountLeadingZeros64(value) << 57)) >> 63; return (64 - CountLeadingZeros64(value - 1)) & (~bitmask); } - static FORCEINLINE uint64 CountLeadingZeros64(uint64 value) + static FORCE_INLINE uint64 CountLeadingZeros64(uint64 value) { unsigned long log2; if (_BitScanReverse64(&log2, value) != 0) @@ -168,7 +168,7 @@ struct WindowsPlatformMath : public GenericPlatformMath return 64; } - static FORCEINLINE uint64 CountTrailingZeros64(uint64 value) + static FORCE_INLINE uint64 CountTrailingZeros64(uint64 value) { if (value == 0) { diff --git a/Engine/Monkey/Utils/Alignment.h b/Engine/Monkey/Utils/Alignment.h index 6a54234d..e403cc38 100644 --- a/Engine/Monkey/Utils/Alignment.h +++ b/Engine/Monkey/Utils/Alignment.h @@ -4,25 +4,25 @@ #include "Common/Log.h" template -FORCEINLINE constexpr T Align(T val, uint64 alignment) +FORCE_INLINE constexpr T Align(T val, uint64 alignment) { return (T)(((uint64)val + alignment - 1) & ~(alignment - 1)); } template -FORCEINLINE constexpr T AlignDown(T val, uint64 alignment) +FORCE_INLINE constexpr T AlignDown(T val, uint64 alignment) { return (T)(((uint64)val) & ~(alignment - 1)); } template -FORCEINLINE constexpr bool IsAligned(T val, uint64 alignment) +FORCE_INLINE constexpr bool IsAligned(T val, uint64 alignment) { return !((uint64)val & (alignment - 1)); } template -FORCEINLINE constexpr T AlignArbitrary(T val, uint64 alignment) +FORCE_INLINE constexpr T AlignArbitrary(T val, uint64 alignment) { return (T)((((uint64)val + alignment - 1) / alignment) * alignment); } diff --git a/Engine/Monkey/Utils/SecureHash.h b/Engine/Monkey/Utils/SecureHash.h index 224db7f1..831d99d0 100644 --- a/Engine/Monkey/Utils/SecureHash.h +++ b/Engine/Monkey/Utils/SecureHash.h @@ -113,7 +113,7 @@ class SHAHash std::memset(hash, 0, sizeof(hash)); } - inline std::string ToString() const + FORCE_INLINE std::string ToString() const { return StringUtils::BytesToHex((const uint8*)hash, sizeof(hash)); } diff --git a/Engine/Monkey/Utils/StringUtils.h b/Engine/Monkey/Utils/StringUtils.h index a078bce7..6208e242 100644 --- a/Engine/Monkey/Utils/StringUtils.h +++ b/Engine/Monkey/Utils/StringUtils.h @@ -11,7 +11,7 @@ #define STARTING_BUFFER_SIZE 512 -static FORCEINLINE int32 GetVarArgs(char* dest, SIZE_T destSize, int32 count, const char*& fmt, va_list argPtr) +static FORCE_INLINE int32 GetVarArgs(char* dest, SIZE_T destSize, int32 count, const char*& fmt, va_list argPtr) { int32 Result = vsnprintf(dest, count, fmt, argPtr); va_end(argPtr); diff --git a/Engine/Monkey/Vulkan/RHIDefinitions.h b/Engine/Monkey/Vulkan/RHIDefinitions.h index 945de6e5..2a39b6b4 100644 --- a/Engine/Monkey/Vulkan/RHIDefinitions.h +++ b/Engine/Monkey/Vulkan/RHIDefinitions.h @@ -98,7 +98,7 @@ enum CubeFace CubeFace_MAX }; -FORCEINLINE VertexAttribute StringToVertexAttribute(const char* name) +FORCE_INLINE VertexAttribute StringToVertexAttribute(const char* name) { if (strcmp(name, "inPosition") == 0) { return VertexAttribute::VA_Position; diff --git a/Engine/Monkey/Vulkan/VulkanDebug.cpp b/Engine/Monkey/Vulkan/VulkanDebug.cpp index ddbae667..7b9eed0f 100644 --- a/Engine/Monkey/Vulkan/VulkanDebug.cpp +++ b/Engine/Monkey/Vulkan/VulkanDebug.cpp @@ -3,56 +3,48 @@ #if MONKEY_DEBUG -#define VK_DESTORY_DEBUG_REPORT_CALLBACK_EXT_NAME "vkDestroyDebugReportCallbackEXT" -#define VK_CREATE_DEBUG_REPORT_CALLBACK_EXT_NAME "vkCreateDebugReportCallbackEXT" +#define VK_CREATE_DEBUG_REPORT_CALLBACK_EXT_NAME "vkCreateDebugUtilsMessengerEXT" +#define VK_DESTORY_DEBUG_REPORT_CALLBACK_EXT_NAME "vkDestroyDebugUtilsMessengerEXT" -VKAPI_ATTR VkBool32 VKAPI_CALL VulkanDebugCallBack( - VkDebugReportFlagsEXT flags, - VkDebugReportObjectTypeEXT objType, - uint64_t obj, - size_t location, - int32_t code, - const char* layerPrefix, - const char* msg, - void* userData) +VKAPI_ATTR VkBool32 VKAPI_CALL DebugUtilsMessengerCallback( + VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, + VkDebugUtilsMessageTypeFlagsEXT messageType, + const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, + void* pUserData +) { - std::string prefix(""); - if (flags & VK_DEBUG_REPORT_ERROR_BIT_EXT) { - prefix += "ERROR:"; - } - - if (flags & VK_DEBUG_REPORT_WARNING_BIT_EXT) { - prefix += "WARNING:"; - } - - if (flags & VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT) { - prefix += "PERFORMANCE:"; - } - - if (flags & VK_DEBUG_REPORT_INFORMATION_BIT_EXT) { - prefix += "INFO:"; - } - - if (flags & VK_DEBUG_REPORT_DEBUG_BIT_EXT) { - prefix += "DEBUG:"; - } + if (messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT) + { + MLOG("[%d][%s]:[%s]", pCallbackData->messageIdNumber, pCallbackData->pMessageIdName, pCallbackData->pMessage); + } + else if (messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT) + { + MLOG("[%d][%s]:[%s]", pCallbackData->messageIdNumber, pCallbackData->pMessageIdName, pCallbackData->pMessage); + } + else if (messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT) + { + MLOG("[%d][%s]:[%s]", pCallbackData->messageIdNumber, pCallbackData->pMessageIdName, pCallbackData->pMessage); + } + else if (messageSeverity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT) + { + MLOG("[%d][%s]:[%s]", pCallbackData->messageIdNumber, pCallbackData->pMessageIdName, pCallbackData->pMessage); + } - MLOG("%s [%s] Code %d : %s", prefix.c_str(), layerPrefix, code, msg); - return VK_FALSE; + return VK_FALSE; } void VulkanRHI::SetupDebugLayerCallback() { - VkDebugReportCallbackCreateInfoEXT debugInfo; - ZeroVulkanStruct(debugInfo, VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT); - debugInfo.flags = VK_DEBUG_REPORT_ERROR_BIT_EXT | VK_DEBUG_REPORT_WARNING_BIT_EXT; - debugInfo.pfnCallback = VulkanDebugCallBack; - debugInfo.pUserData = this; + VkDebugUtilsMessengerCreateInfoEXT debugInfo; + ZeroVulkanStruct(debugInfo, VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT); + debugInfo.messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT; + debugInfo.messageType = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT; + debugInfo.pfnUserCallback = DebugUtilsMessengerCallback; - auto func = (PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr(m_Instance, VK_CREATE_DEBUG_REPORT_CALLBACK_EXT_NAME); + auto func = (PFN_vkCreateDebugUtilsMessengerEXT)vkGetInstanceProcAddr(m_Instance, VK_CREATE_DEBUG_REPORT_CALLBACK_EXT_NAME); bool success = true; if (func != nullptr) { - success = func(m_Instance, &debugInfo, nullptr, &m_MsgCallback) == VK_SUCCESS; + success = func(m_Instance, &debugInfo, VULKAN_CPU_ALLOCATOR, &m_MsgCallback) == VK_SUCCESS; } else { success = false; @@ -70,8 +62,8 @@ void VulkanRHI::RemoveDebugLayerCallback() { if (m_MsgCallback != VK_NULL_HANDLE) { - PFN_vkDestroyDebugReportCallbackEXT destroyMsgCallback = (PFN_vkDestroyDebugReportCallbackEXT)(void*)vkGetInstanceProcAddr(m_Instance, "vkDestroyDebugReportCallbackEXT"); - destroyMsgCallback(m_Instance, m_MsgCallback, nullptr); + PFN_vkDestroyDebugUtilsMessengerEXT destroyMsgCallback = (PFN_vkDestroyDebugUtilsMessengerEXT)(void*)vkGetInstanceProcAddr(m_Instance, VK_DESTORY_DEBUG_REPORT_CALLBACK_EXT_NAME); + destroyMsgCallback(m_Instance, m_MsgCallback, VULKAN_CPU_ALLOCATOR); } } diff --git a/Engine/Monkey/Vulkan/VulkanDevice.cpp b/Engine/Monkey/Vulkan/VulkanDevice.cpp index a20e6ab5..fff2ee59 100644 --- a/Engine/Monkey/Vulkan/VulkanDevice.cpp +++ b/Engine/Monkey/Vulkan/VulkanDevice.cpp @@ -60,7 +60,7 @@ void VulkanDevice::CreateDevice() deviceInfo.pEnabledFeatures = &m_PhysicalDeviceFeatures; } - MLOG("Found %lu Queue Families", m_QueueFamilyProps.size()); + MLOG("Found %d Queue Families", (int32)m_QueueFamilyProps.size()); std::vector queueFamilyInfos; @@ -171,7 +171,7 @@ void VulkanDevice::CreateDevice() void VulkanDevice::SetupFormats() { - for (uint32 index = 0; index < VK_FORMAT_RANGE_SIZE; ++index) + for (uint32 index = 0; index < PF_MAX; ++index) { const VkFormat format = (VkFormat)index; memset(&m_FormatProperties[index], 0, sizeof(VkFormat)); @@ -439,7 +439,7 @@ bool VulkanDevice::IsFormatSupported(VkFormat format) return (prop.bufferFeatures != 0) || (prop.linearTilingFeatures != 0) || (prop.optimalTilingFeatures != 0); }; - if (format >= 0 && format < VK_FORMAT_RANGE_SIZE) + if (format >= 0 && format < PF_MAX) { const VkFormatProperties& prop = m_FormatProperties[format]; return ArePropertiesSupported(prop); diff --git a/Engine/Monkey/Vulkan/VulkanDevice.h b/Engine/Monkey/Vulkan/VulkanDevice.h index 5ea2239d..8aebc415 100644 --- a/Engine/Monkey/Vulkan/VulkanDevice.h +++ b/Engine/Monkey/Vulkan/VulkanDevice.h @@ -35,72 +35,72 @@ class VulkanDevice void SetupPresentQueue(VkSurfaceKHR surface); - inline std::shared_ptr GetGraphicsQueue() + FORCE_INLINE std::shared_ptr GetGraphicsQueue() { return m_GfxQueue; } - inline std::shared_ptr GetComputeQueue() + FORCE_INLINE std::shared_ptr GetComputeQueue() { return m_ComputeQueue; } - inline std::shared_ptr GetTransferQueue() + FORCE_INLINE std::shared_ptr GetTransferQueue() { return m_TransferQueue; } - inline std::shared_ptr GetPresentQueue() + FORCE_INLINE std::shared_ptr GetPresentQueue() { return m_PresentQueue; } - inline VkPhysicalDevice GetPhysicalHandle() const + FORCE_INLINE VkPhysicalDevice GetPhysicalHandle() const { return m_PhysicalDevice; } - inline const VkPhysicalDeviceProperties& GetDeviceProperties() const + FORCE_INLINE const VkPhysicalDeviceProperties& GetDeviceProperties() const { return m_PhysicalDeviceProperties; } - inline const VkPhysicalDeviceLimits& GetLimits() const + FORCE_INLINE const VkPhysicalDeviceLimits& GetLimits() const { return m_PhysicalDeviceProperties.limits; } - inline const VkPhysicalDeviceFeatures& GetPhysicalFeatures() const + FORCE_INLINE const VkPhysicalDeviceFeatures& GetPhysicalFeatures() const { return m_PhysicalDeviceFeatures; } - inline VkDevice GetInstanceHandle() const + FORCE_INLINE VkDevice GetInstanceHandle() const { return m_Device; } - inline const VkFormatProperties* GetFormatProperties() const + FORCE_INLINE const VkFormatProperties* GetFormatProperties() const { return m_FormatProperties; } - inline VulkanFenceManager& GetFenceManager() + FORCE_INLINE VulkanFenceManager& GetFenceManager() { return *m_FenceManager; } - inline VulkanDeviceMemoryManager& GetMemoryManager() + FORCE_INLINE VulkanDeviceMemoryManager& GetMemoryManager() { return *m_MemoryManager; } - inline void AddAppDeviceExtensions(const char* name) + FORCE_INLINE void AddAppDeviceExtensions(const char* name) { m_AppDeviceExtensions.push_back(name); } - inline void SetPhysicalDeviceFeatures(VkPhysicalDeviceFeatures2* deviceFeatures) + FORCE_INLINE void SetPhysicalDeviceFeatures(VkPhysicalDeviceFeatures2* deviceFeatures) { m_PhysicalDeviceFeatures2 = deviceFeatures; } @@ -127,7 +127,7 @@ class VulkanDevice VkPhysicalDeviceFeatures m_PhysicalDeviceFeatures; std::vector m_QueueFamilyProps; - VkFormatProperties m_FormatProperties[VK_FORMAT_RANGE_SIZE]; + VkFormatProperties m_FormatProperties[PF_MAX]; std::map m_ExtensionFormatProperties; VkComponentMapping m_PixelFormatComponentMapping[PF_MAX]; diff --git a/Engine/Monkey/Vulkan/VulkanFence.h b/Engine/Monkey/Vulkan/VulkanFence.h index fc1f57a3..3e5655ef 100644 --- a/Engine/Monkey/Vulkan/VulkanFence.h +++ b/Engine/Monkey/Vulkan/VulkanFence.h @@ -22,12 +22,12 @@ class VulkanFence VulkanFence(VulkanDevice* device, VulkanFenceManager* owner, bool createSignaled); - inline VkFence GetHandle() const + FORCE_INLINE VkFence GetHandle() const { return m_VkFence; } - inline bool IsSignaled() const + FORCE_INLINE bool IsSignaled() const { return m_State == State::Signaled; } @@ -67,7 +67,7 @@ class VulkanFenceManager void WaitAndReleaseFence(VulkanFence*& fence, uint64 timeInNanoseconds); - inline bool IsFenceSignaled(VulkanFence* fence) + FORCE_INLINE bool IsFenceSignaled(VulkanFence* fence) { if (fence->IsSignaled()) { return true; @@ -93,7 +93,7 @@ class VulkanSemaphore virtual ~VulkanSemaphore(); - inline VkSemaphore GetHandle() const + FORCE_INLINE VkSemaphore GetHandle() const { return m_VkSemaphore; } diff --git a/Engine/Monkey/Vulkan/VulkanGlobals.h b/Engine/Monkey/Vulkan/VulkanGlobals.h index c532c07d..f8bcd570 100644 --- a/Engine/Monkey/Vulkan/VulkanGlobals.h +++ b/Engine/Monkey/Vulkan/VulkanGlobals.h @@ -11,7 +11,7 @@ #define VERIFYVULKANRESULT_EXPANDED(VkFunction) { const VkResult scopedResult = VkFunction; if (scopedResult < VK_SUCCESS) { MLOGE("VKResult=%d,Function=%s,File=%s,Line=%d", scopedResult, #VkFunction, __FILE__, __LINE__); }} template -static FORCEINLINE void ZeroVulkanStruct(T& vkStruct, VkStructureType vkType) +static FORCE_INLINE void ZeroVulkanStruct(T& vkStruct, VkStructureType vkType) { vkStruct.sType = vkType; memset(((uint8*)&vkStruct) + sizeof(VkStructureType), 0, sizeof(T) - sizeof(VkStructureType)); diff --git a/Engine/Monkey/Vulkan/VulkanLayers.cpp b/Engine/Monkey/Vulkan/VulkanLayers.cpp index 21ee0f68..d35185ce 100644 --- a/Engine/Monkey/Vulkan/VulkanLayers.cpp +++ b/Engine/Monkey/Vulkan/VulkanLayers.cpp @@ -18,7 +18,7 @@ struct VulkanLayerExtension static const char* G_ValidationLayersInstance[] = { #if PLATFORM_WINDOWS - "VK_LAYER_LUNARG_standard_validation", + "VK_LAYER_KHRONOS_validation", #elif PLATFORM_MAC "VK_LAYER_LUNARG_standard_validation", "VK_LAYER_GOOGLE_unique_objects", @@ -50,7 +50,7 @@ static const char* G_ValidationLayersInstance[] = static const char* G_ValidationLayersDevice[] = { #if PLATFORM_WINDOWS - "VK_LAYER_LUNARG_standard_validation", + "VK_LAYER_KHRONOS_validation", #elif PLATFORM_IOS "MoltenVK", #elif PLATFORM_MAC @@ -99,7 +99,7 @@ static const char* G_DeviceExtensions[] = { VK_KHR_SWAPCHAIN_EXTENSION_NAME, VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME, - "VK_KHR_maintenance1", + VK_KHR_MAINTENANCE1_EXTENSION_NAME, #if PLATFORM_WINDOWS @@ -116,7 +116,7 @@ static const char* G_DeviceExtensions[] = nullptr }; -static inline void EnumerateInstanceExtensionProperties(const char* layerName, VulkanLayerExtension& outLayer) +static FORCE_INLINE void EnumerateInstanceExtensionProperties(const char* layerName, VulkanLayerExtension& outLayer) { uint32 count = 0; vkEnumerateInstanceExtensionProperties(layerName, &count, nullptr); @@ -124,7 +124,7 @@ static inline void EnumerateInstanceExtensionProperties(const char* layerName, V vkEnumerateInstanceExtensionProperties(layerName, &count, outLayer.extensionProps.data()); } -static inline void EnumerateDeviceExtensionProperties(VkPhysicalDevice device, const char* layerName, VulkanLayerExtension& outLayer) +static FORCE_INLINE void EnumerateDeviceExtensionProperties(VkPhysicalDevice device, const char* layerName, VulkanLayerExtension& outLayer) { uint32 count = 0; vkEnumerateDeviceExtensionProperties(device, layerName, &count, nullptr); @@ -132,7 +132,7 @@ static inline void EnumerateDeviceExtensionProperties(VkPhysicalDevice device, c vkEnumerateDeviceExtensionProperties(device, layerName, &count, outLayer.extensionProps.data()); } -static inline int32 FindLayerIndexInList(const std::vector& layers, const char* layerName) +static FORCE_INLINE int32 FindLayerIndexInList(const std::vector& layers, const char* layerName) { for (int32 i = 0; i < layers.size(); ++i) { @@ -143,12 +143,12 @@ static inline int32 FindLayerIndexInList(const std::vector return -1; } -static inline bool FindLayerInList(const std::vector& layers, const char* layerName) +static FORCE_INLINE bool FindLayerInList(const std::vector& layers, const char* layerName) { return FindLayerIndexInList(layers, layerName) != -1; } -static inline bool FindLayerExtensionInList(const std::vector& layers, const char* extensionName, const char*& foundLayer) +static FORCE_INLINE bool FindLayerExtensionInList(const std::vector& layers, const char* extensionName, const char*& foundLayer) { for (int32 i = 0; i < layers.size(); ++i) { @@ -164,13 +164,13 @@ static inline bool FindLayerExtensionInList(const std::vector& layers, const char* extensionName) +static FORCE_INLINE bool FindLayerExtensionInList(const std::vector& layers, const char* extensionName) { const char* dummy = nullptr; return FindLayerExtensionInList(layers, extensionName, dummy); } -static inline void TrimDuplicates(std::vector& arr) +static FORCE_INLINE void TrimDuplicates(std::vector& arr) { for (int32 i = (int32)arr.size() - 1; i >= 0; --i) { diff --git a/Engine/Monkey/Vulkan/VulkanMemory.cpp b/Engine/Monkey/Vulkan/VulkanMemory.cpp index b9f50280..558227e1 100644 --- a/Engine/Monkey/Vulkan/VulkanMemory.cpp +++ b/Engine/Monkey/Vulkan/VulkanMemory.cpp @@ -138,7 +138,7 @@ void VulkanDeviceMemoryManager::Destory() { if (m_HeapInfos[index].allocations.size() > 0) { - MLOG("Found %lu freed allocations!", m_HeapInfos[index].allocations.size()); + MLOG("Found %d freed allocations!", (int32)m_HeapInfos[index].allocations.size()); #if MONKEY_DEBUG DumpMemory(); #endif @@ -241,11 +241,11 @@ void VulkanDeviceMemoryManager::Free(VulkanDeviceMemoryAllocation*& allocation) void VulkanDeviceMemoryManager::DumpMemory() { SetupAndPrintMemInfo(); - MLOG("Device Memory: %d allocations on %lu heaps", m_NumAllocations, m_HeapInfos.size()); + MLOG("Device Memory: %d allocations on %lu heaps", m_NumAllocations, (uint32)m_HeapInfos.size()); for (int32 index = 0; index < m_HeapInfos.size(); ++index) { HeapInfo& heapInfo = m_HeapInfos[index]; - MLOG("\tHeap %d, %lu allocations", index, heapInfo.allocations.size()); + MLOG("\tHeap %d, %lu allocations", index, (uint32)heapInfo.allocations.size()); uint64 totalSize = 0; for (int32 subIndex = 0; subIndex < heapInfo.allocations.size(); ++subIndex) { diff --git a/Engine/Monkey/Vulkan/VulkanMemory.h b/Engine/Monkey/Vulkan/VulkanMemory.h index 15f30c29..23672a89 100644 --- a/Engine/Monkey/Vulkan/VulkanMemory.h +++ b/Engine/Monkey/Vulkan/VulkanMemory.h @@ -32,13 +32,13 @@ class RefCount } } - inline int32 AddRef() + FORCE_INLINE int32 AddRef() { int32 newValue = m_Counter.Increment(); return newValue; } - inline int32 Release() + FORCE_INLINE int32 Release() { int32 newValue = m_Counter.Decrement(); if (newValue == 0) { @@ -47,7 +47,7 @@ class RefCount return newValue; } - inline int32 GetRefCount() const + FORCE_INLINE int32 GetRefCount() const { int32 value = m_Counter.GetValue(); return value; @@ -64,7 +64,7 @@ struct VulkanRange static void JoinConsecutiveRanges(std::vector& ranges); - inline bool operator<(const VulkanRange& vulkanRange) const + FORCE_INLINE bool operator<(const VulkanRange& vulkanRange) const { return offset < vulkanRange.offset; } @@ -83,37 +83,37 @@ class VulkanDeviceMemoryAllocation void InvalidateMappedMemory(VkDeviceSize offset, VkDeviceSize size); - inline bool CanBeMapped() const + FORCE_INLINE bool CanBeMapped() const { return m_CanBeMapped; } - inline bool IsMapped() const + FORCE_INLINE bool IsMapped() const { return m_MappedPointer != nullptr; } - inline void* GetMappedPointer() + FORCE_INLINE void* GetMappedPointer() { return m_MappedPointer; } - inline bool IsCoherent() const + FORCE_INLINE bool IsCoherent() const { return m_IsCoherent; } - inline VkDeviceMemory GetHandle() const + FORCE_INLINE VkDeviceMemory GetHandle() const { return m_Handle; } - inline VkDeviceSize GetSize() const + FORCE_INLINE VkDeviceSize GetSize() const { return m_Size; } - inline uint32 GetMemoryTypeIndex() const + FORCE_INLINE uint32 GetMemoryTypeIndex() const { return m_MemoryTypeIndex; } @@ -157,17 +157,17 @@ class VulkanDeviceMemoryManager uint64 GetTotalMemory(bool gpu) const; - inline bool HasUnifiedMemory() const + FORCE_INLINE bool HasUnifiedMemory() const { return m_HasUnifiedMemory; } - inline uint32 GetNumMemoryTypes() const + FORCE_INLINE uint32 GetNumMemoryTypes() const { return m_MemoryProperties.memoryTypeCount; } - inline VkResult GetMemoryTypeFromProperties(uint32 typeBits, VkMemoryPropertyFlags properties, uint32* outTypeIndex) + FORCE_INLINE VkResult GetMemoryTypeFromProperties(uint32 typeBits, VkMemoryPropertyFlags properties, uint32* outTypeIndex) { for (uint32 i = 0; i < m_MemoryProperties.memoryTypeCount && typeBits; ++i) { @@ -185,7 +185,7 @@ class VulkanDeviceMemoryManager return VK_ERROR_FEATURE_NOT_PRESENT; } - inline VkResult GetMemoryTypeFromPropertiesExcluding(uint32 typeBits, VkMemoryPropertyFlags properties, uint32 excludeTypeIndex, uint32* outTypeIndex) + FORCE_INLINE VkResult GetMemoryTypeFromPropertiesExcluding(uint32 typeBits, VkMemoryPropertyFlags properties, uint32 excludeTypeIndex, uint32* outTypeIndex) { for (uint32 i = 0; i < m_MemoryProperties.memoryTypeCount && typeBits; ++i) { @@ -203,12 +203,12 @@ class VulkanDeviceMemoryManager return VK_ERROR_FEATURE_NOT_PRESENT; } - inline const VkPhysicalDeviceMemoryProperties& GetMemoryProperties() const + FORCE_INLINE const VkPhysicalDeviceMemoryProperties& GetMemoryProperties() const { return m_MemoryProperties; } - inline VulkanDeviceMemoryAllocation* Alloc(bool canFail, VkDeviceSize allocationSize, uint32 memoryTypeBits, VkMemoryPropertyFlags memoryPropertyFlags, void* dedicatedAllocateInfo, const char* file, uint32 line) + FORCE_INLINE VulkanDeviceMemoryAllocation* Alloc(bool canFail, VkDeviceSize allocationSize, uint32 memoryTypeBits, VkMemoryPropertyFlags memoryPropertyFlags, void* dedicatedAllocateInfo, const char* file, uint32 line) { uint32 memoryTypeIndex = ~0; VERIFYVULKANRESULT(this->GetMemoryTypeFromProperties(memoryTypeBits, memoryPropertyFlags, &memoryTypeIndex)); @@ -256,42 +256,42 @@ class VulkanResourceAllocation : public RefCount void BindImage(VulkanDevice* device, VkImage image); - inline uint32 GetSize() const + FORCE_INLINE uint32 GetSize() const { return m_RequestedSize; } - inline uint32 GetAllocationSize() + FORCE_INLINE uint32 GetAllocationSize() { return m_AllocationSize; } - inline uint32 GetOffset() const + FORCE_INLINE uint32 GetOffset() const { return m_AlignedOffset; } - inline VkDeviceMemory GetHandle() const + FORCE_INLINE VkDeviceMemory GetHandle() const { return m_DeviceMemoryAllocation->GetHandle(); } - inline void* GetMappedPointer() + FORCE_INLINE void* GetMappedPointer() { return (uint8*)m_DeviceMemoryAllocation->GetMappedPointer() + m_AlignedOffset; } - inline uint32 GetMemoryTypeIndex() const + FORCE_INLINE uint32 GetMemoryTypeIndex() const { return m_DeviceMemoryAllocation->GetMemoryTypeIndex(); } - inline void FlushMappedMemory() + FORCE_INLINE void FlushMappedMemory() { m_DeviceMemoryAllocation->FlushMappedMemory(m_AllocationOffset, m_AllocationSize); } - inline void InvalidateMappedMemory() + FORCE_INLINE void InvalidateMappedMemory() { m_DeviceMemoryAllocation->InvalidateMappedMemory(m_AllocationOffset, m_AllocationSize); } @@ -325,12 +325,12 @@ class VulkanResourceHeapPage return resourceAllocation; } - inline VulkanResourceHeap* GetOwner() + FORCE_INLINE VulkanResourceHeap* GetOwner() { return m_Owner; } - inline uint32 GetID() const + FORCE_INLINE uint32 GetID() const { return m_ID; } @@ -360,12 +360,12 @@ class VulkanResourceSubAllocation : public RefCount virtual ~VulkanResourceSubAllocation(); - inline uint32 GetOffset() const + FORCE_INLINE uint32 GetOffset() const { return m_AlignedOffset; } - inline uint32 GetSize() const + FORCE_INLINE uint32 GetSize() const { return m_RequestedSize; } @@ -386,12 +386,12 @@ class VulkanBufferSubAllocation : public VulkanResourceSubAllocation void* GetMappedPointer(); - inline VkBuffer GetHandle() const + FORCE_INLINE VkBuffer GetHandle() const { return m_Handle; } - inline VulkanSubBufferAllocator* GetBufferAllocator() const + FORCE_INLINE VulkanSubBufferAllocator* GetBufferAllocator() const { return m_Owner; } @@ -417,17 +417,17 @@ class VulkanSubResourceAllocator VulkanResourceSubAllocation* TryAllocateNoLocking(uint32 size, uint32 alignment, const char* file, uint32 line); - inline VulkanResourceSubAllocation* TryAllocateLocking(uint32 size, uint32 alignment, const char* file, uint32 line) + FORCE_INLINE VulkanResourceSubAllocation* TryAllocateLocking(uint32 size, uint32 alignment, const char* file, uint32 line) { return TryAllocateNoLocking(size, alignment, file, line); } - inline uint32 GetAlignment() const + FORCE_INLINE uint32 GetAlignment() const { return m_Alignment; } - inline void* GetMappedPointer() + FORCE_INLINE void* GetMappedPointer() { return m_DeviceMemoryAllocation->GetMappedPointer(); } @@ -461,7 +461,7 @@ class VulkanSubBufferAllocator : public VulkanSubResourceAllocator void Release(VulkanBufferSubAllocation* subAllocation); - inline VkBuffer GetHandle() const + FORCE_INLINE VkBuffer GetHandle() const { return m_Buffer; } @@ -492,22 +492,22 @@ class VulkanResourceHeap void ReleaseFreedPages(bool immediately); - inline VulkanResourceHeapManager* GetOwner() + FORCE_INLINE VulkanResourceHeapManager* GetOwner() { return m_Owner; } - inline bool IsHostCachedSupported() const + FORCE_INLINE bool IsHostCachedSupported() const { return m_IsHostCachedSupported; } - inline bool IsLazilyAllocatedSupported() const + FORCE_INLINE bool IsLazilyAllocatedSupported() const { return m_IsLazilyAllocatedSupported; } - inline uint32 GetMemoryTypeIndex() const + FORCE_INLINE uint32 GetMemoryTypeIndex() const { return m_MemoryTypeIndex; } diff --git a/Engine/Monkey/Vulkan/VulkanQueue.h b/Engine/Monkey/Vulkan/VulkanQueue.h index d3ecf91a..461c5864 100644 --- a/Engine/Monkey/Vulkan/VulkanQueue.h +++ b/Engine/Monkey/Vulkan/VulkanQueue.h @@ -14,12 +14,12 @@ class VulkanQueue virtual ~VulkanQueue(); - inline uint32 GetFamilyIndex() const + FORCE_INLINE uint32 GetFamilyIndex() const { return m_FamilyIndex; } - inline VkQueue GetHandle() const + FORCE_INLINE VkQueue GetHandle() const { return m_Queue; } diff --git a/Engine/Monkey/Vulkan/VulkanRHI.h b/Engine/Monkey/Vulkan/VulkanRHI.h index 23a7b03d..4f196c67 100644 --- a/Engine/Monkey/Vulkan/VulkanRHI.h +++ b/Engine/Monkey/Vulkan/VulkanRHI.h @@ -25,47 +25,47 @@ class VulkanRHI void Shutdown();; - inline const std::vector& GetInstanceExtensions() const + FORCE_INLINE const std::vector& GetInstanceExtensions() const { return m_InstanceExtensions; } - inline const std::vector& GetInstanceLayers() const + FORCE_INLINE const std::vector& GetInstanceLayers() const { return m_InstanceLayers; } - inline const VkInstance& GetInstance() const + FORCE_INLINE const VkInstance& GetInstance() const { return m_Instance; } - inline std::shared_ptr GetDevice() const + FORCE_INLINE std::shared_ptr GetDevice() const { return m_Device; } - inline std::shared_ptr GetSwapChain() const + FORCE_INLINE std::shared_ptr GetSwapChain() const { return m_SwapChain; } - inline const std::vector& GetBackbufferImages() const + FORCE_INLINE const std::vector& GetBackbufferImages() const { return m_BackbufferImages; } - inline const std::vector& GetBackbufferViews() const + FORCE_INLINE const std::vector& GetBackbufferViews() const { return m_BackbufferViews; } - inline const PixelFormat& GetPixelFormat() const + FORCE_INLINE const PixelFormat& GetPixelFormat() const { return m_PixelFormat; } - inline const char* GetName() + FORCE_INLINE const char* GetName() { return "Vulkan"; } @@ -80,7 +80,7 @@ class VulkanRHI m_AppInstanceExtensions.push_back(name); } - inline void SetPhysicalDeviceFeatures(VkPhysicalDeviceFeatures2* deviceFeatures) + FORCE_INLINE void SetPhysicalDeviceFeatures(VkPhysicalDeviceFeatures2* deviceFeatures) { m_PhysicalDeviceFeatures2 = deviceFeatures; } @@ -108,7 +108,7 @@ class VulkanRHI protected: #if MONKEY_DEBUG - VkDebugReportCallbackEXT m_MsgCallback = VK_NULL_HANDLE; + VkDebugUtilsMessengerEXT m_MsgCallback = VK_NULL_HANDLE; #endif VkInstance m_Instance; @@ -127,7 +127,7 @@ class VulkanRHI }; -inline VkFormat PixelFormatToVkFormat(PixelFormat format, const bool bIsSRGB) +FORCE_INLINE VkFormat PixelFormatToVkFormat(PixelFormat format, const bool bIsSRGB) { VkFormat result = (VkFormat)G_PixelFormats[format].platformFormat; if (bIsSRGB) @@ -172,7 +172,7 @@ inline VkFormat PixelFormatToVkFormat(PixelFormat format, const bool bIsSRGB) return result; } -static inline VkFormat VEToVkFormat(VertexElementType Type) +static FORCE_INLINE VkFormat VEToVkFormat(VertexElementType Type) { switch (Type) { @@ -221,7 +221,7 @@ static inline VkFormat VEToVkFormat(VertexElementType Type) return VK_FORMAT_UNDEFINED; } -static inline uint32 ElementTypeToSize(VertexElementType type) +static FORCE_INLINE uint32 ElementTypeToSize(VertexElementType type) { switch (type) { @@ -268,7 +268,7 @@ static inline uint32 ElementTypeToSize(VertexElementType type) }; } -static inline uint32 IndexTypeToSize(VkIndexType type) +static FORCE_INLINE uint32 IndexTypeToSize(VkIndexType type) { switch (type) { diff --git a/Engine/Monkey/Vulkan/VulkanSwapChain.cpp b/Engine/Monkey/Vulkan/VulkanSwapChain.cpp index 1bbc74c4..867fbcf0 100644 --- a/Engine/Monkey/Vulkan/VulkanSwapChain.cpp +++ b/Engine/Monkey/Vulkan/VulkanSwapChain.cpp @@ -111,8 +111,8 @@ VulkanSwapChain::VulkanSwapChain(VkInstance instance, std::shared_ptr& outE { uint32_t count; const char** extensions = Engine::Get()->GetApplication()->GetPlatformApplication()->GetWindow()->GetRequiredInstanceExtensions(&count); - for (int32 i = 0; i < count; ++i) + for (int32 i = 0; i < (int32)count; ++i) { outExtensions.push_back(extensions[i]); } diff --git a/examples/17_InputAttachments/InputAttachments.cpp b/examples/17_InputAttachments/InputAttachments.cpp index 0ff26c06..bfb64da5 100644 --- a/examples/17_InputAttachments/InputAttachments.cpp +++ b/examples/17_InputAttachments/InputAttachments.cpp @@ -524,9 +524,13 @@ class InputAttachmentsDemo : public DemoBase void CreateDescriptorSet() { + m_ModelBufferInfo.buffer = m_ModelBuffer->buffer; + m_ModelBufferInfo.offset = 0; + m_ModelBufferInfo.range = sizeof(ModelBlock); + m_DescriptorSet0 = m_Shader0->AllocateDescriptorSet(); m_DescriptorSet0->WriteBuffer("uboViewProj", m_ViewProjBuffer); - m_DescriptorSet0->WriteBuffer("uboModel", m_ModelBuffer); + m_DescriptorSet0->WriteBuffer("uboModel", &m_ModelBufferInfo); m_DescriptorSets.resize(m_AttachsColor.size()); for (int32 i = 0; i < m_DescriptorSets.size(); ++i) @@ -683,6 +687,7 @@ class InputAttachmentsDemo : public DemoBase std::vector m_ModelDatas; vk_demo::DVKBuffer* m_ModelBuffer = nullptr; + VkDescriptorBufferInfo m_ModelBufferInfo; vk_demo::DVKBuffer* m_ViewProjBuffer = nullptr; ViewProjectionBlock m_ViewProjData; diff --git a/examples/18_DeferredShading/DeferredShading.cpp b/examples/18_DeferredShading/DeferredShading.cpp index 871f6494..b7f0cb34 100644 --- a/examples/18_DeferredShading/DeferredShading.cpp +++ b/examples/18_DeferredShading/DeferredShading.cpp @@ -593,9 +593,13 @@ class DeferredShadingDemo : public DemoBase void CreateDescriptorSet() { + m_ModelBufferInfo.buffer = m_ModelBuffer->buffer; + m_ModelBufferInfo.offset = 0; + m_ModelBufferInfo.range = sizeof(ModelBlock); + m_DescriptorSet0 = m_Shader0->AllocateDescriptorSet(); m_DescriptorSet0->WriteBuffer("uboViewProj", m_ViewProjBuffer); - m_DescriptorSet0->WriteBuffer("uboModel", m_ModelBuffer); + m_DescriptorSet0->WriteBuffer("uboModel", &m_ModelBufferInfo); m_DescriptorSets.resize(m_AttachsColor.size()); for (int32 i = 0; i < m_DescriptorSets.size(); ++i) @@ -763,6 +767,7 @@ class DeferredShadingDemo : public DemoBase std::vector m_ModelDatas; vk_demo::DVKBuffer* m_ModelBuffer = nullptr; + VkDescriptorBufferInfo m_ModelBufferInfo; vk_demo::DVKBuffer* m_ViewProjBuffer = nullptr; ViewProjectionBlock m_ViewProjData; diff --git a/examples/19_OptimizeDeferredShading/OptimizeDeferredShading.cpp b/examples/19_OptimizeDeferredShading/OptimizeDeferredShading.cpp index 05e9535d..184e6564 100644 --- a/examples/19_OptimizeDeferredShading/OptimizeDeferredShading.cpp +++ b/examples/19_OptimizeDeferredShading/OptimizeDeferredShading.cpp @@ -581,9 +581,13 @@ class OptimizeDeferredShading : public DemoBase void CreateDescriptorSet() { + m_ModelBufferInfo.buffer = m_ModelBuffer->buffer; + m_ModelBufferInfo.offset = 0; + m_ModelBufferInfo.range = sizeof(ModelBlock); + m_DescriptorSet0 = m_Shader0->AllocateDescriptorSet(); m_DescriptorSet0->WriteBuffer("uboViewProj", m_ViewProjBuffer); - m_DescriptorSet0->WriteBuffer("uboModel", m_ModelBuffer); + m_DescriptorSet0->WriteBuffer("uboModel", &m_ModelBufferInfo); m_DescriptorSets.resize(m_AttachsColor.size()); for (int32 i = 0; i < m_DescriptorSets.size(); ++i) @@ -806,6 +810,7 @@ class OptimizeDeferredShading : public DemoBase std::vector m_ModelDatas; vk_demo::DVKBuffer* m_ModelBuffer = nullptr; + VkDescriptorBufferInfo m_ModelBufferInfo; vk_demo::DVKBuffer* m_ViewProjBuffer = nullptr; ViewProjectionBlock m_ViewProjData; diff --git a/examples/2_Triangle/Triangle.cpp b/examples/2_Triangle/Triangle.cpp index 536eb5cd..5f9596f5 100644 --- a/examples/2_Triangle/Triangle.cpp +++ b/examples/2_Triangle/Triangle.cpp @@ -190,7 +190,7 @@ class TriangleModule : public AppModuleBase VkViewport viewport = {}; viewport.x = 0; - viewport.y = fheight; + viewport.y = (float)fheight; viewport.width = (float)fwidth; viewport.height = -(float)fheight; // flip y axis viewport.minDepth = 0.0f; diff --git a/examples/2_Triangle/Triangle.md b/examples/2_Triangle/Triangle.md index 7d380977..3c32b03d 100644 --- a/examples/2_Triangle/Triangle.md +++ b/examples/2_Triangle/Triangle.md @@ -132,7 +132,7 @@ static const char* G_DeviceExtensions[] = nullptr }; -static inline void EnumerateInstanceExtensionProperties(const char* layerName, VulkanLayerExtension& outLayer) +static FORCE_INLINE void EnumerateInstanceExtensionProperties(const char* layerName, VulkanLayerExtension& outLayer) { uint32 count = 0; vkEnumerateInstanceExtensionProperties(layerName, &count, nullptr); @@ -140,7 +140,7 @@ static inline void EnumerateInstanceExtensionProperties(const char* layerName, V vkEnumerateInstanceExtensionProperties(layerName, &count, outLayer.extensionProps.data()); } -static inline void EnumerateDeviceExtensionProperties(VkPhysicalDevice device, const char* layerName, VulkanLayerExtension& outLayer) +static FORCE_INLINE void EnumerateDeviceExtensionProperties(VkPhysicalDevice device, const char* layerName, VulkanLayerExtension& outLayer) { uint32 count = 0; vkEnumerateDeviceExtensionProperties(device, layerName, &count, nullptr); @@ -148,7 +148,7 @@ static inline void EnumerateDeviceExtensionProperties(VkPhysicalDevice device, c vkEnumerateDeviceExtensionProperties(device, layerName, &count, outLayer.extensionProps.data()); } -static inline int32 FindLayerIndexInList(const std::vector& layers, const char* layerName) +static FORCE_INLINE int32 FindLayerIndexInList(const std::vector& layers, const char* layerName) { for (int32 i = 0; i < layers.size(); ++i) { @@ -160,12 +160,12 @@ static inline int32 FindLayerIndexInList(const std::vector return -1; } -static inline bool FindLayerInList(const std::vector& layers, const char* layerName) +static FORCE_INLINE bool FindLayerInList(const std::vector& layers, const char* layerName) { return FindLayerIndexInList(layers, layerName) != -1; } -static inline bool FindLayerExtensionInList(const std::vector& layers, const char* extensionName, const char*& foundLayer) +static FORCE_INLINE bool FindLayerExtensionInList(const std::vector& layers, const char* extensionName, const char*& foundLayer) { for (int32 i = 0; i < layers.size(); ++i) { @@ -181,13 +181,13 @@ static inline bool FindLayerExtensionInList(const std::vector& layers, const char* extensionName) +static FORCE_INLINE bool FindLayerExtensionInList(const std::vector& layers, const char* extensionName) { const char* dummy = nullptr; return FindLayerExtensionInList(layers, extensionName, dummy); } -static inline void TrimDuplicates(std::vector& arr) +static FORCE_INLINE void TrimDuplicates(std::vector& arr) { for (int32 i = (int32)arr.size() - 1; i >= 0; --i) { @@ -492,7 +492,7 @@ void VulkanDevice::GetDeviceExtensionsAndLayers(std::vector& outDev ```c++ template -static FORCEINLINE void ZeroVulkanStruct(T& vkStruct, VkStructureType vkType) +static FORCE_INLINE void ZeroVulkanStruct(T& vkStruct, VkStructureType vkType) { vkStruct.sType = vkType; memset(((uint8*)&vkStruct) + sizeof(VkStructureType), 0, sizeof(T) - sizeof(VkStructureType)); diff --git a/examples/30_SkinInstance/SkinInstanceDemo.cpp b/examples/30_SkinInstance/SkinInstanceDemo.cpp index 0016bb0a..4cd8f04e 100644 --- a/examples/30_SkinInstance/SkinInstanceDemo.cpp +++ b/examples/30_SkinInstance/SkinInstanceDemo.cpp @@ -159,7 +159,7 @@ class SkinInTextureDemo : public DemoBase } ImGui::Text("DrawCall:1"); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/33_InstanceDraw/InstanceDrawDemo.cpp b/examples/33_InstanceDraw/InstanceDrawDemo.cpp index 8934e498..7a713bb6 100644 --- a/examples/33_InstanceDraw/InstanceDrawDemo.cpp +++ b/examples/33_InstanceDraw/InstanceDrawDemo.cpp @@ -121,7 +121,7 @@ class InstanceDrawDemo : public DemoBase ImGui::Text("DrawCall:1"); ImGui::Text("Triangle:%d", primitive->triangleNum * primitive->indexBuffer->instanceCount); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/34_SimpleShadow/SimpleShadowDemo.cpp b/examples/34_SimpleShadow/SimpleShadowDemo.cpp index 78a5df77..a877a11e 100644 --- a/examples/34_SimpleShadow/SimpleShadowDemo.cpp +++ b/examples/34_SimpleShadow/SimpleShadowDemo.cpp @@ -143,7 +143,7 @@ class SimpleShadowDemo : public DemoBase ImGui::Checkbox("Auto Spin", &m_AnimLight); ImGui::Text("ShadowMap:%dx%d", m_ShadowMap->width, m_ShadowMap->height); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/35_PCFShadow/PCFShadowDemo.cpp b/examples/35_PCFShadow/PCFShadowDemo.cpp index 50a25263..eddd868d 100644 --- a/examples/35_PCFShadow/PCFShadowDemo.cpp +++ b/examples/35_PCFShadow/PCFShadowDemo.cpp @@ -158,7 +158,7 @@ class PCFShadowDemo : public DemoBase } ImGui::Text("ShadowMap:%dx%d", m_ShadowMap->width, m_ShadowMap->height); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/36_OmniShadow/OmniShadowDemo.cpp b/examples/36_OmniShadow/OmniShadowDemo.cpp index f11cf224..8e07df76 100644 --- a/examples/36_OmniShadow/OmniShadowDemo.cpp +++ b/examples/36_OmniShadow/OmniShadowDemo.cpp @@ -177,7 +177,7 @@ class OmniShadowDemo : public DemoBase ImGui::SliderFloat("Light Range", &m_LightPosition.w, 100.0f, 500.0f); ImGui::Text("ShadowMap:%dx%d", m_RTColor->width, m_RTColor->height); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/37_CascadedShadow/CascadedShadowDemo.cpp b/examples/37_CascadedShadow/CascadedShadowDemo.cpp index 63243dfd..23052a5f 100644 --- a/examples/37_CascadedShadow/CascadedShadowDemo.cpp +++ b/examples/37_CascadedShadow/CascadedShadowDemo.cpp @@ -610,7 +610,7 @@ class CascadedShadowDemo : public DemoBase ImGui::Separator(); ImGui::Text("ShadowMap:%dx%d", m_ShadowMap->width, m_ShadowMap->height); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/38_IndirectDraw/IndirectDrawDemo.cpp b/examples/38_IndirectDraw/IndirectDrawDemo.cpp index f135f4c4..59760ac7 100644 --- a/examples/38_IndirectDraw/IndirectDrawDemo.cpp +++ b/examples/38_IndirectDraw/IndirectDrawDemo.cpp @@ -585,7 +585,7 @@ class IndirectDrawDemo : public DemoBase ImGui::Separator(); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/39_OcclusionQueries/OcclusionQueryDemo.cpp b/examples/39_OcclusionQueries/OcclusionQueryDemo.cpp index bf872993..68109b76 100644 --- a/examples/39_OcclusionQueries/OcclusionQueryDemo.cpp +++ b/examples/39_OcclusionQueries/OcclusionQueryDemo.cpp @@ -81,16 +81,16 @@ class OcclusionQueryDemo : public DemoBase m_ViewCamera.Update(time, delta); } + SetupCommandBuffers(bufferIndex); + + DemoBase::Present(bufferIndex); + vkGetQueryPoolResults( m_Device, m_QueryPool, 0, OBJECT_COUNT, sizeof(uint64) * OBJECT_COUNT, m_QuerySamples, sizeof(uint64), VK_QUERY_RESULT_64_BIT | VK_QUERY_RESULT_WAIT_BIT ); - - SetupCommandBuffers(bufferIndex); - - DemoBase::Present(bufferIndex); } bool UpdateUI(float time, float delta) @@ -104,7 +104,7 @@ class OcclusionQueryDemo : public DemoBase ImGui::Checkbox("EnableQuery", &m_EnableQuery); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/40_QueryStatistics/QueryStatisticsDemo.cpp b/examples/40_QueryStatistics/QueryStatisticsDemo.cpp index 56607f66..2355247b 100644 --- a/examples/40_QueryStatistics/QueryStatisticsDemo.cpp +++ b/examples/40_QueryStatistics/QueryStatisticsDemo.cpp @@ -79,16 +79,16 @@ class QueryStatisticsDemo : public DemoBase m_ViewCamera.Update(time, delta); } + SetupCommandBuffers(bufferIndex); + + DemoBase::Present(bufferIndex); + vkGetQueryPoolResults( m_Device, m_QueryPool, 0, 1, sizeof(uint64) * QUERY_STATS_COUNT, m_QueryStats, sizeof(uint64), VK_QUERY_RESULT_64_BIT ); - - SetupCommandBuffers(bufferIndex); - - DemoBase::Present(bufferIndex); } bool UpdateUI(float time, float delta) @@ -105,7 +105,7 @@ class QueryStatisticsDemo : public DemoBase ImGui::Text("%s : %d", m_StatNames[i], m_QueryStats[i]); } - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/41_ComputeShader/ComputeShaderDemo.cpp b/examples/41_ComputeShader/ComputeShaderDemo.cpp index 13a82ba5..07b327a7 100644 --- a/examples/41_ComputeShader/ComputeShaderDemo.cpp +++ b/examples/41_ComputeShader/ComputeShaderDemo.cpp @@ -130,7 +130,7 @@ class ComputeShaderDemo : public DemoBase } } - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/42_OptimizeComputeShader/OptimizeComputeShaderDemo.cpp b/examples/42_OptimizeComputeShader/OptimizeComputeShaderDemo.cpp index 5add57af..e0889e02 100644 --- a/examples/42_OptimizeComputeShader/OptimizeComputeShaderDemo.cpp +++ b/examples/42_OptimizeComputeShader/OptimizeComputeShaderDemo.cpp @@ -103,7 +103,7 @@ class OptimizeComputeShaderDemo : public DemoBase } } - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/43_ComputeParticles/ComputeParticlesDemo.cpp b/examples/43_ComputeParticles/ComputeParticlesDemo.cpp index 7ad6c6f4..ed86fe6a 100644 --- a/examples/43_ComputeParticles/ComputeParticlesDemo.cpp +++ b/examples/43_ComputeParticles/ComputeParticlesDemo.cpp @@ -125,7 +125,7 @@ class ComputeParticlesDemo : public DemoBase m_ComputeProcessor->SetUniform("param", &m_ParticleParams, sizeof(ParticleParam)); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/44_ComputeRaytracing/ComputeRaytracingDemo.cpp b/examples/44_ComputeRaytracing/ComputeRaytracingDemo.cpp index 0e9d7676..5730ec0f 100644 --- a/examples/44_ComputeRaytracing/ComputeRaytracingDemo.cpp +++ b/examples/44_ComputeRaytracing/ComputeRaytracingDemo.cpp @@ -101,7 +101,7 @@ class ComputeRaytracingDemo : public DemoBase ImGui::SetNextWindowSize(ImVec2(0, 0), ImGuiSetCond_FirstUseEver); ImGui::Begin("ComputeRaytracingDemo", nullptr, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/45_ComputeFrustum/ComputeFrustumDemo.cpp b/examples/45_ComputeFrustum/ComputeFrustumDemo.cpp index c36ddc40..b239a0bf 100644 --- a/examples/45_ComputeFrustum/ComputeFrustumDemo.cpp +++ b/examples/45_ComputeFrustum/ComputeFrustumDemo.cpp @@ -109,7 +109,7 @@ class ComputeFrustumDemo : public DemoBase ImGui::Checkbox("Compute", &m_UseGPU); ImGui::Text("DrawCall:%d", m_DrawCall); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/46_GeometryHouse/GeometryHouseDemo.cpp b/examples/46_GeometryHouse/GeometryHouseDemo.cpp index 20c79331..6cc3da07 100644 --- a/examples/46_GeometryHouse/GeometryHouseDemo.cpp +++ b/examples/46_GeometryHouse/GeometryHouseDemo.cpp @@ -91,7 +91,7 @@ class GeometryHouseDemo : public DemoBase ImGui::SetNextWindowSize(ImVec2(0, 0), ImGuiSetCond_FirstUseEver); ImGui::Begin("GeometryHouseDemo", nullptr, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/47_DebugNormal/DebugNormalDemo.cpp b/examples/47_DebugNormal/DebugNormalDemo.cpp index 1c14cb3e..24faeda9 100644 --- a/examples/47_DebugNormal/DebugNormalDemo.cpp +++ b/examples/47_DebugNormal/DebugNormalDemo.cpp @@ -91,7 +91,7 @@ class DebugNormalDemo : public DemoBase ImGui::SetNextWindowSize(ImVec2(0, 0), ImGuiSetCond_FirstUseEver); ImGui::Begin("DebugNormalDemo", nullptr, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/48_GeometryOmniShadow/GeometryOmniShadowDemo.cpp b/examples/48_GeometryOmniShadow/GeometryOmniShadowDemo.cpp index 554b8fbc..d2237366 100644 --- a/examples/48_GeometryOmniShadow/GeometryOmniShadowDemo.cpp +++ b/examples/48_GeometryOmniShadow/GeometryOmniShadowDemo.cpp @@ -168,7 +168,7 @@ class GeometryOmniShadowDemo : public DemoBase ImGui::SliderFloat("Light Range", &m_LightPosition.w, 100.0f, 500.0f); ImGui::Text("ShadowMap:%dx%d", m_RTColor->width, m_RTColor->height); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/49_SimpleTessellation/SimpleTessellationDemo.cpp b/examples/49_SimpleTessellation/SimpleTessellationDemo.cpp index dce8c11b..a43e3a8d 100644 --- a/examples/49_SimpleTessellation/SimpleTessellationDemo.cpp +++ b/examples/49_SimpleTessellation/SimpleTessellationDemo.cpp @@ -104,7 +104,7 @@ class SimpleTessellationDemo : public DemoBase ImGui::Separator(); ImGui::SliderFloat4("LevelOuter:", (float*)&(m_TessParam.levelOuter), 0.0f, level); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/50_PNTessellation/PNTessellationDemo.cpp b/examples/50_PNTessellation/PNTessellationDemo.cpp index fd60df15..0a1bf363 100644 --- a/examples/50_PNTessellation/PNTessellationDemo.cpp +++ b/examples/50_PNTessellation/PNTessellationDemo.cpp @@ -99,7 +99,7 @@ class PNTessellationDemo : public DemoBase ImGui::SliderFloat("Level0:", &m_TessParam.level.x, 0.1f, 5.0f); ImGui::SliderFloat("Level1:", &m_TessParam.level.y, 0.1f, 5.0f); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/51_Pick/PickDemo.cpp b/examples/51_Pick/PickDemo.cpp index 8322b482..fab76d59 100644 --- a/examples/51_Pick/PickDemo.cpp +++ b/examples/51_Pick/PickDemo.cpp @@ -142,7 +142,7 @@ class PickDemo : public DemoBase ImGui::SetNextWindowSize(ImVec2(0, 0), ImGuiSetCond_FirstUseEver); ImGui::Begin("PickDemo", nullptr, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/52_HDRPipeline/HDRPipelineDemo.cpp b/examples/52_HDRPipeline/HDRPipelineDemo.cpp index cbcb0c95..e27f8139 100644 --- a/examples/52_HDRPipeline/HDRPipelineDemo.cpp +++ b/examples/52_HDRPipeline/HDRPipelineDemo.cpp @@ -103,7 +103,7 @@ class HDRPipelineDemo : public DemoBase ImGui::SliderFloat("Exposure", &m_ParamData.intensity.y, 0.0f, 5.0f); ImGui::SliderFloat("bias", &m_ParamData.intensity.w, 0.0f, 5.0f); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/53_SSAO/SSAODemo.cpp b/examples/53_SSAO/SSAODemo.cpp index d23ca5f2..a39b3d58 100644 --- a/examples/53_SSAO/SSAODemo.cpp +++ b/examples/53_SSAO/SSAODemo.cpp @@ -111,7 +111,7 @@ class SSAODemo : public DemoBase ImGui::SliderFloat("Rejection Falloff", &m_RejectionFalloff, 1.0f, 10.0f); ImGui::SliderFloat("Accentuation", &m_Accentuation, 0.0f, 1.0f); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/54_ThreadedRendering/ThreadedRenderingDemo.cpp b/examples/54_ThreadedRendering/ThreadedRenderingDemo.cpp index 8500e808..67e3b7ae 100644 --- a/examples/54_ThreadedRendering/ThreadedRenderingDemo.cpp +++ b/examples/54_ThreadedRendering/ThreadedRenderingDemo.cpp @@ -314,7 +314,7 @@ class ThreadedRenderingDemo : public DemoBase ImGui::SetNextWindowSize(ImVec2(0, 0), ImGuiSetCond_FirstUseEver); ImGui::Begin("ThreadedRenderingDemo", nullptr, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/55_PBR_DirectLighting/PBRDirectLightingDemo.cpp b/examples/55_PBR_DirectLighting/PBRDirectLightingDemo.cpp index c55b30b3..c10c4096 100644 --- a/examples/55_PBR_DirectLighting/PBRDirectLightingDemo.cpp +++ b/examples/55_PBR_DirectLighting/PBRDirectLightingDemo.cpp @@ -121,7 +121,7 @@ class PBRDirectLightingDemo : public DemoBase ImGui::Combo("Debug", &debug, models, 6); m_PBRParam.param.w = debug; - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/56_PBR_IBL/PBRIBLDemo.cpp b/examples/56_PBR_IBL/PBRIBLDemo.cpp index 039ef893..17299eaa 100644 --- a/examples/56_PBR_IBL/PBRIBLDemo.cpp +++ b/examples/56_PBR_IBL/PBRIBLDemo.cpp @@ -132,7 +132,7 @@ class PBRIBLDemo : public DemoBase ImGui::Combo("Debug", &debug, models, 6); m_PBRParam.param.w = debug; - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/57_GodRay/GodRayDemo.cpp b/examples/57_GodRay/GodRayDemo.cpp index 5f1b9b19..7c0067f4 100644 --- a/examples/57_GodRay/GodRayDemo.cpp +++ b/examples/57_GodRay/GodRayDemo.cpp @@ -105,7 +105,7 @@ class GodRayDemo : public DemoBase ImGui::ColorEdit3("Color", (float*)&m_CombineParam.color); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/58_Imposter/ImposterDemo.cpp b/examples/58_Imposter/ImposterDemo.cpp index d57449b3..0313f581 100644 --- a/examples/58_Imposter/ImposterDemo.cpp +++ b/examples/58_Imposter/ImposterDemo.cpp @@ -89,7 +89,7 @@ class ImposterDemo : public DemoBase ImGui::SetNextWindowSize(ImVec2(0, 0), ImGuiSetCond_FirstUseEver); ImGui::Begin("ImposterDemo", nullptr, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/59_MotionBlur/MotionBlurDemo.cpp b/examples/59_MotionBlur/MotionBlurDemo.cpp index 6d2ed5bf..bb52d057 100644 --- a/examples/59_MotionBlur/MotionBlurDemo.cpp +++ b/examples/59_MotionBlur/MotionBlurDemo.cpp @@ -116,7 +116,7 @@ class MotionBlurDemo : public DemoBase ImGui::SliderFloat("Speed", &m_Speed, 0.1f, 10.0f); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/60_DepthPeeling/DepthPeelingDemo.cpp b/examples/60_DepthPeeling/DepthPeelingDemo.cpp index 13ccb909..d481e094 100644 --- a/examples/60_DepthPeeling/DepthPeelingDemo.cpp +++ b/examples/60_DepthPeeling/DepthPeelingDemo.cpp @@ -97,7 +97,7 @@ class DepthPeelingDemo : public DemoBase ImGui::SliderInt("Debug", &layer, 0, 5); m_PeelParam.z = layer; - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/61_CPURayTracing/ThreadEvent.h b/examples/61_CPURayTracing/ThreadEvent.h index ace0338f..b5d86eac 100644 --- a/examples/61_CPURayTracing/ThreadEvent.h +++ b/examples/61_CPURayTracing/ThreadEvent.h @@ -49,12 +49,12 @@ class ThreadEvent private: - FORCEINLINE void Lock() + FORCE_INLINE void Lock() { m_Mutex.lock(); } - FORCEINLINE void Unlock() + FORCE_INLINE void Unlock() { m_Mutex.unlock(); } diff --git a/examples/62_RTXRayTracingBasic/RTXRayTracingStartBasic.cpp b/examples/62_RTXRayTracingBasic/RTXRayTracingStartBasic.cpp index 664d2135..69d556e4 100644 --- a/examples/62_RTXRayTracingBasic/RTXRayTracingStartBasic.cpp +++ b/examples/62_RTXRayTracingBasic/RTXRayTracingStartBasic.cpp @@ -204,15 +204,19 @@ class RTXRayTracingStartBasic : public DemoBase { VkDevice device = m_VulkanDevice->GetInstanceHandle(); - const uint32 shaderGroupHandleSize = m_RayTracingPropertiesNV.shaderGroupHandleSize * 3; - std::vector shaderGroupHandleData(shaderGroupHandleSize); - VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 0, 3, shaderGroupHandleSize, shaderGroupHandleData.data())); + const uint32 shaderGroupHandleSize = Align(m_RayTracingPropertiesNV.shaderGroupHandleSize, m_RayTracingPropertiesNV.shaderGroupBaseAlignment); + const uint32 shaderGroupTotalSize = shaderGroupHandleSize * 3; + std::vector shaderGroupHandleData(shaderGroupTotalSize); + + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 0, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 0)); + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 1, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 1)); + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 2, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 2)); m_ShaderBindingTable = vk_demo::DVKBuffer::CreateBuffer( m_VulkanDevice, VK_BUFFER_USAGE_RAY_TRACING_BIT_NV, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, - shaderGroupHandleSize, + shaderGroupTotalSize, shaderGroupHandleData.data() ); } @@ -632,7 +636,7 @@ class RTXRayTracingStartBasic : public DemoBase vkCmdBindPipeline(commandBuffer, VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, m_Pipeline); vkCmdBindDescriptorSets(commandBuffer, VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, m_PipelineLayout, 0, 1, &m_DescriptorSet, 0, 0); - VkDeviceSize stride = m_RayTracingPropertiesNV.shaderGroupHandleSize; + VkDeviceSize stride = Align(m_RayTracingPropertiesNV.shaderGroupHandleSize, m_RayTracingPropertiesNV.shaderGroupBaseAlignment); vkCmdTraceRaysNV(commandBuffer, m_ShaderBindingTable->buffer, stride * 0, diff --git a/examples/63_RTXRayTracingMesh/RTXRayTracingMeshDemo.cpp b/examples/63_RTXRayTracingMesh/RTXRayTracingMeshDemo.cpp index ef789bda..9ddc2e3c 100644 --- a/examples/63_RTXRayTracingMesh/RTXRayTracingMeshDemo.cpp +++ b/examples/63_RTXRayTracingMesh/RTXRayTracingMeshDemo.cpp @@ -143,6 +143,7 @@ class RTXRayTracingMeshDemo : public DemoBase { deviceExtensions.push_back(VK_NV_RAY_TRACING_EXTENSION_NAME); deviceExtensions.push_back(VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME); + deviceExtensions.push_back(VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME); instanceExtensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); ZeroVulkanStruct(m_IndexingFeatures, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES); @@ -227,7 +228,7 @@ class RTXRayTracingMeshDemo : public DemoBase ImGui::SetNextWindowSize(ImVec2(0, 0), ImGuiSetCond_FirstUseEver); ImGui::Begin("RTXRaytracing", nullptr, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } @@ -427,15 +428,19 @@ class RTXRayTracingMeshDemo : public DemoBase { VkDevice device = m_VulkanDevice->GetInstanceHandle(); - const uint32 shaderGroupHandleSize = m_RayTracingPropertiesNV.shaderGroupHandleSize * 3; - std::vector shaderGroupHandleData(shaderGroupHandleSize); - VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 0, 3, shaderGroupHandleSize, shaderGroupHandleData.data())); + const uint32 shaderGroupHandleSize = Align(m_RayTracingPropertiesNV.shaderGroupHandleSize, m_RayTracingPropertiesNV.shaderGroupBaseAlignment); + const uint32 shaderGroupTotalSize = shaderGroupHandleSize * 3; + std::vector shaderGroupHandleData(shaderGroupTotalSize); + + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 0, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 0)); + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 1, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 1)); + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 2, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 2)); m_ShaderBindingTable = vk_demo::DVKBuffer::CreateBuffer( m_VulkanDevice, VK_BUFFER_USAGE_RAY_TRACING_BIT_NV, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, - shaderGroupHandleSize, + shaderGroupTotalSize, shaderGroupHandleData.data() ); } @@ -1200,7 +1205,7 @@ class RTXRayTracingMeshDemo : public DemoBase vkCmdBindPipeline(commandBuffer, VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, m_Pipeline); vkCmdBindDescriptorSets(commandBuffer, VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, m_PipelineLayout, 0, m_DescriptorSets.size(), m_DescriptorSets.data(), 0, 0); - VkDeviceSize stride = m_RayTracingPropertiesNV.shaderGroupHandleSize; + VkDeviceSize stride = Align(m_RayTracingPropertiesNV.shaderGroupHandleSize, m_RayTracingPropertiesNV.shaderGroupBaseAlignment); vkCmdTraceRaysNV(commandBuffer, m_ShaderBindingTable->buffer, stride * 0, diff --git a/examples/64_RTXRayTracingSimple/RTXRayTracingSimpleDemo.cpp b/examples/64_RTXRayTracingSimple/RTXRayTracingSimpleDemo.cpp index 09f95724..0e3e1f33 100644 --- a/examples/64_RTXRayTracingSimple/RTXRayTracingSimpleDemo.cpp +++ b/examples/64_RTXRayTracingSimple/RTXRayTracingSimpleDemo.cpp @@ -144,6 +144,7 @@ class RTXRayTracingSimpleDemo : public DemoBase { deviceExtensions.push_back(VK_NV_RAY_TRACING_EXTENSION_NAME); deviceExtensions.push_back(VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME); + deviceExtensions.push_back(VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME); instanceExtensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); ZeroVulkanStruct(m_IndexingFeatures, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES); @@ -232,7 +233,7 @@ class RTXRayTracingSimpleDemo : public DemoBase ImGui::SliderInt("NumberOfBounces", &m_CameraParam.samplesAndSeed.y, 1, 128); ImGui::SliderInt("Seed", &m_CameraParam.samplesAndSeed.z, 1, 65535); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } @@ -434,15 +435,19 @@ class RTXRayTracingSimpleDemo : public DemoBase { VkDevice device = m_VulkanDevice->GetInstanceHandle(); - const uint32 shaderGroupHandleSize = m_RayTracingPropertiesNV.shaderGroupHandleSize * 3; - std::vector shaderGroupHandleData(shaderGroupHandleSize); - VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 0, 3, shaderGroupHandleSize, shaderGroupHandleData.data())); + const uint32 shaderGroupHandleSize = Align(m_RayTracingPropertiesNV.shaderGroupHandleSize, m_RayTracingPropertiesNV.shaderGroupBaseAlignment); + const uint32 shaderGroupTotalSize = shaderGroupHandleSize * 3; + std::vector shaderGroupHandleData(shaderGroupTotalSize); + + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 0, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 0)); + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 1, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 1)); + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 2, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 2)); m_ShaderBindingTable = vk_demo::DVKBuffer::CreateBuffer( m_VulkanDevice, VK_BUFFER_USAGE_RAY_TRACING_BIT_NV, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, - shaderGroupHandleSize, + shaderGroupTotalSize, shaderGroupHandleData.data() ); } @@ -1208,7 +1213,7 @@ class RTXRayTracingSimpleDemo : public DemoBase vkCmdBindPipeline(commandBuffer, VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, m_Pipeline); vkCmdBindDescriptorSets(commandBuffer, VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, m_PipelineLayout, 0, m_DescriptorSets.size(), m_DescriptorSets.data(), 0, 0); - VkDeviceSize stride = m_RayTracingPropertiesNV.shaderGroupHandleSize; + VkDeviceSize stride = Align(m_RayTracingPropertiesNV.shaderGroupHandleSize, m_RayTracingPropertiesNV.shaderGroupBaseAlignment); vkCmdTraceRaysNV(commandBuffer, m_ShaderBindingTable->buffer, stride * 0, diff --git a/examples/65_RTXRayTracingReflection/RTXRayTracingReflectionDemo.cpp b/examples/65_RTXRayTracingReflection/RTXRayTracingReflectionDemo.cpp index 284e9da7..5c259771 100644 --- a/examples/65_RTXRayTracingReflection/RTXRayTracingReflectionDemo.cpp +++ b/examples/65_RTXRayTracingReflection/RTXRayTracingReflectionDemo.cpp @@ -144,6 +144,7 @@ class RTXRayTracingReflectionDemo : public DemoBase { deviceExtensions.push_back(VK_NV_RAY_TRACING_EXTENSION_NAME); deviceExtensions.push_back(VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME); + deviceExtensions.push_back(VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME); instanceExtensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); ZeroVulkanStruct(m_IndexingFeatures, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES); @@ -232,7 +233,7 @@ class RTXRayTracingReflectionDemo : public DemoBase ImGui::SliderInt("NumberOfBounces", &m_CameraParam.samplesAndSeed.y, 1, 128); ImGui::SliderInt("Seed", &m_CameraParam.samplesAndSeed.z, 1, 65535); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } @@ -434,15 +435,19 @@ class RTXRayTracingReflectionDemo : public DemoBase { VkDevice device = m_VulkanDevice->GetInstanceHandle(); - const uint32 shaderGroupHandleSize = m_RayTracingPropertiesNV.shaderGroupHandleSize * 3; - std::vector shaderGroupHandleData(shaderGroupHandleSize); - VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 0, 3, shaderGroupHandleSize, shaderGroupHandleData.data())); + const uint32 shaderGroupHandleSize = Align(m_RayTracingPropertiesNV.shaderGroupHandleSize, m_RayTracingPropertiesNV.shaderGroupBaseAlignment); + const uint32 shaderGroupTotalSize = shaderGroupHandleSize * 3; + std::vector shaderGroupHandleData(shaderGroupTotalSize); + + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 0, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 0)); + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 1, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 1)); + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 2, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 2)); m_ShaderBindingTable = vk_demo::DVKBuffer::CreateBuffer( m_VulkanDevice, VK_BUFFER_USAGE_RAY_TRACING_BIT_NV, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, - shaderGroupHandleSize, + shaderGroupTotalSize, shaderGroupHandleData.data() ); } @@ -1208,7 +1213,7 @@ class RTXRayTracingReflectionDemo : public DemoBase vkCmdBindPipeline(commandBuffer, VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, m_Pipeline); vkCmdBindDescriptorSets(commandBuffer, VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, m_PipelineLayout, 0, m_DescriptorSets.size(), m_DescriptorSets.data(), 0, 0); - VkDeviceSize stride = m_RayTracingPropertiesNV.shaderGroupHandleSize; + VkDeviceSize stride = Align(m_RayTracingPropertiesNV.shaderGroupHandleSize, m_RayTracingPropertiesNV.shaderGroupBaseAlignment); vkCmdTraceRaysNV(commandBuffer, m_ShaderBindingTable->buffer, stride * 0, diff --git a/examples/66_RTXRayTracingHitGroup/RTXRayTracingHitGroupDemo.cpp b/examples/66_RTXRayTracingHitGroup/RTXRayTracingHitGroupDemo.cpp index 53a91572..d5ddafd0 100644 --- a/examples/66_RTXRayTracingHitGroup/RTXRayTracingHitGroupDemo.cpp +++ b/examples/66_RTXRayTracingHitGroup/RTXRayTracingHitGroupDemo.cpp @@ -152,6 +152,7 @@ class RTXRayTracingHitGroupDemo : public DemoBase { deviceExtensions.push_back(VK_NV_RAY_TRACING_EXTENSION_NAME); deviceExtensions.push_back(VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME); + deviceExtensions.push_back(VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME); instanceExtensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); ZeroVulkanStruct(m_IndexingFeatures, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES); @@ -240,7 +241,7 @@ class RTXRayTracingHitGroupDemo : public DemoBase ImGui::SliderInt("NumberOfBounces", &m_CameraParam.samplesAndSeed.y, 1, 128); ImGui::SliderInt("Seed", &m_CameraParam.samplesAndSeed.z, 1, 65535); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } @@ -442,15 +443,22 @@ class RTXRayTracingHitGroupDemo : public DemoBase { VkDevice device = m_VulkanDevice->GetInstanceHandle(); - const uint32 shaderGroupHandleSize = m_RayTracingPropertiesNV.shaderGroupHandleSize * 6; - std::vector shaderGroupHandleData(shaderGroupHandleSize); - VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 0, 6, shaderGroupHandleSize, shaderGroupHandleData.data())); + const uint32 shaderGroupHandleSize = Align(m_RayTracingPropertiesNV.shaderGroupHandleSize, m_RayTracingPropertiesNV.shaderGroupBaseAlignment); + const uint32 shaderGroupTotalSize = shaderGroupHandleSize * 6; + std::vector shaderGroupHandleData(shaderGroupTotalSize); + + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 0, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 0)); + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 1, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 1)); + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 2, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 2)); + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 3, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 3)); + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 4, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 4)); + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 5, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 5)); m_ShaderBindingTable = vk_demo::DVKBuffer::CreateBuffer( m_VulkanDevice, VK_BUFFER_USAGE_RAY_TRACING_BIT_NV, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, - shaderGroupHandleSize, + shaderGroupTotalSize, shaderGroupHandleData.data() ); } @@ -1374,7 +1382,7 @@ class RTXRayTracingHitGroupDemo : public DemoBase vkCmdBindPipeline(commandBuffer, VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, m_Pipeline); vkCmdBindDescriptorSets(commandBuffer, VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, m_PipelineLayout, 0, m_DescriptorSets.size(), m_DescriptorSets.data(), 0, 0); - VkDeviceSize stride = m_RayTracingPropertiesNV.shaderGroupHandleSize; + VkDeviceSize stride = Align(m_RayTracingPropertiesNV.shaderGroupHandleSize, m_RayTracingPropertiesNV.shaderGroupBaseAlignment); vkCmdTraceRaysNV(commandBuffer, m_ShaderBindingTable->buffer, stride * 0, diff --git a/examples/67_RTXRayTracingMonteCarlo/RTXRayTracingMonteCarloDemo.cpp b/examples/67_RTXRayTracingMonteCarlo/RTXRayTracingMonteCarloDemo.cpp index e246da4d..77695315 100644 --- a/examples/67_RTXRayTracingMonteCarlo/RTXRayTracingMonteCarloDemo.cpp +++ b/examples/67_RTXRayTracingMonteCarlo/RTXRayTracingMonteCarloDemo.cpp @@ -153,6 +153,7 @@ class RTXRayTracingMonteCarloDemo : public DemoBase { deviceExtensions.push_back(VK_NV_RAY_TRACING_EXTENSION_NAME); deviceExtensions.push_back(VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME); + deviceExtensions.push_back(VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME); instanceExtensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); ZeroVulkanStruct(m_IndexingFeatures, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES); @@ -254,7 +255,7 @@ class RTXRayTracingMonteCarloDemo : public DemoBase m_CameraParam.samplesAndSeed.x = samples; m_CameraParam.samplesAndSeed.y = bounces; - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } @@ -457,15 +458,19 @@ class RTXRayTracingMonteCarloDemo : public DemoBase { VkDevice device = m_VulkanDevice->GetInstanceHandle(); - const uint32 shaderGroupHandleSize = m_RayTracingPropertiesNV.shaderGroupHandleSize * 3; - std::vector shaderGroupHandleData(shaderGroupHandleSize); - VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 0, 3, shaderGroupHandleSize, shaderGroupHandleData.data())); + const uint32 shaderGroupHandleSize = Align(m_RayTracingPropertiesNV.shaderGroupHandleSize, m_RayTracingPropertiesNV.shaderGroupBaseAlignment); + const uint32 shaderGroupTotalSize = shaderGroupHandleSize * 3; + std::vector shaderGroupHandleData(shaderGroupTotalSize); + + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 0, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 0)); + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 1, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 1)); + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 2, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 2)); m_ShaderBindingTable = vk_demo::DVKBuffer::CreateBuffer( m_VulkanDevice, VK_BUFFER_USAGE_RAY_TRACING_BIT_NV, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, - shaderGroupHandleSize, + shaderGroupTotalSize, shaderGroupHandleData.data() ); } @@ -1384,7 +1389,7 @@ class RTXRayTracingMonteCarloDemo : public DemoBase vkCmdBindPipeline(commandBuffer, VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, m_Pipeline); vkCmdBindDescriptorSets(commandBuffer, VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, m_PipelineLayout, 0, m_DescriptorSets.size(), m_DescriptorSets.data(), 0, 0); - VkDeviceSize stride = m_RayTracingPropertiesNV.shaderGroupHandleSize; + VkDeviceSize stride = Align(m_RayTracingPropertiesNV.shaderGroupHandleSize, m_RayTracingPropertiesNV.shaderGroupBaseAlignment); vkCmdTraceRaysNV(commandBuffer, m_ShaderBindingTable->buffer, stride * 0, diff --git a/examples/68_RTXPathTracing/RTXPathTracingDemo.cpp b/examples/68_RTXPathTracing/RTXPathTracingDemo.cpp index 52824551..93721601 100644 --- a/examples/68_RTXPathTracing/RTXPathTracingDemo.cpp +++ b/examples/68_RTXPathTracing/RTXPathTracingDemo.cpp @@ -190,6 +190,7 @@ class RTXPathTracingDemo : public DemoBase { deviceExtensions.push_back(VK_NV_RAY_TRACING_EXTENSION_NAME); deviceExtensions.push_back(VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME); + deviceExtensions.push_back(VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME); instanceExtensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); ZeroVulkanStruct(m_IndexingFeatures, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES); @@ -296,7 +297,7 @@ class RTXPathTracingDemo : public DemoBase m_GlobalParam.samplingData.z = maxBounces; } - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } @@ -504,15 +505,19 @@ class RTXPathTracingDemo : public DemoBase { VkDevice device = m_VulkanDevice->GetInstanceHandle(); - const uint32 shaderGroupHandleSize = m_RayTracingPropertiesNV.shaderGroupHandleSize * 3; - std::vector shaderGroupHandleData(shaderGroupHandleSize); - VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 0, 3, shaderGroupHandleSize, shaderGroupHandleData.data())); + const uint32 shaderGroupHandleSize = Align(m_RayTracingPropertiesNV.shaderGroupHandleSize, m_RayTracingPropertiesNV.shaderGroupBaseAlignment); + const uint32 shaderGroupTotalSize = shaderGroupHandleSize * 3; + std::vector shaderGroupHandleData(shaderGroupTotalSize); + + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 0, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 0)); + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 1, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 1)); + VERIFYVULKANRESULT(vkGetRayTracingShaderGroupHandlesNV(device, m_Pipeline, 2, 1, shaderGroupHandleSize, shaderGroupHandleData.data() + shaderGroupHandleSize * 2)); m_ShaderBindingTable = vk_demo::DVKBuffer::CreateBuffer( m_VulkanDevice, VK_BUFFER_USAGE_RAY_TRACING_BIT_NV, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, - shaderGroupHandleSize, + shaderGroupTotalSize, shaderGroupHandleData.data() ); } @@ -1474,7 +1479,7 @@ class RTXPathTracingDemo : public DemoBase vkCmdBindPipeline(commandBuffer, VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, m_Pipeline); vkCmdBindDescriptorSets(commandBuffer, VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, m_PipelineLayout, 0, m_DescriptorSets.size(), m_DescriptorSets.data(), 0, 0); - VkDeviceSize stride = m_RayTracingPropertiesNV.shaderGroupHandleSize; + VkDeviceSize stride = Align(m_RayTracingPropertiesNV.shaderGroupHandleSize, m_RayTracingPropertiesNV.shaderGroupBaseAlignment); vkCmdTraceRaysNV(commandBuffer, m_ShaderBindingTable->buffer, stride * 0, diff --git a/examples/69_TileBasedForwardRendering/TileBasedForwardRenderingDemo.cpp b/examples/69_TileBasedForwardRendering/TileBasedForwardRenderingDemo.cpp index a37d3b5e..1e144e80 100644 --- a/examples/69_TileBasedForwardRendering/TileBasedForwardRenderingDemo.cpp +++ b/examples/69_TileBasedForwardRendering/TileBasedForwardRenderingDemo.cpp @@ -170,7 +170,7 @@ class TileBasedForwardRenderingDemo : public DemoBase ImGui::Combo("Debug", &index, "None\0Normal\0\Tile\0"); m_Debug.x = index; - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/71_ShuffleIntrinsics/ShuffleIntrinsicsDemo.cpp b/examples/71_ShuffleIntrinsics/ShuffleIntrinsicsDemo.cpp index 8eda9126..3167bf15 100644 --- a/examples/71_ShuffleIntrinsics/ShuffleIntrinsicsDemo.cpp +++ b/examples/71_ShuffleIntrinsics/ShuffleIntrinsicsDemo.cpp @@ -17,6 +17,7 @@ class ShuffleIntrinsicsDemo : public DemoBase { deviceExtensions.push_back(VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME); deviceExtensions.push_back(VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME); + deviceExtensions.push_back(VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME); } virtual ~ShuffleIntrinsicsDemo() diff --git a/examples/72_MeshLOD/MeshLodDemo.cpp b/examples/72_MeshLOD/MeshLodDemo.cpp index f0550d8e..59f1018f 100644 --- a/examples/72_MeshLOD/MeshLodDemo.cpp +++ b/examples/72_MeshLOD/MeshLodDemo.cpp @@ -106,7 +106,7 @@ class MeshLodDemo : public DemoBase ImGui::SliderInt("LOD", &m_LodIndex, 0, LOD_GROUP_SIZE - 1); ImGui::Text("Tri:%d\n", m_LodGroups[m_LodIndex].count / 3); - ImGui::Text("%.3f ms/frame (%.1f FPS)", 1000.0f / m_LastFPS, m_LastFPS); + ImGui::Text("%.3f ms/frame (%d FPS)", 1000.0f / m_LastFPS, m_LastFPS); ImGui::End(); } diff --git a/examples/assets/shaders/10_Pipelines/compile.py b/examples/assets/shaders/10_Pipelines/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/10_Pipelines/compile.py +++ b/examples/assets/shaders/10_Pipelines/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/11_Texture/compile.py b/examples/assets/shaders/11_Texture/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/11_Texture/compile.py +++ b/examples/assets/shaders/11_Texture/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/12_PushConstants/compile.py b/examples/assets/shaders/12_PushConstants/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/12_PushConstants/compile.py +++ b/examples/assets/shaders/12_PushConstants/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/13_DynamicUniformBuffer/compile.py b/examples/assets/shaders/13_DynamicUniformBuffer/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/13_DynamicUniformBuffer/compile.py +++ b/examples/assets/shaders/13_DynamicUniformBuffer/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/14_TextureArray/compile.py b/examples/assets/shaders/14_TextureArray/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/14_TextureArray/compile.py +++ b/examples/assets/shaders/14_TextureArray/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/15_Texture3D/compile.py b/examples/assets/shaders/15_Texture3D/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/15_Texture3D/compile.py +++ b/examples/assets/shaders/15_Texture3D/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/16_OptimizeShaderAndLayout/compile.py b/examples/assets/shaders/16_OptimizeShaderAndLayout/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/16_OptimizeShaderAndLayout/compile.py +++ b/examples/assets/shaders/16_OptimizeShaderAndLayout/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/17_InputAttachments/compile.py b/examples/assets/shaders/17_InputAttachments/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/17_InputAttachments/compile.py +++ b/examples/assets/shaders/17_InputAttachments/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/18_DeferredShading/compile.py b/examples/assets/shaders/18_DeferredShading/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/18_DeferredShading/compile.py +++ b/examples/assets/shaders/18_DeferredShading/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/19_OptimizeDeferredShading/compile.py b/examples/assets/shaders/19_OptimizeDeferredShading/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/19_OptimizeDeferredShading/compile.py +++ b/examples/assets/shaders/19_OptimizeDeferredShading/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/20_Material/compile.py b/examples/assets/shaders/20_Material/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/20_Material/compile.py +++ b/examples/assets/shaders/20_Material/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/21_Stencil/compile.py b/examples/assets/shaders/21_Stencil/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/21_Stencil/compile.py +++ b/examples/assets/shaders/21_Stencil/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/22_RenderTarget/compile.py b/examples/assets/shaders/22_RenderTarget/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/22_RenderTarget/compile.py +++ b/examples/assets/shaders/22_RenderTarget/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/24_EdgeDetect/compile.py b/examples/assets/shaders/24_EdgeDetect/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/24_EdgeDetect/compile.py +++ b/examples/assets/shaders/24_EdgeDetect/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/25_Bloom/compile.py b/examples/assets/shaders/25_Bloom/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/25_Bloom/compile.py +++ b/examples/assets/shaders/25_Bloom/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/26_SkeletonMatrix4x4/compile.py b/examples/assets/shaders/26_SkeletonMatrix4x4/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/26_SkeletonMatrix4x4/compile.py +++ b/examples/assets/shaders/26_SkeletonMatrix4x4/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/27_SkeletonPackIndexWeight/compile.py b/examples/assets/shaders/27_SkeletonPackIndexWeight/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/27_SkeletonPackIndexWeight/compile.py +++ b/examples/assets/shaders/27_SkeletonPackIndexWeight/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/28_SkeletonQuat/compile.py b/examples/assets/shaders/28_SkeletonQuat/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/28_SkeletonQuat/compile.py +++ b/examples/assets/shaders/28_SkeletonQuat/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/29_SkinInTexture/compile.py b/examples/assets/shaders/29_SkinInTexture/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/29_SkinInTexture/compile.py +++ b/examples/assets/shaders/29_SkinInTexture/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/2_Triangle/compile.py b/examples/assets/shaders/2_Triangle/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/2_Triangle/compile.py +++ b/examples/assets/shaders/2_Triangle/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/30_SkinInstance/compile.py b/examples/assets/shaders/30_SkinInstance/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/30_SkinInstance/compile.py +++ b/examples/assets/shaders/30_SkinInstance/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/31_MSAA/compile.py b/examples/assets/shaders/31_MSAA/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/31_MSAA/compile.py +++ b/examples/assets/shaders/31_MSAA/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/32_FXAA/compile.py b/examples/assets/shaders/32_FXAA/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/32_FXAA/compile.py +++ b/examples/assets/shaders/32_FXAA/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/33_InstanceDraw/compile.py b/examples/assets/shaders/33_InstanceDraw/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/33_InstanceDraw/compile.py +++ b/examples/assets/shaders/33_InstanceDraw/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/34_SimpleShadow/compile.py b/examples/assets/shaders/34_SimpleShadow/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/34_SimpleShadow/compile.py +++ b/examples/assets/shaders/34_SimpleShadow/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/35_PCFShadow/compile.py b/examples/assets/shaders/35_PCFShadow/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/35_PCFShadow/compile.py +++ b/examples/assets/shaders/35_PCFShadow/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/36_OmniShadow/compile.py b/examples/assets/shaders/36_OmniShadow/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/36_OmniShadow/compile.py +++ b/examples/assets/shaders/36_OmniShadow/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/37_CascadedShadow/compile.py b/examples/assets/shaders/37_CascadedShadow/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/37_CascadedShadow/compile.py +++ b/examples/assets/shaders/37_CascadedShadow/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/38_IndirectDraw/compile.py b/examples/assets/shaders/38_IndirectDraw/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/38_IndirectDraw/compile.py +++ b/examples/assets/shaders/38_IndirectDraw/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/39_OcclusionQueries/compile.py b/examples/assets/shaders/39_OcclusionQueries/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/39_OcclusionQueries/compile.py +++ b/examples/assets/shaders/39_OcclusionQueries/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/40_QueryStatistics/compile.py b/examples/assets/shaders/40_QueryStatistics/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/40_QueryStatistics/compile.py +++ b/examples/assets/shaders/40_QueryStatistics/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/41_ComputeShader/compile.py b/examples/assets/shaders/41_ComputeShader/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/41_ComputeShader/compile.py +++ b/examples/assets/shaders/41_ComputeShader/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/42_OptimizeComputeShader/compile.py b/examples/assets/shaders/42_OptimizeComputeShader/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/42_OptimizeComputeShader/compile.py +++ b/examples/assets/shaders/42_OptimizeComputeShader/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/43_ComputeParticles/compile.py b/examples/assets/shaders/43_ComputeParticles/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/43_ComputeParticles/compile.py +++ b/examples/assets/shaders/43_ComputeParticles/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/44_ComputeRaytracing/compile.py b/examples/assets/shaders/44_ComputeRaytracing/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/44_ComputeRaytracing/compile.py +++ b/examples/assets/shaders/44_ComputeRaytracing/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/45_ComputeFrustum/compile.py b/examples/assets/shaders/45_ComputeFrustum/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/45_ComputeFrustum/compile.py +++ b/examples/assets/shaders/45_ComputeFrustum/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/46_GeometryHouse/Point.frag.spv b/examples/assets/shaders/46_GeometryHouse/Point.frag.spv index f67f201135c138f22f9bfb7bd9b0a8e1c9227e92..ae6fc3ea5345432ead8248f765ec5b5a6c26909f 100644 GIT binary patch delta 18 Zcmeyu{Dqm5nMs+Qfq{{MYa{1tMgS;H1K0on delta 18 Zcmeyu{Dqm5nMs+Qfq{{MeIw^h{XmM7nMs+Qfq{{MYa{1k#?4O{br?5WFyCV2W?>LzU|;}BF|ch`WnIhx0N;fO A#sB~S delta 111 zcmaDLbwZkxnMs+Qfq{{MeIw^$MpiZkb_UVOyo}P~q6`cS%s`x;6YpG_ljD+ET#}fV zoVs~6qb?(>2LmfmStFA$FH9LXP$|pit4wzph1nQDfqc diff --git a/examples/assets/shaders/46_GeometryHouse/Point.vert.spv b/examples/assets/shaders/46_GeometryHouse/Point.vert.spv index 261081140fa72c789f465acb1ef030d52052ba4c..cfda19e984918ce7a728ead60a851a83e25dfd6b 100644 GIT binary patch delta 18 Zcmeys@qvSrnMs+Qfq{{MYa?em3jilz16cq7 delta 18 Zcmeys@qvSrnMs+Qfq{{MeIsW&3jilk16BY4 diff --git a/examples/assets/shaders/46_GeometryHouse/compile.py b/examples/assets/shaders/46_GeometryHouse/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/46_GeometryHouse/compile.py +++ b/examples/assets/shaders/46_GeometryHouse/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/47_DebugNormal/Line.frag.spv b/examples/assets/shaders/47_DebugNormal/Line.frag.spv index f67f201135c138f22f9bfb7bd9b0a8e1c9227e92..ae6fc3ea5345432ead8248f765ec5b5a6c26909f 100644 GIT binary patch delta 18 Zcmeyu{Dqm5nMs+Qfq{{MYa{1tMgS;H1K0on delta 18 Zcmeyu{Dqm5nMs+Qfq{{MeIw^;*%%s88qMzb@!J6Z{b$TrkBf+9Q_N<5`i-#}MDZfp4*@5JHojl#o-t&1r zE5wtA*p-(TVCn(5n7vJ(C)A!K)zYLUUaxPU&37xV&~xg#fw9w+!7 zm#W@J?E+os2+SCI7Wx2e0Qy&|t$OSqYR!D^AA>_c_g~~h2iRZ$b)p^vQmwhPKImLM z298iS0eTUt3ot)MkG)Z~-F!4=P)=KA7Q@&CGPHSF53m6JE#Mk~TR delta 656 zcmZ8fyH3ME5ZrU@81twQM0sKekAQ)M8i9lW1xNuE5*3P&6EW&Q`(-OAR9t12V@+5awgD5CaY_M@#3+OGe&c8%SgKbkEi1b ze2%FguEORMUm$_|!7pi!IU?&@fX}h)b75Ia&PBWkOHCKpP2*8=`IIzeSr<^80_(5^ zAQRZodGZus>}iezwzSV4F4}_qzbNZ=z;nr##Lw25QjO>{AC2l@rhx-=a+4K+PeXnN z*h44PRsrVDWg^*bO>^XVcpE?V-Tu##=J5%UJ%OGyz|ZvsqEfd4`> N{ja7KWWnMs+Qfq{{MYa^#K2LK~f0|5X4 delta 18 ZcmX>ja7KWWnMs+Qfq{{MeIutc2LK~Q0{#F1 diff --git a/examples/assets/shaders/47_DebugNormal/compile.py b/examples/assets/shaders/47_DebugNormal/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/47_DebugNormal/compile.py +++ b/examples/assets/shaders/47_DebugNormal/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/48_GeometryOmniShadow/Depth.frag.spv b/examples/assets/shaders/48_GeometryOmniShadow/Depth.frag.spv index feb3bd0dc8e2c99d21555910ce4372109ee9f571..90579da01bc87430386026c3edced84aec11ae8a 100644 GIT binary patch delta 18 Zcmeys^nr&zhV}m0TMCC=|)MTlLP|wF3`F6`o%JVb%asMUsE2#L- z;XT2UPeuA_`y;!8&H>HwNj8Gp>%wlJ_C5L|nBOEynN_(AP8*1WAPhE=4-wT@t(!bg z48RcRYvx+5YU&?ua?^{Gdk_KASN;M-!A=+TbFrSZcBgsi#faKnYhLopu}ph{>gm>w z{~62Hs|zctJK~M%%@x(zc(zjt<<=^^;+Nx@dgs}HohAP}o{8$2s_#u?rrqBsJ@%iJJ_t{=%?Ywd^*{2U_=b$+^YIX9f#}mwt)4ZpA(SUC{WMT z$KZNab*UGLs+szP)aNIu=*F1(6kO`vpjCaETs>2tf$Le-rLOZ=%~o>)uKlQ|o2J}) zC*fKRJ-?Xj9M-d%nn+0B zQ;X9RDo=r&^b62$)tsKgva}! zthy!q4aV?yXyV$Hap(7I-+>1tALl#YIrn_`-go!3Tcx-FE=lNc}m+-!pQk{PP zZ0`@>4_uqSM*rJmtBQ3h1|ChGHQPJ&ZUy+O6B#k%CtKaRz5AO zl-*=9Q{<@(3LJ86h&Jt*oev4rO8Rc(CxoK{`W{_jcc`_izFGXFut{JJGuA1d642ZA zDe%e(cx@BZ=h6+y;^|N~A6^~n(DC6W(afhHzT9U-8oK$M5yz)Ru>Ej`QGuFyjqyQQ zOaU{Vw#3Q-Sa4S8c7Gb02iOK3=M>Kic1;uFtfI!JC5K;B#Co?rKhOJ;uu>Qom_aW+ zHs`W=u&!JO`k<8)JC2EFu{(?fBcX~p819!Yr|>3AY;PCRRJoSb4tFsG;DI6V-U zK`%Y#^g>)`ia5QL@+#8tM%p^ diff --git a/examples/assets/shaders/48_GeometryOmniShadow/PCFShadow.frag.spv b/examples/assets/shaders/48_GeometryOmniShadow/PCFShadow.frag.spv index 44e81fb4f50391d392918f3a2cf67752a75fd587..59d630da7a915ec0d4c3f4a2c5046f39bcba2b65 100644 GIT binary patch delta 18 ZcmeB>?U3bUW>RKnU|?k6+Q?bY2LK#u0@VNj delta 18 ZcmeB>?U3bUW>RKnU|?im-^f|d2LK#f0@45g diff --git a/examples/assets/shaders/48_GeometryOmniShadow/PCFShadow.vert.spv b/examples/assets/shaders/48_GeometryOmniShadow/PCFShadow.vert.spv index e2e1fe0e9a1190ba76a103bfee2e45502a39259f..cb1e651f67d313211744f68b01f1854c8c1bc444 100644 GIT binary patch delta 18 Zcmca0bU}!dnMs+Qfq{{MYa^#SCjcZR0}=oL delta 18 Zcmca0bU}!dnMs+Qfq{{MeIutkCjcZC0}lWI diff --git a/examples/assets/shaders/48_GeometryOmniShadow/SimpleShadow.frag.spv b/examples/assets/shaders/48_GeometryOmniShadow/SimpleShadow.frag.spv index f36cf074788dc06a1212b67b581f28b392e79d06..7825ac2b362b9e1ca161cb173a6603f912a3b89d 100644 GIT binary patch delta 18 ZcmX>id_j718@KU delta 18 ZcmX>id_i@18o2R diff --git a/examples/assets/shaders/48_GeometryOmniShadow/SimpleShadow.vert.spv b/examples/assets/shaders/48_GeometryOmniShadow/SimpleShadow.vert.spv index e2e1fe0e9a1190ba76a103bfee2e45502a39259f..cb1e651f67d313211744f68b01f1854c8c1bc444 100644 GIT binary patch delta 18 Zcmca0bU}!dnMs+Qfq{{MYa^#SCjcZR0}=oL delta 18 Zcmca0bU}!dnMs+Qfq{{MeIutkCjcZC0}lWI diff --git a/examples/assets/shaders/48_GeometryOmniShadow/compile.py b/examples/assets/shaders/48_GeometryOmniShadow/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/48_GeometryOmniShadow/compile.py +++ b/examples/assets/shaders/48_GeometryOmniShadow/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/49_SimpleTessellation/Simple.frag.spv b/examples/assets/shaders/49_SimpleTessellation/Simple.frag.spv index f67f201135c138f22f9bfb7bd9b0a8e1c9227e92..ae6fc3ea5345432ead8248f765ec5b5a6c26909f 100644 GIT binary patch delta 18 Zcmeyu{Dqm5nMs+Qfq{{MYa{1tMgS;H1K0on delta 18 Zcmeyu{Dqm5nMs+Qfq{{MeIw^F1|n&&Z6-_v3?&R^!s zdH!rgE0|(<`D$tC$P%SblArAVbh?=a@0~-}kxz{*G&tA`+z0kMgoW9j-l;{GQ{7 z`^8cxdNG$K+~k$v^*ovBw}?KYS%ntH`gN?A$>aPfsU=S9I=J1(PyzrL>#z% zkt|gG7p(bLpMm_Y8K~`=f!eMag6va$RJY#G`-)64kGU~9b~PNkkYl3ZxF=@=cTjki zKI-N++u7zOW%gNRtcRP?x5NESYJI8o5xNb~qYJpeFk_TU*pt&GzxyGK4MV`T|1ArVGhvlB(tS6gadtk+v vDBFM!s)_ZctOHa$G6on!eh;9J5w}30H8Bw1o^3^#N8boHB1hjJhVX!Y+y_(d diff --git a/examples/assets/shaders/49_SimpleTessellation/SimpleIso.tese b/examples/assets/shaders/49_SimpleTessellation/SimpleIso.tese index 36338c64..70cda5ce 100644 --- a/examples/assets/shaders/49_SimpleTessellation/SimpleIso.tese +++ b/examples/assets/shaders/49_SimpleTessellation/SimpleIso.tese @@ -11,6 +11,11 @@ layout(isolines, equal_spacing, cw) in; layout (location = 0) out vec3 outColor; +in gl_PerVertex +{ + vec4 gl_Position; +} gl_in[]; + void main() { vec4 p1 = mix(gl_in[0].gl_Position, gl_in[1].gl_Position, gl_TessCoord.x); diff --git a/examples/assets/shaders/49_SimpleTessellation/SimpleIso.tese.spv b/examples/assets/shaders/49_SimpleTessellation/SimpleIso.tese.spv index 5a568ff7355e49f522a747430d1580d8d16c505b..b36b580e96ef0bfcf91aa8e9e0d58cba3c7fccdd 100644 GIT binary patch literal 2344 zcmZXVTTj$r5QaYvyMW*Uk%NkBm-UPyC?JX;u;{J=2?>TM>*RIY=k8>UFjO%qrvwig@lNp7C(eAln|#$UXs!qCc(1YVpZJ(HzN0Wa@xdn< zwtNNsJ=3|hyS)}h`=6vLx0qn)htYu_Ztcab;P?cG%jdxVlEK1zlX!SEThT{lE*ES+B18#+r8o*`wCS5^(?fIcFvsMC{-DxN;rd@r8Dt; z=p+}cB#qsID;Pe6J`Z(L13$d5r!x%ylT0UfO!iZq=-f#u+euHoF0a ze<{<+!G5C?4mKNXb_Hx+J;?yU`34TA}WOg~TSM|2s(~yL_<^GT*~L zg3sbcq!Y(I=Ho_X<6Bi%?&X?4@ziH;7bNU5 z^MD^VIr!PZWr_V}(Vu;Mk>M7zlEttS7PBfH{DSDO-MjgM~&`?sdIAo&9SjC;x)}B!87( zOnjf+In7#S$myK(p4&TTrX|-p+2LG^>u{ZJ$EB;!wYr?tZr3i4bEWOQ?U`ErXl8Ey zArTi6FImp@x-LaK*CshW2+P`BpJY@*@RsDF;_;7UbaD;Hm(w40e#((obhchzzApJH zv-sNGdFdabce_D#Kd9D&Q<*|j935X=3+rKA7TS@-(=Wlpa(yrS8W3kb`pQ>~!pcTi zs~?mPgNBbe;5&(;h7W$6QFwA-IB{OtZ-ZK`7{}Eknc|vrliDkfQr_dc>84a4-14h__jTu?%bOW%JGUvbkn^S=^?2+3fPZuGzc+7QGD9mrm~= zEX|{THV>P;Rf*++HRo~8Y#ugw-z1g?W_ip94q(iO`Stj z1E(K0Z;u+r_nLGT@yrw-HLU&(>CDvZDe2T_4!pDGIZ)?;kHJr0Y<_o**AuUkJ1qZG z?daUkn17F8Ce&P#4G-Q4HL-aoVEC84P7d}P?ew#=WAkpn7Sw}0`mw-%3E|CBoA<$Q zJDkj(^!A$0%{>fAxI69#SymqLgA#leH!Phv?kO8LA{*bDx-$3c67GikpcZ#fkbv*1 zGPTDgg(m3{TYM9e76~(l1NDht(djq~e&cjgI-I!MET>zt@mbt$>BLP*vT=80<1_Ae zr8je*76xwI?@0&CigCX$+_=Mm`ozPXx#PF_&PwMzX6xTr5@TE*%Z5w0k715;5^&=( z?=f%_o(v7pttt1TmyZZ5dHYMbOTi$Ewmd9DK ViK7PJt8EFh#<%6|-%R(JFiZUnA&Q zgnp+!A!y)mzH{!mXYS|G+hH{f&Pry^Dpt1fs(M%Km|41d_;T?&bM=cDsqb+yo955+ zTp=*SYKPm-VP|8%;(58hk*t^=PMTWInEFrj6?{db;hKEkbgZTRRh z(NlikhP8SQn&>My1oFFH>qL3lRke06nbqJPXaaThVaDu0G}Z+%HeL9hbGiH;MNt Ah5!Hn delta 775 zcmZ`$K}y3w6#bJXZBa^fQQU|GbSJoNw5A$UYnMU~AR<8qVk0!&xak!vIfg6g0lbFb z89ajEdr2mgKm(7N|K6MT|4iPy-}{}0b=(qB(vr4JR-LIc5RqUN{U|RB)WOn2$?rLS zxKHLf)yYhnaFbVt*Ryo0-y-^qW))f(>(`N+$1GQ~41lgzhsBXQR_Z6979&=-I>}oi6A;(0+aZk<$?x652 zebmiuHnYu5%IvesSPwU&Z-)EpmGz~Thv?Qvk1pT>M|eT@?E&Pd5%is7rFH_is4uW` zX7Yow=HDR49Ja0JoWi#Ueh9cC<2?8Z1P))2iWgVd6krBWc@;d;1jJO2~t%-s7_G~M{Jo<*X5jpz)FoXyE1MgE*0ssI2 diff --git a/examples/assets/shaders/49_SimpleTessellation/SimpleQuad.tese b/examples/assets/shaders/49_SimpleTessellation/SimpleQuad.tese index 1aeb930a..0ff8a956 100644 --- a/examples/assets/shaders/49_SimpleTessellation/SimpleQuad.tese +++ b/examples/assets/shaders/49_SimpleTessellation/SimpleQuad.tese @@ -11,6 +11,11 @@ layout(quads, equal_spacing, ccw) in; layout (location = 0) out vec3 outColor; +in gl_PerVertex +{ + vec4 gl_Position; +} gl_in[]; + void main() { float u = gl_TessCoord.x; diff --git a/examples/assets/shaders/49_SimpleTessellation/SimpleQuad.tese.spv b/examples/assets/shaders/49_SimpleTessellation/SimpleQuad.tese.spv index d7409d2346429468c00517be48c5cbe757d381d9..96395ccf984c2108e753b9629728cba5340c0a5d 100644 GIT binary patch delta 41 xcmZ1@GC`P=nMs+Qfq{{MYa?ejS0PDW{2IR*v>CLm7FiFeM)EO5yzE=kNw zPGx|oaAcI+JdII|adH3?iz!GcBM@^#X%7Zg2AFn`7&8#V#6WD27|Z6BOuS6YY(U!* MS%fzqV7b5o0N4BznE(I) diff --git a/examples/assets/shaders/49_SimpleTessellation/SimpleTri.tesc b/examples/assets/shaders/49_SimpleTessellation/SimpleTri.tesc index 0cdbff95..fb5187b7 100644 --- a/examples/assets/shaders/49_SimpleTessellation/SimpleTri.tesc +++ b/examples/assets/shaders/49_SimpleTessellation/SimpleTri.tesc @@ -8,6 +8,16 @@ layout (binding = 0) uniform TessParam layout (vertices = 3) out; +in gl_PerVertex +{ + vec4 gl_Position; +} gl_in[]; + +out gl_PerVertex +{ + vec4 gl_Position; +} gl_out[]; + void main() { if (gl_InvocationID == 0) diff --git a/examples/assets/shaders/49_SimpleTessellation/SimpleTri.tesc.spv b/examples/assets/shaders/49_SimpleTessellation/SimpleTri.tesc.spv index 645f394ef52317c63c4094ec2a4be86422a1f9c3..f31f8286bd8abbba802287d4360b694552c4b0c8 100644 GIT binary patch delta 444 zcmZXO&q@Me6vgj1qoWv-Ekc42p;fdD8Pm~b%706tRV!B!f;5Y4-76$MMyv1ve2t)I z5&E6_grI@L`OdlLp1Ge#Z-><|I4hYst615_tLj~`V`k~<;mgJA%+=3hq`t?+Y??pM zm-GC|idHbi@bZ_Xp(9I_K1qJE|I_LEK6r2KyAFJ6Y@x{uz=W3l_TPE3`3Se}wc(@3 zL{IsB8`kP2Xriy+5XkR(trO*GSJm3RU{-^Bpb6B~hc*B83UT2UMh($ delta 775 zcmZ`$K}y3w6#bJXZBa^fQQU|GTncVnG+I-QskKX?2N01U1F;dBZrt<=mK?*C^Z;H% z@C+V7@Vz7xN}z$q%zy9A`+p|y-S7QQ!#Zw>C}~MsCaccW8Hh-*ihh)r1?phwq2%`* zKinsCo$6#JO}NP`!|Pc()o&4fMzabnjP>hC&(p`*Q&eeFps%0Id(N1yO3j|;kYMf19wn( zmOkp{Hk;YzCS~?%Wvqvr(Ko~W^~(BE%R_YQqemBTfg`*i`}P2G)Cl^{u~It&T+|m> zIWze|S@Um@V-DNab57vf13v^@k#Qb;g@WdSwB;ImJ{EZfvkm}qY#f$*hO-{8f9<{% xU!rUSKBy+vo3aj2@yG~Z4EY^^K1SREh1SGCe0#PPVIF-$+=v`~e;C38{sI1vR1p9G diff --git a/examples/assets/shaders/49_SimpleTessellation/SimpleTri.tese b/examples/assets/shaders/49_SimpleTessellation/SimpleTri.tese index 7e9ccbff..eb36f24c 100644 --- a/examples/assets/shaders/49_SimpleTessellation/SimpleTri.tese +++ b/examples/assets/shaders/49_SimpleTessellation/SimpleTri.tese @@ -11,6 +11,11 @@ layout(triangles, equal_spacing, ccw) in; layout (location = 0) out vec3 outColor; +in gl_PerVertex +{ + vec4 gl_Position; +} gl_in[]; + void main() { gl_Position = (gl_TessCoord.x * gl_in[0].gl_Position) + (gl_TessCoord.y * gl_in[1].gl_Position) + (gl_TessCoord.z * gl_in[2].gl_Position); diff --git a/examples/assets/shaders/49_SimpleTessellation/SimpleTri.tese.spv b/examples/assets/shaders/49_SimpleTessellation/SimpleTri.tese.spv index e535ef1c8ec4bdd95344ec41848dabaf40631208..3b64595c153c4c1dace81374a3f02767b0b0a9c4 100644 GIT binary patch delta 41 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 UfE%M8pWAD|=F;aml6#K+19iyG9smFU literal 8312 zcma)=37A%86~`|OGs7mUfFg{;qJk*RjI6T5ARq)&D7JzFPV&((5HpZakw%6^Ws#M% z7_HF0LAyoJZVR^Cg0|7VZ?;JOe&2Twy>p*nZu>;T|cHr6Anrt}u=Js_hZQItgZR={g1xn`?U94|QXQ`{S zr31CL9Bg*3?_B-pJ6Av6d)C>qy{l4_=K#K}W5<>at?uNq=5qa>4T8=#>RxzO(5_#@X_LDF zrH(R%S7oHkTFSnvY^S)>WH zTi?{kOz&q!b8pr+Hg(h7ll2WvWc_cPd$GQu(c5%(uIGDwV?#HsTCJ&}+uWLRTw^zl z2Q%wv>|RT6wTA9-eadl_e4dm2aQ3g#7}!0$n{jLFw${x#KTzO@3jA<^A1Uyo1%AB1 zPZapc0>8h&PZjus-FQ`Y8on6w-g;QqlyR?YI5_QVM1hYl@JkB3slc!5#%s&(D$eb7 zZJnJf+IFD zyze6~-)CN-nOe;;G|!=$XD>9dnrCkb9`hNu1jYAC9p+`c&#+gzmRfNwwc=W8#kC^N zwS4By>zS4NtjF4NpL4l6cXr?8P0;%BDV?NPDiw#!#Ejr#xat z5I-c>yhr96%2{q|s^Qz|jCoviueLe+j zjgkMUxnJG+^0m3<{0%vFj{E2r1bg%RSntyq)gs@`VAoSOpL}Dk8SnQR<71zn4z^Zx zw$?5IoOqJ!JiAa{yLtFI~k4rf6V${Myzw9 z-raOJZ0q;=odtJ&`<L8q9ZD@EdZz z0B;@m37GGEb>H>IdG?-&=`+sv-;=S`nE8yG%V|(EE^@B}r)%Aq^97ukN#It@_y3KU zb9^7J$JCA4z<3k37BiP?$c>3LO5k)2zr)I%?|W_w=DSbbIlkkzV(P~D?%RfK#LVRy za${nR?chqz+VZ>bnQ-^WzBT>E`W)SY={Jwhf;{p(3!LV8HrzbBF!Sh-JkJ5^H;>Pd zJo4NMPV?LbH;?aN^W2I>p67w}o5yEQ9(kS*uH>mH_jNnm`(X}!k>dqmedh3al}C;{ zz-f*b!p&h%`Xa}R!1~Owmr))$UJOoiyaa9z`_UIUUJBM{4&Mv%$ngrWIU@Ehu={^I z_t^XLN~{@EkC<11-P_ypm{)_1Q+JKK8Qlx<0Y-b8$@w?mYq0*9G5R9sYr*bOtou5! zu@${i%j@B;rSFb>?Kgnc@4)S+f<^!+Aq+V`8`_7v;C1#I8yQR7>| z?oIUlHn4H(_IilXUd4wQT|4@IJJ`OB(HA-20rtMey6*%VtG*}i@m*lo(ieTd8?2u8 z{T{e|+gsG3W^DBRUU1s?``~Hc?}yvBderyh^ksG1fZ@_WVWP9|GIA zG5R9shrwyzAAuXI9({il>{|Mw?~j4i)4o3rw{LrMZEI39Hv0YqIPLqBaC?e<{}kB1 z)uYB^VD~2a{xsOQW0-3kXN>hufZc=W`!itsHb!6M{4CgKFxLGX*jV-G`}1Je(ieSy z0j!?({YAKa+uOaEHK`dJeSZm@_Wfme+V@xB_N^W@eifXa^RK~;Q+JJ%jM2BB*U}e#e;cfx_Wd2WecRi8m^G;x8-0Hloc8@axIM+b ze;;h$>QUnl!0t`l?;nDVQ+JJ1jP@#ikkLJe`~48uzKzirIe!G+gT=Z(20w&V^vZkf zCvex&7k&Q}te*D$Gq`=*+XI+&s2Ll5{~T=J@h6k6eEPr@8(PHe2Hku=(^w+-R`%=!>4~!1iok{!X?=HDjaai@|BnW8n4}^^Aq@gGbNf z;Krz%Z#<)Yiv11b^B6r}3b$ut^hM6gz@DYx6X5Pa^fD1{jC%BZIoN#qB5o4cdh|ul zSAgx=zUndSQZqJsz7m}F{1~`BMm-I1?|byz2scLEeEznxPqDx2yywyL6u3Pbqc3t! z1$$qEPlLM$(aUtWG3wFt46yn1MchoV_2`S9uLj$*efjqe>ryi|dY%WiXXiA77h?-C zYhT0|bzPJD7Vus1AigDV{|4fG^U95hJS)KeE6-!m^+leQ;N@66A97(w&$O>jT3f9p7pF?zcQtZq$pj2B}gF?H87ZU|#Nrf(H1jbi@cYB)ikfj>pgVcOEK3rF4npnTv@B~oBRs+L`>Zn z=Us`Z-<9vxWU#r^&#))*bT2)JUg=&AfXBWL1iP1m8T~s^BV!Zho(G?u^QiMGxbtF9 zrhwfO^>k0B!u7?TOarTFUa=>UcRHH2Mcx@;^QxzLXTtSG-mAfCnpfnFy`F{U+QyZi zT}HK7cMiC+Ze`!+!rgcE*!Ov0^_VjsT-k%loCR>_sK=azV0GUi-n&JZdDN}LeN~J2 z#bEb7_%&c-;$ANS8>1fYho#_VOkd1f22S%_oAb!C9Bzzyd~UA*n@gYPNbWg$6#ZMw A#Q*>R diff --git a/examples/assets/shaders/50_PNTessellation/Simple.tese b/examples/assets/shaders/50_PNTessellation/Simple.tese index 221a8302..c67a5ff4 100644 --- a/examples/assets/shaders/50_PNTessellation/Simple.tese +++ b/examples/assets/shaders/50_PNTessellation/Simple.tese @@ -40,6 +40,11 @@ layout (location = 0) out vec3 outNormal; layout (location = 1) out vec2 outUV0; layout (location = 2) out vec3 outColor; +in gl_PerVertex +{ + vec4 gl_Position; +} gl_in[]; + void main() { vec3 uvwSquared = gl_TessCoord * gl_TessCoord; diff --git a/examples/assets/shaders/50_PNTessellation/Simple.tese.spv b/examples/assets/shaders/50_PNTessellation/Simple.tese.spv index 6f80a4cdd53ad27e467c1e462578977be6d932cc..ba5e6a6dd5067332b61fa9c750e39977f7292d57 100644 GIT binary patch delta 2218 zcmZvdTW?fV7>3t$+G&SUu#D4MIvsnUc&Oq5MWD8{o+zLK;u$%sFj`s=q$b8ph%w>9 zn3#Rx570ZWO#guY!NfZ+2$y=}4y6cw)RVds`2=gMkTu>;d}W1_R@{@8 z*Kc;ubXB9he`88In2IT_-!0uKHtR~d{v=gnLcyI_LtMs*yU;Dfuh~3ySDE?lT-!fG zT;e)xGA%4be6|(;zTo^dv^C$e>Z!CXeFd;tXmV}+oBp-Jpm)MqwD#=dy1d>q@W+<2 z+x4)D+3nHFNGXqwroL8jFR`qYO^gj!`%seqXkX-bYFx|N)yYbA6ST})WLGElvx?cd zT4iK&9>v4~V%cUVHn*T8_TOZp2DhT!$z1I60NS(mCg<`)8HCAW&uwTAa*~?Syv}o| zz|4h%2hlQCHZ@jlRM9f$g@+-uKFrPYK<_d~=H7aI2wmp-L+*KmSmuMW-kdDFjiNVB zxP~$cH)Cj7ExTPGo~xs_()%?l?(<=oJoXw#+a-_r6X=ceokNG>%cFE&B9znaWx!Chj^!?8JF}S&K@Hkq=%I?&w%^9>F+MneUFnM@*5^bM6 zJnTa2!(2Rvr_dE<`JVjB^=V?yzWw~3fywjPL+M!p8%@~gYrNan_|S8Z-K?Ed;mJo?^1+ba(jZ=!W#E?gW%AGqgYe>w*6Y}#MD<1l#) ze+zA+JWQQvJ)yTDCs3i>`Fi z7xdIepp&d9J%zSh9yU&+wPG%8oIxMQM)aK{mYrqAjh=7qZ~=0j6_p>Ot(HgSC+N=S z^eIdpeHYR8%A@a6>nIzLORT8;3~jYM?%{K^_hHWO>2|I%zdiqOAD7X8bM-sl{yce7wG$Ka1CxQ4)!`)b1~~nw9LA=nHy;L XFgKrii)k5gBWvvVxv-oKO#k#h6pgn> delta 2262 zcmZ9NTW?fl6o&V1r$;DQhf;BR0EVKq7OfmSK%pZ=T0jBCGZnD{j&`Qh7Hi@~V~mLx zXhQad*GBKWGW`So0k2HFC*FF)4>0;X+gZ&xO;^76d)E5adiSBb-<bHT+hk^D0%FJO`To}#Cw-3o-=xj^z3XYe7tQU>n|8C-Hmloz-*L19+(|g2 z1U9DWYKN{y?qbrNAMIu@>&jM2g9AM%$v;$9xK%@}z1f42Vr3h&m#E;z{@V%rk5bXx zzps&t{yW&q`s_cx6D6_Rm-N^CLuluki<$k|)KIbVFr+`H|II9-ow>hd<}R4Im^px! z?Q-VEZj{7sF>?^@TyrOR$bZvO=3Ua$9&``ucMXq^vX}XctT!i%yD@~;S?k>%PI(DT zhP4qiFd5FKh6k&osGYR>f^f8teJ@NNqxYdbC696Y(T;1q`DK{7n05dyD?4pt4CS=1 zo2DIv$z$4MXiv%GW<8G9g}HDrj@Cizqj&;lE*wmtWkhy(cwpg4v>yBuiYuOk$-~1T zwCCjE;VHB}%*8``8eOE1FU`-aQ`!B|;@C6LDI&TZMq4Sj(pUP3uk^-I$PpqckD;xW z$J}Sp&NdfwpFUxZeO=yn=yWzHLyKkHxD#u?~rQ{_u&tK~8GEZW)TV(uLJP}AIb z_N|wH4kiy5=h2>%Z(aU{+{VkG3q+K@g0@^9HZG#IVlHf4LZ51~ahbg~n%}HfVe;tx z8rpO6EgM&S3LCG3t`JfB2HJ9Y*mx7I6?0+ZE%dP_8*j63web#29=+d1drrP(3HzT#E& zYj_*|fK?vXx`OtD9n(H#FS9nft>)dld KX)Rkh@cq9Czrv6J diff --git a/examples/assets/shaders/50_PNTessellation/Simple.vert.spv b/examples/assets/shaders/50_PNTessellation/Simple.vert.spv index 6cbb15ab9390b93520806a68c122373369fea90d..a31782b9d09384240f7ad1e28d11895a659aaf86 100644 GIT binary patch delta 18 ZcmX@Wet?~mnMs+Qfq{{MYa{1&W&k0714aM< delta 18 ZcmX@Wet?~mnMs+Qfq{{MeIw^~W&j~@1494+ diff --git a/examples/assets/shaders/50_PNTessellation/compile.py b/examples/assets/shaders/50_PNTessellation/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/50_PNTessellation/compile.py +++ b/examples/assets/shaders/50_PNTessellation/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/51_Pick/compile.py b/examples/assets/shaders/51_Pick/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/51_Pick/compile.py +++ b/examples/assets/shaders/51_Pick/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/52_HDRPipeline/compile.py b/examples/assets/shaders/52_HDRPipeline/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/52_HDRPipeline/compile.py +++ b/examples/assets/shaders/52_HDRPipeline/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/53_SSAO/compile.py b/examples/assets/shaders/53_SSAO/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/53_SSAO/compile.py +++ b/examples/assets/shaders/53_SSAO/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/54_ThreadedRendering/compile.py b/examples/assets/shaders/54_ThreadedRendering/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/54_ThreadedRendering/compile.py +++ b/examples/assets/shaders/54_ThreadedRendering/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/55_PBR_DirectLighting/compile.py b/examples/assets/shaders/55_PBR_DirectLighting/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/55_PBR_DirectLighting/compile.py +++ b/examples/assets/shaders/55_PBR_DirectLighting/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/56_PBR_IBL/compile.py b/examples/assets/shaders/56_PBR_IBL/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/56_PBR_IBL/compile.py +++ b/examples/assets/shaders/56_PBR_IBL/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/57_GodRay/compile.py b/examples/assets/shaders/57_GodRay/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/57_GodRay/compile.py +++ b/examples/assets/shaders/57_GodRay/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/58_Imposter/compile.py b/examples/assets/shaders/58_Imposter/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/58_Imposter/compile.py +++ b/examples/assets/shaders/58_Imposter/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/59_MotionBlur/compile.py b/examples/assets/shaders/59_MotionBlur/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/59_MotionBlur/compile.py +++ b/examples/assets/shaders/59_MotionBlur/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/60_DepthPeeling/compile.py b/examples/assets/shaders/60_DepthPeeling/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/60_DepthPeeling/compile.py +++ b/examples/assets/shaders/60_DepthPeeling/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/61_CPURayTracing/compile.py b/examples/assets/shaders/61_CPURayTracing/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/61_CPURayTracing/compile.py +++ b/examples/assets/shaders/61_CPURayTracing/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/62_RTXRayTracingBasic/compile.py b/examples/assets/shaders/62_RTXRayTracingBasic/compile.py index 4971e175..14e8b7e7 100644 --- a/examples/assets/shaders/62_RTXRayTracingBasic/compile.py +++ b/examples/assets/shaders/62_RTXRayTracingBasic/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rchit", ".rmiss", ".rgen", ".rahit", ".rint"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/63_RTXRayTracingMesh/compile.py b/examples/assets/shaders/63_RTXRayTracingMesh/compile.py index 4971e175..14e8b7e7 100644 --- a/examples/assets/shaders/63_RTXRayTracingMesh/compile.py +++ b/examples/assets/shaders/63_RTXRayTracingMesh/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rchit", ".rmiss", ".rgen", ".rahit", ".rint"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/64_RTXRayTracingSimple/compile.py b/examples/assets/shaders/64_RTXRayTracingSimple/compile.py index 4971e175..14e8b7e7 100644 --- a/examples/assets/shaders/64_RTXRayTracingSimple/compile.py +++ b/examples/assets/shaders/64_RTXRayTracingSimple/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rchit", ".rmiss", ".rgen", ".rahit", ".rint"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/65_RTXRayTracingReflection/compile.py b/examples/assets/shaders/65_RTXRayTracingReflection/compile.py index 4971e175..14e8b7e7 100644 --- a/examples/assets/shaders/65_RTXRayTracingReflection/compile.py +++ b/examples/assets/shaders/65_RTXRayTracingReflection/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rchit", ".rmiss", ".rgen", ".rahit", ".rint"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/66_RTXRayTracingHitGroup/compile.py b/examples/assets/shaders/66_RTXRayTracingHitGroup/compile.py index 4971e175..14e8b7e7 100644 --- a/examples/assets/shaders/66_RTXRayTracingHitGroup/compile.py +++ b/examples/assets/shaders/66_RTXRayTracingHitGroup/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rchit", ".rmiss", ".rgen", ".rahit", ".rint"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/67_RTXRayTracingMonteCarlo/compile.py b/examples/assets/shaders/67_RTXRayTracingMonteCarlo/compile.py index 4971e175..14e8b7e7 100644 --- a/examples/assets/shaders/67_RTXRayTracingMonteCarlo/compile.py +++ b/examples/assets/shaders/67_RTXRayTracingMonteCarlo/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rchit", ".rmiss", ".rgen", ".rahit", ".rint"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/68_RTXPathTracing/compile.py b/examples/assets/shaders/68_RTXPathTracing/compile.py index 4971e175..14e8b7e7 100644 --- a/examples/assets/shaders/68_RTXPathTracing/compile.py +++ b/examples/assets/shaders/68_RTXPathTracing/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rchit", ".rmiss", ".rgen", ".rahit", ".rint"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/69_TileBasedForwardRendering/compile.py b/examples/assets/shaders/69_TileBasedForwardRendering/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/69_TileBasedForwardRendering/compile.py +++ b/examples/assets/shaders/69_TileBasedForwardRendering/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/70_SDFFont/compile.py b/examples/assets/shaders/70_SDFFont/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/70_SDFFont/compile.py +++ b/examples/assets/shaders/70_SDFFont/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/71_ShuffleIntrinsics/compile.py b/examples/assets/shaders/71_ShuffleIntrinsics/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/71_ShuffleIntrinsics/compile.py +++ b/examples/assets/shaders/71_ShuffleIntrinsics/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/72_MeshLOD/compile.py b/examples/assets/shaders/72_MeshLOD/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/72_MeshLOD/compile.py +++ b/examples/assets/shaders/72_MeshLOD/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/7_UniformBuffer/compile.py b/examples/assets/shaders/7_UniformBuffer/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/7_UniformBuffer/compile.py +++ b/examples/assets/shaders/7_UniformBuffer/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/examples/assets/shaders/9_LoadMesh/compile.py b/examples/assets/shaders/9_LoadMesh/compile.py index ee18e80b..14e8b7e7 100644 --- a/examples/assets/shaders/9_LoadMesh/compile.py +++ b/examples/assets/shaders/9_LoadMesh/compile.py @@ -3,25 +3,20 @@ import os import sys -path = os.getcwd() -path = path.replace("\\", "/") -path = path[0:path.find("VulkanTutorials")] -path = path + "/VulkanTutorials/" +def IsExe(path): + return os.path.isfile(path) and os.access(path, os.X_OK) -exepath = path +def FindGlslang(): + exeName = "glslangvalidator" + if os.name == "nt": + exeName += ".exe" + + for exeDir in os.environ["PATH"].split(os.pathsep): + fullPath = os.path.join(exeDir, exeName) + if IsExe(fullPath): + return fullPath -if "win32" == sys.platform: - exepath = exepath + "external/vulkan/windows/bin/x86/glslangvalidator.exe" - pass -elif "linux" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "linux2" == sys.platform: - exepath = exepath + "external/vulkan/linux/bin/glslangValidator" - pass -elif "darwin" == sys.platform: - exepath = exepath + "external/vulkan/macos/bin/glslangValidator" - pass + sys.exit("Could not find glslangvalidator on PATH.") files = [] @@ -31,8 +26,9 @@ files.append(filepath) pass -shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom"] +shaders = [".vert", ".frag", ".comp", ".tese", ".tesc", ".geom", ".rgen", ".rchit", ".rmiss", ".rahit"] shaderFiles = [] +glslangPath = FindGlslang() for file in files: _, ext = os.path.splitext(file) @@ -42,5 +38,5 @@ pass for shader in shaderFiles: - os.system(exepath + " -V " + shader + " -o " + shader + ".spv") + os.system(glslangPath + " -V " + shader + " -o " + shader + ".spv") pass \ No newline at end of file diff --git a/external/SPIRV-Cross/CMakeLists.txt b/external/SPIRV-Cross/CMakeLists.txt index a5bba04a..092fbba2 100644 --- a/external/SPIRV-Cross/CMakeLists.txt +++ b/external/SPIRV-Cross/CMakeLists.txt @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 3.12.0) set(CMAKE_CXX_STANDARD 11) project(SPIRV-Cross LANGUAGES CXX C) enable_testing() diff --git a/external/assimp/CMakeLists.txt b/external/assimp/CMakeLists.txt index 08e4bd76..7029a4b3 100644 --- a/external/assimp/CMakeLists.txt +++ b/external/assimp/CMakeLists.txt @@ -34,8 +34,7 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #---------------------------------------------------------------------- -SET(CMAKE_LEGACY_CYGWIN_WIN32 0) # Remove when CMake >= 2.8.4 is required -CMAKE_MINIMUM_REQUIRED( VERSION 2.8 ) +cmake_minimum_required(VERSION 3.12.0) PROJECT( Assimp ) # All supported options ############################################### diff --git a/external/assimp/code/CMakeLists.txt b/external/assimp/code/CMakeLists.txt index 188ed5d6..373ede8b 100644 --- a/external/assimp/code/CMakeLists.txt +++ b/external/assimp/code/CMakeLists.txt @@ -44,7 +44,7 @@ # 3) Add libassimp using the file lists (eliminates duplication of file names between # source groups and library command) # -cmake_minimum_required( VERSION 2.6 ) +cmake_minimum_required(VERSION 3.12.0) SET( HEADER_PATH ../include/assimp ) if(NOT ANDROID AND ASSIMP_ANDROID_JNIIOSYSTEM) @@ -936,7 +936,7 @@ SOURCE_GROUP( Contrib\\open3dgc FILES ${open3dgc_SRCS}) # Check dependencies for glTF importer with Open3DGC-compression. # RT-extensions is used in "contrib/Open3DGC/o3dgcTimer.h" for collecting statistics. Pointed file # has implementation for different platforms: WIN32, __MACH__ and other ("else" block). -FIND_PACKAGE(RT QUIET) +# FIND_PACKAGE(RT QUIET) IF (RT_FOUND OR MSVC) SET( ASSIMP_IMPORTER_GLTF_USE_OPEN3DGC 1 ) ADD_DEFINITIONS( -DASSIMP_IMPORTER_GLTF_USE_OPEN3DGC=1 ) diff --git a/external/assimp/contrib/zlib/CMakeLists.txt b/external/assimp/contrib/zlib/CMakeLists.txt index 9d1fcc94..523a5415 100644 --- a/external/assimp/contrib/zlib/CMakeLists.txt +++ b/external/assimp/contrib/zlib/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 2.4.4) +cmake_minimum_required(VERSION 3.12.0) set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON) # CMake 3.0 changed the project command, setting policy CMP0048 reverts to the old behaviour. diff --git a/external/assimp/revision.h b/external/assimp/revision.h index 1dc27821..8395adab 100644 --- a/external/assimp/revision.h +++ b/external/assimp/revision.h @@ -1,7 +1,7 @@ #ifndef ASSIMP_REVISION_H_INC #define ASSIMP_REVISION_H_INC -#define GitVersion 0x69d8eec3 +#define GitVersion 0xe52105cb #define GitBranch "dev" #endif // ASSIMP_REVISION_H_INC diff --git a/external/imgui/CMakeLists.txt b/external/imgui/CMakeLists.txt index 6fef0c65..36498b49 100644 --- a/external/imgui/CMakeLists.txt +++ b/external/imgui/CMakeLists.txt @@ -1,4 +1,5 @@ -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 3.12.0) + project(imgui) set(IMGUI_HDRS diff --git a/external/vulkan/windows/bin/x64/glslangValidator.exe b/external/vulkan/windows/bin/x64/glslangValidator.exe deleted file mode 100644 index b617a5ac8aa266131d31f21aa01975f48f8f8a30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7310136 zcmd44d00aOeJKC~g`sddy_A36rA2Cyg9$Hfm&KWYiS1;83$k zQzOmBM4EZ^_BR_J6%uN%u3o?Sf11{-uk7p}u`u$#{u`vD8|le$jau`fg8uzYi0bq2 zZ+z5*e}5N51@gC@`htJw{Ua7c4j8*I@^a1isKuPWTr)bd-@m`}qvUVDF{4I{?f=Q7 zkGDb*vY?)#c)G)||0;X0FjuJ6)M%)9*h8V%wC&&N(gglA{I}~?L;lEqO@*S)zf=GB zui{$OKM}uej6%;5asSomKimFi!~gq7n*WDc*;6Q@dsZsm%T9Ks!bO6yqCznx7)Sl0 z6wVzuK2@p63RWoQHXfvKmU{o=-vsYL3MF!Rk2;TM*O#0|8mgHe$0Q=i}a!hE(#z1ejfk7>rELq zSx(lIWL`l%;n4B_8Fn}E>)56pd1;hg(IL|5eY;e$wPgqbT|p3u2;>fV=&_ z)e9XLMMdrU7$ioD2K@E;U-dj_{r}5azrl=h0 z1^~Jc2O$3qVA-PGN};@Hi(jt??h55_a|?y?(o^ca80DZ)K28CZ;a;d(e6&+2`zGMy z_%QYsnz|{J<~!9D%B1JOc-@0~H;04o;W*mr_eY3iXJqP~MZvwJxSX#?<%Xj>!uJ<` z7aWIHjR}+*tu$3A%jN>oyqd$`8rWNxj<9KM8xRjo_N-@MN_RTYhChQxcd_Cf-dLf` zzE0&g&p_qV86_v~wo)js6gp$?XkCReKHm|0PtbYbO%9voxP#9ZGGmruG$8bjNb~HtJ9 zTxJ--Tz5G3hF^14D1QtGOSL(wU2~w+R*M#2t`fJAj%^f5yPE8^FC}+xoF?W;k)-YG z48&P|nbJS4Efvb|C8Wiz8^E|avLX2#g5~OYy4Y)ksZP0+T9k0EsU*!(fi`_K27;GT zx${rdy&!V7*{X_uv(cbiB|JhtvRQr-qXzfbYg8X48}0{ggop4|U|`!SD$hIxddndk zdOU*GiA2nQJ4-${+mG{MVK@)^V4_gA?M+^7H6Sg6)A%2@guRHIBf%Ll-pIaR#dUpWtYQ zWP5s3WO}?DQ-&7weV;;o`o|(#*p=d3uK+8K=Lp5-G6Wl)gv4!rvng1Bw{A7q^GZUO z{c_kb4!%woU^L<^DPWiiw02rpb}z+BRv)10HHM|R2U-<-WA9rl3UqdXC2|0yFV;oV zkOs8)n@WL=16Jm5qg$m~Qm~|$C=4*BUJX-i;ya1x7wKWtaTP6+(ur2$ZcI%+Nehj3 z9>l{7u>-Op^RBiR`kkcN;rB=~H=iWD??N8DJOllSW$Ybah&X`8ntB-iCgcYPbchXTW=&fG$^?-Qe;45`GW)LfW(gk+IoFT7<@tYi@0EbgU3@>No?V zX$pc3X-nl@YuP)HL%qst6x_Lsw@*i*P;i0(d>37IcvEn-8QNd^1l6ezsd8#C&VO!0 z@y3=UO^w^Y-Lwb=R>jf=Tw-UiL2mF?lvX_wv+|M?}(Gq5V#Xtb1v%+(JE?zm72cb>ukk2tM(Z1+{U>sY8>9pA|46WfP5!cgRvQ7b=a%gKxsEPD z)kM&28B~|QA-N26(BMTwOUA340P^$1@|Wg#%ee>ew+E1J`ZX-C>WYE#RFEdl0HjVV zd&~9`6#e^XpS+qphw^F$(>r9VA&#Po;M^u%h(qIEJ97 zGjLg6iqYuJF#30Y@MjX1l`%*hP$=>BC%x|_a;{ojrdpCi5$mY@(x1$U)2E8vOR{PD zdL%Y4M9JbH?0u`EVBQy!!DIz{`W6JL?JXz9gIEwO9s(d09dGRELcul;iKiuDd14tc zf9r`o-;-RFJVt=Dr4pUCv=#OJw4(rF4ZRYZ}e^AEczlu^c&ty+xgoy}1GA=QIPU%^a#!kEO+_ zMAG8t5n^d!0BQGl&}VI@;MGi!28R-!V!4?ZZN|B0Z6MQS1e#js5VDY?R8)>7|>vRFPrC?F5N5xGqVPQUd9f9-JE&MCsZjeDu>q1LLM37(EkOZ4?}8 zG{EvvJ7l_*43^~vu*}aRpej#kYxb9Wl}>UK(|8}KwymYbFLO$L|6ufhB_FDs^ z6KWjpK5aq&2*S~y(Ntda6VhHSJQ)ANaM|$(q;LNwf^(%K4wj3$gb||G>thNYvT((EB4+Oq2J{agzy>KP@!zC z2gs~#1SNbZ;R$xYo^c4xzV*i5&HF^(zEK_euMxW3noV+T9fU6TI%0lJApw{WMj~~R zzMAU{v~2^h=i-bw)6dZ2V=$yE2eXNO$!7I7DE#TfCdL~_Au_nRp6o$5u|@rGMMEq`a|>^KY(Zc8nv7T}**Qdf?3&8Cnr*<>`3D)M>Wzp8gQ(oafgmp`f}7WF zQuOL%5X>+{t8?eH8DC_CJEo6ii{>2GkQ=n;kyts>gJuVep?czq$i$d}n5XnhwE?RFERSCe2AFOLd) z<-R?7GWI+JiP4|iaEnQx^7A6%`)CxoQ6V>}E%xEJiCm+8o}gZ1Gj!I<00(%x#L~EO1ZqN=NUk`BTv61K(&&I$VNAP*>19(-OCHIs4AX9rF=k~Y7-VC`S zhMpxER%9?0h^TWeIC z6U(7NU&5%O=LEj@kUnNkLD(H!j@$&_AzScvY^g8yZUVA=3XXQWb9iPh_PXd0GV3T% zoxM$qR#wC)vj%duuqI@WbEp!rgJyLMk-e`xiDY%b-a-KsFE=}tX<&(d0o;Q+oU1b% z%Zpl2C3zoOy}Ls)EDj_x=e7`9vr+g^YeL*!O4q%nP3kFGJl+LkN#k2RHbRrP==FxGa?zX*~w%apCdmIDoWIvN@4} z8eIoKFfAXkt42cWVjKgCuH1&cn}+%B9&Faw({`?0W|t%osGV+{`>>8?OQWg$Rh}TX z_r-_$Z#1~03YKO+k?zk@?8UsMp4UvGf3=+4y<~~y{?g+|)F%ZDj}q0LIs__59@2-L zbm#h;PBX^=ROvYz3Zr*HdUCbIL#9ud_c61}Yo$#UhQVVHMLYrRqXUfl zPl2{T7c!^ID7cc3%fJx&d2j})lH>@gJbz62OE%3O3EY@wz-WGf&N)1Qy|KrM$Khd^ zpWBz1`yIs8&QK_s`HbA>*jK_M=pmbsOv2sUl2}%p zfXo_Q&N*BFfm$Og`fms=o}3_pOCQ4W>qMO2u&2QIIs|vio^1kcHO8=abhzY8pepyL z({<@@MijgVMz!o*y4sQ`jQZH)!+jA|X0`!ypiE~ybwcM8$HmKr z$lL4i(36=vM+^KGH;00=F9hd}qo6<(igAH?Kwsqidx6ri&xuT^44@-Iv2r;WM~%0U zK24?BxI9{{ZN|Cna&b7((}R4LOZk~V8L(pEU2a+s(LDuO_rSgqvGN;@DM$zA~Jnt7RB0mtQ?-gjJ zI|(5k6#?8P6dsM7sdsHV=nZA2ElizI)Yy#9|HkKCfyDek0gjReAlSh67?@X|P03LF zb|}Mg$XEvWcRNYP%qg&J;Z6E9T!Dd&Gmvw@26g&Jb6@Pqm{V5-bKGV`{>h~5=nrJc zCpDZG>_!nPD%(?NHzn_UX3!Jf%(-YO~o>67t3G(XcW10

PEPK1W<501oIA?-08o$q)$7c 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

-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%0A7Yb}osA>wh=giZsb=DElODSf5-H4L|>G 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

0?#7^OS{sIQKvhXmLKLd`u7UXu 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 z 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∓i`EXM8)~8WaZ>3`Z#3r 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

r)P@HMuq1aunP%WD|!mC1LCn!DXYfR8EhE| zUF33r1%pJq1KyC7^L+uH%=tbO&nWqk}|Obe2FDM z5lcX>xdcR)ikQXV^itpxaDK_ffQP1742Hif76SzfL1%UDtcSs(4`YMnrLjg5x^eSO z;QA}S!*cR!Pa4CzC(WpU(78-TH?hVX*={S zBGF)+vke%}b_nAKB0GprK3jMT`+SG)V|IaKtMMth#SVRrC}r^X?ra`Pjc1}@?)L$l zW5X2^XdeTIK?E9{+D<#V3uwmnp@#wOFbbi#0^^F_~ZUxG*w)gQpvaPx2O^JBD zNHpf&k%5vTze6JI`HFf|{9W}+f_*eo$TH^NfiRTw+zt3EQL7QoX0zJc%h3~j8%u@re;xL7c$&hRsd*JoAkl2;g`FIsMVC%XR zCkdQsbm)b{7nt&-jk*DxEqEy+bKug@Qp6x-G6IoSBb!>km7+3olSif?;5B(<tkOFvGMd{yKl*joXXBvdN?h8D3Cc+UhXG)dum@ZzjEq*RnM)l{}z4cIJvISO~w z+>vZ9S28K=8qJ*-)7&qzKv+6BYTeX#@gc(glYqBqKNHJO(;cI-dM|$4o9l6cvlCAs zHPnGy@I+KAd4P%}NZ`-m$*nz+=>r;&9xoRp!F4(}npuT3u5Zw2qOV3nvAz*0uHZ|V zyYbhtAq~GF-+^-5ug54D*B-J${v%%gG1!vr@}6JWjQkssUtV1kA;!^i+%hY8voT+M zeFU)A0B|ul>V%3*C3ctX1bI?n0|hnCmU?W4-0eX!q%8Y)`{-OZ^L} zac@L;CKbd18itF*$O3f&R$g-?pTxBzeGOQN7sVaLmz6XM;NQsl$0AY(ZivJ}YX>Cg zS-{g4L!)E%%VH1{!1vk~;2UqLeF`5EE*Fdoa%|id=HCK$=B6;g4hFuPHX7gRA4?th z0sKY4sUxK$2pp@U7Wl@F>IC!oC3e+T*4 z&*vYf|5kSJBqhN7e!MLqU;Cm{JOLFp~yYz$&#@i+b@?{M-fKDP4&6!72Xzk`d)@MFO_J)e8v*qnj$ z+mIrBl;kI6XdWr>39MEUH*HLE@6ujv|<|yAmJuj{lH>)HF`R+r4|eA z@c=$1V@peILfmqp_=KIm(Zf#AtCFgq_tDb{Br>bV=6!+H zwlh9*+oQ`SJMpCjBH0xG(vF{c_}5#nJw~il{7UuiNPNZ6r&o%*BLAk7ScH9c-q;`K z61pmT<}O&!Rbc!Azt}tMr>Vag($+6?6+GCFMX!u(?U(r+5w3SFGU8~^u#c`w!)!9F zvO3vUjVbiC1vMkiKs{fg5#P9PVVtw5AVpCS`-IUQmR!8^p+@nLkuEQGBG0(7LzP6n zSKn*p=iP&(N%3#+ohoWx@H&>8H(A?Y-o+|sY4cfIW7_#yS}bdbOwP*YuYV=9_PD zwuvq$9g*AcOM2LBaE444!|}1}XR`78o8K08=rB8-EH(-b3K*1Zs#h-bmh;1+CQ3rc62ZNh399xx6+kF&h@X+6Khl0Ws%W1*Ai-(#}8Ga*P&u2w^Ch zM!=NThmzuPT+|VBPo*Ru(<0paw2+?-fK^Gg!V%+0rhR)_PDgT8POGEKTS%K(fk_GJ zD+fTbp3)lWSg?m!&OP6ql)>6cDAuqfDm#`!s5!S8t>UvjPVG69lIMg<9gp*MJeC~y zFdgSCi)mM~&)+%yiQIatz$)`=OmytSvIaRT@{i7L@bOJW_}I@rwA0MOknY_9Oy{&D z1jzP&*c$9#hl+kvFxGeU#<`k~+Ey4vvs|{-m3Q&AsgB+Y`Hqa%>!$t>w|2L?x?P8@ zCZO*44=^g_((iuk=hN?Y;H$R?yP*LGg{fD%4R-_Y*$Q;qI<7c6M;z``bqdU?=DU#Q z^0?`0jMfFcA0sio(}j(lh!+g8v*d5@3aHq>h#5u(HcrA7j?Y&c{#iv(QdFy_ z4J5Dwb4%U;^ZZ|AvV$hCP6kZ@vUg$niwZdAUj38raq}YID^Jrgc*{k;hYC3S>f!HE z{7uE*6ZmuEZz29(z+X%JMd5D+{?_3y9e>;K*AsvH@OK1%-{S9Q{Qb{g$m9p$e=-96 z{Ic=9F`mQ^#r)84!0u=!v+VfsYq;x$l6>2xOSOBcVkFUOz!*hrAyl-G%l60rZ%z&ObA| ziQiY)uMV;Yf-uNp{mOc82JRxIA;Yt=wOFKf=!ux{`L+Ou|o6f6i;g#S*Wz!9*jzOjeu3 zYjoi@qX`wrn!lOlIevi4L;m=*gCaf3{-j8_?KXhkhh@APo}b{oy%&?*W&^l9&OmeX zl55y@mnR?rzh#CqX23R6Vvo`8Z@c%zZ%m-yPI2M+zfX0IB?8;+apu^=UGd%v=gwru zqz(&4qr{|+DTkK{4SO?eE3|0$iI~*sU!lElD>KOPWVKLSp{Gs{Z0k;28{nZ!f={wf z;Fm11A9Ch>^!_PN&?~qPmQfzI-toI>`xdbk#3~RQ0EX9LB7I!lj8Y&_yPn5ulHB|8 zQi{Uf0ekTa-*UG#$Yt;d@cOzm9fWn{#Ork3;z&z|3%n!YJ-ka6cguA5YZqkat+kGx z7YKUZM~NZDAxff;(utJ6-lBER9iHA5QLLgw-ozFfCY3-OM3!2FUX>m~WDZE;^#jy* zT1b6M0%ugD`i_;L> z9}~U}?SaOKL1RSQ4Q`F6(%vOa|BqPyC;qd4)X4n@>V!&AW1~8^Z10(-|5}#+(zo`{ zq2c~yi(e$5a`L7TExz87Q{&VBZr!^)g*e^%(&t9g#wbfe7eCi~&E&q4^3Y-2$ zSpF9Lvp=7i6D}lpsx0N(c+QAtWy@bX+E&f;V^_F8%~vqnqnhqVjTV{~&yA3ag)*<; zO>(jz5R?RFU3C5O0j()^;)y#p8EuOS-x`A%JI$yuf5$woBTcGh{ek1v$n@R~o_PMb zfwnpG`H_F2jNIt_6K>!zXMP3cALmy`&l>eDYWeSeJN~1>_vGDwCYk=XVOtlM|2#G? zb|Jh$u_+cvPW%TsVVtw2D_cKQQOIiN9 zvp>2Xx}m+L?d(av71~y4HR(SqOn(!KYWe)xU#`bHT`$}?6E^DG%k2x$X1qC2R@c@}0zn>RZhB^Ef_coBsA%{ubon&ph+_jt7lQe@iTX?bu%~vJysEh|ub z$MvD>TNsyI7#m{(=X8UPa(au>Wn)jpQmlR#<0tfw~7QMC0jQKihEnX z4Nh-fLfxkuyaqVtvZ!cJP-l7-Nitvpe%@pM8cT~}t*U5kNLy!Xl})=kq%E+uQl?!n zX_KL4@Q!f&J|^stlnIbj)%@CBJSL1J$b8151I$2LJ9o8&h8E$pa=EPj^zUq4g3M*CHu%@D2d zDWhjKRl6b3@H3g`ezr9FxlZf@Q&T6IGVy}wSsX5FvDv*l46{#QRv$keLpc^>Ga{L7 zEXTypEwuXaCh&|NRNpt=v|>5}S!DDiw!mf+i1i{i%VwXnf-UZM`gzCLERp>6A=Vp= zUSCm|0v0#T$-ni&zik=qDO6DEg@P@63~lU6#NA;{FqVHwWCDDnq)0HG64XEf>2!Or zwZ@rFr9-0(Chg!#t3$Scku#l21g#xu??A(&1`B?I!2XfF)yAyH> zfGzk)H3a!c0Sc0%6*naqY$rJJC=#R?38V^dwX~|Rl@biUDM3$ZCDidHO3)4oq>f<_ zoaxjms7DfMr{A#ZxTmjC|A$FCXln;pqgH}lC(_=rwNRACj?Mj~EwZ%(95-q;*p()2 z8f$dWEr!pG#*nZbo_s$!r&V+ z4Eer~93BIovFg8Y77cKrEC)>=i}IXaVb#Cx^JIFjXoE>RXlr4t-6vW*(%!MPa;)7i zS`E?`*;*ym>WWsJv}v}scq!#qPqaVAKpSLhX{^cPnL$TLYinzt&NS+fVDjt-~17KC`txtZ5y(kham*K3`(gp+0F#ZEX*0T8FZv z&18+*z69!!5sIpNpW#c6H2E=%7dk2`zZ3p1aI*%mPF-%sRO>e*7j}Z~){>$h?55{BHZ>9M(hK6(;jkgHh z@AO3Cx4sKZZiD0{kX&YZGKPjBH68U?^Vr}n7&tfaL=cb5(ZTPp3D(b`^Eb~ZJtuLy z-{rY?{by%zz4T$&auk{Nfz*`E6A^e@cc}Yll>2~pIPSPQ(|;n}6S4%i_bID$ScY(> z|15Bs!tWTK68MtBJq&*l_=>^}47~zh$66`*e346ZnDDD2GeiojrnO&MMnSXyBi z!)$>i6*?IDVN^rA7gcx}%M%#s1O_PlnPEYJMHGI@&|hFdgat6ccJrp>W}A^*ya zC*-2Srx{+AB3)59gW)xS7ZlQS?|7y`eBOIbqVym`+RKcLLKU`T$WK>$LP{&7=iZ&^ zMI~i1g{2u56Ie*$bu3lj2@HXL3NsnrFYpRhHK-?l&aj@qw-jz+SYO~Kg{v99DR2fB zP03uIdtWPXvO;?9-I-30bfQL2^_G-l7_JletioOl*9%;((8=&Gj0!OCr1SYYCTy>; zEJJ!H2vRx~7Bpdm!r!o#LCH!fp)djkd`Bn8Fqe=|m0qy}}v{X*LCz zsqhYl-$_qfA0o4=Yjvpb-wS+6p_d{3cm>R#QFw&mQiT@&0=LN1;xQgL2fol{l zWcY%>6$)oDd{N-pJEcgY8NMX&PlY`hE*Cgi&D$`1S>QSCz2OXB5%`=Fj!$$6aE1bu$ zo4^7=lF>AV4+^}hDMv8uE-+hRSBCW4;0SI(HE+(ar@%rAt23l`QzK=d!cq)-3!HvU z>VB1;G*9m%aFW7b7|Jg?h1^wA%J~^X`q6s$tfcTGhV+gVz^V#YGOR5f>vtU%7ntyb z!kH%gT;U@o+^w(&!)GL;6&OM~S78XlX9aFi=*Mu8zxQGJH(ng)RbnGaN23v$Mdq3`YyBq$%%ZsJYkB+{-c4j9$@< z{26MIp4B4#jwi;Q>6-g;gY|DTQuczhEECHr_jyNE$};qlNhE6^eTLa;Y5K~6hfTu3WrZghHW7GD;Xy#zDLkXKGrg&Zer?3f+icNHpufUp z44Vrqtnf*8!#mY;+-#y>RYWL9n{M7!*wb|LzQQ&P>DgjbW}g-@oMD>4PZXA6=n?p- z!U7EE3Ou6lSAHmbp1@NIzhp=+c|k^(6mDnuw7?l!v$YJL5jaobVulL@zM?RR;X;A$ zDSV9KvjV?T*q7lVfmakpFnms66{obo{R|fitf#O7!zBVE6c%Dgt9__ZZ-r+!IzACVj!awmmx-)&U94%FJ5dDGS z6oGds+{bXLz&Z-wW9SjsSmAPpa|O0l=w>)iU{8gU7|y2!VwZ_F@<*&`+V0 zVS9o83hOZJAh58)vJ71UODQbKFiPN^3V*|c;kXnMSXJRy3_A&|t#Aj!Xn_qCzQr&` zpiAKrhMfiWSD4JOi@=cz$1&_GaDu{q47&-8RT#;THxYP3CM&GVu)Cz3rm!Nz9s=VP z7G~H};1q>tD^cBh37n|#TZX*_KBjOt!#)BZQTPtSz5<6Ue1Ty!+@N0!b89pNLCxtN#M+^Kz zAwBo*Odligvch{9julww7dhfeGJI5Eu)<4tNF5hF0xK%~iQzbbRTLg#I9^~ag&7Pd z2yCG6b%u`%Y^`uU!-)brDxA(RR$xzsBN@gC?4z(7!$|^%DQv-TvcSg_)?heA;8cZo zFq|qdS>d(vRQG8D=PC3uoGx&w!Xpf42z*`PW`^+s(-p2_I8)$$g$o(Z68OEsSqu{d zo>e%SVWPkQuQXgwhEE7AtFR5jB!RURhBHhS*ivB`hA9HODlEWow!mQue=SD=c~amc zggMmMP5 zSP$;Zd4hJD>A%wS^X&AyD1BE-AA$68Mx>X?h_`YLpwb&byw%AY=MYA$II%lyR+kvP zC&YU_%}UpTSP-$(HggdxN$jZ2dJx0&q<-G*V9umjfv8!~?D}o}W|roy(z3Usuy@DY z?Ch){6e0ubEPmdFociYT`CmWL-P|-JainG9Gh#5|V{+VF!`p#$Z1htEPn;7qMf`rKUG6>E4-Ucq<+o1p)_|lTfgdNi0`YrDMfj(FRY@FD$?ptGM-O%*|892aYI&bU zQ&~K-sr95mEpI$=eF7neM|wxt&Fzof?iqK%qqknF73y)s?j}~*W(yi4tPO}21*4%O zHc|&F+Bx^_R->c8G)?BxWhPh+>H*1!AnW~e=zx6!ALC19(wR$dYNyc|TzY;VR3HPR zqM!FgBo@|#SbJhm*{lya?Lcf27#C@VyrMKdR;(J46{qMyR-T|3vzXN=I(JgTVMK zmqIsR@t#;e`6+tDf5S&+{2QWodn-!BmiQ?3Nhu)8EFYyFDZf0%Z8pM3nT6At_Y+Y% z`6%(EY!IcMkCH^n5-8G7;wzwxhlcUq65Uv`3OC}tlaT_qAL6=0K2E>>L@!}z{{mX! zzFi1lA920QN2x?gD^cF`QC5ErmtjycPvN{TM`BzYT=zuI_J-uK7iDgCv8_+U~a^`d;?MV9zr~AxG_@4|C4i8<5OUwO;DHY0g z7ph?Q=#SA?DgVKeMm;9v`WU4wpg_z zqD?img{r+T+CWpAuiEpXIZZ8DwOOK7GqowI4HK=Xsl}?+0h&bbH5y+%K_@eeD2&up zcZrAHrZ!ZyLZYoPHOnq@3`b#}sabZPh&IvGEW5Ww>uqY5-Ls-KH#N&{s%TYB&9WOP zn!l+H(mFUr`(=|+_kOBX6K%h#^-`^(o;5Fo*oT{1BP~;3(Hy4MOtqGxoliGn&`PztIN$Ab0D5Rg z2=x;)U3E=&=@G8;Zd0qE+IOO@F||pb%IL67w0Wj>4p#znNhP3=MT z`KV~!O>MK{2Kv&y+wwD(QzGtF9mh;*O_SxIi3hHrmLbT?l zR#LT{qE$6D>-bwGn!l-4Q9CD9Ps#c;~2Ke5`xJVE!EK1QmKNbz69)P|~7%l6-de2pew-%qpr^ZL*j zV*9}OTCJqiD83|piyI}g&ly9IcaaT7Tivbx_YUQ{WxZo)Ra9F`8u#x%F^$f6kn$O7 z=Y5e_cVeB1d4krxZTQHjEq(71@qdr$|9eSiPbQ$MU#0O3L=6 zk5Y@2`$c)wN2x(dh$!8Clxn10k$jr^DEE+ZLX@gLN_kRti&Dr(DND*)QL@k$Ii(IE zWq~MX*Bh<$XANnI9Yd^^{t-mhKBr9KR^4l+|5np4u+#6O^t|@zLVDw&zgoSFYn?l* zOFsQ=yMiEM7YsXYv1D4eKtDRP&M4vbDq?vTS>pQA)HbVDNVMln&9ciJ%y!dFZI{}8 zBHCb6+o#&wqO~)%gQ`6%S`AbCOtq<`@i7w$BI~~QO}38LI>dP0w}Q=@5aV^`xq`0>Cx0iG*3+% ziEoH=(pyFwT&N~(@WLRD<-?|SPPIhQhMAgWH$t=yre@hii56~ZzpKxCMRSQh60N?eS$3HN zxb9_5&9eJMv@2_jxL9^?i}r)5S>=3Iv>m3lS<5n2v^Pv`pK1d|bDP>x)tsV@GqrD2 zt0r21Q?uHksA#QC&9eKgKi56n)U5mti{>yjtNq>+?bvD~E(f(NOGMjZYTH$d7wuJ3 zv*P)XXiu8jYPE|LZH%eCs9G)2x|rHCss)Kw-_&NScDA3iyQxi6?F-SatTO61Q?*T^ z{a|WOsP=+rJ50^WFHy8NOzkPP8zGw8)aI%dCE7Ssv+V8_t-GmNcBMpXY-(0q{_4wh zuV`wEG{3J!%U)^JeW_|6iFVS|taf-=wB4rmirS@!w#L*fyGKM@XKI#RjA#o?ZH4-* zC)#9Fv-(SjX#Gv?Ew#JUhwI+j)U4zEJJIejHLHJa6Rn7;S$40BcK!_`W|m#5XkVII zhL+_~(LOM>&8l@1?IlyQj-!U6g_~uu#?SJiIZVy6yVjfQ?o&?7?u2MQ<=m%b*(sV& zIj!S;m1sWY{7mgUq9vJiII7wN(H=H6Yh3CnS|?NcUhSHScE72eR;{vVrA_UEY6V35 zdxggQe@mt&?@QnkIJZ85b9s;w36Ra2|3+S8&vX=)Fs7AM*mQ){JKU(vdl zT1VAdidNs$dZ~7oXk|@psA`2oyYjkG_s3Mr?8$Zi!PKUy_K9ddc7-wDqwA?_J#Mxu zsM-n9c9=ddR1&+LqP<~ir&U`;8qa5!gUH?EL1V4C)N91}?r}$(aXP+x+{k9jC>`HD zz8j3MOz8y+o>z_9`&E$AWJzfznA)G^MLPtIXSt5KTjgS*!fS?$?=bD6K>XRA199DS z@wIASiT0zZeWBWiqU|!Z!>TP8ZMCU=qFS(N4W$#LTMSR?+sEniZGVM0?BBta#25?HN&p>W=AO<-In)$ zXtQsK;Xx!n?@F7oKRkkf{Vz77>yZrXT=nxN*z9OIux`Z0+Uy%*e7)NTjCyixF}ae8 zFPYWZx{4Yq_taAG^IG;jwK=e)&e^*gH_!xAOIEEpG`SWIg$I49w&zaqHg37$?XxiP zR#d!oH?>7^a!=#8uAEb2Q+r444vSXN)ZS9~V06HV=?YC)p)HnksBJKKfp-rUqqsrH3vRZZ=jYMVs!H?>wc zaZ}56ll*>p(TIzcUqjLMn_4fmD=*qQQ?u%KP4Zh{YTx5zN%@@+ZL+C-quNfv%kDYRYMENB+D#WN$ke8&HdwT?FBs9A zp;|l9zA&`})oPH&XP|>6aO`1y!q5Bd2x}bph8VA??6KJ?V!WdAuFcL7;}wC%V~@1N^4+-ig0iSdd`gv~A!;}w;39azz-CJ+9nXM5!FUE#O3oJXr6QZ-2heB(lkWVQf$9}}-e}rSLZz6M zq?o6c8rojf{On@B1d>sN4wLtWTH$+@SRk>NiQ)H6Odly<%A|WdeBfnDZ zTa<81B^p1O>?!mmFoK0mF(W8XykMz`w-uKNy1lKXua+n5CZ)G3#h~zs6Ytxjn=e^~ zb(uabC4do z{jkJn_PeV}6^g??w8o}p**zp$MN_lvB1OwyY}D^Z^;t`_lcsh`wII=Uo0^s1*$!OyHKt~*-+v+6 zJX5po7i&>4!ij2^YwPfy`JPPDz&yWM6r$#xL2w`|sc*kEEyZPtX?5Mr}! z7D4PGVvpO5%QuwRAe#-Kbi;^sv{@fw!-+MrSr1|(h}~^7_BWDPNt-o%PXNd8v zXS2<&660CVYMTWj2buLOve}))_&(ATVAiasJ*;n-^(3LGjQdDE$OHB@nl%X3>-cdI z9OzE>~@^r2~)G|PKvhE)aIzq-J-2B zwPe-Sh~_c11l8t|#w~OoRwv|y8`0ltp$CZZ3Ae7z-YN#hbEir+dxsd$odRvPnHbNV z{_JP@+fIz3Ht+6IkY8 zeI0UakZyG-l{o;@9cvQN3!m{yxWmt&k8Gk<1HA4n;C`Ih=+$qSyo6Sg3B`N&VH&~- ztan!aejlIzkmhPdYyenzQ-XU>SqY9&f{8aJNV5}UP=W`MKsIwH!L|KH*B42<)RU@5 zv#H6f=^I_2AniL_``~A?y9>3zhMXaQXIhNAsZ9@+!8cCirIH4^OzX=QA!0o(Nu?S0ZNcfYaD>4=$> zco7@lRN^9bo#QCMU*T4XXL7VBi1)svErWL{@n@{{5v?U@39Qk(XYVURC8k4!kN;NW zkN8NJJ-j0LZ`izyPx^Vc;FE1$a+v97u+8tg!_2qCE%^O5Z{(A{tj$~b@a&dUetOEG z7pB`8kD^-Mce&RQd!_@{3m+r4+-B`5-Q&d4Y}S$3L}F8H)_$n9);Qc|qe~$juQhhH z*<-|bt+9p8rV-<{#+o*pO^nwX?_@?XKZmQ-oVK9fz>~JP?87VCyco)vliuIvclhwE z7M7oBIg=B#>63Q)$9?#?TkziCvZ8bm-No87cM6|zHhC${Ze~x&E0{A-Z<@e4Q{?B< z9E9g()#-S^{vNlHe(7Z=r+3=v=YV8XrWUw>o~pk{sV~=l&DOr5UhD~a)%3MUef`xO zwZ{C<)Sgl8YthD-nq~KqXkARrD&NbZ)i<>l)n|%mWlilB)gBS;%2P(2SEv?48u!>g zFQLvn$1BK3C&kSVsbr4#`-5~e6DvWC=Xl@PtQ;|({0enWpW6WBX3znYna5HX=dZu=#YMn$2F||1b z#O{94E~OfgOIEG4Xn&cSW%qYe&hKkev+RzE_K~S2sLw5;y=-bTRC`sl6jPg`+LNSl z>r}_Jwaf!sbhBElHZh(D*0k9QKQNvL-f6Sd#CRU)XS0pOcpms`SIb`pF`fs0WwXu1 zcpmt%&9)QcdEk1R?IOnWz-7cdK`+cPVwET+H%!q ziT04GEmUooXpyEiN3{;5ar|0=$QgcNW~Azs%-ia1oF*{3hRm zkG1(kpY%O!KHZ16u=yG+59Ig{y9F=7oCb#G)Xm1ypt-HH6}ox-t<%<8n{A+}G@rJX z*zA2`eA-H}*$!fS+L~aqL&W&BHPB}MD5so4qij}$7@tBLGNU+d@TpIaMpk@>`S2Dt z-#^!k`&TyK;lsDyg0BRZ(^b?JYIND+-58(I>CdFtu00{=ugd9Xdqb-eo&b^4)#MmX zA8Mx0Ixp#;vD1GIBB!ekNbh^P`peeB#n+$7M&7@uulD526ZDm-om8#1XdjxIWmi(P z<)&tp?_2}+nQUr*sL!LKjWV_Ks%3~4ZEAn3_9AI~phkko>8g9Q)!Vue<0XmKHXBHc zPgmhKdxRLDuFBdhju@Y={B4#U%2=MWl>S!P=zNMRuZ^V-)DG`VP%0XO}U9-6@l#(zQ(Ysz>R7?k7205w-ruf zc$dIBo24!z7~U=LeuZ5L(wG?HOut8@9tCAwZ^-Gl2z&#_Bn|eV3~8SQ;+X-MIT`l^ zoas&>UAIVHmp)gwIYaGU4wnqIAK|kzy{y)eA#^)Jo z#Q(Y`5ueRaBYsBV1cn;%?rJ`Op+@|urtH8_BYs%n0}QK5?h$HUnc;^5#}$#d1Ty?c z;An;Ck5G*^3w#tXlimU)y@%c$Wv%76Ae#Or0*RnD)Rx)E#_I*n0n7}tjf)$`^geQD z`dUdBNa=nif;M#|pX8VyKx#+Ymz?e`N$01TbmL6c2`o;=D{bQyhVfE1*1}x*23QNoBuu(kbTYjoC2^3kWvoXQ zZGbuCE$!g#T_a3wh-!bAJe%!Fnu)Ah(ykzOQpZd-1KBZ^;jM;1vsel=;&jMT^? z&|XRy@z!j|fU0Gu#vR%ndBpExc6OUNabMzZzdQ1SYT1W=$PUUrR26xB zusd=KB}|Ojf&b4+jMALjeB$ZILWrbS#MWq&wN}Uww+})nuRO;uPGwIGO|7iCGmpgJ+ zgnLSzDEFX1SIV)tX5JF&tb3^USO)q1%63-9`^Q3%RDW0MM0Bf(=vEWUW%;|@-$$hm z3XH%bPjylGCtdFD!LFv=%f&hz!6=5KR6$o#yWn8#^7c@vunT9&hbU!g+z;ND$e(*p z#&ML%JNAa`8hH~`u1RtX$)1qv@6i67J>EMr&t&6AS)x6W^IYyv$!o!a*rek=lii`5 z%U#&r8~;C;-E~yLtjd0ItwH!}69gr$p3CiUxjO{9!ne7$UG#S?c6lmovr^!@;;D1*plaFK z^E16@RjAfeUm*z>TcTG7dGJJ+_i9zzHVI9h`U;5^Z31b>E$uGU646axhv?!NOVU2J zw7W&CL=TVSw}ePrX=$ON)fJzWNlUY|dqq1?8hfuiK?O(~Z)x|5wpFyBe}dM-((V`S zUD5WE*2L24ik2?gTGA?6T0PMki1svTewOxtXf;KPBkiXuv@g5RC;d=79512v1AH4k z#lYtY>54=&{$0929k0;Zo6=Q$mjV(}Q_~$rI*xNs$!jdT2`Wl?O+j9)$s=qb$2V{+ ze>(|n05m$T&+?hDkAAs-_lmE}>&!?P^xII@Ux_YaM7Pplc` zo?bV~ebPDDIcVUH|CzJi|GO1+r49%y*Rxk|IVX<|JA;!ljk+#(p-VOT`nl?Vj1vtS zb!uRw`w~vcF84WS(xpI0%1}JI5#jC_jAkFT1{;$1a6iKPF1+`QK^NRjrv>yx45HW> z9hJScZ32FjC+-6MK2=@n96yadlO5sijCW`h8sckz5{hLwKNri@Vu=%Pp^?6ps|-s= z)dZBtFBkjKVjl|o$9(M{xh?zJVjl+kNxt^AZp;4kBV2P#VQ#d~gkshF*5zL<_H}Ny zUv*pdqd65?irWka^YFO)(Gm^dZxHI^9cFoPRBhwu%HEOCqMTpc-@LyaZI`*c5;c71 z7D)auC2wFQM~acTwb$iQT;Db~m-iBsyz84G_7OMRZ@Mk}X=3lX*?#J6**8Nfr}h4_ zI`}cP2>0A%bS?P1q5svoEq|vUrg+SqBQE;;cA--cb3)Q4xBk0Y?B5jo?!NXb^0pr> z_UU5Z$=7~l-uAV{{=;1DtLJThdL-9>tJt^m&Hog{yy`FZALnYnB5(WAVqb!0A)Z1v z1tNqBl?Q4tu zSGn3(&)fd=aIXKix!RwCm{zIxvFr-yO< zf6dkY6vVvhFZO40wO^69{b;fOQ|xc(e7i$EVLXbjFdR=V z$5T+w^jF~wGslu}Mw5fxNRl}liq0c2{LaVWHggJQ95iEi%Qw@vk=zPeE+_n{ka5PM z6Yg4H!zqU0NJrI(T;~hT#GGb2D}2qH8s@h?UtfNRv#0sWB47JUP^@y_+CD?>K&oH@z+U%Y(W7?}UAIU;9f?asqIx z@@I&BIoMb6wcm7G_S3|^ChY0>GU7M&w(OfxDtF|Nq$YlGctCCm*06A>`ok3+s+FMP z@T9dX{FoyCk0UJ_Sv6nhlT}G0t6UDzqk}j`Ghq0Dui+O^a$=O*d}yiI()_U3%RZSd z@v*&CeEW$#%@1#|?|WPJ6_5%MSi})Hk4J-Z=7;Tl%Tx5W{Oub^v9RWc&3#?$f|wJI zT<3>RiM`J6#`xOL&fC7D*z5f62K)AT+ZPl2t%wIgI?Ol!!g<^88^HC~`P~inyCCLO zf3c?vQsiHHtxuPjowt2Qu}{d=zJ1>I#l${M?2G&6UpR03ef_!q2gJUjZ~S&a%&Y!l zuk*tj>}Tg~-%;#!et3g@`@HRoiM`GbZ?G?%xBb3;Tz{P(-eA8AVqWzZ`{NS7dwkTXZC_06b$)n*ec``}*X}4<`?ErpF)E%NnO^tSx%>&-=4CN7@$b+HR#PLXmS|Hb|_v3L90&(7Pvqu8$$`y^lc z_IcYE6Z<#Ce#26qkQUC{eqS$cMfwHp8JO_TZ6X)i&3p^;5mH%!$Yny20vWdSP&wMQ zk*{syKifu00r-|%S`Bz`x9vHK>ES7_&YNF@V-HNYS;`64KiPP#a}CZdc~O@IknEE z#_5n@OGi5jeZtrFUBfol^~Y&qyl_Qy6~3l@ z4bxj+pH>k2DX@Rh*S`F1*?;q((Vyx@NPpT%kor?;tI}oZt0OrgfIF4cx==yxRDN=l z5An_YdAP7bi;MeYL@3wep&!zrchOxBRH3`ClU|0CTl9|#Vt=RDck;C_lehgh-8g@G z=Lhm{=WBlyqE(4oHQwCZ|-ZqC~y0IVo&dPx!Jx~-u4y5zHYAeW%9QFrYqN< zUVd?N{zoC^RevOrzEKn1!9F79!XKJ7K-^aH4a+RUZ7u^&2PsmZ*oOMrwli#VyWdev zjCFnav**q3DB?+Vm;m0dWB(q zi};R4lB}XStjvgnE0?$$@9V0+;p(5pj|xaf{V$e=Dt-%$3{@#J;TA~V_A>!rkX5u~ zb+2z$XJT^doJ)61hYZ`UVq44C_Fcm^*LY1s0{83zVjKozxaxs#H%vfg_W|QM$WX&$ zE~Tl>{zi$vO5$%wF8+pF{_gl^f8RuN?Z%43(!RAj3Xyw*o_}t-A4!vs#YklLxZhh! zk4rM)*9spackUS6*FNBl_?SK~3!|{Q5W2#j*Y1e0QTR&x&apXod^zkp55=~(f(3NjTgn+s zQ=?O{*c0jYMqp;t#(g>3eZmFO#9L$inQX6z_WM8>pD~^sVxw=*xwNfvE5WWK9pehc zf8_K#kL}oVAY#Mh?=HM}78kI7_I%P2?B^&|z!B^Uc9e<=b_BNxb(C_3;ybn?N7cpm zHu&BK-@D>_S9~9W??YUk)C70|9uIuRBguB6ii;@m(>y6mW%2L?#Ly@ce9|tTuztg8ETKHBrmnc`vpdV=&qcmp={Yhy%T0X;FBmq=SU z)6d`q=@7dnh?pwISwT^r0h9+V$IWPlg>>ATM6$jfO19rS6v?XX5l@R2 zNRrk_l2tM>o7M*6OL5{xF8BGw?2eQko7T@e(^IMIdqQ^L_ZG=(3CWz(7E8>YPnJPh zb=ZmvB32&M8&)sq@01;F!}VpWdvc>zB|gIW zay6T3I7eMMRgW6@It$Uk&Yu#0q?n$ zbanL?H_MYt^5jf^RFsiWD6{NVXR?#Br_6Z3nO;e@4ScK0&rovOd9IkvS|etAAad=B zC1nqfeI#=~WPA^Z9fbcEjC)WcgGUwygw;)I?iW{)ONzs!r?lzF_r%dG%71#GpCg6d zqDqMz$-lsvMBL$_&zaZ6dx5yBE;qI-(>4dx@h~VNzf6nN5T01(a+K$C1Zg>nXHLXv z1gJn<1>Gd^layo7n^KOyTS|o-DN%I7(PBGNhTt3Gq+Q41On*vpo%9yEL69?jj<_ki z4!=&afqbOz5%TkTar`2~`vv-K5SR*>`7=&!(z1>;dj80nPA?uujZSN9hH05%al9RX z0~%#!i=*Bf#ZengVjpiMDTJ}jv?st|uN?e^)5XAH`9z=Q&eFx1zDlxf_W|{6?Q5{q z_+AC3p7KQti4c{BEs-QuO7r!HlH?stazkkhgSTaXo3mLA5-kHH;h_gUzZRd7J0-~= zE8Dg?Lv4ce)S*fEkC>e44P${h4Qw70PzJqgqX zEK^yGvN~X2D{Cq&_D--*lvPs}@W8RGf*T4z*`Z2t_22~CpzQBGlGD9luPQsKtUTBP zWrvg%ihSTgmcMgjf#hS36neFC{bSLdds8c%$+pk`o!x2SpY9yV^Qh2h_pS^-Zh)9G z-mA@UM0q05MD5;+qW}R&fCHcVRXxv8&-j4SCG7}wC0%Lr`1%O<*swO-3rA~58OoX7 ziA?D{PWgrI$}PXN+sv<1PJW@9Uu5zHG}GJV&t%69u78YYI97Whzxs1_=ayfk+syA+ zQ@ei1Pu-jGtKT)(`g}-sw-LYTmjA>n6#K{5MkRe57?pU{i!Y8R((ro^(eB}4O`<$$ zVRXyinI4A!qp??`pL$!tn3N{mgH@SNN|-9arZS0?Vo;*pv0*N5rkOdTOLuXcst3T2 zP3RP0O>kz-f~_Ro zHAyFDdO~AP(qo+@`K>XH;xrYEav!D0(v3UsmrQF&MfRRWQcL*=ipw3hC##T)LP~M1 z>r9#%=oeRyOCO$?O;w#)!b#7K76uE5D;q_3sGaHb11X4FsXyEJdE?;cgSr4Xqi&+9 zx+C)IDF1IGnrFt12f}y-ro&`g_I$SCve-UR=L!nk8l!j_<+{Bl8W1r!qc2a14flvHf)p!Xd-_g??56*|ws3 zv{mC+Orfce@d3%lVmTUeoM_rRC~X-lEh@ylsaO`yDBP18P?Y5OQH$f3VewN#iJu%l zs_Y_V9~3Se^5t$!`JzA4Z`Pn}8AwCp;;Tk7yLk7b+e)$xnrw#VbCCj{-cZENl+V!I z93Y<-lI9zA(A-LvQ?(X1S4|y{Ajd^DOR1VFok;nk0rmc9$>6YN@C`v~4D>i24U8Bc zuf%mOOfi0k(zy$#;4#;hI8w+Yt`PceTxIKMai(7p*Rw0*!K5d0(g$h!*oIMf9+3_? z>hp7p6Had|UG0e~v?FN0w-Xnq73PdTK*;UAT|{Intg)A`}M2 zN7779`V8Ci#jv|a*bpk;EJiS-bYFzEFF+3YKoFZ%5hc3vr=D_ z)uilFWwGgPYb_{ms?HDqdDFGE=3Ok+&&OtkAs!o;BI(2GO{J<>)rTbQxc? zxXzR{F&kHoVAAa#N%G)AK@u)~y#II(8_jQ`28;z--h1?mwt z#g!C4KiK7HcO=>!Ifp`a5sLTodWP%TA4(k*4v3a zNDO%or3Lsi!L}rC3v!lj60=1IQ=IvcL(Rrs45&g14-UL8h`;Ws+5l zVP#AUrfFnG;oOY~p=Il> zx%4!I%hP32%7>9Q>#mu1(3B$xB@Kuz663)O6|!h;K$0|Q>cp@KMvZszJ}L^WyTm`5 z?CA$aCP{l`0pfJNsFzACVwy0=FTZWP>6+9S)e0yZLID8BV=EXqrcO;sFfnDrq_2wj7LHe{ei3p_U6mSYU?tj+vEO^HHrFsP z)^|Xzqby(s=`HlM#Xz1C(O*6al!cbu8QfTB-_s;$^q}y zT2gCAa+Fbio^#?<+Qj8~F#!h7^kZTc9U&3i2{Y{obV@YqQy%r9c)r3(tQOGj@UDs} zlx@0>Ra+E}XN#pM2aOV1pY4bMx$ADbbEJL8MS5L|v{#ChxdUG%=Ff|;RbyA4^V%qI zjD{zGAf3cgPVh=(8_KmbdRQpBMD=zO;2&yQgM!1e9m!}`o^k+ZFAO$Ckgjtyr90?- zAL*jp7c%cgg~(}K2bza8(Vm0V<=-Up->Imcxe55@O@fUbfsb&;vV_qj&{QHsE~?>% z2N{_k;DVY58mxD*AG<*><3RJ?r?!q{{1z$PH#+#R10r@%aSn@oWOT58usme6ien(!XPg%l_R6tFx|y%2GVirXOC&$t{>_$Hv$Z1f0> zz9(sHCvoUu8=VBr0;FI~$;ky4da`{5tw3Ub7WweRfz&~Y5T}-{azt3_rTlso@8Z00 zTvMw}E<>aIL2n5_x(vcmMN_jGcSO7S4*E{_mo&<3;j3%9o;`xYT!v#u+J{K#OwSTe zOSmeByxYU5`U;a79`LROba~tfrokv^-i0E_2}F&$kT6|@i>5^*5{9z>q9{L#AAymE ziXS7X<>E)(1XAh-BFJoAg+I_H-ii?9$aZ*&pia^58DUN6Xm%vi88F84eklI2E|bIX z8P@|+)85^s(Z0HeYWj?nq+d6II~Z;f7)L2R^IZ7mU2UeWL#b7GnuXJ1F{~#Gqx0jxgA?s3#VS$)de!u}3UexR-@Wl1G=`>}o4n+-X`Y5(^ft+)b6!8jpC8Excs$ zBMVyV;bOtUUI;o?PPNC%PSs$E26_{sR@m0=hvr=%0#(=+%8)Qk1S-BQTnmHnkO)*t zTlk3t7lfQc_HJpc3{;kSNH|1k-m@^2r9p>>K4LG+!w`c6?$T;inmXw`s1W2JP~kFl z(n+Q-F9=f65#b%kf>WwEuXBzN!NN)@(j+}P?l;}MEN=J$xQyw>C2m-_7HU*toLKPX z=}#~3J)>Vj4mn60G#h~d(Myp?AuOTghK$= zWOP3jua#?p*UGiQYvo+}S~=%H=YafI%iY%Ixco%<5y+1~egyI(kRO5k2;@iL|3Cy> zNx#;l+oyf-Qssn|z5KjuKDdtc0RdYIV!O~%19bMsmbavjYi2h5@OpNxrJM;dmjIqrtfuK*j?6ymKNKf6rqD};|0Yxl*ff_u%XUgcBzh` zRCt#?W#n{wquu9R?n_j#2O``@_$GuT$RKC*DZZBRuj<=HUb8WlipS{;LEHkn`cFDCk9p!Eu<^F=M zcr#s;bY>vEmc9Az*wWFsVXV?6+#gBa8jGg-!Ik|_EgHuY`Vw*Pm#mVOa)u;7bFDX^0tq9b_+m#{!~R~J2l;J)Z`2WLM>pZNnSF$#Y@ zk#|h66tWPk=6Ya-^*EQi!~-rjjBDx(2JQWJc)rw`(4rE(sW@p$Xt2xU3Vb}k<#xdl z{VKudC}y;KceJDJ4)5D9HTJ_zup+MJR~|1o2`@kI8R*PLM~e)0CG84zg>Oge6~c@B zXFQ!%KFVFh>BhbI=rFti`%nZ{cSE!1d$|hHh&ZllHl|XrmW8b+nDp@wdK8r|W&STe zj@qU>y&O8HvmmI2j(=iz76kn37rV#BJU%=XTfjOGlQ=eb{vv$JAEp zPtEsC!XdINtGLS(P%NtXt|&*_U9QyRusP^6(VnoK_y+<09KI%%aLKk>JhhV*>`J`s z7mTf+^(^S=Si{wPpUcsHk2hgHqJj~rq|4K%hAZjhaaU@)i&+)3L%wPHo!EK zF&0B1dpcv|af$sg;k(iF-r2yooOe(|;l~Yn@%>xF^c}Rdz_${oi4P-OrClb*Lkc zM|Ej&jvkLX=P1=7+TEsRYKI=#A^SPq9&eL^)ByXb!r39472X4wfn^XhMTc^pj>WS> z-fc*3_fU(ras(F|@s!igQOXZ)gGS>cJmWE}_X~~0=aH#SJo45hl#Y+CbbK^Op&Zb* zH2e(S;axMXvETpixcJ25jlH*y$FcivFCHIox;@^S1&nySrLZ)hZ#-UW;1iFYsdha2 z;iDCgUif@dJi?NFFE;etxNNRRDb*o4f>tSjh|mB2RF3R zN^U;u&TcjzXEz`6$b}j%`v2HF6ZojgbKy@&0>kDRgkW$@HEJ|2(YOQ$>kOHZGcW^j zj|)NtF>SR*n1QG)!AT_3<5AT1iuY>8uh%PW?XA6SX~e1tU=my)ZWVW2T2DG!qP7@B zo$vp==gedh5`}wPZ~J}vGt61u^RCbP?C@w-df9aCeEGssdTi2*+~_QmJMU(FTGLP zk%_BmudJ1g6HGiRdT@Sxv_<@kIXBA1zu}a$es-l`H@al^ zVtK0!DU`ceHhD>^AaIQ8qOeckx&0Nh;gMYlyXRV`hGlg4Q=XOJb0Pcnw8g&j{i8>q z0JBwO=v&wbxg!REd2X@Knm<<5wDFA_11?!0HDliO;lZUv7S2ovSY#OgZ`)5>!rYohs|Hnpf=DBe{D{* zI#sahXjvQ90?JldtG8(dan z9&6B;ioL10I-Vb=@+P&um7AFyq1ZyXv#B=De;rmxz9s*Xs)-BcXQXwKdRXqrG~x%t z>dt~@&pqLbR`<)NplcF7$yvqH@P~XiTn6+_)$x8D$3T5QK>BXxcBeo)39uN`lBk5U z2MForBV~KoO`q@rS@6j6=r&NUyFme^ZX{Y{ir3wxU??ugSf3ad)Eupx2UO{>(jw+? zX}^>wj0AYiQHTU2l71C$>CqF}Rm2|C&4&fi>Bb7R*X->#UbWqDn!WupZ+f@iX=?kK zGwQ7cw@Sav8BM7I>nMfOK*00ttJ}9qXXBrE=AWz^MvL5})~6xjzybI;ZAAfvWM<3Z zTvj5qCm!yU&)VZsmBvK)njTganTC)W>ngm88Q$$HrBu2lAq!vH(tlBzw6qDHU?uG| z$w%#RsmN(ZRbv=3)iR-HGmF)7?PS_A$0>$7J)Xh=#{|ASl#6>eX?in*0Z3@4Tg z!45Pnua~=t{_5zcaKc~B-)#PBcv7OClyFzZUj+!sgM_XpfJm+qJ~$ZoQ14luXpxP7 zhJ+K75z8l+NdtkV$zb75-Rt+n-swYF2AL0N%R@`l#6U%?J#7upR! zrwJoG-yENi#_N`1gikcM?QW^p@+N3D$&+B>CU=H3zG$Yq7O}gQDtPMf*Id3G?K#mg z>$=r&4f)F2`1y9Iuktsv2db1w3g>3`?#r)L|CQEFk~8kK&ZP@GHsnM{ud9>ha9g-g zHKlY_?KW2bqFVdcH!P5@uTx>IE!Ob8s?S+(GyhlDv%1i|M9z-&Inc2}x@SG|nM}h5 z8;cLvt<3ie`h8y{-!J*n@B8pa&YTRlzByIlAXpwBWW?v0*X}FK$)Ov4nI(E8^TD=A zt2XPeo4_cT=?@SJw8k4{j!}M=mA{{khb96v+LS{Y00m=Om2R9NxXcHct473+mLfuz zWyRyr6E%?OR(LoE3)Wb=>8qe<>>WMv-75a7`J1gz{B9X~l*D(-_=BDKE;YX4tGIeX z)D$IYnNV&v^Im952b}Jw!VI;Dbf8L&JDD6ClNtTuVjlt!s+0P<39jfjbYrqxu3{%Z z54}~M*inKK44--!eLo3z?U9L!jS+e|LO0fla)*qe;fZzb*id4^xRd*YCwkFFCcH^rUhjz*Ln9L_ zVyC97dM-(S$kF(sYT+QkV!iQCAkw13F*?*xJ_sc|A!B@a;&mRaakbN|sH>3cFYZTuS~VWOJGpPjnBfjjoG4?;kumuxH$%$1{o2|Yh1%Mx!X~}Y-*iEtzkXR^j@Ebs zWRW@1y>)oCDSsK3twKgB?+L%5HJ&e&(-^6HcWRA~F*1PBQ-3X)!_IB)u+tpI zzb9skfj8qn!PBrYnZ*JLs-H9vRRI)}-66rQ0GPMR9fJ+=@xTK!;ocxGb+0EjGMs?4 z+Ru3JNnd}#xD|cMmZx?)7K1eYO>LMLpLC(v3sM_w)syHOjy+UZg>Dft4-K1nBwa}6=s#u9km z*kSNcqGSdKJ|WM#y029tm%JXNOMM=z_Ko$SE1jb%{f~hw&1&bwmcGMMq_3}h z=o4_$g$h;)b*v56Etc*=K3 z5@oqD*a%uzp&)4Q8(PCCF3NYL;n(08YNaQrt<@(48#YCc6twHBsGSfiwC$7LYM@3e zc+gvU9z|cUHF+dGg0}c7u9*-!KvGRwjnG2~$ z5b*KoszyWaG9Uj%Q1*hPaBQrdUL|}@1$y!7khddxnD8~C&q&nvWO$icOR+ZaGZYbi zW_}fa@H6w_XXYz@W_}rWFa+~`G8c`Xft^E%LljoMM6jyNJovRr&}lW`f=Qw8f@Q7c z-{aE3H~s9}%wwp~iVT-Pxg=)3L~Hyb5hTjr7yjV8oyzn% z&tj4~+i!$hy5%C(>Q97Q+}Vw_2RdXU_UV{3MTLe`w&dH6e*mn?oG0{&$8^Llz@%zU z&Ph}jd0UrMhUdWMo>Rt3PBZg-MtFU<{H9tH;q`mg&@|Q1GmGznyDv#k+X3Kf1!K%x z$-whQ{@?%M#BJGa;vV|jO`K+4NoBqG=&PB(cxp5N&VEf%tf5P>lqOnuI>&($=oa!FNfvYTi>3)2Y&zmtA7Qs-9AY7 zu3rEJKug`dFS@WM*w;#g&M7s<2@tVnUAp1nBH3Vxxo{2Uj40xyFl)MX^CfaX zr%gGzbP#*gT6z7c7*fZb0&`3^X4KHvqHy8_)#bz(zpiIKOM3olYuy;XM)ao1E>-og_tuoW#| zuZ~k)+6%dtI?w*_+yA~lzve&RhFZVzK}4L=L`j+|I9LW{U{$kH1^aUywk4tw`ot+U z3(##$5vV9Ee>Q9^s)-n{hmA2fWz3G0zTCJYIwSsP^q29^b7GT1#)f32(Hh^DJ1IAM z+>TaO79Y7-ex&hP310bl2=AN2cC-$O?i&&RIeCl#&?=Ad2g;RsOD=>ZpKj(=M7$do zB_mAqIH^Z`?V_*Br+l?3`s@tzz#;N{ygX-nO{oZ$eiTlyuM{Lo!K0-hjQkWVsBV7P zfbvu1FMTqcfN7iJv&&=f3}ZlJ@91K|kFt*v=b-QrEs$CxpS`8Xyzmup+Wpom%U?5O z)VlpfS16aAXRlh#D79*AV(gOYx>F#t->NC!F4@-1bF1#{UN}5G)mP~(-+14S$C=*< zm+x}P1dF))YQ)StLA@!EH!@un{?ZNva;`8NtCB}c$pL4Wf@;d`^2(%)EfxA^&#+HK z7+r6#bSv!9JJn@ss`tua^h;2I%qQB2w7weg4;5nfLq!T}ePSK@9mIe9N10Ql11N0s zxslljxNYVypKBXH6W12vR)+X-yKOlWpNWaLi}?%#ePVK&29LJu1ZKWvMW7 z7d=te(?lFQdt$T$3qfATl8ey+mxw-KoNCAz*I7Sl#0Zfqi46W1qq3y5HBnjRN7t1^ z7JDYODKQQ4a_MLp0TO0t;z=#hcSA;?6H9uFD4Z9RBvGVxsP+*a3$C*H$g$ZH8yy;z zng(5(Q5c!yFN(}L3yFLE;$i+aKO(n3Wccyl>Wml{ipbp}BKLk_<8^!EGcpai^%*6%!r%@nw=R&0 z^2wYfn5=>2R&kx~E4TifC;t;!fu=HY>s%UVk`Y-?`kRWZ(#Eu2k#zwOIjhiDA#l{J zb~~UWlf@>yK$cR#NWke!Kxx*VgVIUJ+bCOFGvFlmqOh2F()#GTQ;op-LBOdEEGS~h z9)Oc(N+hs;uoN<05^zG>(ifaGbGwWjkh1!L6dI!Ed1X&e3CEV1hJV=Ux&Pa0dbGx6 zh;HSVwmn=t=OFFT z^HT*E=h}o0o$%iH&JE;Z8^Osky^ts>|dp#RRNKV6{>iqq^Wntck0@TJEbKvf97M1e$FOn9xg4E5UN>%0qccZ8e%I;J^s_UC{lfaLylQiBQKI7*B8!r_Xc(I+OWG=r zVp{t3pCLvU^wxFX$ZtwrYX_|BkbunV02Q1Fd5az^7;#(jh~CPo?aGcCs50S#e0IL) z-o=1l8O~(=&gXHp^Y;;dukrUef6ww~@pm%sUGBa7FJ}lJK^9qtGO5) z#=gooy0J0)fR0&nFX?S$q4oCQ{b{#y?Wo#j?Wnpn97!ntSH}fE__1G%N;~yLlf!7 zSr!|C%V??tc6iyJjdqx?;EH&U=GT7ocp!0AJkWI29pyWCuFSR^*26TpmW`vZnlM8z zi$A2ceQdIvQ1lVyWyoS2H9n(Q{dFZLXbraaqS{DoeC4|mHb+-o=$B1!7C-hbvfFwq zzN<{TDM(uZXU8kfnEp0hl2amOQ|n~~C?3#)9}d#@cu(1qbwTf6w3|O- zpZblq()NH6T;Wf31aeyfOnCVwZEf%lKhvyD??^=AnB6AnO!u74u;xq9H_;#`@JhnD zt>IF^IIc;@MaO85w(K_fD!(m!@3q_y~Gxv}x}*By02biB59a>+5JYd+H& zKN8P|q1r7;v7zlg;qji3*7z(_H{iSJTBG2{0pFdeHU2B_^f|2L>1ug#&4gQK0BwPs z68LtetVN_s`|U{rJL$L6`@dzj?YC;SGoPlPN{udE><|3cy-Z){TtSp*ufDG2SX~P| zfyuh4`A59!`gf3T$i}5vAP^x|2_P^}g)9Mddf`BTpm96#eNdr;4;>J&g(C+927y>s z91)2x1w@i<0ps#p0>)KwaxTbO$cfqoDeZzCfAFPs^6KmM!?di{@8Kl>1oL4*iRXMTa`c@J! z^*XBfSXE&?`Sf-LOKH>>JEfjbWv%;v1Eegdth@+vuB?*E_E=MNH~}=cJdds%{Tv^s2FaW^`!gYsD1~HlwkN`p-_E+0+{U6Vi}9O_9N; z>BK(Ml$^k;t@1?k81WL>iuXt;`1PEHZ?9kM zPR)xF!A(z`{xo8$~&`t;ovjwh5qn<^Ok*H>Lc!T&8$@VBTS`M(V(E`Jx6c)J`b zXbZmB>mQKXP(NvZSL|cvlG%IF@?OsDh0J@pWrw4UoBapYzzn_^HkR;r)%H;QGfzmX zY-e5WFcx59yZl{}>3}Y68Y)fBen7pwY(QjcHf`VcRMzFb4Wdf6rA_!sFY~ zHY7Hce+#3-DN=)XYjPNtKvYp&R~9M5VWkhBSBd@6Lq}bS1+_B7`J^p550BIK^zj#UoF`%|<5)Is{kCV_!eOa`U+sF; z^^}Aw{1%i+5el4pis(_Qpy{Jm*^c%K8Nqw>d|5UDQ`I7KM4jl7mzHT=!zY9 zy3o6&M`f{MvLA%;N{+MNp>mKX?Y<)ED4*%B=&Pe{L4FY;><9b=VWo4&9rqA4W&6T#*@J9c2s*=+`mmgdAx!Vwxn@CrPPQ`mpkBw+**HMSh0HB4ub0!=oci6Y>p-%?J`go_CnJAhJ=w^OHTDriDz`R8h3N2S{QO^c5! z38mVSlVxS`asu+qg6|JY^TKBS>%=BUyc=MFdz-MAI_&LPG}fHL?(3LtP7+O+D?D;1 zNgsa$aHpXFH`}t_4>j`&*rD`p37(iTr{J@kv#74Ep}2|f5l>G4Y$*G7&JN-&4AAX9 z09j5~BgE*Ez*+@nL zJYnPMfYEOJ-ip7oJ=Jy2K7@j3NJWo!z~y}DrkTHmK=2B^4A22{%Fi6Fz-q>3PO&ux z(W}iVKUdEsRY7LwXA8i`J0l;V&uL4w`D9l-wu&m4rFwpHf+xNcFc%F8n9K6I-seGj zx(ijQ?6+HZJ4j`sct}^WX24?UYT3)C{%c1JMxAP}Z6WO>$2pY`S3PYyx1@w>(I8Nbo9R3|`DoOo%zuyen2^>|D9;3u_avJhKb~pVCnu|X7o6A0>CEfV7 zLbq*!k`fl>9kwE1mBOoHQGT%D{phg{T>lq>k*%*V^QWIV7+i~lRtJ+z|GwX?X0umh zo*iGO2vTgCZk}GMs@URh{#Y6_Ua+=K6GsyUX6E02)%h-T7UDF-F@gZv8si1g*C4#H zJPD~cX!<|4E+h)Fo`@BprR{QIi>bHwu}f?CGuvAF9dEW#+?r1&?x24(bp=If8F6Mh#!+HTB2hJM$NooBBQS zTdFpOnePhpqXlY&8CuY_5Zo0pwugzQmPSmPv!69na)gAvmbOBaE(#-oML%zo9DJk{qv_1;MO_PRKNrO&de) zk1H_kgB%x+1taxNl6Lb8kfeCZzj$o#!+7dU?dC_+^KbQiK2N*(KAwjY4;0rkW=KUZ z(vkEx8Kg5egLKa5GqhgVI&v^P@nA2W_<$-i+fpH$3<`OUSG(5$E$Cb9fdPx9>+FMR zMy8(@4uod1h)ge<@eYD!4%-dQJSHIG?;TnaIoLrr>Q#DN!4q3RI1ZwDUu&r6vq5l0 zO*XE$fCM;wcIg9CGPvUUZ|@ndIF{tkg6gDA@P(j_uBR~j29b}K?Fp**(ATdMNA`AN z{2q2<&HmY)XqP_d^da4^G~!)&qHLQq;+>e9ltH|ok;Q7@O-Efud)Fsq^HcVZ4BOeC zUlLZbY%%7miOVMGHj}#eS!wPynFO}s(Twv;In(4X;w_5Um*}eoBKHAfy@X+W+WNt( zko&pxDtO|i@SH!grvgnksYNg+rwO{)d(6oWL7!(%b_hBlWCkSYNA$uUSWc12{u^T_ zHTHs_P4>`jJ_?B+Y@KY>|858rA3H$lONAA4{~iCG0R(kUkg^F!W` zk_QRBAA^VfofBNHMaRa*&x1@Q_mKy8-Z^2>fuw=`B!5wXk`PC&MJ0+AS&w)(F8*Z_ zpDo4x-t=iNur`sBZeU>5+uH4l39cKQN%g+aVUT|2C48M_P zL992&lW4(E+c%*U$_|4b?>QFkNvvdD*YMnyYi^L+%d(0UHXkdGl&U&Sz2ZHkd?`ex z>(tDb%jLGD&zGh0s37YR0;vd3ae4k33`ZKg3RQB#u0Lfxa*8%e(Py)s7d9U*j~>f< zMA1vB^%i-4KhNz(Zj#$oS;Y#QFO^4)S&y7XR?73MvYr<4tWf2{?fNVHQhFZv@(8{(rRZxsx4-R^~Y&rGA)Is<3&5Jd(f-cGb7b?SeifCdnh)YdTZeH+QRA zM7FNe`g|y1NV<;9R4p8yeY`kLU7NotkMgrV^2A#@VL##h==q}k5&i|a$ccxi1Lox8 zth^V&$KtXmY5~a~(j{tY8v(swJ$f2p8Ek(lr>AlZ_R#3DE9F?&k@20W=%EhLSTdn0 ze0+(-;gyo;H-yub!m;O}@k;p+-+5@S4uO6Mc^N&-3sNxiN6F7%nt^-iQW8^NX0}d? z4Qu`vd3aFzVWG-&XqHE z?2z2Nv19XxjveM6K4N70zfogH@1ulyUFv17-M@qE$yeFxH?ef{j~8TfhzzMg@9 z))`R#z)rk=+p||<^uMG}T&~<<8JL-fy_mg&(AjIp@=x>bCE*o<`aMJH+_ z3RlN3SWmx^2bf_sJ~J;El0pe(2Wd2Uo-mY$@I-a2DRz$?-={2dce3d$@Os|M z!&|=dE>K4j%?FArA5UI9?p9(CpqNAmIgwluU4Z_ zt~qVNCThBBrMN!TivLs{9e3e)THh92#pwvUrf*|xhu*67BVKK-y@H~kXZ>s!AE)FQ znKoI!UgsayZwwzfAve=+)C%5Wub@iL7`r?D%C1gp*rM2C2PDeqeB&cL$;iK|g-4an z$mzhfs;dn$ivImIx}6?pHyNd$0+nM_0)#$2RuFf-f;jv60R2r4kN140HM|eQ>Nn4P z__c+e z`MD8exV&DMqn77M7^?V#lU$bPm*N{RrA{B{0}5SAA^RIMvdVhvK}y?UgjV8!Tt6un z{|wwYR_X1nYMxT99QTrEoPAa8mf|-7dK_+LJ?dLS^y4cWZP}*jRw!^jy0q_@fl!#qvxj{<%l;TTFuuUQiP9 z{v|e^v*On8CrN6H=s4ALH4xq4Tsl=Jf2^D56sphQg7?+qi;HVejY|l5t&)Gk-ap1h z;of51ZdZ{TGTsPz--sTFA4_A)(gKyclI{QLdy|mz9^ekxo!nG4p1g&!`YzbL1S-bq0(D!tsEo*bC7dG?Qjgyo`vxKFCMR2Dv<`AmNKhFkFcd*kmYQ@^yt6}zNMjsnMbaeV3q^|kOGOAD9pS}nh?F5h)8ztPj} zTBA?dq~yunX%DGJY}&&H9r05T`W-)I*c-Y+kPYX&N37e~wY`eCA<Z+1N4?CY$6vf*PE0wXkzD6MZo!y3|B#jjJ)*bhYwNZ*7MksTyfJ zTJ(Ci;f*~fIuZ2EA{Uk31v-YR3(N+FRqPp4oA&%ss zM37jDGYdoQ!6G4r{-&93QA9E=5aJDrP8&}`zoFIpDF4b>VK|qd7)uHx-p{oazo#5Y zWQuere+}tuw1!q5YH`u1IKfRGk$U)VnTl@Fu6tXx8`G`izlB-T8zuxk;D?H!bU(r-;`k{-y^z{-(z7<;Baq2+?y$Lp?)7NtBhx2EW9S zr}qsZ{gpzAuJRknc}ZbOd==C#*+C*-c{-RT86Q-~skqjo$XvA=AvH37#gVBhgRTOV*Zur6)v`fc>dXcLwva zUS$39&)ZY&l|GtfkV^D}xtEwJ3d{CuY=B!ee*-j45J~F{VpOJEr7;gdNv(%ZRg2-Y z^yQ5VvOWhxUKE?09?f9uBQdG#l+Z1mWcS0z5!zbisIcX0j?}{{&&MHcWLAv-!hsGD zbIhZ|>bh5&Uchoys^#)EmFw{hRgzEczhvsDJ`)EdRgkv@cjdkK&mQmIjGsgQJmJ!wisP-~3(_-t+ukjRF;Wo8N17F>EEg{BHTZK6#p%$mI9BR*Gfi_wtk9 zE0OoBFG%n8Xjz~1UWSw2>wX@yyZfj2`ZVoF&gu@5-m7S}ETp9O`V|q8`la`JP&Po{ z^j;HX0M=uxwttm$Q#_5Jmf`+M-*8JugCg{jB#B|;Ss1V|E~Ca1k8+pSO9*pb>A9Vuhsy2$azjL8X{ba9 z(9QV}tr?y{zK}q=&vX&?NkY|nI~P)!oiT2V?rnn@;$nd35}6w7L#^-TA+&_Ntplfv zo0t};v(m+#b*K$aV5{DAabe>J%Cj$dSgPR1PdZ=)5A}p~s1%oT#!dm1KF&6V%rH+{ z8*2R{w06|NVe{L>x|Oi`Pd<69djJ|^KmMt;i@h?M-El<=P;mZb7C9S2o=)$xQ6j}YYuzc5n)nU#iZp{#NH=a$Ghi*@T^jr^BU7Zj zv@ReuQrH;gESlb&28Z2N8^`9`^wzgH&|)X-Q=27(AR8`i4Vk_kIFCaXdBcR70`Ya< zrS=O_|609uTb`b~!Pz#4@axfyVWHeMc1@PWNg^iXJ|Vm2@X`N^JjGt1-`$ErG~9A* z(0Dmq`cl|Hfw5s&s5O}jU5RK@UXn;c-wVZe4VgbpqJ+m=dx*vJQpDT22uFgB1)L^) zPESlKCg0%aw)}(cYDk#m2k4i^y&w=5l7x*UHSNm%NdH+lmyJBBIO2UWTIiHF(D$^4 z59*>0Z4{>&7+_dL>wC|U~@{>aX%*~=gaT-69wtOHAMJm3G2QWqKU;ASnb_hP{;~v1hCYj#f!f zJ3@(r{Y_`O!D(H8RP_@F*?7HKycy$0#~2MijbSYm?&EKTA*5#S@>m0z5>u7iCHCp)---5;;cbI zdBUxe&_Gqfb;!7&FqHeeZVW+&i0z{%PE!+*Se)l3tfF^=q!~CZc_?v*`IH)_5-@&C zluQX16cX6yP*v~LMEFoD+G3siIGXBE;+y`qGu_AlXm@1M;5F*{P$>?SjsDA1NTEO4 zb;@2b9lJsO-|j&#e>zywQaHu1@m3b-RTV}6y$G&4HUNF)_mAuobq`F6$4{0|QLPz3V$DZ-TCbOq`{aFT_P2uy5;>M)5Zm|GHT$H-Sw zE7t_5=ilU^;@?On0(LU5-LdgJPmT#Ct`Wi&_UfJ(VKHmDIg^iGC$EP~YrG%!8E*|Y z8fdVJ?k1WAQ#V}t(D)9k7$R-1X-8BR3BT%+WF4V@ zI<<9zPC_IcDUsJ?9|2QjJ>6Gi-QGfIz&q>|A@K3KThf0Bf)NyCU@Mvo3IjMNtL!Z@ z9(hiS3BfVoG2KmM{RFuyNbAzoth&rw8M{2@V;ttKG>( zcCVGzkC9s?Zwk7tbjv4d@-iJ|B2`b3bm=rnVE9QVl-Rwe1j(yXSy`luZb6qG$;u+# z9D%ebQ$LJEi$@o8L#Bq~c*ZiQgys-C8^%yM=LAi2|_9S|=%` zQbH{)I~fj2t(S-t2Qm}9CIH00eoyiUAE(oqZCt;AokH0$CCM?wZkHWH;vBVOYPbpV z;cNDe`3*a!FMsg${vof=-t3}am`4hkjk$^~w+H<3B|(T(hzijV$@ z_Dy;R{g3yLZw$iN*Zb!mmj3+L8~+6RXK5?@r)T>=;r$E!l^m7Su7 z3MDRvy;^{oVUkgR&V?|_d$Hon&FlH6qt>Xcn5QP~nnOly|xDi7vZ_rEKv z*4EXmSgwh>_mJ2bp?FIX>LTmqEy|GIut2@DKeu&CLIK0ZlT?6Z4F27k?Np;u#-Wg{ zB!DO00_V`9cI!5$p3=eUu`P#EPoY!KQ4~#g;~e#Q^lF>!!~>zsI$52i!5Fb#8juf< zvkOfXArx(~@Ho;jVROx^<7xjTQr5lIaZ6+t8WRevraPB$8*E{75 zQ$n7o1l-cf+bBbo_{ss!wy;Ug0zzKE$}V8+*H@$iUR<*0>WVa){>px_M+TaFFjKla zTS0<))u+H(#STx@GOZsF<*OwuR>=<}w=?Rxvas={Zd~a0{WhomddUyCO)cTutkI=n zs!i)J&|MNIIDUPF?fL@9F2yxxK^Y=0rpbslx!rnU!l^E!htO3AM!X*{*yk}eRH}9R zA-?*LbCPq)Q#|x(ceJOUoFx#EsZc^z_feMMccWTp4|_kR_BLw~wNv-FkoWTi!<0=u z=`L^KPP?O})jC95+vDR9GK$*+V6lyhJ!&*-8;a{0kJfNBeUZ!#wJQ912n1j}PkF7O zh1X&4H)1G4dO@T_m{Z{7DcO~{{{RV_t&X<^PO#qwUH-P9=rA7d`U77R&9RvLm;{s| zs(Z3FWaJggR*CAO7PWJ55-jW~nA>!Iov^_gbchuLp9OTtcM zu+HQ+>;kqxG{&~~@FJ7n673v&7hAe?a{iNI7v0S2afoMt0ddTTt;mS1or*{6GaNbU z_XCC5tZ}!B$Ujq!)TIoqm!PP@A*YEE_fe4k1MiFU2K3qPoJ6S*gF~5Zpm$V;XxZ2b zMCwF=Gn@?qzH|S|PPAE0)=}l}K~h4Iyoc)(tBSPSHzbi9xVUXY!z%)BE`c{^HBf9Q zQ^9Or1w!5vVr4i37S}UpO=3R~s0tIW$cC!f)_WS551BbJtZj-L{NJ8DU);iGTdyVr z)&j+|QRC~~`39r*LUosCCnWM~5V1DGov8 zN}o{ze;PjNY9MKfkUtu`mBiQtJ22ga;>k?#!T}>64h(OIUv;T zdr(|Ef=$({{D!Z&G7%Wk%*F4x@cfR87P)BQVxwGaX#6uw)qYAYBq!s#DcHb8zA>WIMgI`j-5_Yj#c%%-S zAdp`rQCsLYUQ&)*JFSbKLb;rnRRkGb&9D*cFLc zKI?(|rK=t5gi>19;`OC`Jj9)#s0r;Jd%1+aqJTL~-2CvS!7TY~OupG_)ylV6yQ&D1 z_>r~@PZ#ATZ22XlC(o;uZ?y1bMA>@}DRHInGu3*6WEqePF4Di~aTBwEwRYiXVM;E> zaJ8TaZuW10_{ri7I@;IP%fh)h_U8;Ipv0u;KJeJ0kP{_o!e5wq`_xlTzIX``6)Kc7 z9%o>MDq$C5V(iJ7aR+iv+f2FNGO9+CJ30#X4!5n)CzKm9V^mVSlt#J@`mr zRYruezJ@RPDY0+Fw&JF+%lQPm%kI9QT^CTz;63j9M)ki)7tcz%$_&#H+LM*ATasJy zy%sAW3;U!oVV!seSRXDCFhk4yBnH8lrAUB!0}RUi&Fbo;MBl~+xRYt}*se&b58{ZF z-3zd#(}NRjF^~3@Eh%vgv3f~COJ96V*A!Zp_2~~xE&IcI;`!oLeh;zwfFMQpdM`ub1AAom!K zaPJ5kQ$2o3GatnbZn76DbrO33;X_aUQY1I93wn|?yCe8$cS z8=Ke@s^A9^v1av4LEWb(cKh|$(e%iS1*;YJml3Kv{!DkkA|!<3|IV!e1c-jfc z4)$T6qtRznqpwPBu_JgPO@nD|@o!&89$|N+<-gFE^{!7>)y+R$e}(^b@XbrOn#ivD z;Z|o?HGNO*s^*Iahy3`v`M&y8er)u*RqP%iovS|+sAFEm+$M-Gi#iQ3U;Wy5cHtpi zstZ-t@N{23y-M}vm_6!?Fc8w0aeLJl>79cQI6<~9pGwHQHxYZJHu*wOl{!%-x*hM! z!VPOvIO$ZdLOb1Mo#IvslyB(qUHJ< z*CT&+AD(vgxgF>YTx#A&3%0BzV zuDhC~q$DE~RY{LduEj(hv?r5!X5jt~ME~u&9b!1#YQ?i);F^8(owFMQ*K9xilKu-R zv`+sY^k3C~PT%=4UV2EEdjGI9J?94YP>(MEVlDqdkMlw5Q)~Fc|3-a2IU8IiNDDR= zX0ZY>^&`zwQ1SRA*GGg0Z-E)UHt!>?dcAhRCVB7#F16~x6CY`pwra=cEL zBho%*$$fjnejz$8$klV7wYrIbq1+uNx}udr#-KigIM$6icb2}5q|(S?MCTVBqd^`P z&RAA@tc^eBV-)P$99yA$&D!qeVPTdW6s@p2!b)ez*wl5`pZYRUVaSnqryBc)WJRh# z^yuBH+%~I|3h}H1IYj0g2OOX6fP>3^*W_s5iX5Oz^8;kuJR24X$8Vf)(9V)qFzo|5 z5c7PTa5vi*FzEKmGHGj_Knyn(!jOTA+A51&3LA87qExD2)V+Jg@W{loxzkLckS`381B_Pmdt4Gd-8fn&fi#3NEWfwSE(pT{Ynwxk&(9N#6C)%W=oOY zT?>n?PT2&dyC_*Cr)ulzBe*)d^eFTjh#AjW_fa&IxU?u_PGK1@LE1!hG@EwIB8jDn zRad^|myqY#I%~+^SEb?X1p6nPK(DmEcgcJG%~@|77o`c4fI^M(EJ0Me#;up0fL1Ek zy7x+fOb7@nS5T%>8BKGCOP@exgsW^9uCnL2(<-CGWV@C=kCAy<>c z*BvPHmYlxc!;k4aUy$d&0C%=7A<6bmov=8PgezRWh$acL|n z!!#83?odXw6F)!2F{170V?^6w8__Uwz)CGsn&LNf;|ysidanp%v%xvhNPm+Z-F4dC zLN~=0h&?VWw!lrF*$rX6%W8ncS z&u3kYVi3Z{c4mfoC56Qj=JfJBV_~+* z^Q}+qVT!@C*C@$dW|++9Lgq7U{8=|nkw#=bQSgP02c<_5V<9UH%M$VaIXayqltrQV z5^0Q6k_gHX`mtn{bcB(|Xt_P){g?@Evud1{!+p%5++|uOt^{ocSE-YiC+lXF@{e^G zgo6YLMF_3X6Dq}Nwxvf-Nl0pn!aLP0KV`K+<-*?WTH`UWVG>@TMtsUcrCQ&k7*NjE z6jZF;K6}$6itX9x)H80#<0TQxckY4n)0PESW}y78-=j7QLqOPAzfo%wZ)2x0@h}Pp zNd6E}R}Uqef~X#x=Rf#QWzF!BTclnI7E0k@>l)00?{)iJ^7Wl@dX8>EO0ZzcM5fD& z$8VQv5e^d9`$#3i%)mOGBy5wxM5AkVCP$_1P~kzaRAkM~r*|+n*3Z8K8BBY1pCY5X z=|@?k6MKSesL3c z>+_nkd%1cKdU?L;>o<&Z+zWh7SfG_)0yZJ!zY6;D`{Jq%{bfZ1!m`m;|eo*d> z{GmstgCbQaO!1bmUx4)oWJao2uHB@Us1s^yc;K8;w^>54 zVXthQPi0DV!fvkPZ!Sk7zD2!we{4yu?4b?Lxobawjg;h_e5B*iRiHI z#py{~yA`*9Z-tEgjjv1_MkD zwbs3;xK+=EJyvXm!sP^)_~B+$bl7Z7(?xm9 zeWM^ajwOgD+&(cy*D>nA3Gcc>K7wnCbP}b?;;$Riq?`O5TQN%(lDvawHH8SvDvm;% z&rK{?Ds`dk`soKgej=UL+Ds+7^Kq5)@$CK|_Z?h^b=TbOsesWDHiNYwXI)^f={Zmy z3!cKyX1DdaO=iN|t=*IZa<_hJsCDZU{9C)qrVUnGa4UUe%SazbjASaLk4rYGNjPsS zbiP|<-P%g*14}L6j(NP3^@B{zO_rzEr^EVuj)cp|?gk!30R#Ub>Fv%HolL32aK zjY3*?_}m_?;YHfEG`nj(wtX>36fvk*f z?s0PHu$Fyz3f-C6ts66&Wk*CB-;a*ZfPCrsM41zC+5p_jX@!t63VcSmy%P97Hdvj# z!9??fpP-byQ%c4kX`w^7$4R0TGU3)8qfG*1{)D>>sLpabpn3&gAc06S2ZbKaV{4c# zvVhksc8$I*snT)ZRc?%H2%C5i4Oyp}Z$6RwH_hBz*4nh(aPLb?LK zFqiu>V;KKB4pTrUUw10|6W?C*6E)wlHFV~|^{tP; zicAZ6<YjDsAv;GHrl5WajQn<-21Cq_e(_SfmL|RKy;dA z^$6Kk+dg`-ZeXz5tnRevk-9Ox3O$F`&_G2HP`4;Ot{2TO`ZU=~dBiMQ`W<>orz@1m zg^936cwV)8nyklX(&2}G@>BKS2*se{^`nlpmdO@`IZwc}suOa6v}|~GeJ!38q?zE5 ztPP6I!jz7J;~rofXV*HKof_d68utZ5%bunZZ7p;f3cOoQ>rqsSA17{`15HVqbx~8I zH7r+SSImn%(InUVG?|tt`T=`N#`K$#Wq|7d)mN~aKzQZ;<-b#&CKBK&c6g>}J+ITN z;nR(JrDQ-GVU(rXtdkqn$}6I?>((rygL~??T(OW1cHGQ%MaQIRiM_H#$)V0L!3^R! zfB*!>5Y!=Y?y|7P=Jhf$SsN|Ay`2?KzsrK{9NFT8Ktj6?ME7n#n}5ncc#~{#f$-bz zvmqSt6$s}?6jG+}mLe!@P#S-S`CPtHc+y^hVWylOUb_-C(Co){S2O*cx#q8{|9S@g zHZ!37)8vq-4(Wcc4)=Xnotkdk(=6aOQ(D#!==)(zh;4g0pe7i;B9)!FcLPw;pAsui%m?vah zUF|no2%Ra8%X)A8Ox+mOFMei&9jZNXlky%X!Wd^=jmNV?Y1XNe1kmvL$Wp}1oKvR4 zX~sXb&l41KmY_t=6rekkSeR|riY`&DMTv-VfCLH=U8#7q3qPCu5u6h7H2Idwh^MKd zJD^|VBtlG+!zSR7DfagiculldKC!RxTP+G8i1b|Bab>pHFlu7c!j5Y@7${_b4P`P_ zN{%LJ7u#Wp=n>H-wODWeP;elpR5#njq<8gF%ILH%MXMzmFdcP$-T#{MqObgZW${Xc z_gaCDjJlf;!@{{Cz3cm>)!t0S%VM)b**%*)c>yS-554JXduSpv2P&?e5IY?G=)?>A z$;%iZ8_SHI~EjjkVQ9c7BJDxTYKaObwqV?yzfMq1Lyg2 zj|`p~t9^1FBHo>&g29*<*6F!hRd>KiK+wwCq{>eC{$@b$HPJ_7U0efTnbXFe}vq z7)fv@McJ%6@U(3xL64tOhLY9q*e!;=sjL>cOSh;hjtx!1pHm5AmFUCYByl;i`Qv>w z))C_>wE2%`Ypka(SK9oit)6pa!f-r?K~933<;uHNYuv0Lyw8LSz^+?iL(j^LzWzOq zQozHDtDkW`cGL0MW`I8l>S*0Xy&G&Zz*bvhzr`AlAca@Xe?#wlOT8%Dee^pG4H2Wb zSUPu5cIRwhuD8O{zkc93It`w+1Zm4xdrp9p!Os>?#>an7*g#}WU|IHJ3BXhY2t#}v zg?y*=GH}MII|X(R6)0sSR<=T(H(zQtczl_RWZ~JiLVnhbwnBbeTd>ph- zH9jME_01lkJX+%h?yQ*~0~==kg(so~VuO^iVMI!G$$5uMiYHl*F62EgMD2#13CpHD zpUo%JU-8+W$OEKy*e*vK5iYK={vrs8@02)S2TiP(yCS8$8zVO}oA^WbZ0jeRthFj+ zrD!&0uCm(-uEwb>f6;3`OpAOXnq;93uM#(ZWz)Tf}Z>+Y9;yua9(FYkwuU!91^9j%$=z z7s$~O3G-g-iiX7hi4iMRfPssq9G<|zLVQ+4E#TI1uFzAcGHf6H>C@=~qz#_4O!y(> z098@!A*Bl3Y%O?M3Mg{=>(^DYjOTXHpBnuVkeYO&#=5$4d&^6bF%ZHd_4u}J$WcA;<0ZJxoOT_kSYF~{)gjNiej^{q%e~m0{rpKDC@x{Q zvG=x$j-oyIpyN^U{>ZdpOb}~05n0USs;QXfl-+E9Em5gfbmBJK{sa0t;{vx@mj z1k1wancP1oy6LxHIfc>1bo7lrQrqgr-NL$}yIDwfF;(O}fi*?H- zSc`(I>~HLe8*GA&3elRPLabqp))P%C6Ojo#`2n8IAth|B%=u$uvEbR^6z&3pUSx)n%owR^Ysi-ioX! zy>{8Xwp?_E6IJbk_eqIYKWU<5Pl>0rMMu(3kHjgJpyg)7vfkZ#3TaJF=M(HBbcB~N z@+D^*cy?+l-We@0NEMq2SM`CoetwV~&DIX2Epw{CDTF9e zRnF#KQo~=ZV=}FFOr|`m%h+3eO?B>ogn>5;COz+yiK?>nOeJ;pr;YWrZ+~qn?M=T5 zbn}N&VxF!oZH3F5L62=1$qP7s z+=@%D`SD0u$q4WkX~t46d_)2RpBXFzoH==^RdSVpixIqv{m%tnZAov4B69*o7uZZYj~T%@4ka>x|$vIh`7!s zf_t}vO8f7i`(AK%5MsRAL2PhKrZ73T-!A%h_Ho!iDBJ>R+PN?v4QO(7D4w!+5i<48 z5Ys5L_8BoO)GEksO)SaYMrAZd3-xVz6-;c$=b2qYE{hGcpU~KEU zl`KNW-HH(aNsBWMW;>ga(Hd?R^-tC#O>4MbJ&Gt(+QDg48Vcb))b18;l7LpN{ zdB)peNc6IFRgU{m^ek)KchnL$3vd7OLYuemYzt;lrzja-)HZncetU}yM4e^_)r7@_ zE3YF;OaF%8Y@Bh`GC6fgH?&;v3SBf*_mr=2d`Z*L<_@0XD=berhyW=$uT0cbppWy) zq?ac-y(}c$jC9Ox%>#u)TTpbYwZ9SqG`+_96Iwu}2Rjoy9b6-Ns0o~LDY7XP1unum zh{6sf5^qr=No5yddUd=#VAN`~#(U|eisrhTljnzc$wRMH>~%f28*@Od^fry{?Cv(k z>`CqI?r$Gpu0oF1HQrhy-LZ1-00)<;9&Cm8*u9?9cdO@WyPg-sKBy7F+W|obB1;4a zgT_-5FIiD!wNf`9r{AIz@4LaI-HE0NQ4acHtz@~M`5T?Nt-JG{2v z^pKg4E-F`rI$^fQ+B2p0{X*bLK)&%6Ew~{OT!jm>+Tdr`1|;cYjzXh!u*W7}!xi}o zXu%$39iAJ6DBpZH48OFCnBXG{X9LsWbOegg94vn)oVXm9u*-qqCF#ww1UR(mtoYgV z(pjIJ-xoidEIPXtI?K1>XM?KX6)+Y1#i6yz(PsP>f-NL`opBnylOeyuF%Mr&Rp%SL;_*L1;Q{n9c#=Al-8e0OIz73t|YB_5% z040j75<(;@C>nMRK!~0YIz-3BT};7b0KB&{wE^YR++6UruzY?o1TLx9Zn_Viu}i$$ zL&nT%G(&5w4{)qwRo#vYnWuacb6O;DP5@a6A&~JS1MPx8E@N1=3EJmIw)gl857#;BZt_(Q>+v$j`)7+|xr zD1Pju%x$mkB6bKqY2C88(SoqqxSESJ>s|=f2JKP}-0JEO>JDw~4;8CISYYG4CaiqI zjr2lC@Fs54Yzns9h%!Y9bV#)dI*y17bhL{IpvQx&iu5?>3y+uHwSzGSRvzL5mv&P? z)I5grc@uS7#c!Cq)Hn+4WBz&pK6e}SMB{A87dbBQhfrV)-zoS>DW`MSr2 zrlAi@Tm@R*560g1xX>C5B?2PdY*FGQvg5Vt$&4?P9nYp%FQYspIxp=&x)qF%z;wR# z+Qq6LN^Jab%|K$~>907%^uas9`|xPHi;df?qfV7~q8^lyM~p{>=LH{6oYm*0g67g3Z7m*9D!;rlUW7!y7H;Ptjp2@(D32jG{Cdi@>SPpU;w zi()T3tV3EAYT1f|O91rJ*-z}-oGQ5IBE-JV3j`S;s?eJzORwqHF<#QPZL{Rl5L3e%$;xf~7F{ zj{4GmS=&c8^(*-|sN~<*9u~x>s68e;B!oz*-*^#mI(xJr|WD+>-_7bFZQ+-ge4-3c>Euft)29H+hd~`dOZcY zZss3r<$3a1hi&Pfsp^30$(mu4E~M>e2$7>FhK3Uh-GRhXPurQ}TuHDUN10SDVM9(1 z%ur38mfe)-gN_pHu+A?nOhC@y6`$t!BrTohr7B7@x9H{*kZIU zJ-oHYeYil+@;6gFAK97+R;c^aWszgI)<-7gB#pyekf+vdHVotAFdWrt>B-YY)n-Rr7@UKA;=xy4;CKMg3c!^SaCTf7!bh_$aD#zaa^% zyk?`I0j;c(YG`~!qcm|*c1adyU{@m$Nkt&_LGfZWg{r}I*Zg#^aBq3U@@?)|yXU?3*cfNDZcfKdm z!67Sz2OO+l$Ln=Vu=Hez#LEhK(3Yd1BMiEp2XW(7-xW+KvGBCpa|vS*&S+fNPPxV$ zj#^<(Fjg2&QFF$(=7yJ;DAtle!Uzc-nCJSfXc33DBx;q}@T^#6Dnui&%&ept*D%PZ zu($ufPAUQtE&cF096}-mq|C77!hy6?DKqnLV}31pc3tOayTcs0he}xVQP38+)Q+|} z7(0EZP&PBs_BWyopsgEdSOr@VE&1fy2-b?O1t)fexl-9XqB*f_{JR=OBD@3%mP8jA zys8po{V;O3W9D+Rf6p)O1!jIvVCJ+VF>?ela~LqwH#P<LS1(SBklbi3AYg{gPfi=#2jCrHD{YVvXKnnz^!NpJxN&93J?Y70nSw|Y1) z=zj*+(;js>w=!A%NhN-ijHX!4>6pmHL60!!86IKa(kP0Nh>Iw z(tnYL!(fL|!O;(DKFdJkLX`V4ZBsWx@ua+}WU!)YLV4W3s?G~~pT;hb z?^VnB3ONisX^6&?4iT>N99x#zAa{ShWjFSP(D17-f75~vcu(Tqu;v$l0@OSOiZ0)@ zhV{*H&34Ul!8O~LP~Ee~%ZPItM6RG};o)?%RQ@sghdIV>y0dn8GM1Abcf%k7oGF|9 zd?ao(1Qs9bv4O(Ncib|`t=1^&PxuWT->ZqPQ0)ZO(+?uoYIrr85X7yb23fk25oER_ z0#N5UUSIkw@-*=!YRL%l@N`5rR5sbG*5JI0`j{hJUrn6)SXO5RZvwQL>(7*Ha0tiSF~^EN^}xEY9dg9Qq6tAY~wwds{Nd zOK6Xx4P0x|F{w@ego=8~iD30%_UhZI0Vf>CsBNLUn*lYR(tbzyo9<-TSa>}EAq@rD z9E%Z0cOwe5z?q}Xi;zM|Syio=nDA+r0j*BhtUH>P9fz#G>q0fHU`s(W9A;?-EPR)f zXP4|Qd*44P{Dw7T?GP&zY~-}b2{;HEg+`r0Sg26<4%JMQ9vcixrz%_Pt1js=0K34N zmxx|?ZE^?;ElqPW5KQ}EGQAIgbs^n02y>iPM(K2zg>dZkBns^`Vw@+Ov(bpL5L(O} zpB~SqWB)+tYpXSrwPED|g(Ym1l!~#&N{NNDebHPjaaA>Sudf+JFQdQlKqtG)e`fhp zv|&zIwIp`C{6tay#O{`_%x}u>cGVMP>nDtol?{HZAa)yeT-64QQc>cXG5Q~0ZR_Q2U_xRF{zw$T24f2bO(BP zPa-Cj3#IU{ZxZpg;Gx3rvGsqi&@2D7&p#F1=`a67il=_QV|DV1q>Tg?%`hUZF zb(PozMK2nTR=>!={yXA*d6fG14Q2n0`q!}jGmQH6NdI>qt$vY#{Wt3G@a0kJFJ}FJ z8Y}wm6#eJDx{7==V-(wtR=>!={$CXD%cIo4ZwUKu)UW@R{Wt1Qjnq$uYnS6MGO+(f z{T;qMO8v#G|4$cEwUO?hm)G;i#yu@FFg{_?cv-vfm$e1ht`GIQbwr*zfXZ)+K>iIw zyn)u%;h?W@>$0{EVkX#` zfXxlzi_>s|uBccaQxz3dnvo5zcID7zHpHAt2kOK8&hU!vLPU0po^cXJH3*GhP)kG@ z3@}sx`)+K*{?%z`CFtN1fsYNa(FxrxRyt6PliT^nVL~t}8=Vd{lRY|`=C@(D1|)o< z%J9{()gYSBdf$RuVU@&`$08Y3rjYJbQL z@G|QSyoMDKY>13B>7H673+X4N2Nd}fg6xhqDAF%a$L>ohUGyY7N_d1LIvR#I$N&YB zkj=i+1;<;SySxP6Qt1hDifp7vPeWQOpd}dZodAvp6T9j9+fKqh>i|i61<~Tw9~aX5 zH^R?hI^^S`lP7Sm`(lQtr9cW3G%J%XGR%2z?gS(Vf zRV)2@LPDq^(3UK%;3g(N;8O2g4#$fYC2@1;ZG?|)*xnL&JHdA%KJt&wE32;jKEy&B zYBjLq-PN_IE1_~0Q>wx#_(a`ay{BK`ZwbCZflm^A$5+llhFYVXF(}7(y!g!e6MQxZ zemEYiJI$=9$Ml{NSxy4!C? zx^3^O+dJ9XH=|p-jVUjOQ{r^H3Gd8qr?J~Z7>zfuJ0bZsz7Q~Yon`zrTn2mG$dtc? zQ$(rT_Yjsgz|uc*^p@qD-@;q9x)#Gy{dT|Qo3|T}D6e1T4u1WH`E}*1xM}a|;w8rD zW=Fco`Zg1Q+oB+hfQhjKejLjjY?diny@lU2n%`7z#f{OM7nwfP1byX8Os{O>-zY3w zNx_D|GDICTv5f85&Tn7EAAt?%_Yv(F$aV~gZpRLO^P2fh<;%D++VK~rOW}6B!t}~! z{^f+o5fkE3jJlW*qs<9X{sCp5?XzJw9*uU+3%4`!cJTt^O=Hiv>X~Yb!5fYUSnp+g`cPsQiJL%6Ahu z{|E!8lgeB0-l+U-W`EbrUir63`a4X2FP#2&ro(0^x_W8FYt$YSBe*W62{X{l4YTma z9KkBJ$y^487^qt_q=-Ecz$#?s*=FX-?}>Dy_vrYLnS8FiQvAJ2yd#QSjk^u=@TUWc z!~l4HB>OeYe!ZE!@>-E@RG}r6&*fv~b>i<2_!s-Y$bl&qFRmh7YjM4S>wR1)gHkMc zxMtw`UtD##nsK$^8aOz`atW?HTvy<_3RfwvyK&XwdJ)%KxZc6_tDz~Dr*OT4YY(o2 zxI(xl3`wy}#}&X8#Pu^=58-+q*LGYMG3VDH*G_uvI9xDsrnFy8|ij38^cs(1NS4r%p_}*Pob%x z!%hHI37+TFOzzf$r4{s%05t;V-n}9Dng;dGJ64~V0>>{~LT_s;F2zP?kQo8SuF_U~ zvZ_PE#~l+c@AwI~;g~W859^RHq+>!s$1--_9rKCd>$|;g=Ym9`MyHV`Ni1h&dNHIWo?bkTUpoPc}whbXJx&C z^|x|!Y~IR-4$m*dK6h5uDwZY3B17e+9iF|h&z+T(%d$MNc`GM%c%Bmb+*w&4gG#8J z9GkaN>F_);_PMjN9${Hm#o}h=|8#i1KK8k@vgWX?d9isbXLfl0LF{v9Wu3sX=Eml& zyspFZm9fuQ3IuMxM(V_nROE+OgjzwdU`;q{&)$$)c3YEJ5NblZEBnXJ)XIS!p4(yp zS(((~eR7BAp&g#34$oJ_HoEeS*mWS>aBzJ^khVrz%#X<72OWcs>DF8mry!D^%WxS9t~tX)!rM967={2X5xfMcY$FzT z2rJdWCi+4$WIApM)tkB&nxibWAvD;vTAY32A)1Bc7Sr(77mHyK` zj)|%MjJ_lz1;!~k%Ph6Q)E=D~C`*al#MioO2)#=GX zXxS9)_S)@~GaBgjdckNJ8r4BO2celA1UKy}a=31YVPS&3+4NnoH-9|$bMbQQ0dtRD zs%XEw2-|OP0!Cv(D%2q1$bv!QWt)^T86m(RGDSE~2|#qMgpQ5V9-LsuPg-z78h+A) z6VmZ>R&c^u_{j`TfaKD7L2$wa_{k1V$i~mO;DmAbaRw(i!KaZ?3z)PnYkqA@@Z|1` zTqqAK-2kE;YNp4-n;Azn(GPx4lP*CQVjaVcMmu<7erNVthy!i?7K_||XlWdg z+lY^hu?X`|&8pzc2_9Ue^53EuvNOr#nQjNCvxql4`!N1u${$N_)Fh_mOK0W~QO0`#vdvGs#R3)2Ti=?E4>R*iX!*-MtH zAxjrw)B?N5yGp@pDnDNUu6&JvQ4^-H5uhbq=<9fLe$>I=Y)pKX1yTNH_n-hz@X0iS zOj=(iehrUDcZz#T>9NVc6M@FMbjO_^g!E6&BtIFdx==#!1fNYS#T)*v#4kQzfDEeb z|Eq|b(LOm?CUS(G#*my;!+y}iiN;{Gg&%d41Y->P`WODtg>zm0$%eU=h!BO}bifSl zfS8brMhOi%)R*+z=#oWN?-X^)^oed%Z~8@lK$KhnO@qNX{ru;Kecu zHf%toi(U5a#TUD(A8R%k>595f|Ctc|#WvzZ0aW#FI9kn>fiZxyfGVJiueye6J0^6m z{^$4O5q1j>UkoR`{huCvFmwbI8g9LRAfc2NvSI*r7|WU4Ehl16JCVDx!;O;FCwUH z(`SBP3{xa=hK&|N$#9t3WG2`2U5WLd5^CAs$hz3Nj;AC=TE~ z^t$x%hz6%@6kl)D`zekcQrS!#+da^n;z*~%d|VUpLN-+^rK$_AA+#t-p=5L@-TRzY1=vbocxl-zXOc)@O;lFbwuDZt3pBDY6G5MC|9ekhK=`lrk4 zsjLK3>o9*&HWckl|D%q-`py?Nv5oqz)ws25Gb@>N^d zy1Df%`rYOP1Xa0B&%$=bt&(l^sEr2NE;7x@`?GNR+aCDO^tR6=VA`fGY zgg?`ISDTp3^$Dc?>RdY2*$QP%DMT(mFdrgCF@|zw7*CGC0D1n7!gg&dXo)G%7Go%7 z%?YKkwo!|7J!&( z$wOkuqotK|;OU~>QN{TsyyAkgX|;vN5);fw)F#6#>lRF~20i~~bAriQAzZTleYYIU zZEHO_H2n8zVuJ1PVS;VZ$1odQb@wxz3zxWHXBUFgFlRX(Vt=~eB z2mID`ZuoEcrZ~&u}u^E(iYhX}FE4)JkNCbSyKn z<}&aN#^?=t6GWzRa1>0WpTOQ=g+}}-_yv*;065k~mRg}oJrfRPTSgPTZu(&FvFL~O z6pcV-ScS#!>z<6A9>fX{)FMcAD~_F85Tkl0^*3%*pe?gt3eP2h>bA++;GJGa)8b^s z(Xeo=f>|CMmj-|wHrJCtbw7_|3-sZ&VTP++IH|=-i@4YO)7f`HS;4B za;RDf_Va2}tw{Ip1z@b*-+Q9=b91k85}oNq7r+)?nnvox^u#K7PfwK@ z$;7eKHw`;!4Up_)ao%8x3kK>|ID&D3KK=mcg_pFH1__1f0$c>n1t-97vx3Ce^!t{; zlsb5-t8StdlcTQXLNttyV>2rQ5Bg#&L$bT<4XO}QKY zlZda5YAG<5f(UYQcmgNcjqMwJ9BkyCAdzW+$I;-Ia5Uz<41ait%W%3Io)N%S!IFj7 zR;W@1Gh0)X;E%ZecpS3LpM($az@7T7(vnm-Y5y%TjSigP{@epxf=CfG5Qs;N1RDh?s|2mB>3r=- z^}|RgD)o3|0%01?ln7F(&Xo#O$3&5>xJCQKt?+kFRubM#u!SoH$`gj1OsrK#*m)46 zNSJJEA!#DsvhPgB$4Gvd$wA}(Ufi>P{!^eDmJqMvLTl?{qt$4m3af!;ea%03RLHgR z69K$PL+J^NExH_V=?75or}LKfXG>}Li4I`AlF_JE3=x|-P!58FhC0MBm3bB7N#n}o8iplLm`2|N##Sl zZvY*Dv(6H$#Xp)Xa>1Vt=2m%wQz~&XcCAa$`@=j5%)XZY;i*B*Q5>WE=R^2pcjY8V z+F62*GQJ~E$BaF!ZsnIRo??8NiA zZuK;`qsYGOYJ()CSWrJxxP!6gA^!Zb$sRC?GZi|wR$l{oOseC^Qhhd-JI*Y34ax;Y z%_fd9lc1$z$;-LMzHD|>J=b1I&J~LH zjEQa<#zGiqgRpm!uz%}yl2;(%VC+}#(ZG2(Bn1o6y_>_50@qdDKQQ(cVbV!C-Nd(p z0^dFYQ@4BgHc(hm)wNU#)XI^8Z{xuyvy(${Huf&6b1gg)?Sy3~#}qON@_TEAF;ZR2 zkC+w6mkS5g5KvD8)a&(s^fSuI=&T%!pjpn%W;tV!HQbEfh|hgDMd8X@GdSEfva3-6 z8?fBS6pf&4SR4dJ(+vcb%(|XyN6=4&O;KIT?~%k1o#+4yPcsU?F{%Yq?Px&`4ogeZ zGJPj_v`K^*^R^`j-*FQR)a|MbChD#<>TJycf0Ni-Vm^1oUOF-0vDC?0ev?H20DFgm z!~PY(-XoE^oA~@TL`NVu5I~`O`26M|`irY;8Nj2hdYol7%acP^GbWq^)CdBRlnl|dw zMd4BzT?QMiz-$!`4k5XpV-?O3FTt`1Zl>(WwfWCC5FgAY7)FbH|9}HNbr2=o{^16{ zO&G{xIcQ)LeGtLa8Xq~{@||GzoK^2UEINW& zDHem9AtYiGtUzr7+7G>!L59A9+TbqR;X5uzw!5SUt6B#*c(b~S>>W6^w17tdqa-ny ze^F2{Hv;l8JdT0>vncEV@o^QxH)9LHqJ)L8QJ*}FSPYEnPevIQrj{yv;1YTeFsA#S zt#yWCFminGtL*~U0Sy|Zz(0nt4@OjXs~_7vm_D$tQ@4t`b%Bhd$Z>}f6JHrj8SvsG z55D~_H8CgGzU++lc10TX)CnCL)q0MiU7D_+4)SS(9gS~L*^ORmze=y2f`f)<*HCZ7fI;H#T!zq_z6KyXLw=h5p zS2mO-%c6#QkK<#MUZ-Dx(oyy>#c?<))-0Z+`>U$;QPTQ0XIY3CdNMI|rdYP9L_=Cy zD*F!FA|p(8DW0g%fUZ9&!f`7g*VVt^Q>m;5?>vsv{9tXDrLAGc2r2DVUo;UqlQiP{ z!pWUQ3Az!_%1z$y3oVE6feTR~u*eNiz$vq}E>P5@G=Z#>6&TPNXnh_+G83(_IF{iH zuE-da21>Dj<&J^G75{Qmf4KJEnPm4lte~K|b_=Pbc_frNcXdm#Rx9Q~& zK9*I5d*eGdrautOgN`w|*{2-Yq1Lk@LMP@^CCVv8r7&j|GlTNvYv0@pp}{QCe@qnw z?lm~xhNGVUh$oL8Oq!^yU!M6hb^hl$fByA9U!M7M8R%wg2w(R3N63m!&|Rgekin2CKe)6&MI6V zKoMo)Jls5li+U;(OK|fTE{SBORsh+jcZL4TCJrNl|Dailww}5GUdIQ%d5ZSubs}l@ zzPVBM@PWNh2Dx>utmW#mV;_`TwQ2jX@mWQb-QzvfVBMzQHcn`+K$Um^6jxwtdzlT2 zE16JSvCDy06p-sw;6V3J3Pbd2ZtP-hzOiUg#Nk^3bXMHENcnzO6jdNWy9UZI?hm9C zL^7R%lBd~Q{(|-)Z57@kl#jEpKcUX^fcLV2)f-2Djc}k9&UJU zDv7ZMM;AIb>LIosvQ9MGgx(Gnd&yU%YzsB=p>|Mt&Kh|8+tNAgZzVGM9 z>EL7c(foJ~F&+A9e$1#l>in1|s_XvzND@UJb$+CD=tb}6$0cy4{I%UbPE?O!ev}sV zYJQx)sqg1Uzsx?HA5Wj#ck|=BwMU&FvZ${6^W&Ww7J1b9@gX=^(X+hw^W)UK|E~D~ zZan0HH_#~AmzGK+EF8qa<1`q-rc~#g2tSgtO%M2aIOMvaX$U?r>>*~_TJiT#INTMi zm4zxG1VJ|#ilI*M|GMX%FvdUq@_+8bDUbToPJ>ynI?c)Bznc8R73M@OOWVyXY75oi zqbxGee1^yZuQwdnnf(J_`dwxFr{3~+q`R(ysL!JQUB>xVus<^3OhR~rA!#NU`xUo7B*T;-~k*7c!{WUOrRQv zqJ9dNve)qsNh`%8>`k;&=-|Ubdm99-Y4SinS}RD084*Q%c0H*|069?(ZI$QmN9+DA z&ky0}Gud(2cQS3cg;DncbQE?h(4*#QJMk$C}986o)`U_)QvjN?z&E|iNtYF^LeZ7(50XzQzWu#0{rbWwmG5}5NUA~D}ZP@Yrx45m3aLl_o ze;*C}hv)ChgN^EVfsCqLi$`!>wNjT(+|{$Be`x99Hcg zF<`=eGkqvKR9=fVe52@BBS2Qo}LM-(Nr7?fLuY=y0#% z*4Y>Hce1FW@8|FJLS6Bj{Wmgy&tCc;p1;#B|6=CvrYCzbe`}$o`T5S@??-BgJD0jo zKfm)tx99Ks2pQ7Fp5GVq_YP4--_PIQUGUBROZ(x-{QY6ce|Y}>6k;ZvZgBwmoX@|H z_hSAg!W!c9oxcyC60YGG=Wp7&ZqMJdyRNe@=I<7mKzuIeU+^Qp9`rM{m%&QAAuYAt zNx#l;Zkj8d#?)YXfEiYku4nvF4E!Kr5wlgl@(Mr*j2}a}0-5xIMuxM58bteR{|C-(h43w|@gN#J2zX*b*LK313|MTOWyO|HvcSzs1N9ZvVk) z9ozrA*b5$$jJeGCLr`=tFb{44E-w0%%m69Iq_9y`o~ zHasCFw-lRuFw}faw^+~!F7l{5WJEtsrwVlm{I0-XrxIaI(>+H=e^K)GPdxMY6nYc) zDB9ArwP4^X_#{q7McslRp6Rz-DQgoF=!?^H{XVLw$@BLWdbM%qU#2C&(aURk$)Ql_ zQZ4Bm1m~19w$a5FROIxlkt$~#_G)=)YtbylctZ~#GTs=upmhebs8{r{NKv$9g^K!D zPtFZ#=?lTs{WoLsVSSp2<>v~MJ3aSz90LEhk&2WsPdDF4l|0&wsOhix6b$bLFYx;! z#qsGvr>reRA#>mX5&F&0MFv})yx>&hyVHapr&o=%BqMEz@b?5)PxyWTl%IEb)z27+ zaUR#Je8usm6gWdD1};Pk7lX~eG_A;qmU3D#V z04vFs&Jy1i=+N_PhTdF*!HUi&D>{>`Xw;0>p}dqUpkE00QP7>EUo3=01Hg7kw;cfL z3P=$!^B90V9V&;??X(P4w8iV7Hg3kB6kyR%i~!i}zcm2%Ho$=~wzq@w2J;Oe26er) z9&K(L)%67A42{e+`i;2)a`X>ofQO)S3lT{ebo3M^$Be0+f<{9yjs8QdWLRee}B$@>zDrkVRC0aNK?fQW%kj8BO23OCT-^%8PRY}o& z`fAA)&0i{N?9hBViWAMJqd3w0-00>v$8Y{t{oEs(KMl>FiRND;Q(u($-m;hL7KTxb z97m{JA7sYiKXYx zKuUM$x%(c9N6(cSsXeCWWaGOSdhP-vt#9bL_kPg{J-5w#5tp88hBIHR(8oy6Jp=>e z-qLf|h;KWRCD_|PZ+dS1gPqZHtIaoE(sRFnu08j*m_4&+^xQnyVVh)cFX*}Nh_5>W zF1%j~os7Px=cw|JUiSe#H{Z(6cOZy*yVss73X8wjM$>aG@K@23=66od{b4|y=J%GK zn`3*hS4f5t|m!${voHFZ6O3xLx#G~gX zAT>TcmyS2F^xTO^=?*_ZV|uQ{_%4Q?yVgkS8+z^}QCJ-Q+~Io+x+N|> zXFX4>oX1GdHCniW^^QOHQ}Jy_vg8Y(=idEkXY|~Q=9@0*xouFkKSp})fe_*_8*I#8 z&~sOcuR8+nbEfB-VGGa`f~a%;+|S{asL$xROGRPv_u6QBZbT28-#I<^=4Wx5-&=Za zl_)H_`Nu}joqx6%rDLM!4t=`U!0+DDa~n}WFX_1j(82E$dTy-IhCZR^_8ek=q6euH zdhSV~Yu_b3S52K*tw8YSp2B_C^xS*kbbiC1``VFfN9}MA=(#1+zNGY=ygME}cRo_% z({rhK6HCwaM@o0-xdUoEdTzIo+GBcdt?^w9J$H|h);ILrBvDu#dhQ(aMO=C=8%q3G zIggQ^3&A^2Z|S*O@oh)4}x}KiBYYf=!5}dqL0L zA-?VixX+oMvl_kb1OD9Bf3fp@#GkuG6c&H4ji%=mNUnN9j&@GZ4UX6R-qLdnITuSR z92-4%HB|f2&10hHGSDWJAw;6R;?M2*h@FbU&+f}xe|dUjn2wDBUGFVD zw^4i@wOpr084((y*`-qr%ErH~!C(ZAio*Ngh`Mss* zK4>8UE*N)m@VGksnU>As};Nb|`cCS_p zmGbG(=-+UBlC~V`wjKT3;DnJ*A2;-GW4h8gZ3#C?U&O_Y z@Ne_)h>M%REp{8U>aA3bZg+8Ghw~xqYfw1A3KY-9&09;$g!g^L@s|HI*Ma&3|H+K3 zEYEL*n;R(EqXCI8>7RmkplG*-WXH#n#`wQp?K)Tw+(7GrQaqyli$h*`pWS{q++Gh{ z*?1EFt-#ztpIaiDKH2m*gSvbtD{L^{qQMFp>=izFw(2*%!wGg6%N-ldRorx&!xWj} zvOSKyODkA+Nu;>HvN)(6Q~$VK^_beRb`&R;PP43zp|_#6K95e9{?kgZUjY8Ry{H%X zv-@v-fb4XmB6m&+fOs!5?$|dDzzr{8_WRPw;0c_%g?UKkqK= z_WJX|u0F+|H7M?z^@m%8{{02Lz@MVG`UHQ*!QsL&;LmS<)NTBE?5}-_KSe0+8~hRY zb6RmP@W=jUpWx4@;4mBm{>;6p+xTkLW4@*1j2y%Co;x&)KN|QiV0|rXx*<1E1KXyQ=YN*k7ew z{=RhAdq^NdQW)35+zn<0`siA)FJTZ|eXyUr{WCccg!(pmOU#BLuu-%}tx>AmK(toL z)%ti4=`AAkXjwQB z#(`cq`ZS?W*oqM#=xbIYMw$oXmY=nQuvi599h~1`o2m^S+X)=|NtzoSYH0w>k9w^8 z(q!m*e%yZE7dAg$-b}pt3eS&n@M^m;KW6@+FXzXd!a(2{=11WxeK9}o`|#^IKjxnE zh0TvZ(^q_cTnFB2H|EEoKAj&oAe5QG@#*FMk-eiY=EwSdU(fk5G2;uHA6XO+f0g$S zx^wTw{P_8!eYt;l4D*5B(^sj8KX&Z&)vF(TJ?F<6>0j9V`1@bK;`8I%WWXN%{Neax zU(S!Sg!2C}&{u6+`(l1TANIfW{6YDIRYbi&3~U)Oi?_=go`CZZ3og0x+oMk}duR1W zTRm9~kZ$34?o3hCshJ+>vCT;0^YKylCz$vAQPjz)%INKK_1}`@#4WO#;K^}W{ohs` zRsItdb%Iq6A}lbnh}*n@*4E()1N#PD*49DHguvGbFpNA-tD;S|Dk?%`A~z1&%ryZC zO>#)F>TQsK%fV41>NoUIyPS30`gD zZkKveC_fz%z-*;MBA5@cxsJ%;Z21ghr4LgH1$wm#UJL(<2pA%Zki>A&1-DF>f}@fU zs?f#39+AQuLQ`?}_P|A3Alu@*#8o+lZ?xe>{hSuPz5$U}<9`C^*H?+ghpHx&j_YUf zA80+_RcSZAzLH-DqrWa84r%#TIZ$GFcFKoqBxkCqTL0H|XtKs=6@jH`vJL*eaIdJh zLe@F_`CmJP&#+kt4P}ZM?Jx071@Dj*HnFGEnBik1lu`}m8!*MgOn)4rsPJSd7#^?{K|1@yWO`Zk@ zc(sVK0vx>YG!qBiZ3YT@)D~b}Uhujqfr(QQQbpE&EF->3{Um{Z_!an9KPejh;Ly=P zKPw}^4#aqw7#Deg2`5l6l7LAVn_yQb{VUKG^3A?D6tY;B&OpvejMNjM@o0j#NpD!a zH&o%#{LS#|w$J8~a{bMUx|qY<{7VkzHhobI2NO)MZTfuN;>|?`#+$3e8!^o4q&Czd zmCZ#X18w7_J70aKK~VcUXf@&?Wh{JYiT_)uEWU%>N#9M~qw zjt>_h`1*&fP((a@;)WAhoHXG>$n_H#?)V(I0+oaQebRbw^Gd95?&ff%uF4eV)rLQE z*o5aZSF_nOs^BlJIUKuo60`{b>NR*37t%LAZ1i!k=%avig32xR#^m`m&t}!6d0~H zM&@DMBYG91CpP%zq>sfMhP8)o#ItFoXd@S1JbK{ZuY`IP4VWL2&8S(jg_~ryHKko; zj-2T#e9w^|1RgI(UO-{_CPHUU?dLSK^eQUol}zq(<^a&?FQQl#0^0g0sH9ZLT5{kZ z=1Xuu{iNcdXixnlAAjI_0-H&kgCCb`EE18ELHKX3vm~T~t z^Ag^LSy5n9X7{=%+ACxrS70rVYP9;1N5%Y4PHba46J%`(<~{r^X1yOg7tO@ORcXa? zFhdT`x4N^c$Oqr5r{8I`Gyk32^lQSlyTd&S^%(xt+4Aq{`)+edFOlGM&NP0)K0h zmw#fhSu6`uJ*uk>UbD|sG8$x!w{4>qr@@J>{^|GjhO(;UAcB_%bAbv;!prb5cMx_<(j3>{*)`{Vgiqdr)T0g>t=xd*4b~mo+C`gf{vA z5f=~~B8*;#czOvKYG6Bwc&w8Na*#y)^{Dtb*|F1iLv(z3bqa`V2O)8BJ0w2s5)zXM ziH{07uE3b!e86FT`o>JoWz3nKe4#=jw@Y>$^gm>#^Q?eT&8Ci=lkl3;vJM$T!}phW z39l|dDPD>3jG7qgPLFz=7hT4p>(uvb26Ao87A+g3k4J@&YHiBwVgg3+LtlFr`!Q%^ zKEDKOMp++VSI9~ED;EW zZ2ou9J2cW36~++Lprh1Pp1-3of(^1cFJ#P%Ks5?JIBM~!B&goGg4p1YgEylgH{%3= z#t5L*hK8q<9m5EB=&$b*(c*4Q*OQ5)UNno-70XX98kTDdw`p0Rn{A3SzB0zwqXxNm zg%M3&Ud>1S$A~=~#WorRaJnCg7k*wNfCHmB;e0cl~Gs)UzR(3R-6$>pE7c8>DToavQTmRyVa=j}R zkjG&GD39Mdm(>yttJwM;dBUvk7mBEF+t{Ag7Z)Eu3+0pH5Pz2Zhu|O ze_1_IR!2df01+01AM&YKCmQuXRN^z@tU3{RI|=9b0g9S$E&cHbi+`G|4lG@Qo8#fn zTm}OPtDV|VS~9}o`%npD?wus7lkug?#x(yByp&a^c<}9)gOib?owUjqYfi0~`vevy zXS|mkVSX&nV!smnFQLA@lj~I~HazU1G481K#}FutjCNVA6@f2>E(3#pQkNlD=FAW% zag>?C`fOs2#=d}wtEkX;aajdqF3eN=<>ff-%MeV~DMHFN%c?~HQdh7~4$pJs+LubQ z1_TtOsF;XULeHnJgcGMkW%qcnpum~Z&;0~vLA91#A-mXoFpM5ew(Hhk69eF7*({?f z-2i#_peWi8l^(In5T}edxi?!&Z^hW2fmLIM-Hea>?Hh%16gqRO=*%uz9nW08H)O}D zzBEMou*-1fj8p%iA2O#u1w9jhEEFx8J*!rzfRLIfVyB9b7k#{L*LaIwv^BPS!1ryU zdw+S*=pGV4Q_6uVIb2xxI@lqXvw&TdF(LXaEL%}4&=;GC(9Zh(_}Y{J!YB8&pSHchJXs>2$*+9?gvs66l!9XtGB z9BgUDd;?)ef~nefyh}YUN4EL!!qSR3wKe{mWp$)+!Xp1x`6sMQL6TNkMMrClZG;J*pQ9{l|GV zmrdWW)&O*-NkUbj7lzWkJZDy|tPMFX;IQaVJbqzUMLkX|TqC0BU2v+^&5`xX8w97hDtZC$ z&_tttu7f@hFB6QKs-eRrmPDT`(wy&L5P=;Y6$)cufNhr@RzH^728An~6ALOT-7e<( zn_^Wx120&0WZlH-3VeuJJe8xhu0vz-_?2rf<{8k>XDph)U&;d7#O4N;wiO&US@0v9 zv7EX>KVgD8t6uVn}U3H$~lJ2cqevs_SXTT`6 zxYR9qlKYKs^8@A+9`;iWXLL=!&(03~(hX0HBD?7n%S|{iU_d{WBlaS4*$=44GGl55W%w_n;Xw(2K z^kHUyv;N5f%+jE{(Vca`6ZF3aw&DjQOY&CwU(??*-u)IYp2v%N^TlJZ4{GGe>Cu;= zW2$=d)%&Ictd)X+5_I41*zOw}ye}U~!Mpe(czYrKhN>M6%TATAsg|{2U@cr^@%0bh zWxU{a8aOy~DO4_v#)(mqt%0}4mmW-%%0+*!xt%2j+J;JH6^tsOF0Ct;%faxy4Nr9X z4=Tj(=aPe={;uMv^PS+)oObigh94L@#ESYBjF6-7L7ko}__(LsNMm6up`oGEr zS-cEdo6An(hqzOJF%KO;u7o?uQr)UQM8*;ILbvMo@Kzgs%_YX0a`EQ&V&sPaqh$@b z^|7ESC1{eQ@_sDx8UbJd8b7lJ02+%_c0KMr>IHQG0d-9aVa5UADC#A$qdo#0zF9rj z0FF2U?~=+gMSXFA^X&F+1837t132%Xfd+7H(@o&KR@Mb@-nqj7!EL{f0B138wc!&l zHr~t=Zz8~HPHXknL<7462s85H;N*L;ql>j(4a$c%&;OJ{I z;i%4fOjeiG%YhJ)grOheq1ti!qGm$V*Kb_{%D>it=aui7@LUn-0-pB-4XB;}y9hkb zf!YM$kc|%r>}u3U zOeDm`egj0}Zqxqtk$3Iop)?f9Q}>U6Ksfhq#@PTIaijENv-D@&Jt-aZ1NUQ+#P;^` zQ;hPjk5~T8J}Ccj@`bhJR<`=viBN`q28 z_^0u~9Nqt&F!&8r=j;FY725}{L3561sP)XwPw|2GlAWcYWdD$jVpqrBun!`094d_= z?$P*$>%T5sf1y$T$}@UWe{m1%hx`S@pB)juY#=*RSHMBy2}71a&kFXg(>Ax>nVOIQ zU}ndMC9zk?6JpEDXL$$f`m8*1H1*#dOL@fiD4s5+fGmj6*EeLcY_C~%p(4m%hD?S$Xx=anr{&j3jxET1lItfB z-?4OT!L3uU_$H)VL}4vA9{E*g`3b<5OODL%oZ&K5k7Dr+Vyzp%&A>UR2rL&$*VK>1 zG4X0QcZV3mwIw9p*K<^?#Y>PB$3-{KYX{JlZ_LWtoOFK}E(t zjgJ80CH?>KAgg;zZ^5zlVS)vOH0#Ilrih5gEx+r1C@%1j$nn4-*_W0oHWBs#(P4#f z=o7z(z0AydKSmxj1Bky(cm9km8gH~WI6oUywOpSo;O|^HKV9E{3E%H>X5Tczhxmvn zhRsH{uz08QB`Bt;y=`B=myGstTp@lsqJ7i)sC^!Q&MtJ*>|{4E)FLG54kX>Q9n`b8sZ@@5w2#V)4V8*E-ab;{ekt=xD{un{8gTzc(k_ z|J`s=FSnvS5HP(aYWP+Mc_W#}U?I2jj}`SqPtK2RQu!LQTHjy}e(*|L%Uwv3)k#2* zM!`Up*q;V6PX!ka&p+G1op{gXhj8OE5zNGrAq7bQ&-BVu9Y)VU8T3CCP?MC@o=H`mmMWm zsq9C1AjW62r+hD~`=#2joFN3b99V~%M~mLzW~5OMcFe=FI@2mUimg)l8#rvVjtgfwu|tb? zio?vHjtv4g&uGst&t;1N>$*v)NW2t4f@}fv!&uuPRURORHY>qP!Ep15of#fNy16vO ztP@|A2kcW~du!PN+K}rno=FU})U-c~z35NIb67q#83X>hsgE$#)JN!A3ZG5^=M5+& zRv#fOhsU-7odgfwhla13+f8XF+glwoJm&gr#224#?v-|EF@Whk4imKstDv0Wg2u#$ zj1a6mYbfM}Mj7GY<#x>Qw#yjJk*gYB5ih3ia%7Hi^l(yf*>R_lkP)SB{&-a zZ6{&AP*8#`vk3KOdV{wJ4rbWKxK{5ELBSV>?x63mxL~~$KjB4>RIf?qVL^1{Tm6GQ zp!pzO^gtIJXD1Ma4x4|F2Rw5#4exE?`z~7V34(&GX-6?i)39*jkP}zQX`Y9+={sfh zM^-uGJh}RCqP`0jID+680;&_BtL1^D#)A;nf$9NDbxWe`m}d1#lN!802dsS!2#6gm zZ|ElnlOXw;YE?p2UPrYbnlgikIp@XGET9q)m4TuafyQv+?Y|JMfWm{8^fBeMlZ{_& z9EM27&|C@)AAU`@XI^}uf#QY=J|HB1Iv<}Q#`xq%4-h0VOvbR7$zr(7`}ozp_(j(z z7;aoz_$8M@3W zUsF?;XT8c)iHI4ASb4-B(u&CoT>j4rvXE(J5SB^kf~TDP%12i~C3KS>s8$XXRW3S|=xmTvJRP%#0)~=?FaD)_>`4ydTWd_<(f@ErXyT=?ZK} z!e=1O4)w=V_68fCr1HIZ@TyCSy%aROjRy+mG;KGUp+AJJ3VQ2L@c~77B=>$r?e7xI z_E5zGNZnv#zRT8g{x_5Pku8IXJ4_COfM#Ug27S?eoRx{KiP#z@2d~;|H9k3|!zU-U z>jZ%zkOG)Cxh(LQNR@7C3>R<)T3Uv+Zb+k7eTD#sC2DC~Q2GX+RD5eiW_` zd7=0qn`o4ef^v<+%IT!v#d>-IsCulFf{$bhtg$CFw_@*TmQ|}kO^3@9n-NHI^Sp$* z{Hr4kC~0p%u}Kenf%QKtFtEJ|^9cA3^~;|}|D(pEDC!>2;LL~_7^&>%7}_X)1M<_| zp*Bs%ks?&F5^p;sRS>Ddqm~{SwGlA+qI^F7*qs?Qc2G=kw)?9gF%dIs8xL9 z`;c(a^w{Iy8;K#>LE+7qdFuX$JM2TtS7#b-$5urI|r z0OPe{i!Vi*Q8ib(70Nb{tFbUFJKlW#MOA#3tv}Dtg3BPfT?R!$n~~dXN9Igs_NW?V z$EHeVHkL6y>d!)z$>dEM2}94~mZWNIVN_;5>Z_tMi-fmvw80{%aWwQBuLnJ{zP7dB z`B8MsJ{bwFvHM(O6pJ6)Cl!= zKB>R+I;H-+CWN6On5wb+oj!U_O-CJ!ov zAW!D$mkPTcJciR@c;|sd%vdwMFr1FH0cQ^VR5Lx>NO!LVQB{co-4(c5BT6p8-O4yb zAG^o-ue++)y$iEmVE3L9O9He7=b@{qq6c|6iUiB;<~>N-@^swCmPmq6zzbc{_dU-= z?x`l+Q}2)^85%K0NmM{!I!h|yJ!!yuMZJOy#Azs+0(4!<(#kVYCn>?%ULmY0+i+r> zhi6D`3aXH4tv>P!HaSde9Gyh8N0AxB40@y!`a)K{>*NgY+Iar;+TE}TJ@8CfEm(*A zYxPyIZ)Fb)!#xzn9%c{ojrzj`}rnNTgXGnd&mq-UiJVpk8bCebdmomTBI&3?L{|Mi%sSM( z)}vmxj@;g|hmabc$oW+1;{^VRFbJSIZviIoBpBPeF@Z0`g!WqJN(*1N&XuKGAjyK7 zDwjJCwN{&q<^E9*D`+OWXPyjA#^Hu0qwrKYPk$exLPO2$Eg25gQxWh>r-^}N!wQjt zmBQw>;(4A3x`F1E{}1pX+`o<;djK6H6(~CP9HtvO1`_hR2Smqy9o;c=y)b(B#Cl?T zFM3y~H%^K44nrT?yFy*+Rqt%&YtU3_jMxt(n>gl6W3<>o1h!8H&S)C*>ekt8#?rJB z^tM#=_BTk53}bjcnxk0@_DZk%o2~Df9O-X%$NpyPqb}~nXhtD(F)d~@!Oxn%5*(aZ z22Me-z{JHg&e4*0J}3A$Rp#dF1`Q#0UU!kX?Ygluc`>J8j95?w_66|5YtzrXm0x?? z^pV2>0;4jgbWc6tXb0Zv1H^l=OX?pFW8QC_*^kGc2e|=)-<0#zKHT_@2Q7j#P&pq! z23WYOV&`QMn{MG}S|#tFWD&s!#l9bSZVi&!KjjlXUB@5LIVF0^MO;laEYbtayS4gf zm$!E%r z21T0Kp!a_Wa}MG$@X%9Ww{@l**u5KS3~dmIq{D3YN*SUnzJy4%foUzT`~n~FWe?y; z`EhE&6)t*XutS)qr_ZP3lSQfUFMyQ;_T!F!FZ{NwO*Hf_0-qTS>ACeuSyZQ{CKLqO zuGuh76M8rD^Vod(?^X(NGGO@to%Gx8K%YI}56K?w7N{XK%7M*r0n@m6G-S=7(d+5G zDl9i%JQTt@aGVbU4v-pyH$D_bbP4)Mm^65xKI2jMkwY%inRW1HtZL{yS_NtI36v|m ztdIZwg=iUg=yP55Nn;(TI4icH`p(DuOo9t}k$*t&a$oTB;#$?^bJW1h!&Qs~a}a7Q zvF2VKpL_bf7%$3Xg}RtaZF8#)c~n^1DGbtd%>f*s%L8!bv-RTJi9!_3Ib^FZ1u8p3 z$nd%ff)1fsD{j|OCG{w3)Det|V_)m!SefRuzk>-4Hlxn%>BE(GW-*QOK9*3MuHl(3JzSYzdJL4eUvf%1ZGDH@=1Z^F98#H1NrB{!ux@;PTP$#;p>kZ{G3`8)X&!# zRZ!~U>PoAnE}``)yt4bBZ2i0V{X*w#IJO(H9;r1`v|&!+i!SU@Lso@fi!_9RjE9dXNUZ*OUj+PfdbTWI*$xMfB|u)Vz{-EQyw zqU_fv#Dhh9dC^`Oj?#Zo-W^?)H(49@0+0_#XnH_7+IZ~;S&9C~EiF{!bhuaX`ltI7Q&Mx^3VbrAlMGcA;x9#+@m=K8^7@@hsy#LVV)9IL2Ef zI7?&P#dt2kxv3POm23f?@o}cA5KpS$OO6qTC%jv0yjy3yBX0oTRf(rSgLo?E@*vsN zX7Qx$#*eH8bpAlzi>g@mKEAZcHhgRm?RMIcN_HAjGm&aHQk^{88L9b5bsDKfNX_T% zjLl$bdZ4feor6LYNj`)L(|OQB9KNAhs9anNS?tA$#oqc6{)x3SyNbOQt6Tv(RNS=Ew$r=1! z#ozke8~6io8)9n%kLj)Q!VYPf9iFp0JUd$?RH0v=jZOv2D==RmKUj+&{=@A$+zNI2 z@&}j*y;E#)N4l-l#Funj>5Mq8{Ox1#2rzUJp%wR|h~vt+70?tp(skuS{C=B1>U+VU zj_0~kRIh*c1mxA8Vne}DX3J^cXFO}eEmIx9&lmMyAi9tU1oEQ(Q{HOBuTC=Fl;P1; z=e9ub+wI{^i{kC3M)+Yz%KxSEZ0hKMx8wxoR{-Y3d@(ODzP-fO&kg^LLppG=M2^ga zB~kKQgZ(PHp=ZDmQ4avtBYg?X!ss@9ar5DO7ot;rJRk1=1MvAUt-E_SA6D`EKSzIm zl=*O`jp*IkeAsuXf%SI@Y7>ERUep7;)rL<^Fy8p^_(jYIoCGk?&+ZqS6m`BH!%CBf zEjUVD;eIYYntKg5v3X!V3HJXQ{g)3%*#8Y;S55IYi(M7+8}QTCkbaf*>&J=nK({CL zsHjPO0`)rL&1dR^81tF!cZKTZ5RQVF->yJtsC4IX@MORx9m^$}01amO&*7L!vRbEn ztjC7d3Cnb##iYOWOO)Jkk@%ABkUT-jJm2OENq`}6$`^Da2lIkIUJAN_ z`vh3#6`&^8;1;}org*4o36Z6@R5(D1h1*e}m3gn&2wj4#bA?GdLOt7~JzR(;neLaX z)^Y{LKoEr#by%8QzC$V-&!yNn$qRk*&!n;^1g?33Yv6Wz5_fwNuZ0SUU`emhGr{Bw-0&F9}OHy+N~Obex=No5`6j(zSW~)+_6!hu=qM2+P1GIJRL^ zp#4q;OOaH*TI_b9Xrgs?I2Zpin*8jr&I<{2GHPcB2$Dq;KxO z&JgIxuRGRf*t1S|g@b0t+O!tYt_E5nzBHVI=ttk9{>?+y+Ib#Fe}A^evCR)g<`q`G zvVtsH@YsrRV8IVg8ho(1v)=axZxU%LY(WO6wH(JKmaaKI#j=9ev%r19@zKt*E zRpWgu39EcGXe)gk~`K~ z??}8MD}P#nSQE(6FLJ8~U8)YIzDIqVe0}YnvKXpw*8Tc0)n|PB6kA6jWfuKSffklE5$?1d> zs$Ps$gqbKWLJ#!AAHR?JG(9af%GF=S7Wm4ApsJjoYm*Zc5TL0-h9bkervSJdgeE)+ z4Ey`r43ms7JV}f}*P+nvJ4qd+R%g86a?~#ytX&VuN^Mfh8c<}$pt#f>9G9a1#khcQ zERw)`LIz6eE&!rrX#WFi%TJYSWc#elCfTf?PDo}fiNbNp9#NQ zeylr~7BC5M9&jc>@KjooFu*sclDtSRGzimbz8ATn71o|R9itt7+ z@RrseuR+Lmcr8kWfpvSScApg@mYAyLjp&30`=GTFOi_#QFqSOk)fl;Y3(+IsAs=uK zP4G_$H%2sVc=*WxPk+(RVd2D>&Vd|{*Eu+KZtq+=%_z-B0qOWf9SO$&Ae_SRJpx{$ zO!5EacvfiMy6{}Oa5D@b4S1b;G+=!jR1d&YRmDn2f zw7J|~xw&K0&Ez(jsX$aN?91d0;aFB+)V>0HKVQ0184h$6#c!0>C!HXNYUM2GBs|uj zICd?7?bV70C_fmD^Zb)WIA(QKDO0Gz_k1z$65+h{4el~95KgNW&Qni;ggQyE0PG&e zdtCJETd}d?E0CzozUw{eLi7m@Wg8*FCI|Ty5l1EoY&)#u3+;;IV;DNaSL+pb2>)>K z*>EzKUVH1KAd6t?h@dl=2ge&FKz@oMUh+5&`v-f~di^xxBV^dckJ81_ohvWeDA)`D zFBfES5_dene)tDGL&~EyQJpE8wcr9pD*(azLRb!Wimd(+!qOVZOGKc1AEGlW7~S!-y^qfHmT%(dx@Pq#&_sB`^zrY}&NC)`=Zp9oMOY5QTbXdhAs}0=Xx*-%c@a#Sf{Tg477nBdbX@9(C9j zk9NuyFCs-i<)VCwb?)7k77d6(p_Jy9k=6i0XK^_R9VpR9 zh#W6ELmCIK!z9khACSZ;u*IQp+IS=s6pk0Ote{!YH}q@_>ZaY9@jovkapRTc2vp!D zsaahH1y&F_$K~Z@No78iB;XMt6x#vSlo#|j5O(bl>IJYMpXoNd^g8!GOUvys@M;3Q zCY1?zfpQNMg%Nl)Mc~!?ey8wiK#5WC(&NMH*-J^$f%6>&FWC+U+^I^AV)JDotcQPK zUhq66;IbyQj#XWs!b@{7!IM!dQj~z6L>C6oURqIpAvo|^t;c&Xph!^E&H4ZfOK;|Y zURVXz~MxGQ55JQ3Y_DWX!5na3r}h2w5uQ*ksi4@6~II*7`1W_-Db%067v zV)PZvZ4@$cCrEIJl~$)wIFEhx;wK{eYBAIl=*B>8G2HT-B37uGVcWsfN(tR9q&=z* z^ajF1Uh|SGRIvsH;W%*t+%Zv=VX8cLc?sCRQrQYIEef!ez>Sybd;2?B|1S{yl^i*q zJNp*d@wzYBF~zj|bFRoWKCQm-K1a zK3WTM=E%N$I?C6EZ?E8t^?+mj;MtTOX+p^mc0{BIc&`orBa{z$kn&LC!8!7x?&7UB z-1hE8;?4PZtl+j=%x!nc4a{ebzPbH^*&+Bo&|K_8{OjwYI_}Q`zYULgu&u?hHjLO5 z900MeT^B*@BCn|*_hAfTlYJ76*aFdUSZV|g!vk3L-$zy-8u=VGbpnSHr90on@C6Pf zNq4;?QvRR4?}3l1xc1*<6IdX4mk1J-O4Mkh@lPaZ1B;qXcHu7ULJ*OtfT?JTm1+vR z{E>gbO(fgPYHGFBSKHcuKHK^V_9-a!PZBT*pb*d}pjGhCt9QGi2rUFf_xJtIy?6I+ zvI#*8ukZKd!({KBJ9B2{%$YN1&YU@uDb>A(7@GL;lp3UUyHwk3ioxn-*ot>z5JKTm z9Dk+S-{321nwx1kC7ur@4O{UZzsuo!>sfV>aju&G88oBrD#d_{r=FE^1hW#cA% z+NE)I%UK@^^A4XSfORmgEKB3e3!6?35P;mOj`#u9y{}W6%&g}4!DzW2qeW}|?LzSZ zU5k3>h5BeI;VEoW>uU-GCG2LD(mPc_nHVfs@6L};(xUmsRRvFAbZeN2jGBLsYy~LN52 z>veIsOREoN?GiC-^9t7B=Y5vKBZ4;C^f|^q0{T5ovHKlJ23&RN=r-vD7UKmH6*p5*lLclYPi{2sQwX3G2BaQv-l?^e|V4|lr|rv ziSPq?HE4;t4Hu~;C#n{SR*BED!{#3VEfI>16WCBra(Nc5Qi4gSKLv*f%>)hs6wHH6OjbUFgMU}?ywd}4 zod=JZ0#epk()HEe&^&nS)qG{T>gQ>WPob?+UyQP;dtAi}PWNxpz=dW57U6~fTKvw& zo&#>?U0)7Nh@q?2Bb$Q8ehaKPPKW=h56Sxa9O`~^4dZ`oG^ieE)=a~ojV^W+JEw;7 zVJqI{jS#Rvtr>2CTOZzxM8QW{IIQVoDfq#1c-sM^0@XuA+Nw!N$}YGcTDmNrRuhu^ zSHOW0r|qrkW1sJXjskhMD!ZHzE1b`QuUo{pF^E~ctPUOQ9vm&JSqdV)jM*wdMHqYM z#o^2Z91xKyyLvAC?lW6ft9vlVnHX&PsuMc~x&;YN5>VskJVCb|6W`d{(fsr2hb&U# z862k@JR6g9^{}Roq~KqP=R+Q4tW3R6NpPXYlLUt_gfQ?V?Y#!b?13kV-dPxDAA0W; z!NGvmJGP_j9fHz&hhvnT8}FJQ!+L-?E)iXG3A^Sc%pT~PbK*cYU{cq|H}k3r+?RLh z7fmSzHYih1r5`Fe0as8vTT5u9p%Fuh84cgbw7UInlE2K;$s>8hG-eWBJc7O3q(KD! zO#hm^kA*7<2wch}zvC606q!^Vy3@~DKkxm0Kw4l>>)2uO(jzxOUtuVA6VeD`G|37q z%YQ1*J(LVPkCIeq?6Al;ktNoUk5T~bPkLr?EeyKkV(j%+U?5|F!x?J9X1VD|CbvE2 zhJ@E!%zau$sV;y@fImaDX64@ZP$U6;o=TnmHL?&6<8Mi)90nSv9OhY-JF88VH=Vi| z7(e=eGzsx(A-OsJX!r7+^@%YbEl!H>!+1_dLPD%o%V_0l&iLQ^nSgRX<{_JMn;ba> z*Z|?;j0Ger5c@W@A7%_p6y|Jy6xrG!XQ_`uZ5qmt>_mrln!Co`qR(B);MPNmBjCPO9aJJdMe50_wbcsauQB20Jyz$FEFrHZj=z5Z=e799)Z%2Up-W4Hzee z5*mBRqR{yG$XOtXG4#T$Po>JRE8N%{7c--J4J4V;w2UjLSq6mA4CtW= zF3vi|PJXL9!Av@R>KTd0@l}^668d2v9I{&y|AP<#=8- zkA-07KOSp=u81k=c70JzQd}r}WTu=D;+iGF1-7YYzpatux|CdBWBItOT-)f=SvqcV z)8BWYNnr7(Cs?j&R+!TRNU3gY;%j^Y7?Ft6*Z6dNQ?uAM5H|%Sz6nnbC>FN~kHhL= z4i@M_znoM_dTvcQ??`uV!PrS29#Y*p#CgIn{R!Ts^=LM3CxFf46(7Zd9Wkk{0CN+i z^_`drT*}_o+PoUHT__jy1&T3;yzw`3NL5?bEEiLTc5yrP3jMK^mX%dv1<2L6e<0=x z!5AY~q6RKy942Nl{rz_-r@uDNAKC(lQ%DP#IHwRjMxV82ixR~waziC&5e?vns9>k5 z7Zn^67@TD1m^;Zs`gZbBJ2s^`lj;^<5>5-~Yxx73O6kMcWI@EZDwWL#>Qd{NuIh%_hAE^5>E8Z;lXb%&(d+3{4| zzMy#%_xxvzJ^xsP_SGjtJg*U+e7Gl3C_R834=(MCl|e9jLDaSA9R9lahYpCRqh#!$ zR%p(6#C;fBq2*G~$t085B|G{UM)I$bI&Xu*1@r@AJ&T*=@X~XZ{{q*j#d6@>n#C2C zz^Qua{{ABx>&q%4zePRQr143Zg_)>OD~j^hx{TzaxI>4czBnX`n&1tu64q{V=(#*% z(;Kc8zeoekW%XT%HBbb9euU}tqeBS{x%${E~ywX+7Q#eP0zt)NPbPU=&1 zs!dQOz7vnp{G{)lsd6mn4JjW-N-Z5ZTqR{0L37mx%~AQIsK(w{J7j8jbW-0-7k%nU zkdHWHaUnX2>1{%2EXO^i)2l*q zZg6pBjP}Y}FcGEjq z8rW)!26j%&kNGV{9i+7r=G4pQPYXgT<0>nmxq3hbG(Q zQIm5pm4rsfL8sjo?JxEy)yr^juV(oG3+biM|83m=*~ngW{QMdGNVR|9-{B~H0_14v(Sj`9;Ss)XL-~BDj54>gMK|~gDAazI=H|yCD>o~M#d4D*z)hh)N zSg#bjxd(>TH*WFpxh|L2l2og9D17>=8-81j7>m~l;w92{Lq@kT4#vTwa#Ga@s%UC zz`p9rE+zWKeO=mpkJ?Zo>it-u7~=@FC;_MYt{hyRZ}EG9cV$A>D44HlIGDaik%dkIm&WRYBgANU>NbP+zRE&Y)V!IOvM6nGtkT}O)q>tktV6UHyx-K`ViMVN z8j&4uV~-Zlus1Uk!^1tTlJ?_tOjf!FhmG z%Q^5%5X*Cy>i8>4Ic8E0K16bMk78La9^!=7UFxobzh`8khrS9)CXk7zUf@qA{%H91 zCGfZ85)FUAfgik(qmDz41Qmr+0|aQi^NYs$dTzY@)f(SvJlc|w(H%aL`A;tRPt}*e zMK!E#3=-%a?*Vp>x1)`#gp8}Il8?YuYgfw9#2I%`@cdiBJK{n+oE>iJ$dK1_a|Hk3 zJgix&y#u0wH(ZTw8JEM;#Y_P%wml*jY)69mnLg!<=m2kcOq$Q}g-P;wcbUk>SoKwB2=j zhaAG)9HNx6{jyfd9-}_WI2-GOIdzgk25DFcM$-aO-~cS3mF>rH){f?M=di3(>r?ng z6LqVQXB{9}hclb!fV@I!bvpv5!iUml>{bx5ys(J%PuJ?N zuF-blv??wg8n5DPR&lucLw*)DR{o2Yj4>rzXtg1s{^68$d>7RqV$lSSfULtGYTcZMeBpz1$)7=}=xKJ~Dx09XDPCs6Em;F{rTtRm!c*Vd`E-xAHXe&3w)arRb+(9Q3wD3eK-L5lQ_bUD z3(=Whb@7MuR$}~Ovc|#-XW`BOhg$w!2i8(GC>zQkeKa=*{+>+lsnx9j=T$ZZ8;`b9 zYPPhN+HCjD8iJl5veUMKVn$RbkRCQ><-Rd;U` zpEt+efo*&mf^A1fJs4&)VDd=T26L{Wc&_)mvJ%8`5~5-QNgN+vet>R zs$T7=B70_OJifKTDe=QPTh|Y!%0CeYnAa7c8V86AvdjQGe=q^OF%Hlb2dJbu72B&F zqIPJGsIKYNWB!=H>!3KKTRK5fjdu3a@S_3j5=*$9BNO2NguEImYvbV2Wn`4EV*b!E zi3=Yr8xV&Eq>4rnU7{1cykN3cz;C(~pvDV;gSSKhU81$>FdDter0CxbRSoA&&9>Z# z@I!=m5sI$Mwk$>X3xX5me@M{jIqD>4J>R~#5&B2d%21O6uu=4*C(LM09c?Lhrc}(MH71LAjGhduD zEfk;4{A{nmnKXVzHmBHjbdANh=p1X}5z+X_eyIBrG~U;_gm`RH30?SPC|<%drV?yX z8>$Xwx;M_?G>&Pi#u}Bky%s7OO)DQ%#*&F8sg4HCLhqQ8I zoI~Zzh%@`OrbcuEAXteRKrjxVI1WJL#d`&Ri}T|6tHB-@Owc%2Maq2OMM<1j%WlN# zzeKW<_NorLs^K5kXIrM-kZpMu;WLC6Z^SRcl?cla1|!ZK3h>V0)WdxInnM`x48PXH zF8rFq+jwVqPY-9H40FiEJHvT;n2uj_xEb#Z-_gU*@M{jg#yi8~diW5(=I}P&8Dw-m zLqVr-8r~V4diX!VoKiFr{AyIGEpSD!@rz(b{{@%egxaECLQ;Ont<Ctn*4vN#GXC9F3=~dDtX^RJqXxzY&jBnV0NRvmU2liou^Eb%$M}(j0;Ys{5 z{6r7W;+KKnQ&cG_$~ceBWyyG~baw}Anty1V*~gk`DHU(9oQDOpxbqi&G30`+Lb-{n zqp)bgwdGiP6!5^Xe7I>p*6M+8(N9^fTyRjVx59(Z;xgc7XgRSMI}>{W5NpMKC{RkH zC@ff^7t$Sl?$u_AO@fYA5sO}`}_LEj}^9iEv=fBW!zv}MSDvA5e zPKdLLMOvL^una!yV_b_m;Dpae2qp)l>-hoGhvk4YD1C$U0tB-cY&a#Ikb&#_Z;)O@ z^oxmTvfipte@I#MmO%*Qgc@7ipbOG*807SXp^3KfXfoeq7(!Um>Q~h;0!`V9FdpGv zgl{AK7U5Kc;RuTmo=1oy>7V$}9lje;W#Bvfa|7RnHyii{k1nuibx%C%DBl3u2Te2s z>C?GbNnjgu@r9P8`I#dFkdh}k3=>a*j$R$t0?UcKVm9rZS4?m5yvS%sqmO<&+j0@A z{tSNqj<5xxFW!Ury%%9G!Z5u5vrwwxGuY8@!C7Dx6Mtr~ikw*ntB}^F7pE=pk~Q!t zS|Y7WuNsxM^doQv?J)|&-*g#KZz4*2jGmz}l}pp+w;)nU$Jgiehj~xo;RxEW389&7 zL3kD6ZG=83S3>wJo&Wezu_$h@cG^8* z`Ka6!Nta_y-tb@^sZX5m2YGqZ_k)+q_+!sV#}n9j#bzmgyZB`1C;X{s$Ezzn7q2C` z(4Uqd3MneuYm-G@7S~6ML=na+N29Jbax$x{?!hy)6XeB(f|GRcRv;q#twc99N(gh_C z;ZJ!z{@|pAxPtN%=TqpG_~ExU^)lFTd1rMv!_V{RjPn@?_c)?CWa~rwVk=_X@Uq}8 zc~&dDK&3BSj)mx|yKljdOa+a5#QRRz4}~+|m_|LP`$cu-TNva@o2DqdmR{MQO$@o0 zqZ>&Z z-F30RPm$IMUumJKtC_=lZcc>>k4K(yO&``5Cobe#4g5d>w0}>6pwoxY$uZ)5dL(s+U8prA%l5CkQ71wav5q)P#m6eLJ4 z0_ss88hg1#%5QV7_&f_e6u@@;SX5?^rL{!Nl#xFn7TQfWu2*|SQOI&xfUcQMqD?3quSjVTS6%wTC2)Bf!S(fCkf+!2suXS&0C1+| z9e7fB!wkx3fsUMvv{qM|)`l>oS1SCsM?%OwViQPd*}3to?1pA(?WUSB=@zHtZj-|$ zTJk6%)!TsNEM$w8JJ+N!=Vf|MawU(lL$gP5Dx0AiZFJU*8Ds$rI2*?O8ra@pvF{O% ztDe0j0O9`6E9X22!moYb$^CSTTXG%sfLbv&P=Ivr;K4k}a?}}o=~Fkf{xQ$9Ooe|n z2V9bUNba<&EquuQ_aDdg!yt`|fm>zjoIL})eymNJmihU0r~(M3t<}}0ksw)z zju>veHN6X}F0mK=6RLF;S6A@etB)ZipM2E{R85oQHRJNxgj#Q)^BclDah5ktNlQ=myqAo2xi4U3#FgKBIrDtG}SgE}-ubp!NP2 zor&q!<_g`qy4Ago8wsTf+F)!I2*YI3PDY(hJEclS`r-DFdv$ba{1G|XrP13<;cF`W zP&?u(mUKNcb0B`1Ihn@q>@n}|DO%np{6?GO^b(V; zme?;+nEDe~np-wH$C&TxN31TH@N?-Po(?4aRX^4ytBuw#o16~cLwX4;& zOPiR7f7&CNor+A6T?rC_?;o9Ep^YQOFk<;%I7qqE_XG1I%@p>VRiLova1(=$MuWm2 zF0lU_)nDI4Y5>X9>y$zfNGFKlVApZ<$7KfMHeD^y^O>fp$j9LGUDFe~YZT_R2hDR@ zq`BL~oPR>v?8mt*@=$M53UTC)lqvO@T_-G&(A|rKqU>Sjgh|tpHWqRMr;XUbPOTp- zWG!MZ@&U^D6BcsGvD*>b6+3J!hD{@f4Kc-`BPM<^bbgjH57K9(M_=g*3^Oavw;hnB z3mc<rg?CmdMIpC8ewtncjWU7eILCx?a{}QuBc9+igl&0@S3sz6m^Z zg8@?o0MHUy(_>P-0w6`W7wk4=QUwGCZb+Gy^^DY-*=n3fjdg>WIEJJILUNW~OlDS5 zkVxwG%1oMsn-^22?Nq)Xxd(epX)J~W7QdS^X{V|RES7YeGO4Npi-S|9HL7Y<09dj_ zB3Lt|#sHTLW;%MY$COE^dZ5RoX4?2}k0}kHqET0;Ov-MG+-9DYO{9TO6H|WDCmA!* z?1ksru82UwNSj%(k3(l4$+J4q$WOZiBBmE@d5ylYMCPVU*cqm1_qcA8a%rX`Q*fGZ zq)f>s)SAVkq$ZePh|+drChLj@W4&!g*y?UmMtW)?W;tgkB)^vN1Tm6n*5P3jo~lAf*!yS|GcAyj0}sKq)UNywg; zC?Mq=U9V5;AbDes=4F<8ol<3~ii-jq*803o{buSsLV6f)NDrhQJquk0rp}^C4@S*M z#d?;{LJBL|!DT?>Tp^h^isyMS$Jq`+=^{ADZuW#S+Mv^H z6T6E#xbx%SV5bi4fKZre)W+^7Wy|PbPpsAJSo$4l)tMj0VrpKCrebfzSM?LRF{3&i z%JoydihBXv{JsdKo_Ze)puO~Dmw~%bUXC^FCoEmxS01diH3wx|x<}znDW~B)XAH** zaIW*^*c4j>?oRQBAIW*G_^18llkqQI{IlRS-H1y1lwSm|4&AwTQhFYw(OjfZ5i>sY|Co_ z*hJ399`U?v%cb~z#1DHS{N97G2H{PFL->}9_&y7=EtesDz%=+>iSQ)CTL`v=fQK*> zVG+Ww5ne$!f^hDlY|BK1g$Tbv*oJTfA@454BP>FA0AV%4E`$RJ-&hR02b41wzw_|> zef<6u;c0|3QRk5ed+^+E3E&`1L|BNh9^w9F*_I#S_kDznrP&rY!a{^!BF_`}-Gh*g zG=48K$GJMa$Jsv&$I;dcn{Ae??@wq-Ix2;ohHQ>(Kr6A*4k_zA+F5n>4S--nIX z+-%EL2;W2aF~S!J=KyctMtB&Z3HiSX+OnjjrO)I)(tT!TpFVy2_OR%PzZYMA690ulQCmen#PU^ytwJhhxl@S6yA=EG=`nQau$Hi>mba z$31qO>={47t0(eJoK!yfnkm;}qq5@q8}!H5#C2Qt_|t06Mv0?uQBj72EN9? z*BJO311B5VT3{d!zncE94o2Iv@I{>3*e1{3CAvXbd6*RKeutHh!jmjo!E;&3s} zXMQ5%L}VpQt6~=l)2$N4EuUve+aHtGtG19^uDR8F6dHjlX?a}(Rw&Z6O?V7HipQcu zxVpFz4^^S3*Wjn-w@=}3W6f`A#&T4tqX&WD-lM^`B_Z()`>gVsTW|WJDioLzytT3h zHN6EDjfI}BLCV&;TKu&@Gf`6ibUmI*>H|v@_nh-$+xEl;#&zD;g$10i$QLYTEbZi_WQ0-1X;Wfd~gu1r&1E z*W9{Fr$TqTMuNV*peIXJD=q-C)ZF^_#+qA?9#z~OI>EV7g+N2it-tsJDSifw-ufu% z?Kh;JR(B&%YiV_FB(=4;+bk{a=PZi*2{WlZ(du5q#4CJH;V($-8T_QRxF12nht9(| z>j<``hujar<8FE8ZTNO2J5E{|g0YM|3r9O(_x|9WID$rV$tAyn3=VtAT>Odyt+>im zy7zP@RbGdkGOw7l@g61MwFC#8WgB2&Q=V2eI5C2g3$GzUJFb-VYaIq{X-cgb{fXrW z>CzlQAVTf_Q+yDcuj%+(k(Nx%MQ3ZaH3VNp_)Jf| zTyzqjsBViEcgabWTJ(|>IjJ{`4q;9zvS^Vr9)JaTcyKJAj@sa(Ed%y(w2}K5v>ycr ziyWbQYo5a=vOdI%AUl_GsKGO9D^31*H>u5QZSq)su)V|icX(PZQD0gO8&4kA00{zW zj<`7q_LG7n0X@*f>)$FP|7HdsHi56|8GaPz>%Dl@5Wt z#j#&nbrnWKtQ7+~so{=}7tlnDv??864fqzMIUH^WSoQnM#UXx;={@{9UWyJy*3tNc)bmF^AZMklye&;T zlw5qW?PD90J_NJpowtLnuey6A#+$HlHjtNPh3UoCyQT+j@LW-@+72x$L+pa+kZB7`=v2R3jUpoNh`j{# zrAx`My6YMPIidy`R-kq{Q;~l}Xglo;cEkebv7#%+0IsDbo|G@~q!b*O$OA_w0Qs=< za7QR(K&xwj2I>1floulq!D=R$fE4Wj80X>rIu!A}z<`1cack|Szz|ltCBrIeOtus0 zhZHqOVu9hTOU)Q-O+1aLsz~$Spb>udk#oGT30teyhYuftL5UTH1XkgMAkrk#06(2d z5_J{(SHCbrS-S~a>DHnhhd+sf5sB`KgIR}8cYG2!gEf9OwwxkQmgo+#2YC(BRpH|2 z0CebX+j>h)ELJsYuvM#kRcLS`B?&xU`4=}~^N*Fs4uf8M0nXY@v9Uz4V(;}$pezn- z-6rgJiZ&#miBvR35~S-zkN7|@%sOSVv1krC8+3AZAqv-H{X6Gkt z3*tnH3*$A`NXA{MofyPrcTVh;MfQN6QZd&55Lq$IF~%WS=zJ*$_yhyJ4zh;sKf@UR zn*7shrHd6XP%=nu+_h(!eN&d;H<z5+SE3+QGQe!y`phD?~QIx_Rq+DOoN4WDNkzsz(NX71APvNb%{#uAgp! zvG9%V4OU=0%}IRet!tO4Y?1}Gsuj->dAZ|k&gRje2@l9fe=7VRLo@u(f+G)930 z#FimMS_P*NLge`rBA)_SF(@bo{5xI@A(H3hjPq+f%9ES&dDHE&<;n5plCCtBbPRd& z)}QuHp8OkdElBqrJ}9r7?rZLj1QJ&H>|1U9P-9v@^e;U(BVDW?9%KhA8Sx0>mp!j7 z5c-#%labzefv^^-P0?tuB|4ei*T0Hjlh+McEp+)H`gC}lEFeL}7YO~w0|FU;Qs0^u z2>rnrBD*L&v0u0G0T?m*^LX&_Xc9gKbjF7s(HS58Q{%%ForDiSNsSNlhaT~PgkA8F zo>(vme6&G)68LzL4_^`=jY;?@>WmLPqBA~5q{fFSItd?uk{Tc84?W@o3A^BfYjb@8Olw;+tI>S? zaYea0;xmeJX+<5Ygn%d^kTIe$nhuxgy(l4y(&LQmZM<+PGu)W3wdGo;`6&y2`)BbE zavqOklV$66u9ej{KHe7_nMT2_UX$|Kv>2rzI%Z&t{v*0fZvv9vf)#c2+Qj<-`kZqm z-rwc>h{XFyrawmxE0439;i-1@iv5VmHpk>4Mz2B|R+6j$Qq~Bi-5YKDV(QpmYigxN zd{Ix`MEw!4M0L_&sE|sy)}Kv1+iGD2vmZX{^;sIzb2~bl1}rk2vxO_!CAi`8Hu#vQ zJ&U&3G263rGGJ*~(U5KV{SRR;a6kN={0RH=4`*9G{%N-5`bXeX17XY0uuuAP?5X}T z+p+-RJcP>;+z3+<-gqe6vhgR`mg^pc&j5tzFS0GS0hWqymNeK@WcCsJ_@|x5o&3|% z?Ss;@PaS;P$^SQ`s^Md_^#^F{00cL}ISA7cUPAoq2o5|45H5cp5$<{rd&CF@KhC!N z3SlF@jl}zYJl}$LUk+R?M<_@5DS{2*420Veo_$x!W0bw3OCcG66jmh7}=KtIihkH9Z*TNZ{dYE7d=)d zyaPjIfZgpDwWc2D*EWi8(0pvuJf7&=S-B-64r#8_S2WGQ>SM)`yCIoKEAMCWS(~tT z_1IK8msn-HXalUP9;mnDN4B=d-o+&iV(||@n)EAPqFdj_cM8|T^QueP59b&W3Omjh z&?rmfN&GQq%T3M(ojKKR9t6$t3fj^{bo<`sZz+}T;-l2-4J&d^}WaIvR9*-<}H zu}&ojfY(%L<@CeWX^MjMG$_Tf!6kVQx9wXk64~59^{EHjxiX%dy6D z7wvN@pL=n+OodZu+a-j7ek9w6kr?>XT_7<-%L4X{jyYZv0q8?K>H z>2ZASALgsu=g;zmZUvf3;FcG9o8U{h`4SnT*oyrx?vR$KzuZMJ5?dMqQVbrrl8S@N zb4UB!U!Y3dhm~>7gj9PJ!l*0sy#;RE#B^`})98KSAM{673|;@_+Yem@TX_4GyN6tz z*stlKpL7g`7si~9FPxI^3(;hF+NNjj0&LnGfyUxU+WZTI>l(H(bvJ}70N`x^c-yUf zE<>0{GI%Ig;K4i&C4K&-fPxach2laz+>S5YsD}>2eWy}SjA}$3Jn}7RWq1fF8eVfU zU%N)zz_fe_TE+%u%^LiAtZlJ(JlwIQPZc^Wu{zP5Yx8pCSzEZ&kgelwo>_0pP4D4R z9CPmnj9Jt*Y2pOAwY5xaltku3f%9eHtm*{k62PIFF*jv5bf9s%TZ{fk$c@>|qm$_y zbX85>#&~mFTJ=rNEi{GRER%hIRvY$k+7?)){3g$=7UKXq^uBS|E006L#e4!48Z2zl zv~>dIa%8|Kh!61zD6SBJ*ihNXtm6PumI8>-*qxOE2-I$!t0Ju(+~ykHjM_AtD zQ_HYL(iuTs)W_SYI$qIN)MZAr!=yp#5=ntPSu5k zd$9LO2SWL*acFJUk8^bsKMH`LMR(5eY2CTR+@1NJWZu(>R=M%qnOG4wm^`YPJgONF zO?+sRXSo+d{()gg5GJrLB}+g!2Dd`XT@r}b?PzmLWdfSP`&=P9L=p_=@f7f(;_p&G z_as3kM7K$<(d3TFT|UDI^oGH&?NZm_^$>ZC=&3K5v0KvEckEGn2P}>Y>MEMP8`9rmfK_u zLaI-#vQ3@-Z!jj*Opj#iL|eU~xQsl}o7~UA1}<2=z!XX|RUqW&+%U|cBWIg##*$S%yEDRv2=KE%8u5LWS5lI$I zYP@+l-dP)j{~M3ZH*2d0o$N)Y!o3MRn>4{bDx)11bJu6#u|oL4OLOWLPm$+QalLx4 zno6;GlS;{G0t3!ypAQddjS+gR1L%kgzszdl!h&hX+ZY!>yKoxOZqyA9C|SRmu!C$o zAl=j~<-dMFn$Zr7fajyKh}ecCH1XPj0OxoV(Z`bGfKYgl7gm>$mT^Wj));ax;Ns1_ zTw3+5gV<6#6TF+1fCtIk6mmT+D4)4#U@?M|n#Q#^9Rp5d)K6TwpD5ApGdTMW07`)l;zDDf~zJ z3buR0&NTR= zrSXJe4+%4eEGv3?x^UL1yIX96qd_?9{C7C1URtbmweaspLWI908Q0Ges|BB-WagWm zMWA|S`f9`$%KIe!V&2S6r;YFZeI!vIU;NMk2OXgnd$5s#*1oKM{}rxO%V_EqUr($; zDp5Sq;-gnnF&0>b@c3L$cu}q#o{Q_L;4|B&EI{PcmFfgP;q1Z##I_N|K&9H|4Uf&$fy;oiC^ru8vw1qa7Qn+G+@?lEj0SJ&YW3PU zxUr&sIbJdB1g@$9Ya)EHE`+(YsNZV!4+cEeZx8GDuo>QqYDNNHZsZ4;C5a+5)|+Qn zy)W;J)x9a*I}g#Y1NLGZ7jscIzYr^aG|*(vq51H1!ZIMEKP)+5DR_-t^y)j2%aPls zyoJsi=4DErPpo-jco_G^Ee#%Jvd)Fj4Z@l>O`6u(IcAqc zaE+;_GJD2Mkt{c!%KMv&n*Rf3s|EG{yHVM(H0QdfNf^U%IUn4(2Lcu3B+WQu0kIv2>_;@6K+u2U^ z4w_%FU5wqhm)r5-kztJ_T?8;CF@Bkc6FUZj=w}ipy)|D?m$zCMXW7xihRfToS-oi* zpCgCS^MVvbW_Y;srrTkOny%v|Rc^s(!F5f!NthaS*;DWUA+Bi3-YFEW{0Jfie1k3^Qx_L2f;vOK<(y$@<*o7ax*f~z zK=r-K_m=ypixp}|7jLxg5dN4&Pjc4rT3hs*!yB&^bgs|9m}y>AM|{ti_A<_rgDrNi z^{|H%H5>shT?q}atgu{&tIE^`n$;%WAqLR!AXlnefDx{)xto(=+xkYdOkMi8m>F@f zWdT6kNuBj@-CSKL_q}lFjKN#Ttp(d-JQ$67Z89^3gNYm}CrDnrk4aB|QG zzAm~X%4|5Y7Ct4`!A1bT*CO1Humhp=KVZ9numj;oYjBUvpWp`q>B^qLeLD!NS$|<~ zaZ0LxeYD8FoxW)v76$zhzCHBt0e&xC4Oq2fOQ49TU&v z`GsuDoThl&`ofq5ULlhI^*JfKa$gtnH3q)Mz}Fb~8UtTr;KX78_8++FN8Q2{h^ZIQaM!Z&xJ6xson!5~<>|bCIbkIN5f?l0 z5OcYqk82ua7Ahy8&~_DaBrI%?qy^4Ue(|_~t>tH}8*sQWKP{Tm%@-V7fDnpPK)m=_ z7Un9is0(2yi|f=fA?!sVWEyfKG;~90y<*6qfSil{#VwRYp^th+y}b&C8Q$=8o=Lh9 zi;>%*;(E_H6IXqo*lvtNFPUOCsLbdp4DMSOVOK$O0v@Z8A>!d z%jiZfjA|PLKI6Syy!)?IqF&`t-JxZpW#yo@9x+mAEjqMNt(c<3_tSWkd)EMOK$|xT zEtntFg51&9%x%GfMGy;B1YEdKEqT=~tP~w5eDSefYupJK5JWeGXS0y75-Xfo!(Ngx z7jDWb(QUN3{s%}@Ua^rKY;qBJT$lO9spiBzluVsszDj9MUI*?{>P(ceES)Ib`$>@c zed7i}vTHlMv%Up9z5bDoCm0Y3o>QVO(loF_o2`z;Hj>~uWCx;~Z{TOGn-e#?pN&mn zvKp82EiQ$Nd8H4i5av_RuTRTJI=`gc$Nu)r$`;!ZGzu$Yk8kJoJ!#HZqc40-h7U>= zm!t1ebUdI%K^dpfOg@QAm^wM0Ha3CeI;!6lSiV-4KA!6J0?U)ffS zzTkUO(|b5?+c;nshT!b;ESCMT0lQG|*)_N1%`tp8tkHcpG{R_aFCfr=Lp#ow-ufE+ zH~a=#eaO3bOKf|em=EmW1xN)F&hE--a z4y#(-4NSbk_W=IFjl)CuNdu8Dv5-^59Xa3`#|H#0(+Q?V%i?Z#-+t2Z#Vsl5_{JG0 zi(wuo=|i0;)HmV}Y|J9L()v$^uQ-BESsv(%4z=QbJY2Td9oVG&?YIFeSJ}Mc9r(Oh zP8c1_1JdDU>}Od586e+dz+xE~6h|(CQC|p0W)|gI{HKUZ>vQFhGasR_OFi`aNW+;M zn2R^-rOp_9H?!u`%s~J3#UKRriLD%08+vhDsDKYq0u!S)S37DjX-)COWk z8c7mU*H`P~Gj7AkycPV0j1xb)N^tXhog3nJORU`9fQnT1j??izJ{-;V55oPR>%l6) zz}sRCyYPUE^MV`mJ0s{sr}yG6J6!w+SFli7w}~3bu}4{-&Na~}=tS4&c;TP$`h(-y zrl3}ZaT@X{yVajRsF4ZefdO&|@?dadVM+qrH!$7^dRkKbIEBa_<%k;o14juYUV7*Wb5DM!I{AJ` zPGaUpBG&q*?jY;^ox1&h+CtE60(4@8OLnU?$Z41C6YSC;51Nf@FI&rU*p7NgF=b=} zg|gDrEw;2W&3{Gvy5fJtNh?42A?~BZ?&BNYg56#PH#=_Vi>)xL?AYv+#_jgu&g45h z!Ozm?PT+;V!KRM!;jG=bEpkDo$I&+L3hZsmp)q-K@ZB$Tc`ewK?saSq9G1g_|BD^% zp>7*H_Yvzs`43(iGK|UdIkxz74EfH2i~KyHbj<5E#0NeC@@zf#SrY!fuK(Bg{|fY@ z^Dh`KXd}@iJO@84iSskC8#tPSi#eY%8~guqjwg7;J{MPCTIBWToqJC0`;Q#hQnZO? z{O5Sq|0m}?1j@B^5RfJpwR@!1J8*xi$MMSC4}D5iq4(T(J-ErsXMNwJjLjLZjNB_b z-u90huT0+y5%o;IV3CH~$iq{>d>7~2=i=VMDcG#rrj_hbB(LN4+`#MDD^&aL7zy_n z{ysisQciRuvxlD3lmJ*sJ9hammU+Sgk_R`hLZ{2h1pJKRR-zVzSCN2Ur(t{XI#ej* zU5{g|Eg+2#jX_OO#n6(yw&T=k4^(=*;!n>@im z{_c1?uvb=ejYz1trNl-Nr6jSsOF842xzEXePRzH^A~`uR3L?$d6iHa4a3x(W$hF;z zi)58g+|pW`{ER`QUfgT{tU;h&Y4s+Usg|T6)_6`gJzGuB8K&n<({mrwb6@=#cLx;u z&c$ZrOb`<;3TVWgM>(>R)hs)9`)6X&*33Q;>wCs{1)(ctcF(AE@PCpb=$7Ov$#k|8 z!kyHyiFP?W$*vBB@t=^9X}z=cDs+74EN9DD8|Imo$b}emGQ4%=GXHVYy|ADYq>p;) zq|f`~NcxQ?(r*@|&nA$@@k`QY3o#%VD@dOYVSDtE$1SQ|J!BwSB;BD@~VWxuzRyUNf0?)Tzf zf1aL#N>;l2WoC;tdP4Y0ejb{N(Sa*+lu_ov0nd8JH7QKAd79pb^M&hjJXWaM(q%_e z;1oGDnoabCmSotX7jbgPL=-$GzzhcCLk^8knirqNckL@J8Ng%~`k|JM9lW8y&5B9{y+t=p^lH8_F83hUqokh+|N)=b-ei^3g!O=R8 zat&zeRW8vTr8b?YO38L}jzLt{kmsIZ5Y-uIRoO}BaH;u~rmLY! zkt70r-F`2(1R_4Ax|4MItTAyH?eNtd^5-R_OKtrmT$jp4ZICZF<8F74<8{iHw?e)I z7n-3DS$B>{8Iu8T2%>7 zg|FaLGzzMgLy#DKcoy8MTA#{~ms`<|>eMcr3Wzv1r}U{$Lg`WInU3I1f>7f4q3U}*#TdsomOt(&`D-NaJUU()(!8|lvt z`fJwcZ*PVd`;Rpmp#ZZZG3CAOUxbB@MWe&F{c}>#A*Kgop#wTxEaZ9G2&Vj-2GWF+$7UFC`k1mb_Rgh-O&Z1*dWw zoXSm3WjO|?5=51bdWq>T9n|@XdeMD?sK#hD1X*oNBBq)D6Uz@O*MLQTo}Ft8?ENjw zxBJ2s7?L;IF^$Q}5w3dAgv!VhU-)7Z&0mmMRS1h)!+yF9>)+F%;qex=V}-HZ>)0~) zL-ZPi(n&d)Y{<9{6&iJB|U=wEg z60kdCnUz?5Q4lCoKMVu#~h z9FZYH70996q0?-n zE7mRQZ64MV+F1y|A?UKPSfcual5?mGQ8>~Ox&za~9k~ekT<$?`M#FK2Bs4Y`zxnvh zmyrem3SN<>5OE;kvBmf;#<38adgkJNvG7#D-Kzc-uJ9Z5^;LxouMd@CSpRd3623A% zc0F}c@Nw^=I6f9*lmCR_gT0QPoP(o3U|P9?X<=;wdLRS&l%LU2pU@PiTFDacPGeaTp{96 z;<#e`7OOuTfl|0htur8*^ic8@7|>Vl{|ao7oP_ak?S=9Fm!Nw%f&HIyf2f?)fWdd9 z=uqe~gFDD_s7MaYOYjCSq&ngvv;aN006n-MzZJ*SYOW4n2Wr@+PW>ZlP8)snU^&+i z6&%UOHFb2RPhD$)!)}>Rp5n0J943{;ZurO-Tr9^MT9m~+B_8DykD>}op-j6;~%@WD*-Dm2+SP@BV# zj~D7bb#^yAf(%yTvjWkK%*RJ>tnNUCM`FZ%vGHs&!o;+k0h)liG)%LUu9r3KR& zy(+8*t7ERp2v)_5s*tOcfq=OESC%h_C)m`10S@~KHce9rB;Oc02PtDiZk_hV@u@Jr zV*Q@DAZ7jbL-Eq7es?2fY{*O3owWMp5r0`J>qoM@G4kjt)~KlG8hu6ltjbS`pC6y6 z;|JCgBrDYBW~7V_`R&x>#gCYgD2`DLgn7jxxj~SFy+{#zx?u7D1R@BG9}j&<@Z0X^3nE4 zjT)#2$nb;`^{>~n^R{TDUj4i73CpPeZh1vhBRWDo-$f8gjd(V|{lpCJ>>j|q9I+;U zO~A)_RCSUW&hE!kRLe;JCHk|01lv76*H7+Ee?~^EOsZAnw6f&)bCYWwSyGYo-Kan2 zpMIQvuHr6lZ>FC!Ns_OetFbSLFqBzgj-n5R&&zvLdGLs@R=%&h@|T{R@?SZpyY^2y zIqmPR{H47uA9CRDGLGM#Q2F6Q7;pv)E0mQG2jH>TSOsb3;j>BhLFOj|ukotHV-10rEd;JVDfW0%|+~HJ%W!>>gjQ zD_b&^6S(Y>)oD29Z}WZ@W9m@HTzFY&hr4}Rh*($ z*A;>cpiO)Bhk2g+@gH_5Zg42E*EqL?x7sK;=ZvTj%t=D032S>V6!<=+AKiSY)49mP z>IC!x9Ld2(v1XYK!jW&9!M(jFuYtn+#uX<=VXo6#II}3NclNk4hr%%7!M!*3xD?}r zy<)EN21Gv9i%Wij?`76}mKhkh{&B$Ky7HA@5hW1lxVEG$*S)=4XLv80;c=J}-qPcM zhx<0;yXWD@JKzQm2L$%gH9@QUas4P%vb+16)xxDw6?CD))mTj5X~Aj za|{nigsYsj8OO4{|8u92I6=?LAQ*jOAeg>ljzHWd7 zoZ6?(C_Lnn8E9rW%v|cHPqOpCP$1KXAIwD*ETl>GxdJnHjmPKU(nd?*Dg1!P);>&! zWiJ~0c=C&JwQwse&w>8L{Z+X1QHCNrxB*LhaUCgs+C(4E!_2NPozIkmU)bjj6}G5# zYxuRbj)}<3qf2F678TqE^Qa@TH13ET9+xIxDVEb0!b0|&SZT=8*v;zgzhE2MV1*^s zo}UR2!NzaO!M%IsklX<)E7+3t=h-tClF{2j3(&-p;8_Rj7;MzGssHu|Y~+NV7qv^Y zNUJr_BI>2z@6>MuXvG_@YbOLn+;K;yQ|MJ5R1xLD+TSOYL4my!n?7FU`Mrqr)y4cd zX8So=TD?=)&tZQF7a=@~H1fGnbCVZ(mEYFm-J^`$D2Frp$>FS*Z2XQwa(&808@)i5FP z?ld~;G3qWWSMb8D+~}jcqmw!(kcF^6!r&J6O-bdB(aQCYlEc>}3c;g>DLME&5n`96 zvMpZ6vfRKRoQP5{6y=h;UlDy$9))7SIr6yy^0r4ggv~Umb{vS%uqRO#7ka~C(OY0H z;RpANCJO(-?1!4??MMu&Y!UI==iu|yLa|)&?p5k6csB^XAM|%(C5nq@tF>b^{>u%A zS~W=M1va&j0LpM;G&q%e9|w4K_*FcH=AY>icQ8iF3@DZGc0nS;2DBYnV)rjh1x2|} z0D0p|0pxT&bAxD*mhYPK8ab;(Rvr`woTx(@Nx?x0YiXK{CFSYV-9W79pl9Y_qfjMD zD@TIqsY(tTM|(@Dt`Y1HbV}U8%f>?(&imCjF6Z|d50M$5ZCV_2zU|3Z<)iiXQEmOx6RVSVYFx}HA*eD%Gd zLRI!)n*fk#si^F+Adn%dzXSx0Bh@YZ3~VQSW#OmbYRZGpu>L@vbT{sc5i%sk7oXx_ zrMtf&(sV`QJ#2hz$h|IT+~_l?b^tlr3kHirqZ1g=?ET0-V2(K+`^=MZd~Xr;ffN;# zR*X&`j%u8pw13FEwQSy^CI~?-v=neO&;1b6MXvAMHu|}fA!vBuXl~SG?sbhC#LYwW z4|V@O@KQL^4tdkCc_{3W#O5IrL0gI|caR3wN%|A`9d?d|rJ)bKkKP=PnS)KL^PowQ z5>Aan9xFpTV?%zS{XC@o{E$Ct>1ou^ zg&)b|^o|YOVvjNpdgaB?5x-}cEc~mU`|7kz`1T1d+4vD_;EOl?{#XkX+ zQMBXfS&XG!Waro{4lTrRI>xb^W56#a{8xT_V&Q-9#KA9Q{Re&p_$71=fH?uDjHWfp z%H(2fUczX8$m8E0Z4nmqhUI)S&Yv=3vtc>E8J6=+(xqwh=W{y2i0|2OUM&=7cQxDL zGEQ$L6y#+YR>UUzd0|g1gj;1R88?sZW9P;(2wg;bVv0M+!`#??IsRk!-L?0b%71oy z>$&l%+e#mIdj-k=Q`*b3Ub!+Chu2`VKye4X0xpTB`c9ZGK^UB1SI_@$+|WW-%DyWl z=?x8b;N`RxYyzlsPY9A2puzYhg#86rzeFy^r65L1?N_A7nMftu6N2nj4hO0hPpI6c zZ7smY1M*m8e(JIaq380VkbsiQGxR%bZ@!`LpI|?he&-VEcRoG^JqA5L#*{_dwrDNO z7dk6tOAB`YgzhP_38`X3vc~jIrSnzlbCbC~9O_IAOi^3GXEFJO?p`|As?!oqxK=aa3AaKxskQ z2`b7_N4xjMe6)Fii5*P6bG-#vm)!yCdP6SQ?EwI}=`+wQwvRm!eebysNDweS-~$cP zH_F@pCKoh&9gXv`V%ZZN0Ee0|72hLErF*E~#?os$OxSZ&E0*;|jo7iKy$x+`@@YnP zfyeO|Y30MjExhJ3-Th#u@l>$R!Rl_8Co~Z?oQeI~nBPN#pWp@z0{Fi>7#&UD66Lbv zv-x@Ijl)4dbX++z*ME+&K1xcRC5MM$Tkci05J^3unQ+ZI4orduMzq^OxrNv!FD9W0 zfoVD%i>PN}Gd`KfPv9FF^FOhFGp{*W{hNMK@A`N0;4j_3eR|)&Z=Tir{{1O7HBMlU zCWHPb_itp<$?D&17`*jn{MKMe@+HUbYqV16-T3_-lJ<7|o^!_k-u^9sy5i*U=NWT) z*T3rQFWtXsMZNCd*GKfee@hpf#QybCerrxl;m7+f<63a=cNnpyG<2OU&TwLL`1>}w z;4-=C3#)o5R~KAxaTiB96$)xEwtTz=o8iG3NB1K*xo05rIgdEVf9_HTjcdL2_W9VfX^h(RO{_wF6U!rwZBrksWk+!n%Rk7xfd%%H z4{NYbF9vG(5lfCX#zg|mz>g;Wa;!(u{x4U*K0Vj(hA#E{ui#0oUloh%9)IgE>Wsh3 zPj3BM?(VUEXLPCGgUs+H`WHqUCQAoHs}`NLHf^_0r4!}(a` z-sO7<&0kFR+(J)CQ&yZP(#=`NL3JhUS?xl=a7?oK>FnN+H*|Z}b3Xr&w)C)Oy~!4c zXxn5kUHCmTREXB~hdmfV=ruE~mo!Bhgh;4JxosYTa03tbs7mNIoH{?}SM`z*QO%Q0rr zKI(vTh0SoMhT*t?hU3%y7m3CJb&$cJF#HFMwY0k8%+uP>;`Q5Osvoo%$5hasEc~9z zDiXh)^k@RVhdzzhzdQU6%m0%2<$R_zPY4e#!BIJ@vGa=YCkqRI(+=?h_-be}=8jpY z688VTd8|^!e4#XZZf`H{HSE3u_V|>rzYM%}M_AWS&relX9iHC)j9%AqmVo(KN|!|GI-X`RjS9aPrTnf0=-P&k2M7-eK1N{A0uCdUDFt zX>l7ba1x&~I|oO+J#bxxW8Sbz^FdP^{9J6j+p&K1#GMStaA0+IV)~PYTX=rgj+LU} z*~jq`?Qg`v+(KDdZu8L1&n{ZNR12%bH@(W3CSepf44x=6n#3~I>xj{Qr8SDpLNIBV zP3)3te*yaND6eZ3@xX&Cyv$>9PrYEJFucJI{h8vFQ*;e4xUPiP zVAL-Tnsz;T8f^av9oCe%*DM?+XL~)$DKfog4e}~4soU=%TvqJN=raU4TXr1u5AcLW z=6Nv9*`obCaIFT10XPs1)5U7-e72?tp5dH+(~OgGK3lAR|NrXG>+4QTf2Ikz|MLB5 z*oQ*4ltJYtX)_^&VzlApAH>BH92CEX2gNrbitjurZanj-xbe)h;>I%%iyO~8Ep9yX zxHzBrgA2iMTzq@txVY*3J)FcqhQe`iBoU82pT8GdhsFVXn|1)7*QmGAVT^j=K~D6; z^;49>1pC-ho|z-}{7iWTm7PN+nxBV&VSNYQr|*N&7TXgyPoxpI=Q+a=)2m#c<15S&YE3+5Bpx#pk9`u4FxZ|9ts7v$U{rAy^3iiHRCD`%)^GeM;5_PdIA>{bPdbG)Iw%Vl?@o|4N^d?j2PojJ3~%u{I=S<+G}Wcv{;8#dXj~ zJizNHvul+8HqKVk2;)=i(NPrMhP^NUV3Yif!%Z(S4X(@@9mtj)Zv+PNl=|U+d>D)D z1rJ7gsdgtGgnbrWw-JbPHP$MFq_wcoDtZmhWp=`cA!4!LW*u7mf;=XuJh`1Zq_2E^aLLv2k@7>`{p&?2bbX0DUF4A4e0} zLfA)A{rqXEv4uU+uCCn=nnSbdE};@ZEH3CfYYr_H=m-cl3l&%>>U(;}qYmhq7*D`g zoxcCS@yD?VWOpL{aTw?0bLHS&Id*u6;AvyX1F$p17WiDNSAm}UE_|45mmQx}Phn)cH7|_r7@I@oM;4$Uiush8qy>Jya$er*t zvwRuMp&;uHFr0Qc3J zPZ->D_aaBKvN_f;8|DN`n>Xwm10SE|hj$Bf#QBjYw&|HyP~F4tH2uvgt!-}Ho9+r{ z*xl)k&I{XWnhKru{glmhI|4hA(Ako9ar9eXGCz&}e~}9#B5Aq%aEto`SYf)ycyZEp zFt9(yN4o|dW%xk75L%-Kn2R2km8oDB&0+=Ekv13iA2^{-aKn@Fj1Q6XAD6wp^ax-?$EPOX4ey?~u&=rI09i+7^Mds4J`Ct8eiDO!tL%`G1P1FglsS{!e2 zYjTV8ks{IJR<#dW>LmqjMT~OARs5TGl|` z;tAadGoagZ!CPiMuJab03le5>N4Ps$2oD+V(BgVo`CEJ#TqrAZ?J}I=oq=O&>n{a3 zS$ReM$3k#o@L4#SdkF%T&QF6Ku>g#~U*#=273xK>plSq{XJT6!K=l;m=4J`*DFYiLy3*!SBq#fLnacD!j-xYlC zb6!^qb`CJbNP5_CZ2`9yk%8Tik~&lHGk6H=s*{CfHlba?`*aK4y1Fcelar zR&)uOtHE%jyPsfmiZdwp{0JXnLnfWd;}aUYFRwIex?R-Nj;h5E$e3#ie=4{b%c$us z1H>trO4jo6(~nWhb5hr`Pj|K4hvvtI{4QJ65}Z^=9VSO!e2#+~6N}ZfY>o>w8&m8V za&RGquXfH>kh|av4PVs8yY|JXZc;G8;Pv2*$N>e+O|0|Zb4FY0fz<90dnc-p0AI3G-(g^==Z!uwcIq3-hthptU-kCaJR%e2iMjYHYGWQe;t zyizI7x-Hiv#;f5%ALDk5dL?Y5xCX|oqn99ns}ZQ*zZAMkaQ&SeenQ+nlsHIStSuNG z$+L?qaK<*kncLTmYic69f# z*e^v)F=BX>Q@wK0Fs#^1gZSt%@1SRCZqzwS)vyPxl(Ic?(rA4LKHS4QJ5VBl#9Y}vdPKex4fEK zh8xiBoAefO=SAfF_hi(+5EaRoDXlf9$;p zd{o8KHa^*4fWQPL5*0LRkgzCGK#2j#Ktg6<27(}q2nJCWafzC+2{LgK$aomYRT1<> z#T~s@#f?qH1ds$-#SOeF;ChZh1>6!*=6kC8?3o~X^}YVT@9$4CGv`!4-Bn%PU0q$> zU7;k?h#1a=zU8E)VkaO@vUKd{Uh8&qt^ho8mG3reU2nvWr6f4+3hDi>*-G z-)p2$-|-|mN}=8wPB_LUQ%tLQhc0c5Jb_WOXLG8!FFq8b=FX%jdn*&BypBm}sEm0C zzE%ieV_PNt@`PRv(1+SyifQFpZB4~}Q6Fks`!tEZqZQsJOo!i>$e5<9~%r%@5I2Qc~nH4;E$;E9E9>bbpLByzDpUySLt_4vpG; z7jv0L=euxRV#~`da4PEa-GuAJe0MD7yVzMCDH@K|R~Ur}kF>N+YU|Vu-d*Z+E1?cn z0z5tX$r9l<7&B;GN`~9UnB~@9K!8Ivz{xaA9)-~kKCm{J5s69lCpU^Dqj+M?zMdw+ zgvKcfp+9#*d`1)M7IyAIZ}cBbi1#EAN(d-?I;%P%ZaJ*+39(#-m4)N#+h6@s__sCB zY)+bb^U1O_p^ph^OH_3#O@q1Pz_LF@M}^l0NL_<-;d3lahE}^v)~vvj419H!#p5p- zpQ!m6@|bUERG_b(ptwYe9H02veRoc{U-L-vB{3g3q&--$$7vnf{1Y)(bjgVXyEv6j zh#;^9X-koVd=v-P0Pi0DMYtLAGiOtGx`#(7TCmGkGan`2jW;+);3#I0_QOIkJjrvh zCjomWgl3!o#(S}ZF&`KgR@TPi zhE8b#s}0Th67q>pRk2DoRRW(EME+_G|8w!No?(uK$;L$9eCaw&Gn{mUgT2BtF%g)7 z_1ccUP(h75$ju|ZIL;SBUydzVf~iBx-oo6%|p00nEFFxGRj>SkB@LLD!xq^Vya zEmxunUrGx=@EBIIwG$iuv(rGWXZY!K zP&(pFp12nah1-4;L+Rg;hall zmz9@Pe75Ylngfwe)vymyjjN_bzBu6qz5vn--5c=dHj>|gW?dg#P9?3*{Z?Hcq}G(` zkrE!NPzRyhi=k3*&vuW5=InDzd z{cYuW?a?x*Z{C zKlJ2s7j8GbwY|E&hxrfI_~5-oC!hP%#OiowH%INs?&rI~z)=_Oev)6FAMPkT*kTDW>(KPB2!O*4S-Hqztd;}5#NnRR&9wT6x!-8SXm5@` z!%^FY`~!U27#u@X-0f_JU{x|W$Cc!B^{4g8Viexr5e#%wSMAhHED18MAU&LosLmqdvdgiei4F{R z&o@|LQ4a>2ctmso6VX5|%iOTk?&o(!$)poc`T!ih9JhNyC2mxx0b?1?zgm9zQ?@EE zUyWby%U5DoEPO0K`K23?buRkWUVdqk6EO(y`=w2EupAD$l<#zra_#~F?q<;sv+RPs zL3C+e8TCeVX+dU9Yb7lcU12B1LUrC$$0B9dvm)n~46^Cy?RMI?C{0TM^||f`sxphlR)o;zvpS zi>PAt2s2a8=uzdsJlc1w2W`s_e8!aXvjpV7DPq2Bw@u}oeRsV=8_&26Ja zYqare(Hg7e*>KLlPzOP9&Q9vGFJJAGundLF9ayB$#iiBFiHK^~Pb8|6H&HjCVoZBk z-wNf;MmnX=c5wm8>AS0NHezR1e!U{I%d;A-NE*JyV#>dANDpQy+|=@ddz zvj5MAJW+p;LTjGEgXm5YUJj})3$a7I4e={-aiz;Izegu*jspn}3*A%HiN>cFCm}X3 zsVT*cBn?5#9|qLwyd($(##SB&{cWZ|GnzxvD2pRjfy4v8$-1CJOex+03w*&!e62f^ z0^wR6CZWH+k%T_Dkb6A}S51{Cl4XQ33@3}4`Y5`5hsLmOe7%AXMTfPUjLWoXSPD>q zf}8UHoD~l8munNhB$;jTQ#FT5gDw!Jx7~kk>Fn?W{T&~aQF4&yT-DhDW9~UQ6*Y3s z9cqn;d)@imLbgqoDvh1o9OB=+9YGBRnF7J6220%qh( z-;icqTgANr`$JhZX$=pIodCeC43Gu@y#jQ535GA3MGMl(i4ExBKe9wuL3Jx;Tp}2a z04q|gLz#oGVp2;jJv&md zhh#`c32r6l%JcXYxobcE(yu|RyC@-Mz!mt888NI{@td3(u!^96*kuu%;dB%surkUk zCV|zplIZE+@E5&m)=0YzN}l zA{E4pnp1wE@)(jv?y6w`!9-Cma4#E0xRQ>0rGb06qk$W41b0;JkjP!TkQy9&MP^jk zf-HG9Hjz+4yBmPZO@O@{0W65rgwO{-;^d`8pKsbvfBc*grpjYqzCAqo4yJcj{*MXzGcx zPhf*%l=A^F=+y_-lGDIZTqJuD@rJQx9Ubd0pVFNAJsK+!@YIZkpl>+B1&<)lhsZhO z$$H2E(xNnM8OWi@a2$1GcsnFRR)!)uo%JVZig9J}kjXhx9%iT-$wR!FN7wbixc>vL za&3IqeImhwg&0+~-=>fAlPM}0>WogiUY<&Ea#VVCNtJ^CM-k`rrGU<=#O1>tHA+8@ zqV%;Pp&MPpBIV(LC%PaMe|UKb3I*>)q0`spuos6txg$IL6TZOVN(U&DblUGK^~xbn zp;x*JE%rN)bel6U_f$vmaP@pc+UH8rz|?0*I?l7-1rKyKFGLJU_ej$b+x!i@k68A_ z{?|b~BbnmK`r(#|bew_Im!N2s%Tu)4D@})-KgNYb!P_W)b67g<%N+)g+u-Pi%|JOJ zgBnlPuh>mX3(4|afe0V`x3@Hz-W2;k&^us*+Q-F--M7>x&b%M7FG;odi6_OmcdXgqNjNQgsA36`Cj6e{m~p9A3mX4|iYATNL4NtAWFfd&276ayDh8 zgo2scbS>3Scf#+dGd!hwpY(iEJO#_)B6wF>9&rs#$PQeSHsshueDepdNy`tA;thx7 zB6vcLy~t4)iDZ`}(5>W}wCf#s0m)z4A+mE{q-A91nGWdHm87ebq{NqY4L;`Lb22_- zC>hsB2iy@+7pzGDu}7Z1pIdZzM5;WX35j?Q%#Q%I=u_k|^e%)gdbmC&gi9+zx2Dvx z4j{~kXT99#*T}u;C{>zkCJY-!(L1>nl7DH*fuxv2k&-P*APV`H2CiN9iz^*%%hf4& zxhoy>dRHg^N_tX&CzbT15Knf&X|o^e2r@no;a}3k>Ri-#;M(}gz_p3Lz_JSN|0P&6 zI|LIej3pv*qzRQFnxgwl53jdM`b*=B>d`Z)jDe_@Lnv zzi7a7SI^sn52{vTjxl`km~z%)4;;1{ttMRxtxm;XEQ0e2IJ%)Eu#H6(*Xl(ncrh{L zN%csJh?0FK27$Dw9UfL4aCP^zD>;COM#lx7cJf%Zd27~{BV)NUGSd{}oW@wAA)w@6 zB<(|9=^fgax+0E*i2}V#7EeAJd)acpk$S~@LIXyz&bxUY1!X*fZ$pxfxLWfHyiw9o zuxRiPoBT3|rr;)#BvPZ+u~9RxvgdV(c7%1NubJdjoSp*5AZ7va&jCoKJIu_+#5;--C zmfe4Z-U{ojRn< zJJ+ELabV=kM4h<$jYbXd)emTgG;PZIz~{=_fOw*E9}Wt;IG0DJHl84^O=^`xt7VAM z*eQQ{0Eb}ACzXY7A(i_00*VqY*+iut&S8sc};2^20x&*g$%!j*qf@DBWtdN_1 zAo}87_$j{^p&uA;5Jyct!gws^Koz$~Fzi=-i8ugU<}LMhsr?vFe%J)j!6UYFA!AVv7y{!HzHK$tv{_ke+wvk*a%??!;u4yVz8LcK@x}AEcuEzR*8G0 zN>EHGumXQ`!sQf1=?>P%P0Q}XL6n*32+)~)aaeRFG{HSBQ=Pu~rETbN(cz2Ugq=Xy z?s0CMu`+JVMhrY&=?t-y=%>ZJcYPG7g3Abkd#Ha7A~Hs$^+fj5oDT0W^DLzK_KfZk z>06)bXc1FaA3So<92_OXW1ZMQ6`Vnn_{mN(ac@B9LLiX}x>X3X-l_wqRn?ysRAODF zbmvb{iF1`61)D)7##QDTzBrLMzwWYj$5Kx zJXJ_`!68Gkl@~{stnw&fo0tQau2rKjcr_8sB9;=BGYe3!6q^Qs*sa`TuJ^$Ay*}v6jOz+i`NWd{~=Er7MK80e+WU^!O zaWsK1bPYRq_+%ywmguBTAr*$|oDn&RgDIiw7^Ly8kXEmEM21aP?xvcAR7b&BLqAGN zfk5QDsP*yBBu*-Cdq;Gh>3A;R$ET|8kyq10baUb4k>6xGx>stpDtg2evQ?$6<^7%V zBJAfQ)xt6SsvRaQc*+6|QqAQuy-4Cv4atv}@4?QM z#`3j!(jaiQOa2iiAhXIcVF^K8{!kB0KOi1Vc#3d>6(aG-3_z1lr~c3zSx&Z!_Va&7 zE3$`Czy$42Ejc&}CJjxu#Na0-teC0~df9k|{iz&&`xP$?yqdO>$Z0-`Px)$`7lygM zC%6UYG1Jvzz)6K@G5y}@UQ?{(^1<6UoNFDXX8sQeK{3hhSL}HamiQF7qr{ttMNtN%8N$h zl5!+}B0$$;gN3*W1T*|ma^|xKX~QO!q?bq9E_Y@(FzxMRZzr3!Tjlw{sGxNV_*_iR zVWcpvTQuCGN$VCP_KN? zq=c4JRMq5F@K@O<;tTg2@l_@iu0DsnEMCczl8Z=KtZgHRMy7*3g7xv!I$`NOHOUVP zp6_Y%N=>0B=Uzd5{!Y5lGgXY*l0Rh)l-7a3Nne$3!hWeK`EVAVj0Q>`u3ktqR5}>J zPQTzB8f*PL*7}{U^@**5RSyO0Pj$_wi|#xVwm_@PXHVC(dP37+UHqKH>YVum?}#*& znpWq$luh52rJNu-0bV&cF3{5m0!rpkM$mu`e3xfJO?A#9y3Nj-MbG09a29QjL%>;l z2S{@k^w7e^?&A<}7Gx4MhQL{ng=i+grb|l}wYN0(mhfwbH};mmYcKLjXHw%|{WA5@ zHK<6>C^WZl!l`nm80&ZPa2~mvW?`%zlR{|Fkropo?%ijT(4}JTg2IY(DsZ5iF<&aWM4KxG#9Rqm-J0@TsrYtGc|6jYTJ+>*4^Mf> z+j94Q6smTdIwKV;apKUaf!cJ2<}5#Ew~8&o@Jq{R5%UCx`fv(p=SF(}FtlQJ>_{*$ z;cZjBIqG?7Y=n_H_Q%#yG_|q#3*hcnU^lHKap_Ux%hC?fZz*BQ)#@0P>+(wnd?EjH zbi7CC^4Ib2C;UY3GiSOlG-nC^p%v%Og?I5wEa1yuY(aN}vnbTPz1UU%wJ&tTKKO`U zN6;2lF-9k0wGx8i^^@+ZJz9~1ClWkVr;ver7p+fWI=c zDpGu1u)bB%wV^o=X_@VUoI<%+nGp~I0qzqg%1iDzlt*CVtSBk>Ibg#{0`<%%g9cOg zaPC7CUWav9|7yQf4aXd<4Q~Xh71C6wY-iQ})2ixD3sxS1w{iOT2Bmq@nm3ik4rVJ2 z+qTxyJgJqYC^J&+#+_sf-o>baTfrX!A2^#$E^6ruWgy_iiE4homQL`(n_aLXs^v*9 z(y)ZurgcH8ajNaIWJ)hVRita5!}ZUQIGWL%ot`cjVd|W>UJLId7P{f4R}a*#b|*m$ z&`Ng-eR?qhknG4g8sp8{=DKG?;0SGQ^TJFgPZTJIFhLt8*y&olf#2rw%kGuRQy7EU z4+^mrUx()Wr{$RJqasm`2vR|TM3#uaR(c{&pVZeAzRKyPYoU8U!FksTsKXtwrT1#85P)+AE84K`b0;n=Tc4Mv0crU=xTNp<^rVQm$oA!_epa5 zN;^s`k*fG~xV}VN$;mo2djVAyRf;kKYL3#0S7nvAPn%d_%iAYWajZr3NGDdFYwhKM z54|l)f)X(k+*+wTe(4vzNE@Lz-mGJ;(nZ`lp?%WDe)@e2ev>oMNQ(mBi1IcOGh`N( zPbwhk(Gyj8!~hae;HkBF8gkphIYDmQ{L&kuQI^$1#bD-`a)YgNw>^K?LOLVJa^B#d zP@dBpl&84J&J?j}W&AhUq;)e^51q~8_I4Is3wlE((CE>xV+_oF-xI7x|BXwwi%~BK zM|>Uo4Kimrai>RU7L*eEp+mFKM#rMF8^rAqV_pnSJJlO30<!Iw%$)k$8mfGd7o|1^B%l!?YFMdq6m}9Yx*50_*NQm=voEtmh8Nq6Jph zAevy`Bf=szyBsbybtYP}X*pp3KyVXu1pFfgQM18S-z6k~c!XPV1mkU~9GJKV-XA(u zFPxA#i{(*nlE*#7lYH~~CDDF8rx`z9k->AX@R(wf6K$5K)WYp<|*Q$125#$D|-Ei7PFVKOM(S-HJjWfw3l z#DF-`a(wqn{%rW|X-vh5+-i9uZ~7+uJS3b}$LG^ZU2!YJSfGEW$Ex)(&4)bUkqB~v zO}1Tr<9UupfPsY|G5p=<5dmpMu)2yl7VTu*J&qcN4Z2-kBB)W8kG+wd-ryz#+JB5N zu`RWj-y*&YF=NfJ_~Z)BVv7RCdoM|AQ8n0NhY1)dkVhJYvSDf-hou)>haLQ+Z{X)v zMKJ4`OFZ*9g9rKs>RrVMi(Qr$fc)K?bFm>#Bq9xP;~d|7p#u2oFTgqFDkUw7r0dy2 zzL5<+5;b4gO-tUDA+=0&S{HQ!S-V^dM)BkY)wUALtyG0r13^1c*G38n)PtdAlp79d z{=rJeKaFpVDfHj$Ir*!de!A-IU4NLxR0V~1;&CfA|>q+P$wRKt>8_?)WlhS78 z^+I#avs9L=b)H&RuGT{e_>?`-W>2g?HJ2CXUBkKaCN_nMQ?GFkC-$8-^Gj8Jv<7!z z7UD8bb!YZ#HwUYumqDlf(gweD62B<=5_fMFHF0NUx0@43DR8oV`_28cp;tRGE=1{B zxTvUhoCWwh>d;(XO}=--5s$#1zomS+zs=y)Fth@!=IoXKryP-QQVTkT6TT>${Sbxz za2l^iweUnsfnWx4H-wP~i720XO~jVXro9(+sx=^a(U6aLy5Q#YW9SX?a8!qg@LGqG z(SK*+5D8c5RZve~xDYj$m!eTX3ExsYUETr#-C(%6wz(&+%A2*>i*tp2;j}lP#ppZ{ z@aB?ZKOzSP6yN0uC88@GndFg1I=gT2;-&^KG{)CugEv@-n_aOVJ!?0@q^kTBeNQ`h z$sOP2P0Rcb0X73e@y+ReS5E{v))arO(8%hOs(jK`%Pp~Q18WOi5_`5^dfV4!H;)e@ z{YmEgVYx`*5ivM%<83a_Mx#6wwngPB!j7a5s30CG{xq_NP5E2O=L=os92AcK&J)T@ z!e={tV*Z9MF&ux0G#ni+RRp@Y0;+AEeqFgyz6g7_e}~rpd8Dd63N;L1{R7M9WKSb< zD1;qUSTFxgqn0{#r?zBFd&Xc$Ws_!mLd)2caZ3oL0qZ|w9nKRP>ckx$p(!bw-5im$ z@B(4VheyMDU&hvxT=x=}1DB_v6jM=(sVUjzSYM&I3j9mW3HxKzu+bqNIW36B;|(v` z108U$Ovh0q@_F~+kvp`S!tA}F=V;A~7S_X{?t)+|7+_>xp&}^srFB((TX$&DF4k8} zltrOYHTmkA=mAf4azPb z9?~Xs%?Q7miT*X=th2av!PQOW%r2kV2H}lpP=kT;Hg<%f4qU7Hw<&kS_~jhbT{PpA z3vm(;>=L=z12j~j_d}eeYZY=R$7+HfCt>+{Mlv)>euxi%v81+$+rrz4{E$lig~H}` z-;xt*)&ZRXRs}+9@FZ9h6XI9+U5VeWq*zz$k{W!2AwDoE@Gu#Q$1o)eQO^gW{rHgF ziGlG>?k&bA@ty#8;>4VgH@;+i4^hkbpjz&TT24nTlQ$BzoQ)6Eaw;I|aLRlNrRjhg z?n;%2@A&GY>dh(l;I)=Tj<5e&<(xnTO0m$u*ia0v(~5^E;>z9e_?jTTCP@99bYx{5x^}5w zqWU#a>X(E>c$g&hYa_n33Cv1y6vc0Lr^HD8+EL&;UbmC_rK(?3rG9DZ*R;T_bVqUX zz)bv&7suL_yVC=+I`KpN)gN{W%<9Y!@mGJ?S?bqSEl5|XUxxZML+aN<{n{fis}~og zS4?15CV$IBp>W#`6}dOK%NE>aOZ{@xGzf_6=MztT`05v5{rEaqd>t(H%U5ahrGC_E zffZ%B`2-|>d=k04T8V4C=r9vYY~zI6=^>?*!xgm6hR)Aa}q>>FtLu-_LAhIvE-xe@5DZO8e+U*H>?44Z^s*OjxXNd ze9PkvdQ0KM!BIm=@I{d0!5hLlX~dgkYmvX3p61gunb8g{nTf10MaA+k=Bm^2W3&A6 za_Yt_J?ox&n*VF=q4NOXObY%SbITdLot(}Gz?pNtP@dBlf-eSM2$ITGvt;T z(RiU}R(_zEhuCv0f3ujz-yu$jKb6>prLAs0YEPSwQjra<5U^M=c;mEq$P*h>X|W(x zPJWA0BjnZerm+%OpTkHFjE~<%1~6=B+U5q!8AEeMVtje)*vg!8cT9754{^O#^D3u1 z-lkpKwu$sLQPRhrSb83W-NF4XH!k!Ge&Wh$v7v(l<23!uX;GOYM(GCmYFtqMZzh3- z{YDXDcY_J%(D;dDP}x#~-W{lkMFLZq-E@l>xI?n?)|=fiO^rl?KQZK62mLU>RegZziv9h@F=}vTc_-lPz)`4EOzsY#&0KypsrXl} z)vvk(?+tZeJb2ZazxXo8+E@TalD~OoF9Jt)B4D*gUSD(vH968odBhS#-%3B_!iib> zFvu`n?n^%2d{37{uaSY^32u&60iI!iHvn*s0FYCV8X12${$NCU!;QEHY)k81>2bZ@ zgm=os{pwo13W+I3sISmhPA&4%>iv&?s_jp^?^E?0qHFtEE$pNJ(h9pbx35EP zjlyEeE`96iQoCLV?TuK^TVH#!_IX@+GWI@C??ny@?Y?@~>scz$6#&YCG{VWt00jQ! zH>iyxejq$17U`zFqY_@A=Q!*ZtXfdNN#f{5lE~&>Q<0GJk8!My*Aw1^0smPJm18d! zh(5u$lAr$v{Gf`PWzoV&@&|Y}SW4XDbNRq8!lbFR;p8Q_+lqYEsF5*B+;5hH6in4; za>@q#T()r(`3ES3P5P?nIt-jt1sR@j`&hUuCHj zO%+b=zhRVPJ+)r!p)u~@8TgHDsM*>0jcur&eEcrJ z?*dOa5C9Y&7vk|DPxvnSiD1~6;%9kgqa&gK6<<-I%gE3NJC*nd(AV&5NwxIiHJT6j z!jIE0U+8i1uB@UNC)&mDUZ!8`XtLx9Ev6YkX8Y@_MmdVw!S9oN^;24XWI&_jU3cMr z3?j{uYC{i{<4fp)<@j5jTS!uLt-`3~UX#=jrKk0!iMb&x_=FSTLCibGKF>|A`3E3! zFM@2OGAf&=OP%K}G^A=T7CV9y(WSyo>2>ARctT++j8EF{nX=_-hyg8>p&5XmDv_azV0z}=;4XS z{Nc3Ox*o(wh&f+))qYf-FYXX)aInt}ucMI{ok7(<;YqIk98FHi{rW)*-mIWjDXLH6 zT7sZp!c-pfW^HoKyCoho@;)6I4~dN=&n1*_awQ;Y zi~8J$+MM3fv(!zabM{+99kmIsQw0b6jNqKFP&+EG$Q#}7lSqj4iByD@i}X$|T@d)O zF+y|`aJKgTS?}nYiCoXWJ`=iJBTq-dxSvqgOq8|c*nMdb%=~7^*fU{=+x2>>cbEGz zM^?3~jMjE@U9bPkTTwUEkz4k)Ymto7xqte|jbq3sRHG}{gWvsJt4i6V!0$TzhK6HK zcYqcjXi*}8w1%SW^F^oio_bygTfi~G0QRE4LSNO|js6OKRckN$EA&;Z-RQ5-SGD${ zzsg2`>Q|YCB<<64q0*k4q0*k4q0*k4q0*k4q0*k?uNWf{ks?P@<3iJK22U`M4$9H ziAU-1q{Go43OPRY@K6UjqOz0FGCULfg~9q`#qrYN+LV%dR@@d)+n2mTZAI0xh{|x( zz?%Sylr6_!U%12Refpvc$F|I}03LY4iRRb?`dOpm5b$+8`r^nFyC5 zG>Igiwwy%F^pWIb`k{_N*gJu(W{nI>qDaSTyEK~jS07W};G6Pdax9F|ZvSt8IY|4m zT&2CC6}4Ho45qkG*_OE{7hkLji7y&aF2P$<&EnLwmS=iU`4{43cC{vvYpJh%{4ug@BFV!a)*9A^-rTU-;zNGr zPO>dq&b|C#q#u-Y3h_?V=L%{e2K0WHf-QR9N<2p+%b0{lHXF$mimUQVgR!r30Q^9- zu~T02Ii5fJ2pJ0t$(4|Z9io#UXXPX0SP?rv+1dnmRNGd{TcevM} zpL5W$AcIp7qn#o5$I+w86^uzc*Ah{DksA*4a6gYE*p!dk=!x{agCOk&QuVoOmHOgp z9PFZ;A~4{J2FyoUIt-uWYC}4B7zsXqm>6j)68y`Spf;$#dfxPE4+<}^yjrPdECbek zW~}AMPjJICNHE!)V2LRKj~#+<*J_o&6*ve-xyYQN>^D+OoP#{#kphZb0$TT)CMdaD zjq~bhRHhR_u!`0NhdR{9MYd$^xcy|X4A~7eu=8hV^@c+}OqI6q3&20V+$6sqMxu%U zveMGI*HC*lB^^dducM^ldn<9_6AtMoRq{*oDzU4Aw5-DsPJp>w_ry>c=Luzn3cA-eM{z*3Oed0aN&vd&Auf>ydVw9Z zP^ZU9ehold2+%<~k^F4{ph18luS#r;g}S6tY1{owr5%u}Ou{=bn2P2FFBLbhMRX`D z7KRFOoH`w<EROBiPUT`MC3Rr16ENCgzl?P>|MTqwWfLrHZ+ITrqeiyb z#(dmjP5k-!qoZiz>Xeg~&nhHN5-L!-MJrSQLi!8jp-d%3vr51?Km9M4f6fEeD*ub+ zt-OP!DNI{aNagUK+==J=>X}hLuBB-Pobb6b(BT(N^Mn(+H>Fj}rknGe4!BoK4p2mZ zYn|c@4RHo0A!?vHFQ0JmiD8vL3)Iia;&Xn0KJnkg>byeCl_wQd1}4q^Mar82k0Uuu z^DwI)k|bY;vk8NfQg9Cv-D&U|joK9JQAQiX&|p$&98!-QKLo>p-n&+LoaI;wP0EH@ zmsg0-Bzz{pEQVD$Bo)6i@H+#)VHFO^MwmLm^>`n|h4k05rj)ypL z7*zMF4uExZuY%*JqXH|{x68ro|^ z=VRr;2RAPOhCLzXUBih54hGgFs2g~J1xR%esaOF@bYc7$XPj~8(fNP4l4$o2{U?{g z2>|n29PBl8O@m5WnDD<;NpIl(1yd#ULIJswvhgKKCDHr;tdfQ}yAQTjQWe+XUtCFt zFeZsgqB_tki65hqa1{-8n8I|rR}5e;#e6r5W(S;Yb6LXkW`gN&X+Q_BNB|HD|{|%{q!%kl%lq zH1812aPgCRh;ca-`ji6<9NC26r(6;I?tK9>?lRd(d;-!R=Ut$CsSY z4Kut_8!S6+6Y8Q}|AK!>6YU>VuevA>&H7$)L ztuLcoXpb82p(~_<(HQFq_pDoy=}^wV1D(Bu;a?=7P?-azB^g}7hwB+KFr6F-85BApgEPijWDu*%K-;-GgNiNf zB3qR*-X@n~`M}^GyvH){zpA{qToyyTGdc+e+%^ZdwcWi^Uya)&-lEy_$dj3%#6b~0 z%s#^j(gkEa?Tjp;wkd=goD;xhB(LDiIr((V*ooD2s(YCuqUz)(^e_ZN`ZHf>683E7 z@zIJo<&)^TXgVhwg4)0JU_|~1lXqQEPjhNg7CPdV1T`S1{2Ef0Ye-qHA!YHUiBLJn z$pM$B{3Er#{i_G%)E0IGxC%v5s4H1s5C7MvXxiUv3> z1YECQ<|>9!Lx6K~QN@)E3Unq83>@icf|nXWw3%NFQg_ zCeX)udePMq=ZbWEZUnWEFN%@FEabpyXPYoi!t*E-#(XMJG{X-?W2-?q|9BKM)lm|U zM}Z!}p?rlyni|ao`ayLB$$xM@)g2k=n2{M~$izPfwXvH+u!qQiG`MHR{r$5#4GKt$3#~qQM5yD-UCBVC}<# zy^HWXssPlomEmG^Ly)v2fguasv|8<}wu9H}@Ki0DH!82MbU zYl&Kk?zPVe;D@Zh&%J8~eh$eS0Dp)fUa4pt_*nrw&=5|CNUkf8nvwM>? z%@pq`m7I(Buy#^a<3&X!t0EjG0`O9h2YW`ikFHrvLV#;25oI`T>)M&Fx2}EnHP$9N zUj`FKbT?UR8zV|Eh(^Nj)p)RWT>FRWNSV8ch@5q5UF_LG<)=J{gW-e#XPDsfOIry=1;{4Q)MSuA%QFPE=r23n0q*S1#rpnCOTa zAOd+KWQs76oZyaZjW_X@63CC^t!v#kO<_If07O8F>Y?|jp8D+?d-9J}#5${wavjRh zsOfPLxWcLO$Dzn1iY~{axRfZGfkM~;N6w`_TeV>t&6xJLD(~ERoQy9fiWiPY(TgZ5 zKp`@ob3z&Sr$l4)M3YY_5v@on=jw@uolqiDALVdJE8ayXl&BvidR0$!>Io%sQ=<7u zq?-Br9>ZyDhJp0fQ+#P!G%vxjTC=+500O$Tk`~%dn$%nk%56lZt{Wk`7rS+_Zj?{+zB9GQ`~>l~?C-`z5qp4XvV~SdetD$_ z5Io_8=hM)8!J;l!i zohkd?5T3#Q?D@KsaL6Lfw=pDR6yrn?R$mw=^te#DOi)&0uu>_}T~cQTYH~1|v`Df`mBz=r&Bgh89*^L(KL%6aJ%l-D2&tsXg?N;NM+OUPMH&zF ztKoasaQC`X9&ikUlq+eT6Ti_xS3vLab72bq3@;Zy=cS9cE7iBX#M?^zRGC9a1|>BC zCp>M=yti6l5cYZ(eqDwZ4h{oXG{W4L%W7=n){m0CvpBlH6v|FR^oO|3OW zK7|NEO-VU%2Tf=?;t{8(2)FzkxIPD@V1q0!b{Lsb1fxdOL0*zmnFVli1Q_^#HTRL03MaNGIZS92vG#MS>H!(#;!!$UUt;v`#obB<$~jzD2<(g+Bo~3{QX$+4&opV2WpD`^Wr-n8H?|*xk)Y}^{1FW!>33O z5H&|1*8Q{#(sm(9Z5+EauMJ?(@zFuWAtqIxF9A;Q_8LdgHSnuGeFhCjw4)%L@UiCh zbFZBNfZVVl1`^jqX7JP%<#ewhDQHwHK;@SPKo!(J`6ikHtfvO*DDDAMBE^fd zDZJut4xD8Gx&n}4s zt7&R0Pl7s$?zBc84EwnP?`RQ=S93@i&;>PIm~|yFGOqs#z(@}h9Xc6*g>riUDL5$J z8(dEs>?oQF+1=RQkliDX6BDR!tPxB{V4_LA@A5{MU2Zs++OF0Lrh-guAf~66+z8L} zgy|+$Gtk_?4oxbkLu&(KZaE10oA51bIM=*ax;?{-y`1^bZz?j5#c`FASB!RaUM?pI zNZQf4ZyBQllN6jgNe|*Ez9fclGxtnqPH0M!wxQFD?j>IuAhvT35ZgK5lW)R(uC@KB zd(44d#XIhCf{Z7$I0F^p!&;}fS=je`BSzAJe1Rx7OcI>8$P7^RTnxc zP!hO=z?mM=&1fHq{P+Hm#_EG=reCZg?M5(c+@u;T$dVpH?+!4*FWUuY~MNMkHH zgkNGTLH$z_t^SEzt^eDh<3`|uVPE~#>*wyD=4DXhaX6Y5;mCV`xiCA?57XoB9$GuZ zy9*Erqrc?S`iZi2$kKvn)?Io1L172spd2{j^o57 zpXI8UccHgK0y4DtsoJnx;oyB`@*Im)I8Oa9UjIWE(kmz255^I75%Ps7U3FOvL_q(+ zxS_A6(qBaeV06JiAP@_ShmfQ@!O)V~HirI!cnqt?G*Z8aY;t$!D*mndrCL`jzOlX$HlOw-8^@KnX=_p!A3vD7sA<$gnH0t8^BPNBW}h&y!KH>*<+U zKzcm?U#zc64wq&g&4&IP@kjnJ+o)n9md^7w(}-IAGGz0}Op@0;nt^F0{NL-}P(GUA z(X9aKdN)qiF$PjpD);Vaoo7%%>tU0Cz5){i9L*a*M~=wm7<^E$v^NP~+=z>Dr_vJy z#&|R62_j?M+4Llz0?g@2fhoeAUKCP@xi?%AfCBx#=7N)A3p^or0SYeWuZE{vObi4Q zYrr6NF{9yOMEPm(p^;58e6R=LTT_w+dn+-s`P;Ea>PwCktKR|@BxbIde7|VpZ8=X0 zu}+piyk$;D>lSr3098YkHW)R-l{Nr1!<9A|HN%xQ09C@3wvg*Y)Z09=2&`4Na5+Ds z+T(i*|5)wmlV2SB3{x4yB~@15vnclbX{>QKxBaa&2YuCX8?!)v$;ev0|8G41VJWE zvBL|?@d7fY7xDrOy@-^-?uYO~ngviDs5@wK-K745Jvnrw7w@UboePnof@pG0o3sWe zQ77+88jwnTJbt6|r)^&Y(D`F%P8y89pSFDsK-Z6LUqJ;a2c!4Lp0D6HzY|5ou3~s! z<$vtQDyOS#OCj#6sET)$RpLwO7FYQidXW1#_LM)1Z*E-djlD&!q}=6ceS60jwNsYj zDekIql`X;-JPz*f+dIxxR)SxFE%D|4$CPRKiVC~&E4tT+wwsYEbbgBT$XYR)`$SWh zMVWln6;hCRigYm z$q|FsSTo_*XInGdat&t|udKO=OMj0gv+I8=vv+zOH?x=V8tV=kXIF~MoXQ}PS*=A> zkta2*aKg-oG>1v|E$}pHg}+wM&QNn=UtJy%9A;ZH{SrP0h%=zPcO%U@63+dV)_GVK zVahSw=baYRE1-_BRc*~O2%7@*+-orPOh~MyC0rQz=wTZ@0TB)dZ7! z+B+}f3mu+-4;Ml~hlyAoxg2f*#E;MqQyGV&jPUU`f}^az zj$6e=_0;8vf%b|DeW0yCFCcc9Y2Eey?xH7v`z#^zi_4G*4t>$rW;3x9g;d4!PekpS z1UTj@?u)XOfynbe)=y0-tvjLrm^M%xbTO`88IVCsJmGtF)p+U|F^833di+T$Ey+ND*tKxY?TGVJ*e>U`tDY52b50(G2We@uhndjeh?efKsf zyh#qfT*>MctJF?n0c074d&Ek)8noQczjw=AHZ_L(&<>h1GNgtgf`B;0> z08Oi1%q?CTVm#Mc<`H95*>4Qi#8H|1pv(jn?(^mWp&P1I*Jwf5(|Z zeent|BAEc#9dQ{f`{4df!J2p~?V@X0w~nHyYV{95VhryJo>=zcwqIZY9S2Yt2&sx+ zAXFI$@z(5n2+C~b98f|mQ#Y8k^8E)?MGC~}{p<@^y3jQBwZ*!oZZlVy-0^%%d3KCe z>*38{O>^SxXrA&up>_B=~&1zK)3!5Sy!mM3zXZprQF zGL<)nk=uJ%eb9J2pe>%e*IIcSWXt(WJl-OUuSRG*M?Nxm9u_U}lQGIm*2K>s zF=XLXmRX-K=I4(Glv3;SIf6b$x!(HxT0F=6;|XOro}&gZId}`D5sgV)z=lWb^+)m# z_i?H5@G1QvZXh>xP$vOWNzmc$ATrI-j&PQg81AE{S{};}>adqtUZ~I_JzK9YUJm#t z3M`_02+uH&OjQ=*`QOTRgGCmgG43REF;)9hB>!^W%Ij#_y(Z*e4v!Cs1ED(w%G+1L zsbegYpLr?d92Sv1e|VPkXIh~eCmuBMXq*h7?b!uh5hB$~i3d9{4I5pumpxDu3inEZ zMJ^}LroKiGV`z`yk~=q3qoBwhbV-QF$xec#5a82>#1(+P;dWpwH~v@zbyzY^WJVrR zBR*gkeu?-1`QK0wJ+l?JHOQ>}aWnHu>-i)H*Z~O068jeu?l>y0GQ#XTJcD#v?96l^ zB+4h11@J^#OwX~59gy>>l!wQ%a+;SE|JT-gAuldS^{pt#WKj_F%Hi*unH+!4tDRqD zp4UeeVc(w(5tbVwd=0@z5FyR(q{Z}{OWu-7{_K_1OKFW}vhpB)MuC?a1x^$NUd{!k=P2-G`AV#o zE5DB60`H-f^iXaT$U!E^6$a#5L=Qm*D;biWGh{P@e3~I`$EXDBr-9{o0Vk_+K5 zuFegxSZ197{Ww97d>qQa6QDm|&{NA)PGfo+IhNGXP1@wX!`7n)C%xE;Sc?!36tNjW zynh8r>G&+YBIpx|{>c-dmjperB;|JP5PK*Rp&4jb<+>9{JlL8z4vBd}&{gSr0;wr{ z8LVkp$8%~J=v|d>M*lXWy9aY>V$@pj=T9KXRfuxrh?PCSihwl4;rc0k>8ga!D|NK2e z6-T*=Lk~pe=NXBf-)kgtpiNQc$|ach^7eNWG{&Iyf3H{2k~LZe`><$ZX7=VmEM3wQ zW$Xw76nUjfT_IhI605!R*wbl$mf2z}`{$dd7rvNGs3lSo$IPC}$u-M-#@sj6_SLCAw2f z)YX(|x{)YoO0-AI>2fuZHcWkq$XRrh&8ft14>vgPX5b8qhSSo9^N_%4K{yg{&_c41 z&eB4h&loLa=PYvzNiwo9TFBE_BQh&ZZ)AZMqV@|{!_TaoC31S}h%KiF|7GNKttF=? zK&lOpdRxr4<+R(wIT_u@4;Lb{mxeK0*Vr?=z?4}XEF7cZXGY8HZTRoaY+b8nrgxg< zlvy4!(-h%RfU4T_(_y{%MmJDmLp&LXs8i|&RAKcb$nP&RAoC5#$D%==Z-cDN(;*G1 z?1Q&edC-LV^9;S9gQKDD8E<9%IuokSeuz*#Ce+6a)FczC-h16)Lv15adF)r$j0y6G zp$7Xy4anCH84}eYyV)SC1~B^sX|TUP1E>#~P>)X6*`E{*b#H-{{i!BYo&7rr)oVh1 z+(7MQLe=}>cQ{5)^q(^g+F!pl_|jjxi&>lq};dW8EUNp$@HpuV#Gy4Q-uzwPvzBSlj|2zZr@Ye?WdO=&*P#-X%>g>OI z9#C&Hp}vo4xZ0O(G@9kR>@+17wG*uRKSe;8!2Kh!`i zi-y|GhFX=)>{CGv_V;%N>O&^fqi{T_?2j~|E=MY^{k>SY!TU<>3k9nnxPw4rY5!|YQ*4fa3n2-HV_3Pb-B*=By9`LJPr ze{rMPB3=#B2IhCwNULOqAww)AOYgzjXE#Dh6*B87GAp)c_QG-_vzeC621d(lxGl3U zdW(7YDbQ~4a*7>(m_aI0cD8>q`8JL^QC0c$aWAK;t$nR8<-)MV&_daL{ zbF3x5^P}b0%a-4pmoR@2rqP@hP<~J4vOJZ~ZTy{U%J1u`X8zWLv;luL!>#;XA@bwQ zuvHHy!9rV3rwn_E3}@IgeE9)`!P%A!{n0WUY0FT_)EU%Gwtv2c{AzNTL8m>xTvL9D zmi#{YEDD2P4zn^iQ{*RFL%1JDK*^U-h9i-oHs5{mI!;AyuO$ZRk^nj&9!LLSLp=wm z>U`JG`_EnlYK#eWtbyu|hMHwV-QG(_RqA7n(j^->^`GiI8>Rd1GAqwzCY&Ek{ zbS|HdhVxGwP9Fou(%_E10!CB%8wD&ffJa3GzRU*v*~L1eB4k%>$&V25>-`Mi(+%Lr zCs8=BA8O@XGJq{j$V!Nrf8t`%(@P!7jwXJ-+4#$ff{E*y~;ox6AiVG4RvQv76hRR5vyZYn1G+oHU!bc0FI3Y{MitzAf}ms zNxa&i*n@zFnt-1XPHE}|p4x9nSeFB>E|~|1_6D#ahmY3)^=MzCxFZeJVbM@~+EA-| z=yI^Mx-tTO!~}dyxPqy;KktiD+z$s^i+iIPm;|A=x~>H5H32_v06!cJIA{Y-Hh?Xy z?(Nk8h673OW_<>*CmL{P8}O^$bx~Mb-AqEh*MxjTIEP6V-+UZJ7Q6gbS&%Om9k{B( zMypFD;65hc`wZa4(SWDhfSVb>)>gN96_7veV+f;*5xMQ!Abg|2HRZ7vnyYEuE$3m-JeZ1+co%(Mc?%WRz-TJ0vDlJW?A+U^xOoQX{n0?Lv4Q@Wp;ZP9EDd$_OF(@m%RtRAP;;W8wz8ov z2Pzenc-BC#CeXPi(0`9-{+R!NN8^8>jejaCS20W_4KwQLU6{%=tY()*SCH<%yCv8bdw_KtUoogdnBZv?XN%y>@^JOpC1F=P%@Pe~j z+|s+ST1#c$Qz+&g8q7Ygm9v`xV@Xf4qvnsY6E;IMBZ$5l#4;Pi`Hht%JTwLyf#Miq z^9n#A%X<4R)aXj2C)JVIwLX4g}f$;dilmm5))GbXtnB{7oQMi#N_480=uKOqE6s^0Ct-~$pYjfRuzsH{K^JoZ%0*4^ z0w)kFB9q2($*9e}xW{O7yP#y;3UY0j?{_uHh&4MrG!FU{ql`D9wl+}5MnnA;D?4V} zq(no7&~wTWS_^%516WBkfxbFcFRC*d=>0a(t{NzBJ^`{e#we>yOF|P3)EC~5B7htl z>U&+H3m{%8Frg+Hs8>cq{RWFRW&s4us5sew3vth4rH$;`z`E{AT>?#_p)R$dcDAEx zVtv^(&$`wCeg3^D0_bl8eYdko0H&hGD_5CNT?XoyXsBQ3SOqZGj7rL_nNY_RrwMk= z7+nJK(O~bj!KT|`sUzj_`vp@_z|{uov+qU`LADKbcPFz5EQK9of^A{Ij*JGYVC}}N z1h?5?^};5YP+z`67eP!k)Vpn{9n7d^$;K$p)*HG-`zufw>Ij~GCyESu+hBL3HzI== zWhBF*Lvq^E+;2{!b{jh$>LuXGS7B)-};T(~ASlBFsMu~EC2 zNj~js<+&InM((O+5xo-OITl!6X-m>iOG28(BWH|yg9V6#HsWLu3*oaJsGOu3Sy$Ky z52i6Yq}U`EMbQkC3v7fNK?p?UHH{$2M(_v-m?gb@PGz}9{OP4O{so%eYH!g9*Vzbt z2BDIt5iPb6bp(+rLvEdE8sYUe!ei&y%h*i$MYF8>+KAr*v5=u?jyp8MQ*4AQ3_|5m zjp%S6E5|_)nd>>A5!ToUuK=Ms1Hje-nnpCi1YXHHUscGZHu}y6{R`wQFO}cJtXOHG z(NDI~|9rMt^}rxnXMz&^PHkzKHu9}zaWjm4)X4TIsQ<8`o?}KeSu6?4Ge=a`#@Uh_I?E;rRUH$QSz3}Vwj{4b zNkZC@pyX*u>awit-f2$)@+Qj3OfCdiBYe>$z&6oXeZq#=%Z{kpkxi5hhgDW@wIxZ2 zl7z;~Cdwi$NwzJ??$n0TAy%6xS87RG+LAn^CW%oxF^OPL5$Wq2JE7s5e#DKaL82MIZa-}Uvzi3IgyW6HEnPW@hik5^&nftUP z18qq@JcBzu(^U0+He3XoXXNXR@{Tv7u=xv?XUuFa6lkh`#wd~rYxfWx>!N5_D{WZ) zfMp$D;*@L?-W>+s7h9r~t-ywNq&;)0&lkUC`$X`0k%4u8G^{o@tS1B(@u@tl**V{0 zfyOM15)h%fO`@G`%5vjiT^t>wW%;lTt-C-oW>DQsVABk+4{D;wVz>?Li+1|p#Pg<4 z*@hCbP(9$(d>2N;a@w%&7g%Bfc8_L^eS!rVvoMN4g|?^mxG~Dj8sSV0l=6gE29uwFS$6A7`=L|MbWZJ3}A8{u6#p*qlLgzxvT3TBEtk?XDOa3B2CnFH zRtXO?aeU#XC^dPHEuV9d4`8{^5hr4Bc1G5z!keB&867@bwWJ5zQ1-XgRNGm*mJN-r zHj4E+MYGx^Owrs%u?!TPH;SXp(uz%+gg*4>bvbHd6wcPsa*ruI($@elPU)ac=E64O zGaC>)6>$VE+Gl}{_{b^tk~UMeY7?jKHsUuxY;=Ti$^%R&Dyx~nQrU(mEPYAKLME1G z3M_r#9jaxz-bR?OXDVDfbcu?v|7?UEbwcVv;*^Lsx4Pa&cr4k>MuPGl6ACu^<>@uE zzA6eEsWz+^bS%-I->GH#6BcF6{DyQw(Vq(+I%;Hxjj%u`6#aQG4e@as;l(;3_2==5 z%f!ZQ19Ucis*J+MXd6~-8%-p{M!d3-UC}6AhK+E8PDpITEB9-JO>Knt>4d~aymGTf z_%T*#%z`P@3B|DFF?qpX%GKG(h{ncUHmo!qOAJfDus<1WOtBFjJz3*d3`=iogxNO2 z-8!KdmY&uK+u8`90-@Een`?4r*XHPqOnN;^eQd${jaevT1e%heWw*jcaETxgen^)_ zb%%|rjY`G+v%;Qb2!mFa%$a?2l5Y3$sI%GRg1*ow__OPy6g^@xGR1I{ch(=V|^ zW6pG@LC9mxP>pcCjWFLJWH!<@!o@bij)IUqSnwOhDaTAc@9X;O74XGtQTXuKz&>a# ztV3dg;t!SQHMjK{Hp-PMrD~e~qRiJQzsERZW_g}UNo)Y~s4`ZgeA7mGB`9h9Fxxmi zP24Q&r*o4Mjhk6Eyu=20amweKE81@(-j`(0+^MY5h*NFEFEk)-rq1u6Xy0K;#w>s` zjo57Cj5W>PHo0}avR{o-OOMz9d)NS3z5LvLcB;{*!7S5t;Brf}(BTx%0oHw~>0D=p^I-)W$U z(mNR}nZPCru!(lCPhiNgDE?^!>tleC>`9LqtvU#_6oHmvN4rNu8*4-RHc@9(6s;M9 z%_6X^ZJE!lYixYxX<$h+@5La=8txXQE-9X~TM6 zU=gE?bsw<6FDz7ulvlU!*LZ5$SbFpZSx7|hBRbnp`n z>kMdzb-s^2Qh7I-n#g6Na4!(cv@KxF_48D7mMNXP>Iu!s zR{p^lFscWq$Y*_Di}Pb@a1835=h7KBI3W~sx+hi{y+JQjl`;-VKts>1S43E@wiJg% zmVR6-+QyIPpv|;#3Cj#F=gU_(RZ)k?>q#d=7prE-8 zka$L`of@f~?7jCRwWyz+V=d~m|HIzfz(-MCjsFvpz>35PCc&s!qehL!mq>g`T+m&T z$Smwa0FksJVo^$4s}Xi3R>0sUknK2{YPH&G)xK$4TWM89w2}ZO0W1Wp3hJZyR%cyb z@C^bg`~RLhyU7NE+CGnc`uzUk!^zCf+_^93o_p@O=bU@4%4=hEvaIBK!rk5h1x6=P zSvhZ1v!{!Da=xo`jWvfH z?=#Ozrth%t*$xSED2dBRf8H5>=6bsC*AK}E+!()2hMzb76k(m}ow`n>QJqHX?o27( zy-L6SyI@t?Yc8lWpEp`x%k-sBblEMR#NzRGP+@M|2N~`TJ*^k66nY)7uw1S4H`+gYAx5;SFF0T!neZwS5{Pt&D>RHTB8Sz{ugRC? zaT$c&Cuk;bIY7=Z`7eltd^pZl;%=vW_bW0DSU0-JjpNPsdU+?t2!ivZ`}(qJg`VgN7<{jeT>3yyN4|0T7j@*OEnl%C?3)7hvP1Xn|82ecUnQT9b$8$XcM{V7@AT?_`NHY{ z6P^B-2VbTCaf*JdK&F(FODQhWSTKN$n3oQaS>)RYM-WpLfx(^g*Y5s+iFYyII1iW) zEO`=?T-5AVU#W6gDpXA_$I=-k1ap`1E|JoSdCeL)5nb`~&C-Mp=DD>7JQ%Tv^FgYb zKICS6ww&O0J4484UXV{v<>*j~P!TM9=9zECVsWR`!T&_5OZF+%2_u;(`NqV-kBP!> z6HTj%_&lBi=wJ*HqdMA1_%wLl6nGvdx_Fnfh!h^<9HFz({`6A8fx`=1PwO5+5}|pY zv^PAfh+G{7eu9(jot3 zS~!K7`Y*hfXRsehkHk=7r@ck5-oXo+Ic$jp^QDk zoOqtd1F%*(W?gRx^OK2OYVJJk^Qd)&h_%FcQ1Z~dZ##uj@cigEI za6$BD^_iRx4`SX3N#9l$)+&rjed>5EB{#P?G_N4J@R0P(W>^s(q+$-Fr2cxq}fLC$#YqljU9Kb0avM}Q#}WRzSEOd!wf zjNMS$!r#S-&X)wLjTvv!`FFAc>h)ry{pyQCt6)Up1u!KmYUzpa3_SFm0=ja}esBBv%(bPQBq5LFMcCREz4#Cr-j%kuwvaQIDeZ z=sPR{AviUI^o+-B6p0K^=h!XFLvR?oTEt^%OYemVRhCq=O&wv^lf^^iF8qu|le2D8 zAJ)bW=JM87RHaR!xx*NyhL-3j!0c_*YNbno!q3uh>;O^?3b_i|Mi)z-DID_wQ65=~ zWtFIglM=vu<^=@_9)XEbRW_GpjiNVbgWMbz8!hX*hC;5?@Pw2aUUr|V;f-9nYnWt1 zjuv6KN7Y2wPIpa6tIpJnULjadsrDz>7eT00n{@GRKZj6qMvC z)%#9ey)bod$59MmO*ZwopNy`^Yil=)WfIY0OF)$Nj@%(5^J`fN-I z(qCv$r!#O(40qHd;dpj+LjU)9dh0LEkOq- z50$D5hkvNE9jq}s6MC*I)=O^l3u~hXlMCaBa!V5L+~|>fk@HHFmPDOu_WbLxjX9R^d#o%oPFDC|#mTr^TbK8sIZW$SjRu{z1 z>4m_JcKzw(Rp?{QBc!{UC0R_AAI{`-Tk_1{PSiAt$h?0Am0Ebz(ZgyGFTdwC{}#_X zWX~39GlO)&uVnVid*SwTGyJKB+tNIV`G${P`&@k#fJIrA zh1KYwx+cO<NkH=&$ED4=ns#I z&Xc5oCDpRBjh~h&#`!w{%FHhs?qw& z+`nv~iPrRMpNm}T@Dt+Yx-sY}}TI_%^a{I%N zCu&a$#(m*61N;%yPQ(1Gw97DWy`M{T7Rq0hB!LFdcIGeD0J48_0Y|gEj5PM5F|(>R z+_fio#;7~UZQf8g-|v=6k2H8an`MyQ>SLu&m~{rFo6FODo;2N-+@6Tf{qaHJy6TJ3KCZ+8$>RQ{K9> zaOu0kGcPRjnR7ip^IF4azV5x)JKcMcciKg(^&_<>f1jh}{wYU$j;rerIocB7L|_VV z1#ma80*C>_AIQrfHa;T0Zam(0>1TNj@AxTEzQv$0lxK@ z9BtUcIohqjip2GvM{~6NyayRv{L~2eLmM&iTgUP z_a^SwaXseo9Bn@EEFfu5d4jtB)wyp^T(>8#hd${%ADy`VJaPRvaqSqLs|8j%Y3f?Y zXH||i5||Fu1CIdD1G|7zR_AClf!l$<0aEsWH96XP;4R>wr*gDvAge7$I}5lBxD)6E z0_{24$AGINNBavfd@VQwrX=9oTz>-S>vFU$>vOaN{|0Q#(T?iO(LMxzzbQxaZKf=s z>KV!dn*W}oUHNQ|Htsp<@qCW<1n})G)PHM^wgWi&#T+f?zjCxofla_UFXw0v0Vlpf zyMV*DdQ|^8DP_ovYjr0_2(s3;BH)un|amGe;{0 zegSj>v;G0T0RLM#+HPQ^%`@Qd!02d>wiNir+d0||z^{QRnD^Bw38 zI0I+^UI!w9Tm_$UzwF%{t?@l@1>F8Vc-x+%y$HmBE+F#*$^c#g^bctha3$~;;5FdL zkH7`+b6^WF>|=^B z+|TE_8W=p(d44h1M}WZxJ85QcZ3J3?K{>hFSik~0fiB?q++1xEumJcA@D?yU5552_ z1pW@3Ff3QQ4tN$QJ|tJG2c82?&d=4tzzaahp}E=;;ALRwVYylba5eBd;3eRo!*ew+ z5CrZAUIO&tqyy#we+9My=||*hX96>U8-PcE=YaHY9aZ zPT=Tcp=;oAAmcdN4@?E>f!_nq07o9r**?Hkz|Vkx0D2L93tR>~0=x$3CqR3^jldJY z+rX(O=4!VCD}a}P1B!FCZvu;fhk%!WqLZjM@I&BN!23Y{$>0|F91a<@GoSLg$3j7Fo2#5nkCFBWQ3v>V<0>e+s)qKDmKpXH8aMXxgZ4Ph`umQ*| z&DFjI+y{IDTy{Er1srn*?FXI&hMbwJ)d0T+wgV5J1r3!^KJa(onDSihEFkx6>H)}{ z(9U(>Na{QaIG4WnR0%igs;4VPk9bW}q19t+Fhdev&yj<;&G0yv2 zxIPG^8{nGjM6OY;E4U`>B3JqLTAx!!GuN#^(b!z==fE=H9bmw?o^MX$eje~^c@}V< zkK;N6xB_^(|6e}_`Z3Utfqo41W1t@c{TS%SKtBfhG0=~JehlwejbX;_yBG<{{2=5?xm3iZ9eDQYs1q$({xB1=M^(E=tQ)6mZN$tGx)keI{2tPG|V&*^K z4S$w7uZGqa@y<7Mjn}+k$(9JN{plOyulh~)&wHQXdoA`7F`)d@&e3AU+)S36qq&(Q zH-~a_uiRvFvqf&$%YKA@k?go%Z(mH)ovO^6FMFDcjPe0<52tyWuf2tk1aUT1`t&g! zMr5$p@(hSg)0d_D&1r=t0rPNgQ#x_ryuO(qk32SXZ2h%qb3;cO?mY_*BcspQV!7V_ zfV%n9x2O%HM!Y@d^2Jv#mkJx{TgXUd5L#8*lGsx!JD6w4cFjA9zG{Tm)Ft<3UOfGx z3s-;Al&kFl27!QV;85UbAeGks6Ye45qWZIs_M4kRm*~qzr}+u!OkjSZV2(UGIBHh2 zw|>|0!7=W5hF=7L-T~hXRO$z3p4=j|b8p?DI7b zB*s8Cu@)nvivYGhSGe?{qx1Fbaryetu{^8DH`*%-Bra!Dh0Clcii|EZIKe)=rsTqX z27aPyl;$FMfZu$8-8~ShFUr6%lLyo zeY0VXEDX5U2lEr@P0bf?^+g5*tVu4Ohu)*QuKm?^Uwrx{aEq`c*W_M&%#(t`U4HXz zzxjdpv8V1Dz9?W;=Lf7hSHNudg|Exco|7Ih2N6Ai&OMAh$X@-)441dGweq_ix1?#p zQ+@7rbE00eHDJ#2_>bA0 zs9}!dQcg7}LZ0wbii^noRANtFKwC0i^SRH<4(VefBVSXki_G8Vik)h}RR_wmSm9W+ z@-;qmjg9!Zx;F+7cD__k4d*dm($otKeQL``hJIqpM|yVF{8!2(cF{E%AL%u%`qa(x zVzbe>Sv}bFkv@HuS3h;&)t4HJc5BQea|b7BCw8#0T-YH0bi>^_H{D3z>@zpm69{le zLD@#R7Cgl;Yh9`FG^Z1^;&8uJK|Hhd27xe(JNFelP>A6@jJQT&0?x+fhv z$~THziA2hP-l8vV7dm>(!DyW6VynJnpimFoWz*Y6@jB+4s|ixMIyTryUq#Ow`smeu zYvfZxe?EeNn!5cuQ8N7!bs%?pz#Q-Lo2&iBZNdDcJmNDCV74+C%)YRl7NTYoT&0`+ zLhr?`zHkf7#ilM3viyKAKb8Fcdtvwh*ZlI(zGfJa+ll6p{`h-Pr_xwSz-rDqJhHHBa8)lS9pQLeu!qAt$u?cz8gzVjLR3q zxqR&&#f!KqUgT}_crd(~Sq{~3`QYEYYRMCuBV zOrIN@kW8zNhoKW0@_pbzJ4DP9!`xC;8n23+Lzo*^AhIwU$XD?seb#uF{h$PejhvV5 zi%c)zO%YH6lzH1F{MET$OW5EB`x8Q#5X1HAY9kVQ&^|))jSTch7P^3JAm2WKXJk|t zh&(9_*Vn#SqF)GOu4;O+UM|*{0}1VM%S;JQG``M$?tL<`M#=BWrUmyeUD#B0pP@gw z#a>C&5rVkw^hXxxwD%Cj+^gaUv{m;d>e zpx-PDnBQ^vc^oj;FhW&ZbABxB@q&EgF+m~!(q(9ecctmqe=eil8k^>ejL-K)#<+Zu zj6#NSc7SM_;TA58yeWjG+F<)1k{ENmGK$AbtXo3xSEL!t`KS7<^XjPggI2|*#>`F- z^(ZxdkS8nkqN+z{>DN`Y6OX%{u*LS4)zUG6=MfyBsPk%!$dE0FqWZEy4K3c4Ad3)( z?@~z?4_4-nk&2uBGe;6ZX4)W^eGd^z1U;ZeFe4<d8oI7eBV2H~4>2%Wh?B&%jfj$|>AtK!9#I19C2#nM&~Co4!Xw$52iUJ}hGrXI z3=M?ks^IOyoe?@@Vr3@1IJLO$dL?iC=4g@*@I_d64>0)Qi!dR@eTccE6Jjna8>#r{ zK4%u0Kf&SUh51U{ca#=P4c;=tI{jdy*h_5h-AdjuqrN8`_9v3g_N()J?vM2)64nTn z1q`Xc{)E701ny;eoKnJwDpQm2MKHWBqqxIpg>4Gkqrhsz{eix?iCU>VUQ&qIUwDGa+$_ zQM@yFxG(YzU$~91;P0h{K8g+TTc>X)ES!Czq=|&!PGe~FG^CzLm4~UvFo>8xgN`du zqVTkfr?0l(-1YSfLJ5NKBdnRLdPt@(`g7!6bE{!qL+4z>Y(&>sr>o_q^d&SI=yaq~ z7COxNesf$lG9_zK#LXz;=D2JYvmF7#l^!j!ZtU5j(siIx?5rkLuhO4>`oMK&YwEMoy?!6F*YDC6_d5M2J=v(=x9;`(uDyQ$ zVz1wK@Ado6p5JDxx$c>5JvCClyLx_G8AE%1(3ax8>Zd>0`$46-YSAu+QGLi2-W^wX zGF$KP?o4L6-}k9Rmx8n2*n0Zuom+c9*}19r@6r|mJ*VJHsUlKXlc!q`A&i7`D_&!v zM$q$z3+t)1uf0uJlrP>ky6p53C{0+s%rubY39i#R-) zo9QnnbhZS7W_3R>p7#rtb5BWU^1G?Bumm;p;3p-_W>f@{?(;(0?z7w(D&4I{oj#^P0#K@>U_u}-D<@YkxTq2nZrBob1y zSW5!QB2#6ds*^x#PlZZ1$MfzWU2|-xtoLe72k(CF!B4VbunhCLcwQHEYPN4<6iWLf zuw`DOd@BJ+>6NikbHR>td_y+UA3`pj+O04PmsVy#WSWlB7g=vH#glbpdcNSUTz$Gzs0JGKFbi7TBhwxv6XD`@ zYH`IEtklph$V5n2dDL=6ep^$Rl;1`_zthmiJcAC&QNH!)f6Re~b#(@sFLe3g)(pe_ zLg*d7&W_EMnZmvP>KeluewP#}fiTV0_II*MDV=4Gm0Mc+B3eOz@hX-=>F6ma=6Tc< zsChYyM?bP&zCviRCiUd+b8kuHpF_S)ew0cCAkC3HX|zy>A@gf>a(-oU{R77?{rf0G z`X2%EauJ$>h4~`gK>#BAqAvQ-c>Gx3&4uzmAjiv~%2@|p$hj~+bDeKz)K?6S*7;g@ zWzfq;t9`CNU6L6)Q9!IlXY6bJlsD_q?(&BDc|ty4$lKQ4@SRoig^}KgK3HG;7m(+B z+$rql3^cv^l0qemQQ~T2Q&iMcLO>{LhWfxmBHqG(k9a(H4>*Rx2_WM033F`!ALm=`TwT7wi#H0|l1!^)r%ucrv-yDdkyT z`WE|Cm26Bl6cRj^wR1`7W?5HA{d?Elu#8T0=~DlT6~&YY#ZcLxlBWw$Oid%8?Z1y? zdXO8oi72AYv1u(b(j%nbeR>l&l)m3GDu%m z@s77C;~VJSwxeY^5)$ZQp%5H~O(36ser67Hb&em+oc*u_h7PYTW8u##W}I!fH-sLQ zDXM@OMl_VDDWy;)gJNp>XJ#36Yt9;}_nNL+xB*Lm`B-?>>Q3>46xA_OIRk_-+1fS0 zSdmyqoh#=Sv9kW?;{xI+!$O(eKF69t7RkXa?SF^t>%R$(Iugv%1?SGRw; zM#j$;uc=3dEcKg=S97Y1Fz|3{xX`Lz>~}Nlw^aqxewYm42QaAK=VzG%Mn^<^pOm3Y zH65Y%q7w0&CAFV(uV824R#w+|& zm3xb-&+4A(;Dtnef<;F03(DSQW*o)}rlYyb zR64X;#yLU}9U+TnXAQR6UOf2UIZ339_^(1Q+Z}DSm>Q60{l%{;{W7$Yq?79uogAm= zqz*d4F3H=yXk@1>mrqBXy%Qoq@`dvrXg8t{BWn40Yj^<`*n_-H97!@xY@Y62p|e=l zxeQE{#hd)@waovWYX1Kb-Q6?)^VN{F(M>}%Tpp-J=>6Ca{FuE6uO28~=U4N&S_dNX zc1l-C`h!V7Kv^3$h2EF)D8wj!o-z}K1W)MhPm-5;oBZhr7*78C^mm2ycbP06k%eG< zG~Ps!n7-x|Akn`3-znCJB5kT5Hkmh^*JF}dBOw`B( zeq_hiJxu#;jz9o4__BSZbL4_vGrwY=)VLfj|e>;N13WbI9aB{Zr3K8bVx%}?kp+WWm9G@F2K%Z{M#Tf!NSw|97 z?2=f*uiHFsmh>Xio+VG2D6mCZ-U1dAG&-q2^hZ3&`M$ErV;WuC^u{+- zxBIf|ui?W6M}x;Xe(tTI3zZrZt06WrGp)YvP)$mz;Y%n<4s*n!UgMJL$|;SVnA3d` zSFA{0yYoW_8IhEy2a^c;NG4*2?`ZSpL+{LxhKpN-Bz0?;tVc&@EBoB&>|~*s;NRN1XdxxtI2ZhGUjX>#N`zS8SeBYwBpS zw%TH^;IJM+ntY;=*IiK%DMrDhqMXh)2kgJ51Er=I?4<#2S16N8#lWLfb1>2$`Bb=6 zuQhxVE+g$@_A5!O?#`5wlwAWtQ56?`0SdXe?=>Bo;apPou0pZk^2hybg7bD*~zi<%`)mB})DzGTj~|C;!$ixgGnQC034 z1q;6IOo5iau*9Bpr)2A@EWe~+!B{`emL+nausV2YgRs?oa}8!ozLzEPy@z}gHJp@q zB&xH@@|gt-rl*wi_;n&elfA#ZEI6>rO>yTk>c6BUa+bon9#(CSohgWjC4QWcS~ak= zft2D|IIG5&Kiyx|U#K*M%6uszIqPKv#OVQhhz3B}H z>SL0q=%Kd*1XXwZM6l2n6*G)smK#vpxhxx%2zl58F^+838|Lm!bdK^s5gp4PLFS}H zHdjefNUy>$(Fs|T3(!m2oB!bCvk&nm^O0_G@)?}S=L8|)L^W3{8^Pc!l8_dFtFX@F!t)XDsclp0LNSUj5h;35+ZY$ZWqVYVz~1_64%LEqo_#YrHr?k)+}OsE z8&z!%_nB+OMvDvy%Yy0S9$>DQS3$e}T7>fxc^W&`dF4pX`6=tIl;^>ZyjTOw4doRD z3ySutqf^1bdsi@)tBw}4-{Cw?BXT6wW;81!PmL^JW(b|mR_306m!Zcn*RXD6#csG# zw`tJX9yLuS9OM`_AE3%;aXg)|hznhm_{~=h`rGqpnqW?E+y?sn=Iiw7bkVnj7mE9{ zVGcv-Sb$oxOt~tLgTv$N1_Q?&7jW+h=%d^1Gd>=nnO*oP4-dF^&OK-)R2FZ2|42{$ z&a~Lf(l`%2`cK=FPbSKU@6M20b3=Dw2T9I`Dxux)-bwCl_VXW&5FhAVpL@^TLCWJd z=Hg&d_a6PHEv@#E`m!!hgV_1Z!-Wnn%vP;g)=*ead-R4Asf%byYh?!mg!B@MM$+pI zExh)-j|!D1nRd^F9Wb9xkSQN*uwS@QQK~Oe)$JS{-ND!1`uT+r-XI@q6|4b1Gow&Z zqTz$&9eO?0XFi=me<-gQOQJx6fOC2X7=^F;@)bqHFeNCvGj>!8xrTzF_i;+8>_9jj68{&CW z7k8WB2RbHr9**Xr&)t4?z5#bp#(Ex}EGf+{UvWIffcn&L?hyV9*BO>D!I$(l!Sh&5 z@O=4tW6}igD zCa)4=lRs@Qn>@~u|G_r-ui($`IP?2W(R|^R1S$35%-^XmULpOSG|A)Qwn<;|z9NOM z?#w?7iH!YkC?K~xj{LsXZRw?(?V9&SKvEMNUn)$UslHSbx_zmR!>`QPYd<0?G$Vq? zdM|&fdE!s?vf-FO&f=OMJ6Zhqzk%;QX7m4|*33(*<>dJd_Dk=M(9ndI#s(^{{Y~n3;Ek(UhUI4ptb}w_M%& zU$df1*#bXn8pG7Z4lYd2s3#3;Lbmf0p-e>D5D-jzT2!BS<>TOZ$}uTGe>bDgTOE|#i=SEI0gIrRF!P%XuO_w^}t zaELa{ehhs!5@IO~a~_(`dD%d|VO?AxQmkSBOufbnb1pCE@^UV+(A)sYJx&iNR!tgC9p0Um`niWKc7yN@4B{<=4J9eZqeb6f&*|&y0lmJatJKJuEsiE2Rg7Rs z+q0ON{!?@{{|Z*+8m`f3IeUZxzNL$@Wyqwv?T3o)r5v3%%6*Q?l>V-T&#m@+;X- ze%=03s=6{y^}T(7cmR%RZ&4kqD%hkkvpR#(`&Y%V8U{O0otM0+w62#Ym63+QK}jEO zt+)U31`ORA*Q9u;5kL0qYqxyCPLpJL6JbJIjqvX5Iki$ zH>I|8S^F>z#PiO*{)?K>tAF?Yf%&WmG7^#+NkiBJ;LuY^Z+c4hPlBFQ2MIkfQ9Jup z*ummbJ6OJy!g|+0_LuZU&tI|pFD(sfq3)H=ZgpkV9H16OrhjN}xjek4tS`Q@*M4`I znDZWEpOSds(tGi|^lOmz@stw7sjRm8$aw#|+n;_~qzLAvU}3g$eT0;MblN$ZNE;}m z@K~H!Bzr5oB}OscitLhwsfG-5$ZoOgPe~$gG(CqSUnl#jEq15KfKA%>u}KSYCi~CR zR4e?z=|3ZK6-6V)N3P0WQ3Pq(f1Cuxnv;vz1E;3UM4|4kIVLj_!Yy^FsCL}0R9(JH zU3N)be95|;nXJoEQkUj`uKbf#`4pte?=Fb)e=3CxL9}8fom&kcd1St_kvY43E?cK~ zPz00!3{3taX$m8$%_0%vs*sVXqX7^M|-#pQ*b z@V2zm#;^`DO2--DR|k|%VCz?eU-EidVOe-vMrmsV*@NlyUqu5$M)|6Z&35#nu&mJu zMX2&GGu+kLC_;r=J4F|<^#$8{fp$I5&tgHFRjI{GR3)1!{*%_(4Ft6MA-E^yUrn z>p!FX`X8cY!_|wu(LmW{oko?a(+c6e}_`%S>x&xb9!`yEJ7L% zbLRB0y7ZdU50g3Fe(fb^K9A?s&J`us`sBpEDfk7mqA}C^8N2AB4_(@Ob-p)0Hj{z| z#@(475j7@JEnlR;l_F}$n<}eGo>WC{aCM6sW4f#M>>O3Kc-}}V<=N4m796_5mdV^Q zW@Etaz0siBP#)>66@rp>qcrg&qaRcEOHh#O9jkGi*WvN z|4^L2TFE8&II-yJ5ln{nA>!yuim4lLW`dw=2Sakjubi>_UlMY?9cDXu1|@n zO0qiH$x7xT$;#PiS&MKHhg&{L4=iJ{2kz z6Su#MHfP7`v|!eX*-}Te)7OlXnn(@43Y$&PyOnv&T4oKpC6cydRa$WHihQ!OPgZ$- z!SX&S|5}-^cl7c7yJMv;U-*4$I4$de!p@zD#f#o4IY1CzwcIh!-C0;Kzs<~ngA?%# z8Vg+V0R7A^`@X9v1pQ2PRp|~D;DcBy?5ZaimwiLxRju+|be>n$v#ql^eA(??%7=EN zeJ@)a%q^pSNrQtU3{x$~QOo(QGj{%{jFr21I#^lm6VJgzGP9Bk-{H(i$49?IFof_z zmo^`_^`7s}Daom#_T;ag&Qm2{JDaC&BIHMI5FR2zfEMFqE3SOS_9_;|_WR7@_ zt!(BN(O?IttCRdDm3$Nn2uTyKW@dIWl8=yYa8XFJCJ%@+^E=POEnO%MQpyV5Er!Aw zMlrh@SZHL-Js|w)33|g}RAbSnf>FIOdw>i}r|m!bF`*bL3(F*c64A4mmi&BP<11zZ z6`Q9J`VaD!XEX&5!#N#A+nf*m<^ICi!BQ`?T$pk)VrQoyI?*%t7O9?jjZ1gW#157n zzhyG-;Y?C(kGn4x?*mnO!x+KazBn4&8%KJ>kt*FkkEhtJ;jWYPhA9woxa$PH@p&~$ zpOb-lLYvSXL>vBeu--780*KEL{uD#pB4}nC_3_4!*%xo^*Jrga3s`u^0myT0Ovw9^J z&0V-_aIgxp)f=7#ht62VU6lr^QYT+Y*^z9?2+uVGPe+$qs2%*6?#3E$Cc)G zec6;PtRGYbsv6>6y{fZm%9g4TarOXCtvq{GXp&jAt-Mj{6&eE{RClxVQ>wQ8uq=db zu4O855* z7GTeS^T>qc@rxsyFd`2DZay3?WleC|qgYh>Em7K{2EdG?T*K6xl}rsXb(5SRL|CV* z?Ull~1}lUMYKPtn#t|?qHUAOOPv(0FN+@iAN~hoK&|gn zWvE5()C;wknJ;MFQAul|_>pW>#eSj;Sx8N&pvp+6*}qx|MQv9M_C&Z*c+W9`cnbrJns7zdMe2xi-{XFpgS_v!kvlY%D6n<$e zT2s#@brAN2xY^X!@m~>{;%h|SqCJinRtf&>`Ln1fY{&2=;-x|cGpH>yLS^A>wNOHi zc7jCB&n(hHpTKkBM1Cxb=is>NXMe$L6-!0rw`w1&DcNc{L&aeW=oPIJ81jwakv;kq z6(165u5?v08r#!zVyK8__|17G>|HXa8pbh@&{iY;MfUa_;5ScNg+dU4b@&VXUZwbG z!2MoG?UID$LWa0{ZVArwo7Z9lhDS;*V3_$ny@GI@amOhu-!Q+AmEoNbu6j?|zullF z*IZR=)d-0^iRkHx{R;DPzWOZPFb_7uIINKyjWhHL{`%c-hK2;pHTFy=i*%p)vX2;+ zjpD0Wx|ZZ4ajE)-44ChsaZ3>p%72`m#Dk6#FFpD-5?C+=`=drRILf`@-ARhgUNV{ z({Rh17Eyg2{Vg9MZ{FBJamjv*KHgIyg?pUQ5}lZ4XVD~C8kNwl70E_TzgsnmB|@^! zhLtyYeh%-+L5F=)&d8AF0~rT_KFyADLoTHdS?c z9mT@Z54mwP3oR_6^oBw3B3WNb@bFKe2y4k~N(pzl^u>4ZxwYhC^)v12*~Uy5K}DV4 z#CDIJ-sjlqCDfr4eTSIe-ujWJ5kk;MG!uzqLS*pYkcYE>7qQ)1(5aZRUcpUzm-5Hl zB*XH=wIj5)3>H2=B6+|Xk6Bm+^ywqZc^61_v7(ezYQEgJ@OdZU{zMp)-i6{Gv8|`z zKX*vMXK6Sr%i7fO{3rZjr+w@bGIs~I5!B3<&9toD!d+=|N->?{ndLM_w1!Lv3p$PT zU0&I;fFPf@@ETDmZnQ6utWhJx3Y1+>-on6U@Rm}%RyCSrig^;Yx)KaiR@l*>gq8B; zl7wW0YnVt+T?qw^>7+6DRnRzJCloX;QP50P(v$OCDQHp)2;J?cVd41TAX97Aw&-U} z1}xZA|M>Nas!qc+)q2iMGp9TeZEU9JR-&1p7bOxl>8l6D^M+lDa@1}=GZtSySg>jawu?M9_Rq3H zVo}30cE{jyJQr2Y>)z=X|39~)@kki%sf_&^S>T$Pg`XtGdPAXyCza+8hdBO?_U?xu zRP=vWmx)e<;C0DqD@$80b7tmavcMGTRz7Ko`AXq6dK$fIL>?$?CQCm-pQ^b!3eV$u zvU%)LmCeuk%Er%vbVZtcZDme83mTA>t-bXu89UF&D40g=IP1WCCfs#)5O-}Q(l8D# zbuzsynQ70IqX z7*S90tsq=$QtXeI@}Y1;k$Brg_7{h}B5bETm?8HCV%>P+!Gwg>zCswiJlb?yERM)K zLkpdc(|@%V3J?)s1?8%@Z$B)3D%)zp;*6POGFINN=k_p=x;!P~ZpxKjar&@ZR!RBz zzlCarFX?F}Q^ZNN^9P}dP&M1dn-KHCFWJ;$Zs`{1^qVBiQnyH_-;~GCcxyz-c$SeC zxk*swD7S;-6SM_qTtBC~VVOrBEG9Wu4sp zV4Gmhx&W^M4C#g#3Z6NQicv)d7hZ`fKPG0|{(#O9P5xkUa!4*6{5{2IJ?-H2RW5wh zGvZ|aM0gAy?Br$NpUfx}H5%UyX6>jlGD3sY{1zJ^d*i5y*WDI8SQNfa&u+A{WuR{% zpQ7@n_aql8WC|E>Q0XFv9&>PoB!lphY< zcblx#WK=k!*PVqWq9!#nZ+$<(jvG5cfa1g-RF%F_Npy_U_3Q!qP}b6@F2{-q$6r{3 z-qoH2tB`qoWGDw+r+4W&iYINbpV})K2q1>lC|`z7H^P6N&5g)D>WM7I z(FSBrI8FLn)i<-4FB6N5=v^-I+|M_Mr+jmK$~WKT8=v_Z3gX~+zj>o0e=Kg1Hihd% z@g88kZ`~>tO3B*!ZQdx=W0-LyhKkgP)vASXgW)>1I!~l^iPvzKcr}`e|3>cF61i7a zxCdeK!_79E<^8%$nGdfl@P!x1YX7(VG^{a%z}RhFGLB zYX+)v_00OQ*zP0eXHDaS+3~#P=Wn4xnI}9T{yvQ({s6m~+O>9TvychZG3?_<%ffn_ zzHAypd|Ki8qQfg=|DVsSl3|xg{(L^RpiHZupB5kN(<{|fSZn{9%$zEHf&^yY>im=~ zH}_6VR`&Z+yK8w9VCkOiV|t{583D7fP{s1n>lDryvx7ObRz4rz=mF%o!Ejr(#uEuAWOx`YC{N#P8pD1G0bx%dGL86Cj<}S7?uJ$ zCYd_hNsUEGWuO>Kw@nGxoV;HQ!1sr2Pw~luskcdq71IX$zc9|qtV`l?9@LmV^I3Zr zCL^J`ChC-mO)2#&tl7SOfnYP|1j#sox9S=gRb^y!wK-OH35>;qe{9b_g3%?Fk;;zj zZVthLUcbl^wlQu0Y{R}24F`OoKAv~tc!rnaPt6lj8DM1E{y3j~vGXwu>)n8SoZzn2 zd>{Q-wX*lj5PgM*()FiI+lTnzEvz7>(k*IO+K>NLDy9h2*_k&|KK$fD=R=vd+8USg zSMx4EhQD;uCDK^Sl85#J=WDrtoQY4SAQbD7F%7&+}{PEOD|Q?-znXb>FI z?Vbchzl{u$ckK`%0mqj8;DLgnZeeHdiTl4ntdB5fK5frB4&{rZV7PTQ)k>xMYWe-; zJmhkf(Gg@MdqJ#D`HFSnJ?NRm{HnyoMQcQiOtt*{v(jmQ`hE=jdokddBFcn1!+cxT z!nfgGz;Y&#SkCC#Rj?QQ>|ClxER8Y9aF7%9erMSO&uyb zgALHliWlBcc#m8WFKQ7kWmkb1ol|dgJdHp_OQIS$gxhdHO2nPOCniy$4Tf1$V?TN|Y1t#ksxx)# zoH279!MV{5j03e9=-ri(>~V#ksOX0bt3lx`fqm9=bcT4Xc<2QbXtJ^swL{xoNt8-! z^u}9Mn^YB~NCFz+0afFTR2yEx(Z$z#-3CEW0*E2b7DAutku8KoC$IJFKZOxFy`%mK zRUs`@%H2H_qlJ<>L_)D_L{{@u;SYB{^16toEK{Y9EIVbst(0JtPp$Zas@+DrtU;t; zXhwED&lYV%t#D{XfDS$Wdq>#UTUu{@#^r@uQD!U^OmrUzc4wgmlF((WeK~1HV!=er z(huw(oF@cS^&lDzf8?@9Q2GNo8Ov+U zFC6CktC%(TcU?liq&NJ7cUHLDzVsILNqB=cyvTjiMfbH;-LKj2RjK0Nr|d!0S6BWA zRXd^2zhZ~WL1}T@R#Mxe3|Ag_S@`#;UY>LnQU-}Yp z=<}N&`NA9YfculHGXv%)oZ}kaGt5uSTpv-2Wtmw0eadAyFL^~mdNM!WG)Q(CcvVIg z>|8la5mePmqr9p;NVxhb@5{$0incmjwX!INLa&NPtPeR-?O`N?=Gbieu>G_t;cy}6 zlU3BuA0)07K5HstKJdQ%20N>farQ2$1toSLC5@Gm9v9>we=F&we6az-gO@q}B+Ai- z{z~=tz0pZ`qe|Dy-`B|@)tuz``#R6XR1--p1ZNzaRU3z)CPR}bMu?;u3z4qlqMm8t z^y|yjdOBSsyD1xKA64Xd-|qAv??LCyJ-ng$fk(yVxY#hKtdu?WN3%JyU{5JCL07w#>bp^pb(oCkxslyXMFe;k? zGu@*L7T`bADU;1;*#d0nRUOjl8DXF7R8%Y`hpIc;ZQ^7lT9A1K%d4b<^t{hT31yAr z!Y4i2ZQ=B?*Fe=?Rs8Gd62Z3|r6p36gYB*MjN4=J`p0L0ASyO$)wjwtb9?B3`o}Mk zCqZ|@_(4b9^c`u2v(5dSn^220ZtrZ zm7$hw49SN6BZDfg0p`MtAN);B&QcYRdXBCnaolvw_0Zw&n8xxfH8x9UyJ&h`Ma=g5+ z97T5{=zvmcdZX#O!+C*w08JiybiLvQf&OTr)x z+%d+;2v+ed=y@!k;_Nj)BZK7Exs^@CUXb%it*l`?7`#MBl=(m?UsFHn+mz-(>Sn|Nxz8fg50naV0sGOUKt79 z(^j<{VxQ71Xq)(xSiGv?-QX}8B}Dddp1OG|r20NvdxFO>`!zf5o>V4>Yi1NG0~GA-XQ2?$+GNNcvo_)uV@kZrYp#I7oixbva9CIK-~i;0mS=T3m4^ByY_ z%#D=^0L-(eyd{_=a!Y!lbY_R3e1l|-es@S0`RNT;T?j`WFv z0Gu`%W~g4xCo3I6C)K5;ul-F4dFPAVXNJZn8A<1xRC(u1+-IyY>A%Bg2FuT%piUfV zLL;zupT=_N5}q0}{e{@_D(Va~m&Mv%yG0&lj*8x)KEtbeG&lRAgs3J5gyZZCk^w4) z*<#Esp@YNmlk|q4^GMz`Jfd!jLI-1_FFC>Q-Vr>lZQu!bO~s~$qSK>uQzcAUZZoc3wfL`HM-*9MWn(IS`x5BWck~MFNbU5JcxKuOxWATqQiW94{yPF^(dMoT3{V!e|H$ zQVC=I0JrFOF`dmwW+QhlA zaj?|spK0tjcd5pHk4s8pd-Fu4FNqe3l|GrZ-^{>2v4z!L(oCEbW^2ib2FFh7PTS|` z+|?zMkn9B#FY=yFK*DO{l|x#+tD)TEw5Y6D5<{-iH1eb0=C|LxMTTI&99=`tm(|t~ zvNhb|i5)MR4{xzCGDSba5s2eAC?!d*N0cOfE2Gm_UJ^XXN6-!{t4LK$n7x(tfSuG9 z(IO5RLsyh2$!AWg@s!P>9QckWb`0vN;<1#HFu(MaF$DH7x&)f6GK=7ESq_=dKbD9{vO4@!$uV~pDj90g8j-D1SBGCoPU}z9kAeRQ3~*jrckKS&M~tEJ zz8tlxIuo1KHib#7TzRM@OGJCXNWj=g#E|}2|zoria^4Vg&f4aFdN7R3S#oG z%G~M5-<5pHbkO}}t|LF!A%bTf^R{rmG?524in4tMk@I9FN|XebQ9e04$SEX)jc|pF zLrO$+m?5*{Ws4+3Ni14xQ5Pp%$tnlL;!0ja7UJ{t;N>X4mD0)CTaFSMeU$7nYkW)% zPAAoQiLFul-5$pJI88~$J$ukoHi$W8g?=8uy>6U3{}M^`jDRR6I5`f!?k(|0>d+sl z*kf%T^he=VOyLr5s3Y`7D)LmkA+eaBJy?Wm#DQs|Jf=sSrL=dtoF}w8-1WKMAg6KC zlwgzJd`g7)jrPE!WhJUSYW2qDyrvtUR@hOx_ZrM9IF$zvwv0UpMEa6nktDha`Kb9x zX9{=FF*kvzU_GcD%AYFpUrg%+_Aat^WX`xv99qd zsv^G*SKI9Fr*_gl#QhC+$7gTHl|09KE&3{N{wIdQ|4JVF#?M+&rwH-@yPTkA&5HaZ z+0KP^mmFEe8AU<_eLDTh&~Zr&xRk+cZhdS9dD>5zj25*BBOI6H$zREmsHXePQ50pz zp&l!c<1Z^2j(eYfiSTM{Q|Djy={RYaV~K-7{IsTce-g)Z? z#IiOYhhzqd+X?wg#9`a!Auk!4F$BAjpQtvP?e;pJ8|FpCu-ZV=kE9G=`b(1epLsFX z8d8dnHsOkYr;-I+vUjsumNPI8sW3!?(sfF<(fV3?5*PV>#M+s6lmy4g&Xh)rHZu}( z8EGLLEJd#tUQ;yvB7y*(Jp$2>$YJ)xD|&Z%YWIKb_kNRz41{TjsEZ10C8umL3P)p? zl(Q1j2pPt~VH`Zi1H42dqg^PGM{_C{k;LRN$Lb^=OCZwZ{eEgL#ES@D_3kLm9y4p- zgM||BPi7B=ef<94XUY3P`+xuLnY@4Nvi;`&H+kRQ$9sA+-&meJ#Tey%iLclw+UE#j zUwO4hzom~rXbF2m;(X)+Ji9m~IVHUB3_oG>TcAhLO%kr=;R^OancI|EB1NZGom8}W z7VZ8esrAPD5ZX)G0zB&A8_P9weR937FU!!`K0NyD%JSp&##2dzO2HMf6TWBN8jsM- zq&2KqS;LaS3H`~($vLtNBmY@R%K{@0ZBzkEs~ui8YME(4ofSsc8?yQn=_QuM&+<2W z7K37F6H2*hn%X&naAF+3Asa zTiM2<&#^2K1B;ji?dQ|Tzf(-EGv+Gx6U;I_oF6%0XD31SVguwf>0cL$ohwm%B%{#Y za-CGF3jON^#F`N|FUL4%<(-mJgB7%n8XTCcL8=9%p-_aEHZ9E?8D1FuCN*-hw->0a z>CZR3w1tf_l1_{U=!c%BtDh3#wZO69#P7!(f=9HuMQ?msmS9%i)elUR5RlAgDm>6K zQItr~n?G{%*if=suGCk%W;K^j%P!Cxa_ML8vQfCo-EeL`qC0rBU2oXt+-=hv{^s0q zQl`j=M)-Z^1A9g|D$~NY1rJB%y_f|BPpXp8rm8snRqDP%dI}_~ts(Xp>Mf5;NcuN< zR8(cIp%cUpR(j&m`D~^hLyZ^3Z|A$vkzP|Bzmx0*Y)?SGi4aR%0bapr29vmRR)e9-u! z&RMVB-(JnPeYL{7d9~X2cHRCOsTYmq^j?4+uvG#4y!4Dh*dctx(2OC5}e~tXq zr4WTU-4idXFZ;QpPrl7rS;F1?F_sVCYBUy)lGjgfrk@Ut1t_RjC)tUT999)9+JJ*M`4M1%h) zAA2Ut>@U{vvVi$2)ZC@akjYv7UZ_hL+YE70n4LT$$Ip{mzjgBQi*XX+MTs9ry?UWT z>xv@rV(Ez=Qo43DA^@h2*0U>5h=&eTv;RBMBJyRKBbrPxJg>Ju`Eg7lEHpKc3rp>V z=Y_k{LqB9!Q7Dwq?1rxy;tI`{c^z0RB*!{^c2 z9c|^s&hDZ0d3?>MntYnDd&}VVwhc^^5k(bvt~BW@)$+dF+3S6&=wg&UgeoiklC)R- z59;H+_2+1zA&wBDH~bYY?-wnGXf#w0&=(@7mmsH?p#`0G@rA3|_1^R2f0;@X@@3MW z#j8#Y!LIEM??PUXZs!hToJ3p^IjX!&TeSOr5FTQ`aMp$wMrpCiMY|>1ih6LDJSbhX zTSA$r2cOAIX zbfSVP+@O;0+v`^-gG^GM{o4B<3#H!peaKEN>6~siM1ApfMxE{<8sb@?;k*DBhGxM> zyQdinL<=IpEM_ytGAovKZ*Z?y7<)k+kKfwyHVQNbaAOu7Ys{QiYn_+I2^RLcBak>) zWK_#8it?lm^MyD*$T1CSV;I_mkW2Q> zRIA-P&*IzSvcK{9+n@*$drZFZnADMf>7qpt1>N<3ma2(Sledv6EDQ-F#6dph0Ranp zyCb-7v}=wOjgd8>noS}#Y!aE_1hPywsJ!9soO_mG;l@ktOO!jaVW~T8?|KpLtFv@s zlonX$U24qi6b);Ez4cUCQA<|haS?7|<(aWvJS1)?RJg*HacV6|EXSR-XYQ2H2>AL~ zS;wBhx^Lsueblbvm5&U!e}xpbJ1Q&!LcaUQKr4+kPMw*?~K-x7#i zi#{6Lmc1PxGQmwzN-Qc5XjgtOMj{qfi4%(|wRel`hrcOkVmF^MX$yNR@r8GxUt_;= zG7{BOq62$3n74QQDZ~9Y6@SVD(=+kEJcf~e9iOWBQ+Sy-Q308fW)pmhh#4bS`K>}y z4u2te{(w6k;tZ2^yh`aLS0WhI)#{MG|Bt;hfsd*>8~%hOFkoN?B^VK9)TpU(iN+;y zu+C(GdvOM+7L6;kSU*}?MVJu~kjK1#U<|`2?#tA4a7iB+2 z?w6FNGoeodmFi*Rfg5^Ovh$ZGAD z!TIr`OP{rAi<>&=3g@GinC9-9UD=Umup;|^$1Gz!ZrW}gk0yerC@hLU zN3nFY{W->i5ZD9#MD<*VT2K?g6=PZn?=)9!Q%38_TGPMj^Gj}!MatiRN4S}~QEwe6 zlk2qTttuJ2RiK{y5aok0pTCQle4|meLGR|!NM*8!!kgfRGITX7m&uGZi{S$7X;9&U zqFCPWRXO1!;qwmAwwhXHwR`SxB{mV#=2MPfS-SElUCcLu70l2jb~Z(nUvj4~<0 zVF*uIWN54+^$Sp)!CdB7c%Qr+E-YPMiY^svWm`LG8mMCW+O$NQwlxlT{IFmYhY$?} zyu^YVes;2mT{oI8QM+MdhH4*D4*|lX@*N8IQJGqyMI!S^w7Zz>J4u*YVh_6-G5rx7P6RDkIO4Zy5m$nVZW(JgpmkVrP_aJ>;L3i7}#}0r37_ z!p0ypHvL1s=y$U)kf=obPPX6;GGDNr*)e=_B!GQe%+=U5i!U@DGQW3juk*8wUp9ZU z$X4@37`xM)|7~HM*h0QzVV%frMZ>xVC0Fyff9y%*U(U*kbR6PZ_7W@;vEqppj@|-c zv*deEmlwjVSew{wUssN-Q%smqQpNx_`Rqq2Vz&mmpD!7Bf?XSykG_va^=L?{<}Ew;D0jpp9Ta>}-p zZ<9S_)HSNV-(p;L1N3*tNflY`l-d1!y1RC!M|@0Q{bQ<^S!&4pHmTvg&rg@(+1>l_ zTbAnbHPrLVqe{z#KkUjorIT>Sx3%AG^EbG}@*QqgBHf3T%ik7d}UV7eBWC2tm|^DIIm&gf`|N2W47J4!uHPovkH-x>>8 z^N)VY2CK?wbG6%R(0O$&*+z9TbNITn@6#vURjMZA4-`&LM#r}7$&jnek{?P@QNR4G z-LEVi0iRHvnw)u)txFa@_V%7q=$Lz2p=0Z*g^pMGd!N4nWrdF4@pm!lVSM`re^LJK z;_s1+zxy)M^4`N==RN9+=bj;uML#;b=9B&1gAX8!c);j&XEwhHLdgxa4Uto%)aZ@d zgs3pj$3#oyJ)Y1m-)ZmqD&~AGG|2Z*PD}OI9Q6yPq02@H$!Wsgw2GN;g_WO&!7bI( za>&=7FIw?qgaY%q9^#(5Txv}&>ITvd7tS4FL-}mZ&C+LiNB$yCVdS)$TVl$hYweH3 zb6m??_!uyVX30%O3r^oEoOdp_;dv8dqi5ve4EnFs{=#-+QsQJZeO9G{h zlF{{$8wOi}qjW2DOQI2NTrd`{dr#&v!C=)-8g-qd5(t>z&bq%lBiF9Jj7=@ z{%)DYC=%l(b^nHs%mG(HpjKETTI^bsDhPMgTBY1#EFXa7h6ifI@$R@;1Hwqg2y{Jd z@D4@Pmubd0k7lrRczK?@6gGnvn>a(LLoVVuSc5j8!+Y6@gp|zzf)HK0IG(3MnPAX%=5KvL7*rGqIWbD5^ezT%E>ppj12E zO?0`HtyPzkfRTeTOo-*2yt&XhxtOfaxR|`0zL>=F+R|v5*<@BaYribY`lKG#I&OMVz%MbI{h|EBr51@tq$;ZIrJ~3y z`StJThleOdF7s4T;KvM*y`(?<4B_q;iBC9Lr?D*i=|e4qyt{ZeXjW^ysf!KeTWoch zzQxX25UD^Jq~f$j5im;*m?#hOqm~An7^7dYPDWpQM{DgpEOX=)h?f`s!hFw353#zo z!x25q%T{vVwo&M(+B>Lw40U6Ij9vlv@M!Hz*apw#_YEwK-g7-vyJ&gs2Q|wV{)<2K ziWUy4i7wpC-)j;KJ~rhJ!Q;v96KR|5^JiJOK+Rk!HjR3KEnEZ&Fu$-x8_^P9d!3uDgH`9Y+Hap!7-H*svO-lajk@B^tRscK>S!LOROkUsPmU4jjkmE48QUBn#!wYxo#OGP5p^C z{I~a9MYq}ZOn&2E#uXvdG;X<J<*AoG$)=I#y1AC;pz(qps~w<@`=IeSs*-tY zq$APClzSI}TfqCID<%daLGP2Hqm7B7L{n`1hyV57J}B5jWJJMeF=`Pt4mE=IBW*m> zkt}tcU?&qCj9rkUO~2XpFS0Ku=$iOcY(b7|;s+wdfi!E=1X-key7%$WmsFF6}fm8Ll`6rDr6q5_3zK=wvy-Wsvd z+NoWSv@6zCneBEn;u@!?hauO*F3qWNO+?p24H~ELG%ggcw0evU=bTQ>mPxY}oto`- zxMei!rwMJkg%2or$x?dWu#h6MHqSM z-vKm+Z{8ycNZfELm=r;^fOoSi_9ID5e~Lvf!UFKfUz$WfFlgcRf;~rBQ@OSu$kWZ3 z@&tM8?kCpTy~mHK>{zjCwO6<%HWRuvbEnvR!(t&fk`wwem2AKDf`$|Ffj2iMi_)*u%n%Pip$1 z6ev|wb(FJTo?x|_KJkX8eb5gF${;^Y^&hDf;<)*tn1lJ!<{w&UMiwCJWVM6Bmz55o{ z!PEoM?XMW2{F?>C<{($K0xo;p)zlS@ba`@6B+BH}?3ZgcsSvz#I2cs?7&_6L+U z|A6h)Nq5Z6^JH&rWN%gc0K*YQ5NV~muQjR6h&L6K8DCy4+khFhYZ**Qr8I|I9pQ;_ zlSP;>JTZf7Es?`4Wk&CZt|e+*ksCco+^=@dM!WZF;Bs9Ngr0|ZIdhNGV^d+scAy`k z8&hHMw&-{(fk(=AW#)ZdypWYU+OO8u2(`?Ai!|?hu4OwEgg0rC^)7S+<{}H)B039O zVPm&yrE3G;#<{~L#PSB9Z-X(E=Bna)j(qu|9P{!cl`zk4M2{}=sC)Dd^R};9ZRyde z&e|n^34K+MEb_SZ*dn_7hUgrelGHsAT`Ks#N=fD1^5+Slpq0Ldv|4kGe_O)#D)zo)Qv%y#;SND;#S_ZpOM|T-CDdH`&8kBpEdy)9tl_oEOaE8-k}|jC}C{yQ9PHt$V2&KF-nTb=5Ev_VbCJ2VrY)_Yf0N!IjekLuEuzW^}l%2BE-Xsf9XZai4^qkvmc zS#(@Y{GhI#m}qt48tKII46GM;c(XfkH$@c4Q}CE-cVdd&iPKdl##x>4(TUSpeVr%r zuMcMpZDg`mHIbLlqv$v-E@87fLGQOxE|&igor;Uly_b&vIJ=2gDU#jsUol?-y<_c; zi%)g88N&euNa&V3WprGiW!%}0_Q23Ac}RidURr2}=aydiSaAWS<5g2zY#d^ps7WJIW^CwJ zf4e8KhJJIOzZ@3r4~ZnGxR7GURL|?I-3u9bXkww`*ZeJD)9LB&Z+t&;QlaBl{GB?v z(D4v|*LpwbYg{?YSMBZKE|{Mj35#U z4s+c&O!w||E%~|N0;CW|JW!7PhNyoSQ(i?TL*2s`3xw zwr8`2b?vosl64FSof+vE6zaK9O;#ay%S}ymAg6s$%S~$~Az@w>!p`SNQK4#u7J+uP zMVd3fTP4l>xYQK;fS;Vo$>8(9Bi#jl>U7A2-yEk6zvEqfz;EC0GU0cw4Zrf<;dlD) zGYbuA8CRCmp4T$&)FkA>kxv$C_Wh%izMZlO*sSzc+g29=C-ZLhJOF2|mY3rCq!Hz* z)^S4Q1JF$*-I6q~#3)_N0HWidpCD^YbI=E(fN;4o0PtW7uf)j^+6a(K?9%348zj$` zlpz53mvIQC+Qb-O_HoJ(fM?Of7d;;g0xYec=plkgHkXD?^4@)CIn1w=d=%~b^nEO? zKg?mc!*=ZY=-;KIHcXatX5w|g{1q>iJD5g+iYzWh&!5}8Fi#xC2q*~uG_lOQcA7wE zy8z7CVZOdkV0l?_iP%PXbmI!77kqfif{=tVX*CzG?*th=12V@8JT$-~jfpGAD86G9 zM52(!HvlSGUCJ=w<_5~p~|xLOzCA@|g81Q7(WTd@skl>ez=~Az?C0AZ$!%8A9d9~$qM0paLlH95lK8wWK@&g(`OcO9R1WPyQkEX5toAvkN$msN@54m=>U{8K- zAeW6@ckARsX#QRthmTxV*UBd?cZ=R|Td^+x=K*ckl9QpJwAgI+2BK|uUqZ@mHBm02 zz;zf(w6qUF?^W}*a2st2%rq;AK!Xg_e1hE!W~V;0r9wl-vz(QPvN_U}tB?&tu**O5 z0+7b_d{LSy8_n%kf$!XW=2=Qwcztgb=0d>xet3|1{3Cl3?I7`X^9WM1cqqORCmE8N zW5pcE>lKO_0lwg~@d7NIH-t*XHwwE+^8SRshorxtn&mz-=`V<^;lF6n1x`&moZE`q zeK$AlQ~2f94wmFvV^9c>a*SVWSP2tpZawbPxYc&XlJqn7SfcCZ!xC$UrO$wrIy%Em zXkpM?B={=y!%oJ%n?ExU)$pvcA#{Aw-UY0%%=#}zc}t75GF>-tafmeI?D56$Zs9y6 z57Rp9g1=v?Fj}kM+J#$jQNvWX_=_BwNT1RNiF_GFQPBsP^`r zRld4Yd5Q382Ky{8`y;?2ex$832sO0h5h-lEW&Wiakg!{p2{T1VqNt3(=X5CM6I^__ zKlwxcujqB4wCndouPxGI^@7oe3$)l>DmC0!?{c5F!Zln&h)}%}DZ)ygALRK#o*Q{? zE|Xdz^C_pBXR4^yr;+L-q-56?|3+m!`8VQL zrETfOzY#pQjQQ}h<;P|fMPYdn{q!MU-tsDTHh7Rx+`A~hFI8@K*=SV>e_$<4L#!7ArIVcO|Jge{Ykl@1DK)=o*8U|iTU7XKMeV?`ocX5G*r^jMC@puc zQ=FT&_=+6C=qyh#TE-9L)x@IO=qz{5@>5+8jmz^d_W=bVLwv+XoNonkl#srMtU1ea zE@|GiMi%dsx*B6(P1=uTvC-L&C30TNS!UWDqzb*6n+&{pp4%VkI3~<~&j4jVVyr~$ z(o5HOInV;$ZF45;GuKv(tITtT#}QBYsr$si=6lR+KoLLO`OT#@_^f#3yR1`L`6c#e zk{(4!J!u~GN4lQClV-ymWRi<;onMT{1YXQ@8jK%(g7>oqOOrKSsPi)d8QZ=GY6h)h zLjz8qs(sH_0HR(Lzp6|fjH3Uj?2VwX(ndy#B5CVp_BPBJDketbDn~fN{W2+%^}%kC z+%)9yvVs89i)%fuhxXWF*bl|R$AL*Iyqse)`L~HyJI6+je~^se(B0|~Cl_6-S6GcTsG;=ofjJk#>#Ydx6| z{4;+3f#6Xof6I6nPYy}J?~geGNtql&s}*0$%#E13ZsSSbPYfx$%Jk#Qa&d7=Kj%5kSS zz+3Chq7Xu(GdyrE{%?ygh+bUeTYl|<9N5pEls>RU+@_A})@lz}=8)mpqV@e5nbKF7 zC6@_LQvFqEbIr*A-gPP4?rAI*bhAt3#4TE0Q;gqYpGOfwdTd^aIZ{;qA&V-+X8-v; zXGySP48pP5_a$xiQ}|&S?+;SO`-IgD6jzwfunJcw5wommiWGBi_$FHkNAZc!llZHJpg`> zlO_W-M~I{={Y`&7FL-?#9(5k+(L0|SPIHgFH>QJPgF>eC~SXzyEJrJ zxfMnj2bQ%frSaC@Nhp=rkw{7M< z;#R^C1I?+cxW~6jzDP5o*{RO(pEP4ClDDazQ0-MK$T2)s-O8S-o1Ci7E!E9SSLadH zl~G+qXq>{2!k2%Z?B3*_>T{&(YrL2GO49XJsQNfDrcO@Q_p?-ej-Kj!aCCCGv!uQq zYg5CWOno-*j9)9{=s<_eti;QFw|3P43G^aS84QP*AE0(oBm7f$z+1aA;Hu)E(zWd+ zWXubf%C}jfsm%>r1qPU`1k*0J4xVaa-<=03 zRuiomVNJaG13z77GJT0c&kjKW!LOTkk}_Jv5r&{BjxabQ=aeZ2QV_3M825yf}eB1}Z}9KY=^@?Cw}Z(xf*Z1MQ&fgFP(Wu){WfDSo~Jnyd11@_3l zrN+vj)mY``ru-rFFxH2CnPc4*e!?1_cbBqclarBQ>Xp~ILx-G>Kmy&}N z=f@TSHT8=4Z(dcyv_9|mKy80u=mZ+ine*SLZuU>@D&qdaTR14Hji%vjT|%is zS!$_DsDn+=KBvuGq<>NYOH;Y$9!!YD$?jI)2v#v?)4GZt7DZ3>{ZaUg(^>F9{6Nk8m2lR>aN%H<16m*h`OxaO%+#0!xDGu+zvub<%8mnT zj}Gj!Py5Bm!OsyS@B`Y_-K9q++ z`5yM8C33Uq&wkWRdC`e>!VFVWFFToAdXl9TonCapYsR*XOO%Y4#UrlijQ260vMjS@ z5kpPj*b;ty=~gZB%D;N`OwCoK&AjeDnapx-d2-jL`DW<3m%_i73lg=bE=GyMA8toV zv_Jn@gGdk^jymfTe56156hl z#bLINXK+>yh*F%)FjDVY@k+j{{U9wiI!E{J(p^=%1W@x74{Eb1N0x|^ZRv^M2s)~w z1r7KQ;~eGaZVP&MV}Ap6c0|xv$FF&RrMMCw?&rLQwYk8dw&l(Z58UoLbF7SMleo=)q%7yO*ST_q5kma*Qu;O9HC-cM(}zr%WeN47)O zyIPdHKq3_e#*#Fq@pG!Pe7){{KCH9sgE$5+U5gFTAic@V)xA#zT;rR#x4D-5O7_PC=R5JSDsq?C+iwgQhaz$%IXuHY_Fc-E2-&?jyQiI%h)z?9W_&9C`b~hfi<+|Giw|_iz6% z&stxp{h!y_`_*wmT&ex4>;A8O=|8;xe^Te^_ukoGcwTl|xA3gxbv8VUPEPJuUE%ph z`1~ISV%l}=KYsSIUv;HVy6jgy(HVrl`lR60EO;i*(|?wAhUYtPCh@cD zd3p!m{#U~Ds{hKu&wjx3u~WK*=YR7$8$YMxda$SS^uJ&Gl;Qb4=V`zg44YXmeN$`t z5R^k3OHs$Ux)NtXKabJ9oN1!mVA0Q_!L*)Ov}E3jJ&cYpwiK#-?ap@ALAP8t*Sous}4n9y$L?(rCasY zmAAZF!T-Z_q%`mC;jGo0{zYJ)b(SXEZlpF~3XTc*DtZna6=_X2tLQBdA!xGwV1Qtb zXtGTd%;~O#_>J6(aS)i)gfnNsq)npCwn6u90+9$Ba2XLXL8i5G z%cFVxd!FM!HFdT(`7WjrS_a0()f<_DBF)s6u#4@u&Pm* zv2ErYDS*~o3J~BIQ;e?Ld9l2|BvD#o>xln}u_PwBNd?C8uN!p**YKLL{Og`nrrwrG zM4s_J{^h+7Sa5S3sCjpWzlxruYsueO9>O0j-IDgl?{Yh+8D14wGjy(2+Dw%-O0kOmN`*Rmn-#EtN!Iu zUo-vN8Qu^u28wVaV4*`>x9AWXu`MeumMlBePdfsoO?u2{ExQV6W?6avl)XCoWhUia zRx;Xx6P=c};5b&_Ks|R|*Tr{Gt1Q01!S?HIxqR-vb+f+FMMO3%(q*g)EP9z3L`h}U zUl=E^Hh*rMj5?|)D{;MQ`T&hoe2a)i>JDp(Z|GiGRTW%q4p2+HS}pPGS>lse;@y_$ zW{I~Z4~tgTI1>kdU7OifC&NG#y|tU8VxL;x<=q?=kBf(M&j)EfGRFKgj_R1-7|1m#IsuN>1QZS?puLHh zMya`hRHDr+4$GodMLNjFAHL%!7Wr|67OnD-y@bCq{wl~ux~ha@Xl}m+<<~M#M-8oC2*;=RNLIMa0 zTEm2@v>b?f?&B;;UnZw3Q8=$zmgG@Lw?22vF4f^~)?Zrk1i$jr<6j&Z|NoJHam$ln zUJtCl>$xGNChAj4D11=tYs)dE+Kg@2i+2~-b4+6koq-f@1xnwwIvf{r>j_&Itw#~XD`bwrK`65`CxR67UhM~M3}_#b@`2_ zus93rIOvfhIK}c>A9RgxRxGbZHJS~0PEFGrs5S?phr#k1ti^O#UTZlk!h7Q4Wfq1{<0>i1NBK=-o0m zpNq(xGsSONbZjwVvkxu$7+&rGT=s|GBR=diAQ1OoF5IGNnftc(n}GN@8(SRoZVVOK z`BAWkFB}~ZjGgb~efS@Y*x7?JK{o^aqW@pO{|o&2V*P%x|NQ^Cf2Q?~EEmhl6cI|# zQZB!&c!r2LXXyk86JJJX7QczxB{2m#=IAAVx%;h+f$}!(k>5jNI)u!0J+NMM&U1L1 zOb^IN=i2E2ciZ4GO`5W3ZY0{QW?WdL83k~JcZR--0?1kj$ippqjyF}Baj6qUNq^-4 zxp)e7Nemwt2QEeRMlnrEOmr(dbfLnEmW#Rdk^UB}&*3h|Pp4%OL#lTZj68Zb&KY)1h>l&03TDxS=naj|_EX@Rg$K&J z_TmXfjda{OAsXP9;7|w4xa_x@{aVbk@qLSP>9;l435{>N+(S>?ewMflpP%=(tFFm) z(Kh+84T@B~*!s5XinXp&2443KxkDP{G-)N53q9%TXpRGX1FJ%t}(RA3<-w z8`9%rdG)^#f9sZh&hYo!Pk+4lJ4~s`?-%~wjF!$9_?z5wKhploPS|Px#f?Pf{)^7} zCiBhPvyt?a&-y0Yy0t$@I<4QE?6dW9$Fz|21hvW9{D*G$*Eicg-}os(-eC4PFUZoY zRLm)*S*ZvFbn)H{8Z+GZ`Y4ispR)qphvFU}+2tF^!#OJH~jn8w3rtw*iiB$L^{-B8ws3V7l6O7zROTa%xKjG@x zT`^t4-f6ZI%FiUGANEAQF#T)&#`J~wrAlHtc5t(tw*QnK@O`D22Uz%iyV4@iqi6eD zss!J~#n2b{F4w*N-@gwK-g?W$-!jGtvVy(u4ZL|CrK+{;pOB0}K!y2FO2pW`KC$!UzN8(7DWg z1_Q*RYgAP7&n5$;w52cX7qaHcer@)0IXPd9Ep6mK*R*30kY2{ z|D!XV^dI4eeAe(k^m)Vo=8qTu_oB1DfB1jJ#xL;y!1>vqHT=K!^M?P8A20sTZj&pI zb*=5+{{QHs|4Z;+acM3hN=8@5qoSrbLy2?H-G^24F$i*k#*GMaaJhIR{EC;fT%t~( z4_D#^X4U3X_s{mZGcE9OJPQbmk{&=1v|&5_ z$XBPR|MEp1h#q?6Or%oE2eWuk6x~fkh7}?>stcg&3V$Jh*`f>IM3UB`5L|=WkFFJ` z{CbpW;j=S5lK1Vy_2{)o$9SQ+!+8|ofmLkms-IUx5XgIlYk^-kcz&p~5_UT#@f-(B zAC~?FB+zk7S3jSeOI}czgkd`hXqPG-Q~a-qXQ7<>d51Zq>N-lo0+A6x6W1Zv!(#^T z&~rok%-LQdpS?vgt>CKJYs<`mzkc2c|v5d2q38LQmMMv*8= zyd`1INUNGNjJMCpf;R4WgX%J0W$f~r!o2>OypCFFQG%24h4E5Wl+#_qb^KpZE;m zeSg=^7whA5zCQl?+~;9^Tp$K3v7saHVtuSw|G8QpN&k!LFt$&Uw99v6C&cq!rCG91 ztMofvk)WI=>omd(q-#r(`HlSU%$KkINy?YG3AKD z?P6~&k`tw*9rr>r+1F%?S0@UNwN>P%7p)WJk2V)GQ~&sj^JTxzm)mCi2iK3HGJJB# zX!Z%CM^6@KVr7|!Ol;_`J6Jb$EuW)xlRSTfXa}kBZ+?L5=iFj?n$GqionYGsVw>UroMy2i@6F$w4lU;vh zjw^Dax~Ev>l-Z0pg!G_pCndjXmntyJ}a%8JmyS})C=3;y=e5;aR>7g;s8pDB=-U_X2* zvun)7Cfge=`}!vH=gO53S0oq-t$~<|WOXT*GjS%m0AtBll}X@b{Wo|>Zmgfs?O1W&VAt9FYR)IZ$aazU}t;_-K6j>u)p{guf6Hh2GcKK92OKCxN0X$P~G-VHb&xis&>h?(BR6+I3M^yWBVYlByMXI9t~VP z2N!)}bx7{e(|8Z$H69uSFT4kZA-BY-uviC5lOC!St>OxEW}QG1=Eb0v@xt$FjsJ!s z{`&dULWH@C-R&3X7C$B=TNTU$I5UUq#(D|#1&4thg)Lda6>n56oAnFGFow77qpVLB zUxhH$lF#bi+s44kYR??*09l<rgVikh0U7MhdWK_ z5fh=T@pPl-6pkkg^wsp_axUttPXcOYNbG9ypN|_mZ<8!u z`2?qyQY_xoL+EY8RjG}hb3%5vWbIBCQec^q0%UXxZ!fBgEY@b>Hrk67^{h|MP~l^p zub-%`mifB7hpo1M^Yuz{r~Qx2*TSCW>%7k0`cKSPulk;o#nXw;@^tdD1Wd<@S5%ne z!BPUPeY+T9^xt@h#RB|>VqC|t6yDcMJ2c+Nf+^7>i5xK9`xR$+NX_!cidV8q+K0C+ zQ3<^9CtOP|g~}&{4(mXdC1JbC3V1tQH;HqsU}>8!PO;K%QVoKvG|Bg6Q{aOIb2rNX z%EWb)a-P*h@IL(gU|oD&e$aTi{UCe_4JF7V!2F&+zANN3}-G_ z4E>uggcsjZo)BjsxJ^k~Ky>ES-gRb)JoshjJzY+ zr7Yh8jD8=ZzZx5G9O>Vz@I+*sDc=Y?lap{b7bfwGu!8mn3zIX_MElAa0_}@)r7o=% z(HikEy0+IDNaoM)`j5LI=yDDo=nJ`-IxW}K#&Z%av2-VHfWR%0DqXt!R02}u;blfd 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≤4CO**t-yOLPxxiu-xH6${Up~bf*eT~`H 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%0DI@NBk@_c_F0yzzgZG8@!MTVcqA@bQjmy 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�diw|J#d9 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%0A$_q5n$oN)f)p<$qm&x^B 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

OI!_pZ&IzXkYkE5^ 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

Y}&I&HYf0f{HO2z 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 S+PnEwdZH+G$}Cu!uHFlL{`Nu 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%0D`cuN*Yp%db4@sUU>02f-iogm@p=U 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

FnPD%FpEon(}fVYL~@^r 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

E3CIXpELuR^|?q}*a4w*iWBOQI3 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

Uht)@|BwB5MjkX05P8@Wc!lRUi>rAY)@Luf{cGo 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%0A&z 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�ew`__4m&JtgW;m%T) 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 MN;zT&zB2j$0P;@`ZvX%Q diff --git a/external/vulkan/windows/bin/x86/glslangValidator.exe b/external/vulkan/windows/bin/x86/glslangValidator.exe deleted file mode 100644 index 3a6916f8d8a7d3f02768e0bd1d2295323c0ba1ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5735736 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 z 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 )7+gDXDSpSy1Pjv$s>n^- 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

qqE5Z{td8w{a8)thSVaSarY_= z;CJOUz<28jrOD*N|oQLR$;?<-*cJ_;Ql%VUORazVLomH9YSp$S^x$Hp1KO`zfzA&k3Vw?wHocGId z{>S|oXUa%XUU;6V5PmjJ8imTw#>tWj{=MO1NMUxpx@95-gZ< z{NShBj!p?VC51Cqa;Ta_V>HQ;)d?>oWw73V8GB92-&|DTE<@+@(JRzK;KUJYI3>wP3?6^Ev7Clc`etzAdepw~ z3Zp2ArG`hzEk#%>PxxOvgdB9fq8Yn3}CeugQQ_SoFQuwb!3}LN~tm8Q^_#4drdaeGw zWOxZK{1DEw2W6eWe9N>kz&uXR>vF#2`*7Y`Y|7CRI2fHh%g|QpsG6(8T(9R_;hxOw zYF8dY_>I`Jg=yeSK8X1l`@6$ifAi~KUrAd9_EJSwnZ_nsvLR8r?nQ>RWHWUCR=^hB$%Bndz&+g5soynE`84mIxy51hsVG*S1%%rP#&`WsrV z9JpirLM)OXBjKJJZb5L(pCsR6R7Lr)25DlqTJ$0dyAPvC<1^G5@Xkk0lTm8L>v6~6 z&C*|I)hBd01HQN0N}LVejKr@Sd~X8_Y#LvMEu+8Qs{CUibEW{>d+8=y**|KVcXNt=w)aGZ38iYc1#c90lW|c zI2|@djZ%kg;J9{HguSUl4&TwXaTvby6TNKk9hHMOObnjGX2+lbL0&s;9vd8T%#PCc z7BybgMs7;4<5jcz%NVc!0DsXJJ%n-U(O>kNt4^MlyWuC1|4Vl_O#Y%LVIwQu4qsE$ zm&Gdb*?jINd~cEQ`_-?1-S6Mx?|V4>mGnG*hv2E=blgR6K>ja%{N%VTF8CLZ8^#O! zr8$xPlJMqNp#%=VMO3zF;SZM`?u)bN=})1v66~5{oki!s6L^8$=D!uwD#yIAW3YE=_ol&#Jqj*^^adJU5ppdpaKeXCM$b6O z`7}yB`G=mG34C$BoL`{1NBVy4#@`eUpTth~v4#I)B0G)QMAGBhXnOo|{4+23F}lKXV?kLn692|IFl&cO5p^2^}>5e;*TGW{dwo8KzSLrPPZD0AkCNY~&+Yj6sryb! z@8QE2{O1rK=v2~QT{Qjm=nwj^K9l2o_6Ok*`a^Y!)Tg$tD#kWT`kl>TgI7a>y#o%- zEMweu+ke-$r8*HmT#rn+0M(cY$D&;6(Y2WY-_%yt0I4Rt%XMBWJULgC3qQ`}H2$;S zo|0SvBF9T0-bq4^8Tl@`n|4utHx51PpfExLy z#4e^5!5+T1e{hk7MzH+5lp7N=uYX%JpFsU^R>IlnJ`0^`V{f1^Lt9MF&+ZwX^%-gi z-gzUuHqa3`K{oF|;A4BuCn3G~;dhV?C%^>R_}9Ty5BgeJF~p9K@J8emqyE$RXLQv2 zKH-Btg#YAJR{aQumvk1qXKhXrJTOpcD%%eRaW&0d;?;0gP{fv4;IbGe)ANX*FrbVt z2jdl&gy-O3gOljHv!`EMr{HH#52Na1l_K@YoqwvzTozrKA*c+Ur%<0Oy(j+#^{FO) z>#3@guzzgqjMry%fmTzuWZ+oqa&7E6zUTpq8LrIe9vX}uT1)+t{_q*E4+tgKd#cXq zX}msyi2E6&AKJ=6^3wU4cL)SkBD8Cn4Pqp3Ry47bFFWy1uA5xx8rgafcRq%ww~N(uIh^I1TJu?G(4q5DSHn09YEHE-)XWVzpXh~F z+C+dqd>AQNuPDa&LCF{&2!3`y@XvKi0o)70QPu|pNmt%9xZJn)^xH)A1#tr0!@c3$WH3B#V6(@?K2i z5IR2usDn&_Tnm-rue1B#Px7?^W;WX?T$}NaDo?8ss6Y4*%TBpJq|IR~CeCtRf{{1w zgBlu1x|#y!X65{6muxnw|Jz;5Kpi+R3kK8*@=&NXaE+tLF0 z#{~9VtQCKC$@k2asm~3m{#BE_f{d}llBK!d>1~)VLov4_?frAWg z6Gbnfx6n~I&>TOSPaTD$lISES4mqv1`~OB3KqZN?{VX-;&V{b#VA}2l-Q(Rd&UJ&S zv*Jfktv~obJ=FOsS!b!wnCdnPG9d|;$!A0643&T3?g06OJ@YU$n zf(sm_{JH=jAJ~LUx}W~q{`kOVM63Mt7eD?We$Ze1cvAeJzxeT#_(6Z!16%M{_tRgt zGkzD|w~4rK%lp4Q7p)g0+QB{uq!wkvr(L0jsV$^MiX+QiVv@(w1f3zhzye>!1@@$# z54;}q-;rK@cJRPZ)5=@PQu2zGw`LZC_44L%s`%%umN%qq0YeDU?7itVj~(&uL5~vO`Y(GoR@2A$Qy;9Bj{xVwjW?_ z=0HfZ<(9AI*;)O}9cNsBRnE5`N6)vJ>@w@lYd~?VUXKQ${ zFLbzpn?La^eY@g>Ehd{oG}#=Y$>zZ7!ey%pmIWSIMez71F6$9JutxqS{hQp}U=ya2 z3uuGQa>oao-0}&@Tx&RJW2ZMtFga_QLbXo8Ph6%F6zg5)Hx3tpE&5xoE zjeL@ryP&}agC|GORVkRgFXnIkgqqK3Int=KK%SVk6-~9J`bV)gc8sd}7&j>(-#x0R<- z`x<%40kL4omZzfSLwNg-spSwu;)aW3{b}X*Ln}4BaQUlRP0O!f&{=zdJxB!@rFK?? z)yQJAk0029^NelaczXwJ6kn%GU}<`QvUR(QAlaJ#FHOMmd(Pe)=C8%w+^`Z&FV!$v z>UR3$#-t}mDr#ZsX2T?UQSmRuA#qSbVoYd~5T&ss=ML``ia#w5nS%l_Vt{|xHp)m$ zkk~ysclch5MMDQAqK8~oZpmu$zuC3&q>?r*>hkXxo>i~pi!NdHrEac6h$xUsI3dLy zD3FB|h(c!VlxL0T#w2)--{*ai`kVk0@e9@`iB{1_9Rf)-r$&C0lyM-9_PlIyx^r=c zcMzLIhpbeV1c6E1?OT!PYYRNMfqDi10uOG)U$KdO@DY(vm`MvMZZ&9N3&klkP?#ZK z4HHos)nWFmNT~@rP9=e)0!bMoR+=zo7xXgNih|-$2D-IZ(({}MJ(na}oldX{4JSia z2Po|#Rx}bFkS037t-)FlzZ_=}%wf(#&G%+-v6Wv(-fkCb*hB~K(MZ)m93A*AbZ*A! zZ2|Tsnw~8lE$Yk{^>qk=yts<@&?R!063HD{S&c3g>tddR`n_9&BRM6)GyPlk=cAGS z^tUIxPoo8&(@eiYgUBqT{6=+NXRQJ5V~EVWd(5JW{tE6=WAIV^`Dt_aL5)} z@p!^azovFL_uItQeI;zD28Y@nJc>?b4P+}!NWl-ya#@@mi^-$9xdC#qtJc%4`F8;u;|#9)?1t>eeL>0OWP!z zNS*ud8CCz58Fp&;cc+5$Qf4u%H)90?|HZiLd;L0M7X%EK03Dc)RehhzlAi6Ix8T5osHXOMuFWu1A#x16&dM^ZJ&tvym zs#lzC@?OHm$$PSMoNkNnYzPQ9VIi+xf>-b1M+4>{W}_=|y1=X!Bb5Z5_C}H8n0~X! z(QE6!?DEilai4Ks^}T3>m5n2r=mxru*va})OT1%4ZO*Ja|06%vM^?Yv-JH-#l=v zr@q-!^#%KeNJaKfQFQ;nHedWE6B9PB!L3+Ca7Mtw99kZN-plzpkftNPcl7p5o!xM2 ziu`oaIBek5rhva!ur>PEwM_wi0xyS`U;Q2`K-wpb+of31>gfb zTQSv_^D%wEfbszkaf?7|A9kU#2t|pZioP(RFAY^qj%_dPlLZ<_IcI%B6AMopLILk7 z=MzsK{sCGN#on?&?kxoiPV^vc^~?G3TTj(ASs#DrV%vk0VLJsnpPjp*^SSa3p`U3V zD)c&s$tYV!xiXq2qXjZrBct^)+9acGGCCw9E~73P*@sD$Q5lVvQIU-1%4ms<*2w5F z8EuhKql^y8s8vSCWTagzP&;IlDWj1x8ZD#oGMXZzxia#~Xqk*^WVB93n`BfcqeC*{ zGU}3%{Sw(C8I6)ru8gM1Xn~BD$!Lv?*2`#duAv}ffEJ8g(BfNgAg(hh9g{w@HK?d2)7^< zAQU4^L70wkC&FC_3lNqg)FLcKScCB22tPsiIl@MS-y{4H;W>m|2zwD;Ksb!hg77v% zWJUby=}h(jt?w0;8GJufg~5Ip@(iL5UPr%R0~Xt$SaFKTFXDLN?9qT-XUObu15(T*wq8^zb)F6D7Xu^I$@lZ8evPITcd>??zs}-m3-JR-#~vz|Aeo(2na)3g zgu8Cib2UBJGB1#8O-c%5z-Fm3oekhkBm`ehJmE>24mLXdwIty9QT}Y?f2@!B<$eOf z8{o`cMmK?@O|}X%x8K9M{kC`eZR+;BH5XNC;8OB5h-HX!&n*%~1X%GNOrYrDq7F@Mi+tT1_;Fj-!Dkp2@##3v> zZhcxEu3DX#18xA5)xW}Gn&nLm3NeD&LO`fn*Czal@*z*NB>KEQEIfO4v#)*__2WKp zP;d>)0tpQ8xRcg~=1v&SCBvwLa3u#OtvcO{V|EdVPZW{(1eigG_zs-pLZ(x5U|6@= z&3B1Y2&9wU!E&o$zvD0*jI*zRyJaDY!}pSudn_MR7~4GoS(q=x>_Lyo{@L0?|3n)b z2Nw<|n9IRLq3&r&*gfFiSaM;t>_nF6pK|{322`=IxBhv2Qlx)wko~ivh)!v^m=OIF z-Ehg|O8NrrMtdd4A8Qpm!N&$~N-nA%z5u16<$?>Lxt2@Eu&hLOc%_ z0y(cjHyk|rnO*!>K7dWm!2Q#h$-}(2J3sIZAt|S0Ld5BIh&W}y&WTdY#)~}hg5`BV z{E5}m+pGpZx4N?$%S-r8H(zHGz~FEIK2@J(3ByA7%w29wcJRS#uwsWWCZzhlCyM@v zSQLgmU8QMn)@L4KxgH@ytX2M3n+=BZ_p;o%QmDA{9;_md!92q1iJEPDeGvpTZ4cfg z56soCV!J&L@2m0t=m;cM-i2Qa>DT%6%ZFcc>6ev$-HBi2^y@R&ORb!XUq$q*gMOJk zV{w&+q-D1u>2H*j?8%i$cTv(FnKWJ|l~dB6Bw&$D%BQ3aGU+y%lub$Bmq~7!bRi`z zmq}A(Qa?)iHYFu{)?F(qaUA@Yqthr!^Q@Oit(4?Kl5Knb6hAjZT8*c82l#oCZ&+oL z$MQtAsm+du(Lmak7HQ8Wz^%@ow$b8E+qwa$+RooN438V>(YDe4%w{}n-Go0jSAAs? znbo;hK_qzx0^b(ALgF`7VzPGt61U1kw@93`QRdtx6P+qi=B$&6mmv`qpNip2T|5!I zj$Jf#NuFJJ-8Kpjjr5R(hjnBx<`O*Yqm&`&lO}qgrX8Y(G(0rp0d+bEz73l=1Ek%u zWb6`e9&G;~k#GJ)Z}Ml1-7Kv7FKK7U~?>RM75%rBC1CW&P|yoEWRgycahuR7v-2UANR}b!KY~uLZItE$BJk5JPy_Bhq+bz^D_Ta-?&~a^pAWE~{N-5(TAsoX@ z+c&`68RjHcM`eFE&!y>evcp)ckr|;~u%LBBpW5u)v*>&ykNC!{L7MzZofpt7(@jSo z1WqBm4Iu`YzPtb1s2g(9{Z9+zxmQ9lC%7VH$mL>IkuEZ`Jv|ulVKyQBowkYAlV%w9 zY60_@p$@aaNNz1LGAv;(^1;z05#CC3Y`{F-L`RekvHZe5Y{{EfQyH`J&WG^e@8Ms?i~ z)hN_v<{=yhsY>s_ad_CW`SWwp9C1O!Q(rzAT>J9>fuHgccqs_k2>A%*2zMd;1MfaU zScd2CAtWI@j?jp(uvvzu@%-DDU8aW-9!1!I@JEEdAT%QMeI@!T=f9%|u>Ru`0Jr$+ zHYleqd^8r-k^93>Bm2XW^7zZH55xrpzi|<0tC81kr2SL)#tSmo=X-DZ4<{XZl~G?kAV@w4a9v#}=IapCG0|BY*FI5kXP|96llL0!fV={vh7zm{DVe zBlz%gBx742QW_vpR#QX1!z9Ev3hYMlV|u=Qb%A45K2*&A%_nFSZn2JpS1(=Gp>0nCv0ysIhEJ>os?SlOXM_vPmOp?jFH9 z^{P5}^{JVNj3ka3bkAT-649RecT)Us41KYM6+c$1ecx8wf_<3GGX)p!_TV{{kiOr? zEAJK^_cWbxI{6Izf|JZPcv$FwyP9g&_KvU?CVlwJM#@s`f#OH4P~; zVS(F|iH((Kt=LH%sdTvcpRpN-O;vEnHZ2gfKmH4%#(n&!^mFPy1Cw|%Cgh0jl4wkv zCKEiYNPDg00m5KS^*qJ@=1{}Bk|o)G)1)UIeTFs?`(r3Ql zkaA2ba!3zDJr`ecCJvS8V7`ZbPDNkzbx7+X_H&EtLgQKbLph#}(c_tygYn!QJ)XNF zKW)qFm^Gq@&_UG zamsbzs|;UG56JcQH<9%=@%m5K>-@%VV-T_aL!&Bw{eSo>ygVc8e+kGLMsm9N3z&4f z-v*$*Gmrjaewc#rJDh(W$+vd9J)rl5>yat(@2H2P;a>(zAQ611K6c_?cEex7Kg5nZ zvZsp1#}38k$9tiVN%l|kp|EPT{W0IZ3Z{Ynm_Kk;!9egDS^unhcArD;7OrR3XZVm` z0S_)LT$VADEMAzj@E2$rY1LVvRkxoXsm1Gjt&ji()WSVV!?F(~g!+Jg`f6nS{p}+X z$va`MMT!v>{Lwq{nXedc@=k=1?1;NibR%E%Gm2nZ0te3XrFe8if}Zv^4Nwun)@rvt z2?l+~my(oVo@Mno>#95}&)G}}=SqYxdj!Hu`i^ietC$;$@Xg-?2bSrGy1A|9O! zC8LEJUNx~DNa@dV9eP30(OTd_XIvobK98(lcHoR2+J}AuiQyomym}A`L%)1N>N8W} zkVxz=^#w%?3Jf2HCh}n@m~1ztK-~~!cQBKXe{6St=uL4>vMM?AMKI8mHA#!M2574xQTm)9 zDpKiz*2!q7oVc(rA&Ip{zI;7R11;G94DQB8&H6veK;sSd6}mGl-beNdwBV@Gdo!(MOrO}dLqc!eQFE8HNZVHlygqzn|3O*g_iouAb-wE5 zzQl|xfuLI+8cL;<;S$=|-{Nn`@MIFFXg_a)vZ`cSO{?q&@;d}Il@jW6E3S9dH^5g` z!ZP1j0idWn{(gZ!08C^ZdpY8e%hiR1J+iD2TU=}?{#J(c(~y(wX$WM0bVd4OWqT)x zK62!Yy&}<{%OGmQ{lM5^RbhVRSV*Qh!=QZvG8SjM4}1eqMp+;L`&8 zem)E{v8Mxff9SuP#S6lYA73MgbU9R);+cw2L%^y@pDx&>*LIP5a;*grNPudK?IB{_ z6H~O-L}+SdJ4IP5(#{RdPPK{Y4s zi}1at=~FQ|w$pJE6H0U2t?Wa=QuFV(sgrYIhfx4=(F^D(W)O59G_}dr!|_Zo!DPol zg8(zPtQkIi(LYSo3)gbGVFi@G5h6w6MBX-zFT=tGXW1m_*P}1n%T|L=O z-M6)ksTGIQKwUiW( zCc3#DTyOb>lR_H*pLr1ieC|=AOhteX;6?Ch(Ubf6Qv6`g5urUp1L1s*$ZPA?cdAXc zVqw$&et^mz-)Q&R{4MW?I-5Ek*C|Lk9+RX|(x)*=$&~cZ=p-}=;6YrO;LT^zZBNA}uQiI>Io`0zF^7xM|6^jHMZ#@ifE-cm-z1O6-*mk=#5kwZw`WR`#=f z1H>Rbvxn#)JUPqnzS+bbG{N>4-j|!0^$)xaM{|_4bbSmls3o^j9*_F0nvigG(SG4L z2Ig!LUa2FPw`t-&61>(5rw|w_3^Z z*c?3`<9iy96V+8#+`Cx3Gii0Fn|kXO+5>NiTHS-#CPnN)7>j7_=D!6CD)cG;9M3`D z7Nq_cCg!s6V$3(=#nGS9WK!s$70k7z1iS3(o~05ts}krem9T_~Q6=1hXI8ZZ6tZ)h zn4E^)m& z9<#2t+07l)AX({^nnqU*QYDY|BR21O&bXHsGO*a4o{!2ul!FAUuFD2Ejmh1mRJH#}N`! z+ZRt|D>tEKkr9;h;T26$>(l(md>C^W`T+f;SFOV8B09%KhY1rO1kqD6OBK2_67Ryl z#L9z?GbRzYL&4FkrdO@ktJd=808Q6KTd)JQ*$b@T7u)QUM&g)&xFBPmZFwV}H)9uE zFxKB_vkfe+(_M9tqyk@JrGi}o*vd3dHO3P|a>)n`$)rqHe`yef-$Z|Wj+Jki76`{) zx%ib@z5L3c_q&i|StCK-zZ@V1nK&f~7&rgXaFK8+0o`N*jCWXNf6scEyFQ$|p2Lz& znwxu&UEsU`)z~C+J&IhmKNegGq;6gq!dHC@@Kp~bd?}u-GUwe<_^?}D;pXWg`v}-A zJDNTZ-cY<3Ri5RklezN=@1F`r2)yrK0;!`(S=A?k-U})%o_#XQFj;h#$g&SvV1jF7 znzxi>XRrrHAANS2NUU$Uu)gy`$ToS;r9WxUuEOg!>$9dS=mUAyj)?6c*$CGoAu)>L zN8o1b0Dn#**to>|tq9hQA*@5{J2N1Hq%FP@-~7h30@JfCBrbLFvz(&ypXDTcbndeq z^vn8eCq*fu>>f&+48;EB8A0z5G_qMX(uuU-J^v4TUjo=vmGz&rDNP~p0u(G-wFu0B zMXeScpheq4QV@!1fmT$C&Y%-3IxGo-(?V++Av~gW8#i=xbVi(U!5Q#_5w!(u$|5a@ z4h}A$IP+>zt0J^e$^UoGdr4ky!{+jR^L>8`H}AdkyX(2My8KYA+)=jo?J* zJ{3-7IE~<^09P&?h7C3M)4W}n3GIVuvy^=pVwx^3E&+zvu0w3srXu0Z<3U(EnBH>f zZ5X}%g5I*}?E-omLvI72c=TYI^iuyNn)|wGYrEVJ(T3yxpJ2f~1`Xp7KBu z*5?%0KuBWoP2IO_Bld8R~!FXKqN58J~;KZsrY35Q#0n{m` zLBT7?$=&3{o{>#OFvXdsTC9ad6zvQyUo%x3gABn$6m9&#%kIt`)#mTmOR`v}K#>;) zhYlqR4k{Po)Ig829!`g9?>5-0TsVSgJ)JXD+BK?MB(Keg1Nj_Pe%T>!(_C1SeXE>i%X&tB*sur@AE)<)eI~!E;ryvLC zWmB;!!@NZ0!W?oXIonjY9xw_J4~-j@HTc4o3Er33)oG>ia-;IJM$Eys#vaZzm3X&C zi~}*rIZP!k(1<1w6P-CKafU`TgP7o)pc1cAiPg0Wh-Z^k;z%a;;n0(vPL()FBT_&X zXSGVSYD5Z1az3CEkMyU=_rVN9Pc#H8RN}uhq7}qM=Ngr`T_dJ}*u}X~C9czmIbcts zbE`^xmWh2=P(Vq}T`KWDjYxh<&V4GeLL-u&$<8*F=+ubBx?av?wNE-pC34z(I)|#n z%RxM7KLgt*(JYNoY3DPouNkx?=VX=E7qrTSeGC;uyI!TmsU9-llAJSD;^%3^jlL^r zH)&Vre3iJ1iOHCk=?TeOq7pY~#54|jg-U!8#7M>ZB)%}*xD4w&SU8E@fRvLRXhX!X zL)BAOhKdsF2lg?(g5^+F=-r`hcFZ%U=kaF81_@Jy7%Z7sp$VEKoLBK=HyGU4Vq@ev zaJV$b0^QolknuHYtWqe9g5|j_&!O4asnSfKc`BA0B=7sE7b9`r&&7BQ1V1>-tlXA? zq1mfZ7PhDsuvCNqd7`f!iy@+U+`E&i$vwUuvf6GOGJ|d(qv#w z5}g?(7u4W57X>_p^u-xygW_Op>4@C?Yn8`EX^rY%RH#h(8%G5-$sRS$R`LOSXnq1S zUFz~Zv%Zp6dsOb@#6K~kO?B`QDiLTQv(NBNSsruaX_Mst5N>JXsR=sbA}S+Z9n+Z& z&#JU2HY})NHl#$@K--^=$AV8xYx<>(+Kv63NASw1$a z3Bn!cJU}fJy7OmKAj|WbX_gZF(8h(0ARpqJ4-;L#jL6IyvTe84?Ma|sR9pP*1JHq( zX-0R4raIBj*@eTg=;!RAhvo14>5=gF19*fA1%n>*#XLWmu%v&c~o8&N5YE6rRsAbuAYTs(WUF73T}oP*`Kl3ytjLKz3nmM zG4^Il)lG;lEs56DkPdK^W{Z*L@Uaks!HCxjbhzy?caMl`UlGy$*Yz@u;xPBfKXWr^lTK}{sYWGwxVj#k|vBXF-2HW7aVLiE^bu*)39P^Xm; z^+H4g;t1Pv>CVekc^#&*;amzR5H(q&&hI`v8~|??t{KpQ^TaUc!=%Do46^~|Etqd% z&i>A3mg}EK33WnUvcs>ZT9A=G1 zdm7I_!@Lah224E+*?kMooiMv$j%u`z@oa`^g*gP10DBe~Q-a;l4W<`NKbRjrIzH{g zX%3v`z<(zP{8g2xI3x2>a@CUP@7yt&JBnYYUJ@$bn`%0rf@!LtT|MZCNH4YKwS0t` z$B1v8QzBQAB=V<;)P$FFE$3RH|vstq^ixo=7hhgx!1lipQk1f%SiE?sG-5x z9-U?=sI`j(27lpR_ztJPs5}bM(m&3EEQrUna_AgVT$HVF_}*GKhfB*@xRwYfr?hiR zak|)0_((r@s8y~;zST^U3pK6ug(fbH@t!{WW?t^?Reo6 zprf>dpEy&g9$&?o$~Y$-TE&^lcqbiI#hJ=@Cmm45naX%49ZTioqI4LQqEy}!1MYlu zyLVy+BBgSXG0~lb7++2H&ce*c40`ERmWaW(nvRwP=SvU+ z5%1F64?RH)<9|u}vao9DTn-x!rJ#}qLY6YCa|yoX2J}abN}Cmq%)TB1N35i2nz_Oo zPwdH^H=Z;tiY z?D0;r`)T7ccY^Dtq7Fv7IqeJ9KZFun1e3ey(}JA$VP&+ahi!VHGF80H5H z|Nnpoq)cuil(y2bR9bycDfL?_F_j{lmPFNyp{V(D2S(BToz^=YQMjBt;{@Nj#twmS z`$Yp!&6U_6__5==w2H2M*S)xr-_*I)d&A zl}Cc^{K^G`4es2^1;Y&PtjYyL4em=T7hGU)UnGx9qa)W+w&WgwS#FxG9z{RyK3L46 z8S-}ebthg@OR5MqtTgf?lx-*d^sMD&Jn6w&l?Rp3hmLd9VTSNsin*8%|0)>lZb0>j zqlIA*p{Vuu+xq(ZSoe_7sgm3fESiNyLmAtS z`PkV&I*%>41&fjqIH|m`)j~O?T+tA)TgV@}zysPAaRv?dQu*wuykQ$N5C{g9E4F>% zA_tu8sg}_UVIyJz&Vn^L08$@SxnnFMRj`gXVMF1E4Vw;jV9u|yVih*vv3u79*|u>s zwm16_dPT#r(|u=81h&!`HICP|<}}hGCvUpAq_*Y5lg{iP!J=ou7(-ZC;2-*Hn0Spy z1atpTj)`V|^!7qQFRfY$Hbv}X^FX%I)h#>Dm6#pxioc{5k{m&|ZiPJdz^$y1n6!gA zCbKK4a=tOq6%R|W8uC>4B>zn1-Lkvk;=bO7>V^Uy`}?>d^9 za+?p@%|>@zDR>mJsp0Bfj=dsx-(i6%rk|8v32C*)NGq|C`Q3y0O`Pt;K^>0#7~Baz zc6?%|QMDhQ+r#}fnAeMKm2-J%ZuF=G?FZK0g2B2y$yg;bSQjN7%mt4+3z8-ysIMl; zQ%%M4ToWtM%7GFi3*UfTLVA8mOrC`}^*1pY?-P@QwR``gu=sD6u=e>DXN7TS7l3v_M8}3mH z`p3~&9Fm6`_!mnaP+!+WVP3cbQ|)62?yIVf!6`G(LpOT^!OjXmVpjgJqq}EhpZ~F zt)81)-&_l>2O2E9Ej99ZOU!G5CZUn`sCNRrFSNKnDDzeRVT&jVdF0lx`@U;OeL{zn z#H@sU&;E=^dBuHTQAHN}M0Y7qT?~dCv($!)(B?uevUxbt94fL+4yBgXNYof1^i}m8oLYI^*}1%~qSa1hndPS$p4IdC zAtLYfJbs9LtMYxrNyxY7RqlDaXG74NE<&Uml(VqYKbD}s4ET70KKeTBU;G<+SFB0A z>@cT0w5z^8i}a=)%AZRSL^Sz$?TT%R__Ab|~RYu@<=ziT-?4~98CTts=3=MTs&-}@>p%70C?IgrA z6;JFe%pc0T2{GZ5pPgw(?*R?o#n_%c(Uf_W31cht4)H>FvD!_Uw7p0&WY$4D0{na> z-+YPPJkXedTTQW3A%Bc)pWw@%Aln_jeB8qptRWs^(awj03N?@pa8{#hC}Qrdg!?ZN37!z_S2SQ{rhi&ACMG;{R=jKl`4n z4{tYR9i4j~)CPFgo3ggM+x^362bw`XB5#8S@gKs;H-EwCZ+g~tS9dtO)|7{vG-2}_ z+zlIUj6#V%&hvjk{LsGD=*xd{toF@!V=Glb4v+fUQ~ zvfe+=Sod*4{JS8>H+c`bKbJ?RpcNai9$i=&_YPWQ({`M!SR}i)o8-&z=9cLaDBLeb z_u4M)H}XvPnbo^py_QZjj=aX`?%}D6^Q@1n-i@2)Hnk+2waK%|h#CEWJjGgOEt0RK zeyCCIiYXzC^l@@GIM%Ghp>d=_ztQZ=sK-@ju}ZyMVf9rgav~zopH9wU@!jORn2xcJ zz#FOJooFIDsJPn-37=x2wit0AZNib^?Co?szP!oQG6j(@ZAi{QO zgLF~1c~@c@1wPD8sM{Og(p9}VX>MHnrb4LS_^K-ec(e)I@&;0%Hub({Fnx=BS+Utc4{@xwl7VHmZ_-z)4GBg1@Z}3k! z(lRW%Bp#;_{5L`v^*Qpp4s+EuV0RfmiuCSfD3cxu{{3+G{|#M zmFKyp0qgyiH>u8ms+4$SwK1#Sl_1ZCNXr%bAXEh;)&Ibe@TF&t?59ceHO7%sNut-s zL8wKE-a;9Yu>`UgeVmx{0~hzA+6*<8qfP$tCKSDVlcNN&RsKMS0-DxNo-(Bm1D$9_p3@E(tb>4=98XKKyRcgk5b z?rt7taE{$uX;2RS{eM>MRQYPv%U8_%+m2OV8c4n@CzLO(zVs)vh{>j&IFbwj>ms{) zvV>WXhqF&z!cb>gj!|cB!}Q=u)tRaQon)PVfmSgD(A%VqgGZIB+6^8T)&J@8L(NNWC`7cXSpQ)-4S^v_t{wun1mZ|@^uAB&k21^Ep+Fq?@CjP z8K4QPV_m87%789>v}GC=9B)=y=>Rpih|_%;biMt_YLB3~9y{qG&V>fb<6QuHK3@R3 z1mS4Y(rA4Hya^Ha0`p-T|3p)1^XCU}V_={1)o-6<<8g}Nn@<$}m*`cVO8BHcE>X7n zpjZw1`vW){gg;cFO|G+wslOs$f)b_Ny9De_B<)h~X0^IoO3TnvR)7Y|^yBvyPr`p| zk#e!C;BW(2hlWpR zINN-asNuw5%YX$E>OdWED4P#pw#{~6da0+@!dkUWTGMpxs_#+BPD?vjCIlzAoBq#le=#vyRRi;-Au1gt^o!FfWF= z)byhmN4W;U9_!E3S?=k#wK@F5)7xRQO-x$k@q-k5;3E)vKGb zHkT(&ueV=nq-AaNdF6%4e$$ey;d6Rq26M3>lC`|16T>b=A+8&#EV=B)5-26 z93D#@3&w0yW>G(Fo2Ts}$vX?979~L?AI%53iR)`#KTJd~QaZPiSnfG|om71}+9l87 z?o#!o{L)pb9*P%vA+)}u&`ADmXj3RgjdCf+DP>Md=5BSqE!Urem`VPZU}Z$gyjH|6 zK8W~9uOz2nw^VRUny{uw3Ho)W()IHmzAO{_utP;9uhrv&U76p_G~2A*N1 zQ0;I7ZFb37mNn9y*U;)BPTX8&gzEP!9BZRVW7;A+F-6WjkV8X#&0~0BM!cb;R}Coa zCE8hXT2X-dz;5wmFEP0D;AJj*SdsC)JS$(V4J(?d^TupliJ38G<7$2Z8=t^SgpGy7 z)F?Lg%G@1d;BbI?1};sFkMOVZ$jS4sSkJ#2=}z8^1^!+6pTJO+F=786z6nLewgEcp=&7~p=v;X{RjQjSGEdDXuA$|otcLPcp=xyp*vw+OB}h#3UZ|5# zt)OoSHa`hl(X!ejRHs&a6fLAb7UPzKPf?6J^#&=#I2>*K@j2%?g64k-DnL~zl}n+S z;9Bk}9IF#_ntqxC8V9I9T!rQWITW*If`bxl;y9Pg{>cL!Yvul>3dzq_tFLN_0xqDe?1toq*a7>dKNeJc+ zjo$%6AXn>NHmTjq*|22^<|fO9$yv!Or8^&o$5;jM7aM(r)-0UVr;$kA$EJAfQqM#8 z5-Uua#{qbZNE&qCs+Z`2lGBQbv|g8sny`lYm$_K7XL82(@(umVT%NY3;J~MMQRk_7 z(flaYd6Ddp?py>yW{~^$D!(drQGcoV*Px%gs`HK|`G!8mOydWozjCkDQbp~< zsU=VyZ=u&{#^oz!GlUQa1cEf&DZd<1yYzC3+TiJ>8>)geAXa=W=Z=MbjdUv}=C1S{ zj$635DoA%)mE&d>r}OJdC<097y~dl6oXR^)254sN>bF~1k1qDYI!)s+)ms$2_enUy zEgsY5ZKcik8&7)fi^r!HZG4P^qYaCD$qxNB6SrIC^@R>)=`5bIpox}aO-r1TeW9*DGJ#i%-zFI@>NkU%!*PqVc`v$gv-9Njma|6F&I>FX z<2j}WEobpQ4lHM_cPH}B4s5$X6+o*jzKqZ|4_eVW2a!j9& z8#d_Z$2Q!SM9Pq{BFF1kO1}@=gV?B-&-G{^-^!S(46h9LG~?J^9J#N&LU}+5($%Bb znMwYm>k8e{r0R#RH(IJOu+CN&;gyiS9bcUGqLl z`>#dJJPg=dj5$TjLfFfUm5G>@um>5tQN&URTfo?DB9=zjG{$}-VuK0GWo(v+4I^w2 zW4DOdaKe%pyII6?2>bjKO8ZO^n?Trh#%>icQsAkqW^9HY1Jg-4r$c#!v3OCgNiV2U z!B`g&BTb>o4UCyYY%;~g#u%+fMU{u^2phr}b#686={ly<9#xd?lQ zv7RDUPS{$;dWl#yVUIJ`Rm7GNR>fF15qp5J8yT~R*mArPjI=8$1&mD=v2_%eiy5Q)eWTL1k+43DO%bss!rJ#x+WU%p*+tj~jGZB3 zdkCvzEJcrjWeOmN@<+z{=`rGGE4lMAcBY865q2wMXNj2MQecIQrHYuDuuB;`Tg0q{ z^<#`wens(x)bJ|beMD&|t(8$&3c1_MSa%UiBkWDadWhIy!k%MH60r=z{ERIT^C5?@ z*^E_+*jU1*FqSR)Ihn8#jEw>Y4qp$7PUg>M?0(VDS>(>hm`}vY3H$Uz;>+D4Rzuh( z#_kcZ6@Z8S{%6 zsY+H77<)qGr};8q%^y(Omx}I^344pNyYv{Co(jmJyv*2QJw`G=kla1U*dh@dM%V(z zZWQB^P1rQXZW6IEgyk~!YZ043*dWI45V5NXOJeM|A~u7t&)=uCmy6ge!nQM3A!6l( zt!8YYh%F)P5ylpY*aL)BFjgsIPZD+mV^t#dJYhD*?gR!7uK`6T^FtVG65VYicikD= zE@DlDeYKm?zC*;`C+r=@-WD;1u(gcs6tM$@J;pYUGCzyl zJ;m6EB34P5m$8pTtcI|g8QUXbPZCzZ*j^D^N!Z1V(M@PkbwMp*eHi;h#F_|ee~;3> zPsH{R_5ov`idZXQb&S#0q^R%=!-4&gv44x0l`tP;iiiy)>{iB_MQk`>g^Ya$3>=;S zicaP)WvoSXcQv`|$Jl-ma}xI5E=v37A~v6}y^MV!V#^47ld&&F>`B6&W2{xgNW;D2 zXDmm=R*}2ejQvu?))6*^v0sVUM#4rgHbcZrRL`HySe}Sk2{SS_TEw=JpP&AN_;RHl z1Jic_awwY^8?VPm=J%1i7Z{r$Vy%ST%UFSkbr9xeY@&#nM*y43*i|A%cLXS-7#k~M z$>gp-W7mmTDq#tXO%t(!gf+iQX)hHqx{N@1i?MMcHk91G%-D1h8%EfJj9o8c*@P`% z>;@5|TMv|JjM;&K!((7uC-b?C6^rg1Nd$ zW)ran!oJ!`X`iIW!1SGf9LhV4P1a*1^LxnMTE?b`7+qzdJkHqVBDSC0RWariu{OeP zWb9@UGmQi`jxkc8998dH3A=!?TSP3Cu%3*~6tTgCefu`0{ZZCS&)A*g(RbW2{ER zG6?fCcCUzK6E>T%`$TLkVN)2pU&JO8HiEGSMC^LP&Ss2mbciY|GYK;?<`S{_gnimX zd~u6dHDQ|=nnXm^tw5N$!3SsXscAkh0C2TEY86q~Eu*Vs@M8w7tR>fE*FmU)fP;@eXBV)rv zcQeV|IL0m&v2wyLVC*sxTSiz<#(p7UPZIX+R!aMD5nD;vdyI_`v0B1jV{D{|H4*j{ zV_71$k1#J|7mFBauvBhl>_QQ1C3gjkT_j?L%Yj|YScixu6V`{Z@AMd$J`|8cY2QL= zKdQ$_=Esn`4;Xt|#I7c+j^TvuC9IIKS4C_m zVV5$tPQ>;R){n72i`W6ezS~S`e@(>9R{-0~*h&#gA?!`YUKFvRggwXDOCpv-n4hti zfq}!5LD9+lY{vd7x^t4dDUAJ1#O4z=g0WR1wuG>=8Cxx44-;l&>=hAvp0H0h5nujG z#5NMPiLo^z_C8@RF!rp7DTLk2*k44fgD^K^&x@EP2iR1`UJ$W?gpFcsg@_F&tUqIG z^%$7$0EG2F#{RCyNakmeyXFQ;d%QSTSxwkmj2T7j0m5EpjMNK6^);R$>_Ns%BDRLG z1&o>}=6rIdhFeZuaT;%Qs#;hW?j4&HxK{5XxCTs{}38K3dgmq^u zPQ=y`_EkNlJypcE67~*bXN%Y#!qzf&j)=7q_BdnbikK-6SQTSwB9=_pjg0jdvB89m zW9)S??ZXMXfU!697??g5kVEOoSgjr-nZKIcefuV*y-vht680Wr>qV@Ru-6#dAYu;_ z_7r0qMQkNuUdG-Ou?E6!W~^Ss-Y2Ypv4DuR5_U0T4I*Y94Xh7in?x*)u=b6V_RS(T zoUjiVdrQP76IRFAHW8ae*dH0&0t_5p28vGReT;1t-K`*Zw=&i!Vhw~9GWL~-?IP?_ z#=aIYg|L2%eIsIRgnhSx(tbe1EMtJ}W$arKOC{`0#tw>D24T-Jc1Xm=5awsBO~kGv zY&K)5Fm^lEz9MF}0dq5UhKQvRHkGjy5gSg}D8~AU*aX7*Gj^tkT~Am7 zV`quje8QURDDCHo*fPT2Vr+njJww>bj6DDh>|Y0pPUatE>_O4pR&uw1u}4IV^x!Mg z7^@O7(vGj>GIpnkklV{a!C;RDbTG zG^}RqccQ!fggwI8Ln78jSOsGbi;}f36vML;W@GFrJ%*^H0dgoqfR&{M41WNs z{OmIv)mAsQkuF7?ax>tVbo9oy*3KK-{<7&r8`~1JjcwymifCh7&6)OK^KE-V}q3pE{_c^VQ^7wu!g~3#s(i|&=wnfhQYzH!RHz578_i} z;1{c7GGQHq+hcsN-Vqzz$KbTs;C=>kVuJ@591t5c7&OKP zuV!%H-(oW1dIkfrK_`QMjt#mP^aG62*G0PRqjwme{yNQp(;PU>fzuo~&4JS#IL(36 z95~H^|GON(`8DW^(yP48fZk|#hpO~4x#k%9bSpZb9~xRMuQlP8A=$D%zE&P~XO7R^ z<~Q95Wm8$-K)K}x++$*p4NyT-y$sU;@@z8>E7vbg2`h}gT2mNZ8&()y3x(0Oo(5cf z4lUkEba#`Rv@Nx~v@~&K7x#s@f4$ezeB(&F(S4pL5a+3n!`aq-INz9A>&5*`=IPRy z?WH~|YnozBe41ySA=sr`Ret=7H`Mcq(9I&8gO%=H3?9%CT35fS1=eRUS5h$_M`9;` z6*&^?tgJ8_a4ytt^2|4z-APsRt+cXS;lNQ@&mB12m}hlg#)lg#E<1^%vpC6kO?`Wi zZ-5weCqggZ43Z~~4@HXiLY%CGt0&!Y3>XK|yU_t_=v8b8Ub`XsD0)QyiFUsFJytED zokeGz9O1+09@fe6{SKo)Npht>jL!N`zSm*&kp7q-{XF{gQhCF*KiL=)@+6<#?`}bw>pZH z10S%>IQbh4=H-gkah^bj51JDzTB+vAtZhk@?L%=xY$BX`H!bi(*R@=sK%rvgBD29g zsd7=0!CfHdBfj$36evNoyhR_{abd@1r0F>fs>*elJ zxu~1LZLQBY8`qR#9u>#wX%1m}>6&Ty;`i8`{BfwrXk;xP$G^jR+rk8#Z!X;st1@U3 zbGo#7!urlC3$^+xQo(e`LFw}Dy~#xt5Z!t_-L&(CUnytivj-Cj&YLrlYDk!I^iJKU7=d9OWHWs`e_8SCf@82ddLZpBMA?9~H@(svqbesmzXt<~7=u7>h!G8F|mV{ zST(|tHKI;04(ji&fTM_Brd^Q#Xw^bGb!{5~>h&@$HN{J>>{?=Li70JT8-kNldM7Gv zdkpM|(lPX(rJM;#ld9{$t;&j)?vl6RXfW7J8*iXrFFMmM0^8*}`JcWi`{ZIvR_dMp zPRce{ZdRk@zn*d-hBMX&qdJuQV_*r6Tf>eK4cbCS z8TKA-Kw#C05T7~c25kFC-t_v*5XfXq$9jev=6xxfmd5Xv3-&FwKp!s@%IqS2g_Z5! zU*FzgFoSf!{m1Fs3n|u`iU?APVtp(jan}kNw6P@10rZ#)_CYU;-%^Ep@3Q*M=^L=U zPfWb2MpMs{>=|L0_l;Z%^`Y;}CQoIyv8(G!QWg0t%7d7Gq-cJqK1lviut~mrsrLoB zIEa0)AQn^hAp%)F(LT)Sr{$s+KJuUPk6oKQP~sQKKh`(-L-Oyl|MdJDr{y29yEm#z z68VX!+}327=k&}ceTe{$Lcs>hx8L?zz3mgD16`vo+uL!m>SqSp(q)idu{9&}C0iZ% z>$AO2j{XWqoohVSJu3Mh0T@-|{a6Yr|I_uURUR22c^|{dFYDV6D@FB!63wjMnY(LL zO|6pu7NAkw`v0tbNRz6!Lry(MlB8;C9?($Clf0xrAXMW>{?RcTSWVo{7aQ0gQ{4WO z>*vZNH%i{2R0(cVY^}KWux*ayO;x`y=?DygC-$>s5>URQv z-zIsf_EzirZA$Bx=oaFRo;26jp7tcy=brYA@&TUq5sS`|r|gvD{H98Oj^a1v;*PvH zWrJopqv8YEwi7jqR9yqV$aMl-ySpLO-?N>TmdqgZiM9t_IfR}^exL1W@9IkNv_lWv zk_n@r07#h&yZHz`*u8uw*-a+964~uacHw7t_a&ZSoO?=%-?rbmVsE9v5$xl93?NzNIw1h!pcZMxLO_ zeIEN*p~YmXb}X^&g@8IM%Yf=!+g+%3n+o1^9g zPf|@DY010wubqeYomh$SX4U=-6i59PuokJLmbDJbU)6i}9SH{M){UE_-roIqmwI}4 z;(?3m{ruvn_Z}cC%42_4>qRK*Z9wt%FT@3Q2Fc2n{A|Z(A1Kq+n2EAM>S^%j8b>`1 zi??S;uT)Nc+-?XC^g5T@4Lo3WmSca0vl2fo7pa6*nINnn!Z}RvKiGs|m-y+osNTDs z;^15Z9F0?nLpG}eZOmjtYak+vB&qS$QWQy$LrYO89dADuN{9Dy^pdBSX4Y!;U;`nj z2h9d3nl~HPPy<|V?`FW157(0`1Uv_L2wN7xO4sB9(A>BpboMh(=jLhw8==Fp1#F}a zOVeXrjccyZVWtRHx@HUjEgt(E--g=BQ-5$1i-U)2p5w_X(bU5|flv~YM z2rKA7&ED0J`4;-5{|uvO$A0-cyCLf#yI~8==!flwf8#qI?~lQFU>?HvBs|ZB`5PI0 z-wyK$-nZa+1kY>XZZ6E*584efp6M`8!}NyP0CNlM?8fsOm~M~Q4Fh1ZU?#!b0^@;s z4CZezTVOtcIRexBQTPQj8fGrcwJ_d2O3!7hjS&?9$7AF?{5RP92%kgwq^22@asY z3;nz+^!jD>J1kRvtsR1`fmJD1=nv$j0FTqOS89aYg=PxqW?M;Z^24Z{z z-;dpg4iw0FDe@f4fI7Lzgj!^iyuJl@6Rwm^ z8MGO~NvX9$?&G+;`Dp~)ufBL{le#CH_ zLpcofbnrjRj%%`E@#knin{OhEV=ca`2K%dyVm4~jLm0b`0)kj+47^%bvgkn3)1NTcXd>&Tv9%MP%`VH{bg z@e{W;?}*|julc$y^*L6foIkjEA^DYKMHB`%&mqsWs3dDqk(Tl7c3txnfLe4Ue2gvlgmU{UQL*e6sS4YUNR~ z@?OM>yI&}XWrI~4^U214!3KaUDU=5QinUY$n-=lF)g2yCevtEW6Ip~8NacF6IE*afrp}J`N~pHcl)OvTtD%jW znA-=iv*TM}xaTthFZ&LB0(_9Jkyd#xc~g*pa5CxobA<60-2lnizlE&AlV~;b(%mD- zqR~13Fv3t(%wuUpbvzjjd-MIOJKBNc?v5QeG%}a`@v5ux$Sxeo`z0dfByJ$woL+~6 z%~zAt65fIXr|O_y@*64c!f^fX#Gkd~RGI?BlFM4+#d56_-_aOL}!)ca6{;jLI z$50k0=cJKBe#v`?qH~pr_b4TUl`~p(to$cHC+XNhnCU%{sL>RlYMc3~`u#WZ!|0ra z5?O|9W}jUFiePWDuVr!dbF^AO&D ztG?g91Mk1VJ5?=ZWOFu2%``%qvKul6417*2>>-5`12A{q+&{EkXpVfVhGksaSfk$+F* zMrGUYk&5oe3F&qlP9f4IuZd5*b0ueaxI1yMz_E1@o>re#dYhI>A zbMFS#%Np{s5tjiRD@`L}csWS(a$~fYJyb78k(cGi@$z47onyI!XvliQQA9nGA+Hj- zQTgm~csb-aUf!>InWpFbBF#&I^G=N{2w5S>&Lxx}eM{mUNwyo6n<)Y-Xp#3AS>KDC zQ}8VhXjZ~4f?9)pb%+xkRU#$tZlY>+V}DdSYSDUAwfm&LqI{WXjY{f!YSBuixKOp1 zW{~cF{2;KpW;19`YAKw&Y^7EdW3f4_`3v+Pbp7 z*rf*dg6P3{dJp=j9?V458uq}bdN5P-U?x1EYKP;8bX?I5b$v;QNOdiU=Myn6Iw)P$ z_#!1!tQudWO0CB+-P{q&%{}DipR{gVqE^AwkXg0%v;0D^@-=|?<~HD-%ixDQh1=wr z`UVKgfk2#8S0eJac17fQF*;_w{uP$P5P4U$2fK-?<^L<8M(3V4L3KY%HHqG~>p_b4 z0E#wsi_vmmH?QQ)B`+G4_DoKvtY})>k!^H zs;T7833cDrbK5qCY}TO5*Zgb*cMkxr7UqG#5z|%r=2i0cAgbCGarHqrgbVXB10@_> zDud4;a{tiV@->K!%EWin;x!Q%(#Ek!(qhq)7!GbVyl|S2AUeOK2KE?CxQA?|k*)0G z*t(f)T~D_9!j`k`Al}|kBksT5;7>0wx!8m6`N>wCmPZ*d%!!lfoV;=qHUCp~YG>#@hplrilnZL}$g0#0z_B?|I5@=<)}+8!mv^fcGh&4~E@Q&)5wKFn@W`ZrBbp z9<&#pw;OU^up4H;zec<-!1HdH^)Lrv#)CE!_@7|5!rTDAo`snUvlixan4O5*C_E40 zc?se(7p5oPU!^!B?r+1q_D8$ncX&PkS}DvY_%4Szgm|Rl>4$k0?&c$YYhae+{cD8R z0dptWfiYsBZ7>?+jOt%poc0zU`ZJo03804lx)N%e)oL}H%{_beOya+8{0E}?2fF&FqWD!U;Fsq3`t-#g=JNWTapsw4VK(pVbIv*E z+;cId*RNl{^E&+v7%*TU|EVv71`SeQe)hAU{ha@FE}{|>`sjq8cV6D9{0$z0Kg=@1 z%>{XR7ea1H$DQ_%wx#M%YM@AsI&I}N2TpU~ zGzb1iIDq{ql?yM$37w}Ok}MK@!iDbQsG z`chC*)C(PyH+QxN%Q8xoSx2b{Wj<(rPX9L36Xl`vhdKmN%%b-m%Je!an5tSvZ1 zmKw?&%6Cs9^j5k7&`ny5sOj+@l&bH+vn)f6lky(ykPX{@-0Vk(BCTasry&jLYfz*> zJLy5H^*{$Y6SI zDqe>Xfb%B4i4$~PvQp}XMRn4ca)LZL9!&XFV1`(Ak&R`>pjF78t@XK9<4WUti$U{* z4hsd0oI~oBnFHRY94c0}b#M-e5`)b3Pc#R*Oh)>Z^4aY{m6h^5lXjWrCz$9X_jkv3 zAC`~7%H?n^%Euqsb&29oU2F0&qgc5@C7g_Wko<}M7HIyqL1H6vH@H~&w@Nsszv1|X z(!69==U9J^$-;QQ9Co%|mh!~c6U|3`}c4>_U#nYGbpq7WX|>n6Uf zyH7J#`I(`-hMAri<>#*u<8b+T1a^*9ei}FE%Fkf2{MeJZgxFKmN2>ZrQy&BQ(PiWJ zE@IdJq(v;M_^JGS;zaz+QEpuxgP*QD!n`a1ek@*kFn6WZMRI*0%rvfDux~D4PvdIG zK1}7`a1|H`Ae(_MmMbwlEI2U3hh;K@Vd{@q?I8Wft#5uPF4slNulS9dXQT21i@#A0 z{K9u;ZL|xqe8{;2quisej5=|7iQt~nhqfU%neM8H!?5I-Q9CE=#rM^#*fU4cO~+n zeG(_?H>@<4PTOz^&NN4*Ix5OhABaEdk6lsnj#d6nEwJy#R;8{QB0tS6w@%U;VE;nv zO#!dpF^>H&*;bn#ym(PJMlS41VKCE3`49n}$>0^Kt5XqNf&zzVDa{E)7!^;(B98#ZTO8;6OZBAcbcQg*i z+E~xbBO%tTrkCYjmFaq_<;VoNO8apYwdV9a-bugtZAbxISkIH zZ>|f*f$?B!)>qP9e*`b9u-uQlSxj@5@^;PPfPZ&_1jC{*5>I1Jhj%$Y&t1CH6qQ`&sCjv)md9wP-`N1ERT7qh zV-1Sq4ODuh&sH5d($LTd@-Nze?t;X(BxLUPO>33o?ov~^H+Dk#{$Ja&y=5)RlWzT>Rio2*UpAm)RQj7 z$F``pFSqFVlYCtMe7c1Blks{?{+xj=AK!;RHi18TaOlKm+vm6KQMvT(A2cqRiA(?d z@8c5q!zXu2uzNAyml(*W4z(eWk9`*OKwkzqJ=dH**M#;dnv6Pql3F3&J{h%*+)%6> zUI(t_n|%3ZtdGUlXCCzBTjcR()TmGrkZ(%=r`C{cR~wR^sQ+OZ@r&s~W#rISwQaE2=X1&^bKkF2ub{ zz^*12gDA2@T~l)L0Dh@gN*2FGt$z%Quo9=dL-^un;6e@r7Ox=>@E2H2RRH~oH0~uX zUZFx8*$SNMdscKJN*L7~yZoLAQTbCpoM+5gWs}%Fpq7e$G4=KVw!Ffqb4cq|P$_ zVJlpj!GBe9SUzhpQdb^DOBk_$v5dc9iQ)y(Z(Bkf!)Pg4SziuekM5Iy56ST?Fd1BZ z0=a5A$W_ZhE|-IttUFcvm;~hv%2kI)xoMaSRR>zR>Oc!2>jMfHhk*kT3T!`lKBig) zayUN%#=(=Tu!Av~QxWo64KkG;5wFszyDznLalaWoYh+B75rkOJvpzEvTP#t!!1SPKwdr;I>9;#ov zU_Rgu4Ea#)7R%Q_U0@qVAmijjY%+FSjSg}t_el74l18O5$S%2Ou;^;myLI0x3c9zv zMQ#i7dse_b7>d0xbjQZ}Y38guOzsp5K z>|`V*Zs--_H-lfzp{7`9MRYBO=Z%Nqt-*CpU@^Z?7>kz^34ejbPx2Gm5Z+iqZ)A;M z@E%yaOalXpYqU2sm7YBbfqb=uB~ro5PH^|&esGC$?d3dGE>tl*;QY~Ar_g*EvY29G zS7Xv8921Ijv9f)X8k1N{Lu&cb+=m=?D@!d_9y^Y!h+sy!x0h#Upswi@4Ps)ka^=Z* z80B9iKH0@ex07+M%^zy%xr;g?^cT2`vYQ3ru4*Q9iX%xuvGS+vW3!4AeT?`e7b~}% z$Z2QyogzVTD^~g+$ET?9JGoc$dvDgU6A|V9t|t*5XBqPcAK(-*Lgf_8e&^hL9u|s~ z^5X;&5f5#B2J3y)$}HqoCf3@8T9ix#rT(%+b2G}em(VMWjFm7_ zS_x&SJn&hAiDDs~(5IYKHdeWxoEm&NCSQ*Era+FxXbd;YNNm|yxrZ_fR!Gs56%*{f zu_pdCi;JD`6#Rj*K+Gs%z;v_{=b7BYgSVUIEy@$5VdaW|JqOZ+Dq{?boIL}t169gk zm6B|b578v6t3eyKg<=}}iSPU@@aS2-P1*R;c`vTu@aURD^4S6JmnIZ;69vRd@Es*cd1eV3)`2q`6yyl+tc*psmbA?P3l zsgm~vq7-yES7FPllJgYxVWetmAJpz02PfxU$A^xpKNjeBQWdL00lZ08Te4@rRo++v z1tOWXYTz_Yy+wMkwm9J-SaB#W84}Rug&q=Wk4S$jx{eNr#+lCcV91B9CD8j}bdqKP zAh+VQg(i`ynDYWBD76(Ga-(CCa_(jALG;qDbg0^2U5-iE8FIm`I=>vn@QbKhunPk- zyp5P_z&IP7zCIlMeH$qv_2Cdyogx@Fr=EC)=+yH2M7Alv(VQW54_K(KKI}ucf-+- zO3G5oDOa-GL;o##FCbBYonQ^+rl$=X)6XOltm#OJAhisy3X+x+>7LCLXppi;^1sXP zFXC5PwwK>m;&-8?D!7Yi-na0}{;RSp=Uq?naC1B~snuw%F`eyU{i8=PlQjNnIj;2o zBkJS$mb2t;!OQgYB%*g|i6_AbIiZcyUp+(i!(d;hBYLw3yP%%O5*(j<9T-`=-C)9hF2`6i) z@J%Di30)cNLCrVRr@9lwTn{c{MQwsqUi22vwTTOOf_7*UF%t zvd9(O;ZPp_HM@I6ZY**r@mK1nWy-o?Rz_}9K1YKi`zae7#brh(RgtPM+E~w_WR6E$ zt7ZV(lUvKW0)&g8^3o)#_Bd3khqso&S&JAq*HGR>@=@}3A>MG465_MuU5w%r$tC95S;NCTyP43ilrXnQox~bO%`HR=txW>rtnw2TznAjK5n)$l(FxgAkJ&^$yNa2YB*9?Ta{$$> zXx@h6p-J>oVn`z@hrO~>>5%5Za);|NN)A})4=hv zu1a4DP?N?`TFY)hIFMYFI9%lkmk~Z|@+@x+c*z5rv*SkGNp%Jymw_WP5!>=sRbokm zosX(Edca2WzF0X?y|r^rRMUOs#X+?kucjK$@3r8!m^g9GTBMoFv+O6L&r8y(R!h*? zSX~acH0MS+>{snII{a)2TT$o#7Oo#87v3FGwS&TD*&r8r_|hd~V_{LT+=#A|a^4$o z)Jh!{Pq|tpovDS=daD%asHR0F5sC0vr^`)Uc=!Ig7S8eaSq0l5h~InVU& zz>12oC^)ZNu2gGFQargf>?=EM;@(s!2;#zHE4asWA!4Wu!VWU@B+gR{@%&I62IFO{ z$+LI8XH#6|ShJNzLSjVktfrVX9n3MOxzABiH9(H54s{Kr7&a=mxHzo7ox?&9Y1jvV ztw+%d9(*e4)oa1Q|A{W#Pu-;df9=28pUHYRy#5qx{mx0#be%H3E zKi1y2DXAD!po`i=z{JzlX^ zH3QhTjz2mfV6$MpX9Cti?I{!!Y|Y^reA>)q%{-_^FG4)N_#!@)6;_Pw<#yL}xd3`C zg1DXp7k#+V>7KS8vmaCiI?^!SJ4<_|GsF!@B>MKe+<bf!ht>hr ziDexPCD|*?S5qGe)?g=OA?Qw4uEK$T)z0x_+ZjdtF@ukULw4{mEC0>_M|WW{q<64r zu=6>R3%Z;{T_hoy%EY(^gWq8BEOljNKI27$A-aJ-Q#7vE8zwiX*f#&U$ z-=gmcPwUaemfNtvt@S6d(DUn*1-*97tR?5fk3| zJnxO0WPH4AUcZ>Cd@5BzDn(k;9<1Spz-{%TkuZAptoJm;`H(^K84#h$3gmRam8d#3 zMpy5s)UBeN$L7w7sVe`rNBHO2Umh78AuA(?K(Gok%~EC!c+1g}(k!tu1pQNR)b$u1 zt-jUsK@Tw%>Zp{ifPJ=Vd7Ix>jlQ(EUiTS~$HgkAQHg1VAkZU%9N$6yi zL7hqm8heBCG0skqC^Zs~C!t3{Av+XXF2d8V@N4IAH%$f|%sHhEp#qCkeq8*IaQ%8J z{OE`ND)=$u(b)VrJR_PP_s!Px0}A_f4Dk^|poWDRk`Q9Zb{xBi!H{7&u^F-kgP|YD z5S1VIem{OBA;I9s^W&d@_2p&GZ%)JysBB?=B!>90vMDA%dSmS| zR*8A2@W5I6qN7?T?bqhfQz z=lG%A2(?Eqe?NY_N3BSMGVph?`SEwadVUmPiZ@bTI`bn`eI$kWao@I>{P;F2Ha`|z z^<(j)=X+uKsM=qNY&v!mgRbQ?92@l6Dg$0>P`II~oz9Hu_Mplbm(b8W1z69R5i>Q$ ztfmHoE`umo0+p=#`h<>9P#XhD7pQ|UT z3`+j~t+864%#QHqRN9;8N|`MOXq#S)_ID{@JzLJZ<@oZ_8%&_~w|7Whez`TKyu69Y zzgX-TSD>=vhqu4mPnI8$6kUJhk!j42efP!Y#~pz6{OE-NQq1y$ZkWwd7U#<~p%Lz? zafPNBxmPk_3vne`?3KKP>AhH7$(*2a<;Ur=Y5kLbhRf6O(v(Sq@=Q%^{)_~y z=g$rdC?fLHxj$>sI75SImYiOjVwNX2*6(6TPCI5Ue^_sY+auhUi`6r0amgeaB;rt0 zhw{*Bbx!RpL`$x~8FviTEJ~F|O&}_7cysYKwpOee6@xDceV+_CyKAa`D zSv~E^t|U)evgGwpgy`DcYiV5VjXrZk{Zn3I-FGp06R#>160Q=Q3amomr z1$*C^tuzCWti3uYW49@n`~mXVjdOXM@+a&m!MHoZ>R=I^TV1165;-5Fy~4Q_&cAsI zE^vLZ**6@Q4PR~It!Y*R59YTi#pGXSl(?$oo*Q1-*hGtD94P2RBJ`JuE_zKCu@{77 z1j&TjFQilXJ$8~**UI&-9=^+``$|pf5+&&f0D}zEwaJ(e^_D}>e+2U`%-IkELrBNa zf7Fv=4vk3sh^J)+1OGq)k}&-IKmUpL3;S`j+Q_WdMoBNLwb1|+C{?1d&<#~#4(0wA z81a5Y2nkCi&zWHHT=ITPMO&ze_G-ml&e5usCe4yq4bf@`#BtO|$cjaSMty(>E<^=! z?5OwXeKFnWf$AmuC|57T@EAqWlkSO!C8_!!u$1r(t$6XSkHx8~^$9_?o`T2gR1-8m z0o$*`7@8lTH!9=Jv^w@W_05|r=?yLo&GYDuDj43=!HPDO)eF_cPXp#;&7qCTQyOg? zXxK;9sJwx;BfJ{_IxQr%tb3hGiq4~%nxka$h%|t=c}3tp1i_K=lVz3n}3W8+#9wYkAGZZ3}Nsv4o_BR%e`lA#S-o z=J`Uk)zqqAcYbtuRN)TOVu;ye?3D;rs8aO`s;1OW2eJ1fOcsXOtGRI~g=dEAyWh|N zgB_s08xf(GfUb*5CNo00UJ4^uteZETkCkzw>G66xjD4)c&7u#eTX3qJ5m!{8>hL&n35)#bw#@ zd&;Xc+t8qN!Ilf`LM^~W@vfO@!(#4U)l?}#j|NUB;vRX~mh8(-U201S7?+Q)GAzkW zyD5;{A3fIGfh2o@+`;N&C~Bf0&KRLa2XUB698M1mbT-Mhw4gf`C;G7{Wx}3JERta% zkk+FHqdS?Ty|#3NC3#D+Qg{*XOYH8MUv6|K26D>DAGshccriMA%EMUJ#?BqAL}JlQ zT@I>Odv!nNrbF;Aw4-t(y19|%!@4JEF|bom#BZ=$nMiXP4ay^TQY0~CLQ*ThY+4UY zIq`ZRtptMac5pm7(1kf}2gmKi@$i0T;zq!(a@?+RJgjksIi*`mOvdtDinx~eeWsm| zKCG7=jEs+Ct{>B$e`P#PTr?=ZtHL9Cz3j$QUoSi3?=ciC_ZI!Q{b*8pc)PJcP+*9|FQQi zfKe6q`Wv!=1r|48#HdlDMvVfBLKOrwNJ3BvE)WP-UMk`iQ4w|pHGxfc*CZTPQZFi6 zR9dOhN|h=oDuzTTK}Cp46)P%QDkmn@pj3iT_WynJ*gYqYioNZW5OtQA>{|TSQhzWIcJ`M&iHw5uIJ@ls(QAYL--34VMlX{`owKa zjJ3*do26i5X}uT*927(5)JcZg;l(1Co9lUh95zqIVntA8>YVZLUJz90e#6L+*fJJb zxj|&b6aEV0x2&s7BM`*c+)teqfH7M(Bo_cq)_#IP)=G{ui2Hx@ju^G|&mjWY?elOf z4c)%71dp8+kFYk?au($97RYG*Msu5j?zO|j8HxBV9%XZ{N~=v4JLoCTAB+`&@~1Di zbj4~r@@tfYYm>##W>|5>bIe-B%lz(}UK>)spOF6jd>~37x}zQ?@MhxogV3j8_Dje~_pOkt)`!QvLa|jbt{qn9C3tAuq7x4P%M4%n*f;K3kj~ zYv^uq+hRUnfh>sr7g{Hlp8}mWi#mZq3%sE1$H3IC_;Wu(n19;(>c4L0^S=|b94|je zjF&hO(}w(cML{FxJLpa&P}oWV{h|Z_Uq`u zBK91g7(m0~fa7*^%E{1azJ))kJhypME;`2+^VvHY_Z~GWVq|c`^0UWj+0=l|bIrL9B^rwR-{6+hrJd55+IJOLl zj^tUihVJcF#CY>_PBRJ`z2+vKv1y||ME<9-W&JnH>gY`o1ZQAUq9mc_4uMgL{F7ex z_Yw{0M6YfqQTzmCO^Sp);a{*6mYhsb&d7?c#onx}`FG1-Psg^~eY|;Sfhz7Fc!Z|C z;)?e3pPxvC<;|2CK*O$eX+_#7x-yXD??Y`K>@YX3F7Kua$|KAz@{^L@WaGk-thhA+NhghCwo0kfko|Zmi~( zr=wdB4~$>V=ecRP4}+X}2ss2l34xb@` zV`P4C;+IYGqlii0ohGK|#90>O=;rhNy*Rd^1TqeM zS2<)H*CygHJh%i9qNeQgv5V10cNCg;^6=a6LfgAg^{P+Kk-%AR zJPkFDY_ItIIb6dp4$!7$XM!~Akofxi0 zbGRDq49y>$8XcYu^YCnA{(wPurUk}@zN89X*Pt#?!3(8kP{I2pRq)2Bg4cCP7pUNk zQ3daaq)V=(3f>r1@Q&zk$(2;W8>0%|oK`A${gaG~jFOdu`gtPLF#s1u3s#%;3psGF ziWY3uzxMZF!!IjvwusR;nzz~utv^NM&6PdiRQKYi1MW?RRD7>3p@T`Y&(5JC`)ah?r0I#5S*g<--enydCI7s99w&9P7+&tEAcS$!utC|im$g3i92w4i@3$i zEzrA#t@sWKD8Z(S zHA;d;L3q5kNcYc?-!x-QNDVQydF7PReqL?jt2Znq>VA*SNiG(RuLy+A^RWKP-|2&DIvcC3ju)hbP+bHCVtHuo=e$-- zp))zb<>FI!<5DTxivyEJ8AmXTUv>4ejM8tsWwV6XTdH4((0z)ZAUuPRh7bSw^70P1Bjq(-#@yU(?iY9k96m+70`}ve~y4^&bQOs?bL6fxQyTk?hf*leTMf4iZfAX zeWJw^N;1Vx&#=?`?6kj~UTmi$?DQ%-EwR&Cb~?vGRh{>d886ov?`QFXj9+A@Y5>r?38CjEivC_r?V}T8Apx#@d8JUuhSXl0e4FTX?DtQbBpTGv3?c1vNg@;AZD&rkw#?#JGKhJE77i4^}o#xu9*G?zc=`=f?X{RUIDd(`3=84+roffJx zeg$TJsPSB#@jezW$oQFdI@C@_+37etz1~iLVy78)8njdHb6Lu9hlQ$)S7HW=jQe%Q z&#`zx#{1go5IY@hr`Oo&jdpsAot|u`VLQFoPVcf%mGSrR0z$@D=!}oIctOTbvC~pJ zJ~yZ3-e9LQEL3Iu6q)fII^$z3UXbxq?KEPi=i2E7c6zCu=Gp0D zJH6XZr`zeR7OFCSBVNR)ap$?}$9cBJ3o?Gboer|oVRm}8ofg??rk(!OPWf$M>D2S= z^kxfH8D9k}WW2x5crS|=Wc)%qz06LB+v!+4{jr^%W~cYqX{DVO+v!bldSNvuB$bZL zd`JGN`Hq+I>~ng)<1^r~Gx8l1vhp3>&%}2G5IQU0F&GmZ|7rP-JK^`QFu#N6gTNEO zT3{1U4qOX-3hV=B0K*XPy}%gYI$##C0O$#v2|NO<0{R035Pv?v__u?91pEa!40MJ4 ziNJW^M&KOa31BVYK%O_@`3~?Yun#B)9t1paI|X3bh z8(=o-pcJSCz6EEP&M>C~X9E`jc|aj>1JDcgbqR0<@GAIo0K>e6=WgIj;0VwS?is)y z;A@}*>USodcLNInhIt6jmB0(YX5bINF!;L{cmx;&TnEeo761%$CZ4N+mx2DkVIUvv zHXi5-oCur)3;;fY8^hcPvmf{ixC7h+oB})uyC;CPz$V}w;8TEM`T+Z2ei6?tzp97x(4D%b{=w{YG`1+v+{_|=8--FygIv83o*yRadh{;Z9LC&q7a5hZb zAeiJH^tC7aC%oB08^nniPlRuq(2*p6dgw?8|FNMXF8?v1Bb_1Eb;Rv=Uiex=huZI^%{v0eO4aO(skiK}^dlr9*IHjJeA**RzybXVcJWXSC zIumbB_Jk>@!Bx|6Aq-l4;!B(X<1vtfv{O z?Yz?NF=h8_+LcQ?L)qO=yG_z=uCgnoo#Tjz?*?Ue3+%269l{sVCosjb9;xh`?+_pV zQt@g1WmqLnd0l+{yFFzWfMEq-6FlK9ydIBHp(6;q0)aix-?K;B@4&-1vsoncEzU|p zY=Un=U#7I$o3KJ?eBHC!5ZZZxh_wl!RSQm;>{(K63;PtpqCL)>GI@29a0qSwHgu$; zr|fi*{k5rxqjW(|C0NM^DwcXKJA}UI=n3D1?1#SS;IF~`ex3+hvQj>7 z0eVa+k2huVg|a@e&Y5<8zT@5VFbBXhj5^oY0X`oX54;FG0TciS`{4bBf2d6SkAH}R z_DR4Oh=<|fl$4H;VB0*#eXK21O1u! zgBj~atg)$B_Q7+S^z6a|bM=ikBG8k-eD!=#J)crfx}k^gzsgNkyADbGuZ0~XT{+(6U*>C)7;RfW^Wpd4QCp|M&S79pjj^eiPJr& z<~pDw*gOWm>*VIp<}^6M1$RbXg-bO2{c-d{i2n6^8`otx`&Bn|rV{a?&YI@rL3NOC z9O^Wjb)ILME^qkQ^UMJ*x?a0cTt*dFu6`6Xg!;h#x0zTEZ>e9yz8{FQwLAh5iaGt* zTTStw9*TAJpB##H!s{^R!s{^B8Lz`w7k}r?dG|P=PC4L&AxUgvUW@xpJM;BQj!r^Eb!qJR_hCwM{StvHa0$0+4Z)S6tv>3?h zNkR1lItEM19D0jN6si6^o|Mu8K4LGjKpL(*ahEjTqW zXG@FTsKq;O{y z4TK+#datuPrR`B9wav-XfY<^Zjjc+hq)r^d7KcHD<_$apf*lnlkU%Y-_*LE!FaG_* zL>-?*3(sdI7G8z&NjGkiDrruQj@uKx zI@L4m-Oz%pR2(w7IyDy9KPEOebF>*bh38UIBh`1N7znP@>G^D`6_{hj>9`upt{*8EX%RpBZQdWyw*G( zza_SL8wa`m!Il#BmtoYf(p<&_XRr5hguCWYhpQ?I_TVn7es4D<8{--c_e0UklPV_d z58|RPPwuO@u$Ql+CY&#)>izk$YI7kF6uKKHc*gPs&sb+@K{gLRvU1a6bJ9?`S)rgiBThfY zy#1-l6W^;CR~AmfosJG;RB`FS-+}tGN)JBEXGZD4=lD!3J;>n)H&+~N;x}kyEm-&i z`F$(hxrmi)WIf0uj9 z_*(M+?eNCXG~7rLo0_hEqQ=l-TZhJYhx=Q`j<4e8I^HFrd4pZXN1pI13}K;pT)F!t zO;UOdhtu2vykpa-W5~Q)C>p`s9b(oW8waLTq~kh2t>=dd*9s29Tah_d`16FRE`fe= z4*4UyXP$hYl*(^~<3`WuFcyb^P8DGSC*XwyN38q>&KixAypX1si9%f4B{Z?Lj0ztg zf$lQ#qOs=A5;1G+iS@(4Ins7)k@>2y#WgL6gNr1s<4Cr|u_PWxvL%lBmN>Aq*(#1A zbJri5^_3e=q%zigBVqA1Ld3JvPbP3&JlCfS3s3k>_$o3Rp(Phrca-NHi^*!YvF0wx zF&RF&$Q->>BvPJtJRGkbYYvqhBU#Jp~6aCrh7V zX|IJMh7*d+1DP_=mv|x&P7E(T32Rbg&ClLbOu9P1eCKflQA z{3RB(#IfSYCs>j!GP6;9lmLgHFbi|po8IiEi{sBigT48M3hO^sMK=u9JLpmXEIT!P=O#@qT#w z9k5J2A6L)c;Q9ATY?SgKKw?N}IX<*>j}CPvJR@Q~zVuazXx?A(Xlc+Ef3%dVu!$(5 z-!uJ|`O)cRw@5!Lp8k>+>Djre@8*=b7of8H4o78&R|Z+x&GIo)K2||o0G7*tE!@@% z%YN09Hg-UW&Oj<~Ja7tdCZLjU^)O0##;yJGx2lhp^*1yv5g4(n{J$0xU8d9AER>=V z=|lNP&7_Slis6k0jJ*zFBL*wjU@p4_{)lY~@8L=8R%n&^HY{}g_f~Gv*7?JFSFexa z@(QCdy;i5+z0l}4?QvvG3VFCAvA~Iu4+7`3l8Y8!*>VD#%?Y``V`zS{!#_!g#hPO~ z36$3*#E@y)~I?gp_ zG=klXl?jN;x8?H$?b9uM4u#Ja@_|ARpR3&-&_*Tx9V@gi&uj7w>G9_yDVE;NRTjKj z<<$jtnH||4)Tg#v#EQ?vtjh*>2z2~rD1_WQ^KT&e!fH&iZQUrI1N{E`@VI)Yd4}hK z7IR;ELVkE3q#NR4IAso16QSnrbFaht^QtSvV)b%7LM1MzzaaFolz4ZGZyI_$#y=oo z4rG;xft>10uKT<6-d;=^bagi zqdbr@O2QIri7PqKk;hzI4xR^TrvcUPjqCZH=BDDuHuXxeo{w+Wq&rTM0p;P>4s-X( z*bsk*z@MeLG8f*h_z^fURw3RH?HFW!I|TT844Fw-io^lozmsj%AB2Vv)g^2(YxhO? z6}IJWDKGZ#9-^Lzgml2ppQFLz7OTlmD4evupn8SYw|5t9bo}st-V3crLC)WlN!kyZXze zBgVBKBkUYt5wHR{2e<-Q3k(BZ2Jnw#V`YMq+N$OsBC>s4kZD(M@#MLGr*-uE(|}~V z{JrY>{#I;O&rL&(tQje)Y84(Vu2XbRCv>ts3Y!&x{`YUAbxvo9Pn;*`U;a`5{-Ju+ zf%Nz`F;QQXpR`^zYW$S1Sg|H@vN60kR2>R6U+gIh!VA0Bcr>d&h^{g(^f zMRH+8h&9TUmv~fxT=D*?tVS%>rJ00>Gelad-FhOW)iR}(c<39}^;N&qE62ljGQbLw z|JpKXH~SNT9G37h23qnTyh?-3D6Mot+5?~8&(5BawwOI`k%A>px*7k+o_c)aEVsS! zt-uu>D)wiOL96xmivH0XkLXY_T=jr$uCyJD2Y!PaG1P3FUU@p08xXsw*heKlE5VPd zjQaO3(q~G`5CI0pC3xtR7QtNEPP{sNJg2*4_#Kw;TVbwiC;Y`&<5M)ns?M)r3i`$Bz@&byF)H|#S= zkDfuEL!JBByQQ*?evqH%g-K4_&1zMZAts97tF*1Vlq~5FfIF+LsZ+jE}H}z*2L(@yIb2@^t*qO2IAIE~% zbv@E8w*6E`@H*Gf&~@%$=@qy&jDV*U#0DyQR{ zd{+lr^w$>hLna+F#_panFLH*T`_@VMjw&8qld@b+p```ahD}+R}wc7 zH;cC_x0Q6YkhUX8X9Qg=-l{rV2`@;|Z5pq)Jsm~8WwGA)ji)_SeQhQCt%ORuwYQ_L zw_>EzcCN37OVtUMyj7)J$?+D_b_Ay}f}R#{RmWKgzd-ES?cbuu@5WME6=lw~x2hgi z(%nMh^|lIO(BJyA-rlfONYyu1a==QOE##={Ef?vuUF>t2>(ecHt2)g}GA*R-2)>PyX*+_IjDT9x<6%y+k`pZ?UT=PcLA~X&-rlxUNEL6njmN`7wQ=&9 zg&cLgxsguWx&8{PT~(bdd8_JZB`Frtb_Bm;1Wt>$s$?tSAxWM0wj-Fu2$C$`s<;iJ z!&JpA<&D?dV1z-v6|&x_G9d1or+?$*Q!C+tYVC5=^|k{!X*<_1!KLbaYevtrl0FvF zb_91a0&2t5nX2k#CFfd5+Yt<41U#Y@k09Gh&bE+vy|JB8Z_`+BRId;Znq?(tTFF@! zA~T}iF}!d9arqe+uV0SGwbx2aE2*~-TU;~YfVjep>rIQNs?V*Y!Acq}#1>a391zzM z#CQ@`aUrX(6__c5uc3i9W`)-QuaL$x8NF2^E#mumCsvax?xo5!~)9y{?Dk6nD2Xp&pC7qMOm2`Oyk43sO7RL0)} zO7|VuR>3jW8A(#Tevx_UNBAl)<7*n*=lEa?xOm4&Z)`cq1;uvuD6ExaOHZ8rj(PiX z{|IT~UX#95-gYCl;He43iSNe&2{)lyP0S`Q^uJ==s9&|}A#lX0!F&55 zj4`RP-`f@Anmnh5*`XZ9RZe5@&kT1ddr_)Xx*8h;r8Lk&MRnykHVgH-=HaK%^5byX z%?=!St#CegIkpoJ%b<6QtBgrIjoLvQ{l^J;h7dG>hhIj-(8o4tW1tB-Xn8X9f{MIN zkY1?B+hPoL+i#qx2vk?(ZLJ;ZW_F@^bySTwXp6t!pg?uO%qenP{2DU>#Gb!ra2 zX^gcZ3%F>{xQPCuq+VVmFHHPJ#4nSFq9m)F&@H{=aze%%loUc7@f>*~$8|&O@>VD0 z#1l@j@?&sI6*{{i>O$>OdLn83aq1v$oH5n~aeE>!urfp?Meq3u@+em7R>BhN^Em-A zgbct#1vl2Rl6gy&d+ZFV(){3c{5sTCeyACDphuCg-$?uBiU{i$=c2#0K9*05VwLM?L^i*>#hNZ`sSocj*2@{}fe$01^BnfuCrjE>^3DQlx`NkgCpJN1|S2xQs#OoyNk$_UtRph`ydw&fqvtP z(#@i%N4n0DBx0GMrENWuyQ>7~{-lK)6 zi4~|jvGXfx%Lr=jiHv3Jw#JiJYbF}g-$z8+s(TLFjKhd5rf{Jo@#0^hF;&%7i2h+j z*fYhH)wB35G`J^xJi1wm96dUF%H|*h+IzRGh#jm5ThnLp>hdba0w>{TJalVMR}Mj@%yQI3eK`i;@2W}CMvlnfSwr>qZNO+{l|#jiKRt{ zAzuzq?tHxEr#qPIxH7)qiuf3pN?U1tR*_nx{SbH5qthd-qv6RGg$zH&#O#HP7;(Gh zFp1XlCF)xjk}0u}=i*4I%x={xSgAtJE$02LvRZ6~yc)UTEX#{5p_gEW8y}e_ak*6# zyo$xEm|I+bC9Q1j;-78LuK#+OHEaFrtSvqqum3EJdJwdGgEgkJB?GomV^3k+M)t6) z;i#XjdRF2`?1@~=cw1E38ML!^XVvAGvy@`^nuUI7_ag@p-JAGc9!Wp4jemoHm?yA} ztv>qF2U2e_!l`}~<#wA{e>G}Z_aPJozcq)oE7eBmjY?7L_i`eD=;W_Sw=Ul(Y~7KE zWKmJ-gvF5r14wrXE{PyM+!ZLdLmoshdJ~Xs|?6-XmvcS z_Uj)>e~G4o0Iet)^V>4-vvsVtpRUe(VLa}5zRr_z$N4ETZq}5JTi04o6?dZ9bVKW$ zdcrqwk|9dvkGB*hoG{}u=f02kfpCk@zqXj)o~~yT^;}fb$|XHzE1}8~L)l?Dlr^>* z$^vs_&UM=U8|r; zS2_O_4OF^Ws3bXZjHiq{vzP~@-61B=Zaf$@KLW(%E$U;T5NAg?C=EwMtCQ-7GCt{z z?|FZoNZKoA0XRx3I&9*`bACeeR$_e5Q^cRH!j_}vtu(aaKM&z*c$it|!1!sA} ztMM#7@*w`=^Ao;GkFeuHzr@*!;Cb0;3MF!)@-=h9|y zIov1a&K;p0Ma}Oqz#|fenC2t&!|+|%+XwwzK;j=ixyhziemNuGaThS|Cpaq)bh=sk zlON?BIzY_`{w4e=cV2L+zT>A?UWYIXfWE+kB0M4&S99xoP!oQXy9m!5Y`6{U;xnOh zY&O$HIBwe^U$p;NfA4BA+*%?par95bwkpTP{PsW#$+GcU8L5Xva91#t0< zRP(-f;kd>8uq#GbT-jI*KWd1D3`$RP4xDl4rtt=Dmc&Z48&ek^MXY#)*I)|47LK#H zC19Y4)N^lc7x~`c>s6d(=2^3@p0cN4kG<8(2;RPVL237(w5z6FSrG9U+mc_y&5~bv zQk`3HpT<|7?#?Z>xm$Rk$Wi}Cend-e?_wo8`EB8|x3g|~h4Zc2+_zl(>Z@PVo-gG| zeCRArc-m&nan^j|Ox~x`O)?vyN2{VEF7T)w?m`BkIWAm3IT65~cDYQN-?8-r+w-I| z*onT5P55e^w*OO9H*SD(!IMb%&&aQ?n^rm9zLmaZPAQPboUUPjVa^NRE>9Cx=VqFZ z(Nfp?X^0yw(Uhq5cST(q?m7gV?zy$*YtLuZtoyp!+&WqJlM~rs`D;FPCclmfGn^eB zsz|CB?W`Rts;d5?@Ak)x)*oZ{C(;iMuETm;wW?8(@4cw8c)ovvFvxf2JuP~Rk;cA) ze80+k*L;5JSDp#ZKjeH7blCgP!;DPzA4`EN+$<)(GqHt$;&&tj*mP@784rzbd1m50r~4afwbn&EmzLsLmTQ@2DTrt~Zr8cIf)! z6TaB@#gCoYv*t~AwD`HBQZPlg_mPeCr~7su5 zQxHuyE#WJXLW}OCn`{96>ZW)J1htS_7XP`*TJXH!tXo> CBY6hB7K3)ZfOu#Wor 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%0Agz`uKE+FceB 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

d6>9{Zs3wQlz-O4AoC7HJKJ7U8sHreDsfB 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

ol*5QghgYixbaxK!;x?U`B)D-Vyb3>%EC@nt z@WT&$;~8TkWej;KtEN~gpz82` zPi~vZdI2w0UCttf)tj|ms+o46dBGu)Gs#0e_cd#!QP<)pR-0I57P8?kT5fV1|Dh;T zfut|T*o;B&tm2|-i^W3xTX=mPuA8|}EyHKBG8sf-?{%uJ$HAzZiF>TA{K-{VTbLPO zd4P+IqfUjSqai656Zt?$xzTebuCzTC0WI1Im2KtsBR+@b4C9z_$Phfy=sYgl)&P!oCP)|CUEpD&>YqVy#leZ-OsfgbpX~b4aW8-&dt#W(IARilZJ2~Q#g%>ZGD>Esb2Cdyw(c{ z9O<~0gV6o*ny>`&$Rh~3z$|3LBI1w8`*>tJH$WFTiQ>QVH^d(qj(_yG0)N#PfxCqR zC+%grmFSUe8%TwP7a;8M*SHlR#h~8^+jkbi)*`HHEJ78x;#mOO&3~DXY=WIuxt4zP z6=}HVbnI-}vZYYEvB3Fq+AyT7P>m8K)?ZAu7uS6X=bEMs5a%CG0k|#p23Aw*2Ud?m zuOWUAJe=z2%@Ah@i5?7tjI%nE`MvlG{F2F!Wm9=?Sq;T6R3EwwOY^S_$yN@=`Lg>c z)dCO?K6{JXxX6_&r#g!O^vRzhfv(U4RhR&^b&;z8N+6(00us`?W^BL~o~cP{(}S=c zGnJg4V-91@bZukQ_oQpZ>N zlS6N@o;I_Ra* zw~o37m<@k`e`29i4lu1z_BDNVDceaOTzsP}_!>hWWor4Sm)h)H0;&yuc)_eN{hCA% z{<(!d!O-^?e2oz^7x?}%2!l4yWIIldOgYI->037vLe+YmLNqxyiRuT+?#xGSs&rT? zMqwLn&S+bQ?9q58;+cqNGM>qJ_Q$h79h@_a4$c{d^$RKZWF%p`$JO{ia^# zA)_o%g#4>}p*fLKsFME=R8cR`G;ugpigJF15VKh|W8KaDxeBK=tnP-8tB>%AGJWYlP z#nq4USekV4{C}J#FVY~%kS1vm3a5(;(X?qoJ~BoY)YGUO!BZwfq)diLnGBIK8Nrmv z5Gj+POPLW7DFgqAl*te&lfhCZgQZM{K4oNuq*0cVDa)%0A?g_xAqJtkX$j6 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 ua4U>qXBl%Qoa;kEeC{qruMg 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�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ȋhVXzi%=nu`dWIF7)${6f1MXP$FUoNMEvfiD& zm2ai`52_DBOq$+#VQ;R9j~#ysx8e|N5l)`J6Lo(%zDYNQ(7UJis89d4Yc5nsp%zYx z5DW7pM5Jn~ZJ`Dq8DLA<&5!;56ddqk+i&JBkYX@qFz8R?vK<(9 zj5AILvS4{>^4t9@+v9SyKs?a}0`3fKTx#MB1r`8F!fB(pm3wcd#i)fXhK6Wo1bl0& zl^@Y)UV@rIn8(fbR%|?%iu;u9){1*A9;{Ee*3E5ap2Y1W(+iz8fhTn15{Z8rOk7Wi zZze-mdlU2bFzd#|?Do2^BG3YtX|23C-^#MY;v65OB13tk$(3yyXFULua_A;hd72b& znmgM>syutR_2+2w+;;C(H3tAfuy72Wo04 zaN>blF9_7SiUeFyD~LiE8!K**G<&f}(hNaB6APO|8=3Ti-(MO60}*T!zs{-iMYyw4 z3Vn`4*jo65Nhm104Fd*Q6IJJS(PqS7!tH&`aR^$%O%1+14-1!5Q}~aekHSpPVV{Y? z;^1h*?&O6jzBc+s>wQM*iA8(y+gah?rz-sW6w1IkhIXK9K__GR&qLJ`({gLr?z5wmoq-$d>`@;&X&`Gq}d?baspg*elB8&ᠢp|B5ch??>;eDEY2^BM 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 z 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 z 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 z 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�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 jS;eO5nG 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%0D`At~Bh z<4dDPY%@Ji24@&8j24I=y(v4*HD-NA%-8;PDHUf=DXX!H!1w;$X;1=E(LXiIU4TuVmAi0O+DPaWb6Oc= z4q(r8b#QvMF(bv}eGaj1^KwH2Q`8l-=xtw(jhAktcWSpX|NbVEPsuhm2YZ8%r3Bl{ zIo2M3Nh-HodsO~C$ey!z+*p4}+T~gwsK;^Xmiorg8jt#}9IxrAofyDB-MBbyN>gLq z17kKA!_&_!X|-;QjZm5eIrBF&)}8rQ9Umb7h+Ldbl;>XA7Y90=56cuHu@;s1hEJ69 z=iDoYbTroat2?-FTZrNHS06Lw0$4tbA!*&#t*cJq!F03l!VCAx0qI7wnjUiy_FVmy zE;UuU#N9CcNQni@#*JOt4N89US_@9RVyYRmd|Ig!pBmUpT|9ALz zHAzZt*|H_hux{Br6*nzgwy1Mn4%JJ{FYFU#@7nCc**G+$w)hHT(hwIQxS-@moZ!$q z-56-Yf?OQVDOiwfq|7n4dV+zC$fX_-cb`CwyXYaDu;X4iwBsQ1yuX??Qo9AV;uz@F)|U`lCj)AaZ$Kg|H-J2YRx~Vpdv{ zQ|)IvoSZ_}K4wx!F~bUl??WLLhI3HWxLasgE~%J~`hjNM)g#!AB6#X9dI34vreoXz zhNa@`P|jkHD*K_7$j5Vm%$A~A_+FZ|v?Ci_vz$Yt+lDNm7C_Y5>AXP26S$d$pfO|p33pni~YC@9SvtLIVCZrRN zxUo-2s`x8$LY84j^@Oy}3{S|zNX!cj-l7V~3v#v?ThU3LJ6ba-MQwqr3=q7?g-ok~ zuC9q${X4n?dw^vu$avHLeYb+E{NJBikm28dM!^`AbLMyI>`7?hk!X!IZsnZena7}f zJ;P-fGmKU`$Eu*Yj7On4y=~QKC?nZ%C zGMiVkT*`Zj<-HyZFgwc&F%`#Jv^ozT7P@C=(i~?3gmmoj4$h9XVaFb97S%Dg@*|(w zu{-%mmA5mxmaDF@((_$jR#9_!*XQ4MdHcxAA=XRXIt_0+N5#v?9o3Q!EH-M0)7X-> z(Jg7M_8%Q?Ns?|!m4Mx+R(j2H4r0x6j%m%|yPtd8RXH-Mrst6}x~7(_>4~OMeQu@h zwo1%X#klpBp&p|uS4}a~O&BLYs5Lif-;bs+fD$10Tn8|E%ht!m1f#PfHJgM&&gezu zzm2XuRUO8xF@z%7g?21NJ1Q~b8n30`PvH0xO@UCgp!%C2Ej9|&M6G7ln1Y|GDXsB# zm4Pf~hA8~aP#^o)t;MQKC%lXHkT6}t_7m$r2RA=sLRpPE1wV(1>i=3!Lq|aK$7%1` z_+uuBU!D9hiV#CS#G-k==3i5rC|TS!D%nOrl!m4m88N zsDePzgSsFaMgNG1(o;N+NYQyzdd-y10R9Rf3n>}TK-6cIope~3#t%bcelola=E6G% zcp3~yIsXz*AC|L&SSIB>VwSTWDY~3b+lI^e8xr$VP)>hcj#^@tP|!txeT95okg30X z!uqnH`I#jZ53;SxS+U9T|JWYjuBp{dq=M}4I*xDK+0bgFWA9*%b=r5h4cCW@3Y zvvrw;W|>V?*SKXK$uie4lWL9(5QD6-V*k~k8#KMWmt-<7LGqG}ksv)X4g_gFej18K z|26qEzVET)`z`=Z1mErPvT&9a#9`wiu1q7#!H&o;=$-_0_t$jt5!$&1^4FyM`W3!R ztate;hv$EzBaCrwXZ%!3sOm8tlLNr##HuSYz?jA}MUBF(e`9(m#Q0$q_expWzJbPU z8b(fV0dD$==mI0ZlmA3qvkU@ zew>fH_kwFvIS`RmK56w3nbj7M6tTwNrq+{dZ=dMDrDLap?zvp1aB7Tg9`(Wj8N5Za zZBtnc+G|c8m%+B8MS-vnX#z3LjLXs}tY4hoZF4Y?hE_lu040oj_WS(oF!xFE92o;+NWccQUrs^teq`V6lYF zoLJva?by+ma%M@Tu0ZA&-P-{o0!SUi;sB`v8>>OsH3X1IY9ROt8i@E*$xe=c<|e1*p~p090HytE-qjhAEEP3kIf`N%dt0fwYQ|7{i$Q zj;pOc0a$l*eaUKHn|Sr9Z^IJ&yUd{LBR_DjY-uEe5|A|$=kYce;3SF0g53*?FWb~3 z)#zQdHw8G!b6=aQAhHuvw&`Y@1hog>tLs>i6onlAsW|Jhe>%>&bPe<5sZngtXvx-B zipT(*nO{$k^r#Gy(KgkE6;^xa0cP}(yKR^?#&f-9k2%qK>Z>$lFh?*W6yj8>Go-?Dbt|Z6 ze3~`{6i{f|?YW?2x8dhMPRaf|D%AA$w)buPI9k4nrneBV2B#X6)4>vjlO?xKHVy8Sh&zJZ0SPb7l71Cx*^EDm{8$A1&>0EPq%Z|1EeA<3;Q zrmO)B7^C`6csQW#nIuVM z_t%a9YFx#iKj7#86L2-<{o3I%O5PXo&?&uj1q^8EO^b$4P`=q7c*|WxccNA8@iQ^& zBB)89#GP}oP=z$TSkNEm<70|mM-&`~laC`(;tHZq6clL5|5Q>{0>M?oIRE?^gP)%t2=x38`M^eR(tvxl$#>J!;G71A zWDKs7DV&lL9x*?vBv39= zC7JE!M%tWUh{ZsYe1qo59SWMlyy)u^HLdt4+xkeB9-CD^sh9lvNMFzVX3&qkR)kus zlYCu`eqBRGFVKvdV2nb$R5*`22CvyXJ9CRE=6pqU%9z#Vokm zTM*{Ph0Gemjc@p8m>Z8{2I0n`5DTN}X3==E|8n&e?fTKcW-3lgXd)uC?H>X_+smJ? z@$>UTTm3a?czn|ik3H&u$2#n7KUiQ9ZQh}pPYeIOB?IkklY(KWJQa!B-Zt9Oc8hXp zPclD?XK(xLD}jc&G(SLQOIDkiHAZGzqcCZ-w^baED#V~N1dvvbNzJ#j4wKp#X_IAA zGmS*1No{a+tD33bA+zR@>U@4@nbeN4(nqK+I$fL8n)1N}XckTKb@5n2R*AX?_ByEM zE2nDM)HA6Si}epBc;+SZ2vGC`Jg|ZD}!# z3){Pz;SFK?m_h%4Ky=+OZ^HYBHu^ia4tN*(8(dI~2??%Uh+ktUJS2>~G;xv$1{NWS z#I*@5l3d9ol?IBC)RD9{Wp*$y4-cyVf39F)K5oyE58Sg)14(=-oyiO4AXzV>%iObH zgqS9d7R`+gbF#*Dbr*Gmh-55h{l?Z2>LbW5kxHLMDejg1fl$ZJ4kOfGkZ9;?R%T;e z)y`cs07(3-xMY+{OFg+9hmjuhqe|b9p0!cFw)Lha=GIm4_KR!=TkE`knR) zI%iaBK^mf7OBt2hjP+UTeODQO$C|dgx}Qq)g&rHkK19LID=Rg|)HS zT3Yu4{RPqM#YV}}x-)7t3F0ZNyvmy`4Nf!DZH-aGq$MTlFCdB)w?no!&cdk~tGP(& zwrNw~Y19d&R8lZR{L5PBo-NGh*gg<6dfWxZz6?t#qUEcc>ku(gI|fj4GVa;S-*1em zT@CDqE4$;;)^ip-g)BuM8iMHV0GDs3|Jpe>r@Q@I@oWr8t)OW>Jk?Z8=Ye{P9109` zc{|CJ^`f%c))^9V2G*{41#o1++F{HT0UHb&+9Y&4MT+!Ro9rz~?WP7b268@zpkx|z zHzNb4ui{0_fe|99(DQ+oderhS%od_}m$w9^R$NNO@E)T@;mxgG?xLgdl=V$P)2tck zHzpb1;5O43l40DGnYFc`&BVF>bCL>t{&g8yTYY;A*K(L##_PVL&Y7BiV^g>~RHhi) z4Htco3w9d@2R7?XlywWsdK0%DjEgdii!KovtSN>k zWbDA#>iHREHFvm*N(!3mX>MXt3F!J{vW>GY?6yhII{+Z7%zax+cAIi0zYj{0x?qpG zl7)o`Ept-!dt{8xa*!yqEL=&;(~NX!TRXIsBM&JmJZzvL-8Q52h(M z{l@<0BnaILNnxP?ry24&iHP>bRQ)0M!p|~Y=kVm3FV&OnNSlRb&JdvasbH+pJT!P` zFz2ICKO80hGEIT~(t|m0oBXI1I?%@VTYq&;!3pLxNWW^9v)SgXg#vf7UiHRAQlXvr zq_vt2*}`9%k@b`BQB84-0LKz8huwyx!6Y#N$bQ#i^cjG5v)CUd zVD+^9e`Y$>(9{_Tp%(^`M-=K#QS_qM)G(9uQr-GCLUN|26xErjIem>nT_KMMNeI0) zOb^ZUFeSO7P!#)^FbLB_^Z$I--rw`;OuDY${r?`hcRJti{_eH*+H0-7_TFo+y*C*y zQ2F+ZC`HuO14DJiW}_3AjxF8sYkG42LGT+OuZ!WM@#7^uP5t;0%`##uJvpQKS&Z-W zRQ16}#`sD_7lIGq5n`2ao#~fSS;yv{q88HAd(@b3&S$7>3vpXdV+Kwjww=<)llJHy8B?qiJK z&H5?53;xArG#Q~)R9Wggg0`xiWf*bWn-S-TAqR&J-Q@#U$sRp7IJo{B5+g9c8?#Dd zpqHy&p6^h+CnpIhzC%?!Io0LC?a4WU_Uk*8;Pv_rC3)}Gix{`Ok5(ft7Yu9da_yXe zTP#(@eSt4Hz=#Xlu;m9rZj8R@E+4pq~P%cU77shX)AwSj`n z>R5O<3)MoWmTeYLHW8cKE;CLREc}o;EIj9PpenZ(pl}|q!y%U%W(wcz6uyjKRZk=% zBDynvtWA>AhIAPBi1y0VRk_{al^KVb>sXGP>Fzs?xv(Zfsb~VsnheTvsVXF(%o@zv z!?4AvQhIuiGGaToqtxllq&6^vsl6_>j`E;XPF#D@V8^stO=$XPwFb9_Kc+wa`ERZG zhB&SNuY~J=Ik;At|L~RsIKjs!`e*V^IeY3_WSzJh|HRc;<;i8I<5@bof$vB?1U}=% zcci{2XM#L5@ZRS;(#Sh1!``6IhJz2flWF&FoUWeU0Jh~5olziqTr;RSH|@k191O|b z8_*n}ajDDU*@cQU<^ozGRwXi2eLVWs)Ufp|cxqsZPD(!8BxQ}!P54_lB_RQnHzYF-4ZJ1h zj~F)JS}`gaZzUKoL1dlvThirx^R|`&gX2Sg@>6iL%&I$0TNxDNQWMIMW?B;SfqL~` z=a@3lesr28Hlpe2H-QWITZ6x0_#216Y3AMe_MG{)7{7m|43C8i^7ZXY(EFS6+sihi zRJ%I73LQEXS9q4TKa3mQu$yM|nVy^n!2zGDgXIa&lsR~YY`1sG#ul6NN8jlyKlk4L zKGgtmJzgQ_F_XxX%^X)8~KrJ$00Lin@ZL>aPOo0DybNepc-oUTIs2(i36XtSvJ=Y zz|+w6Bq(+MUcoc}j>VVb{ifSTv(Li%TXt`u_7S;0D)A`xW`67`83{Nq`TU-pu&v!bDFQE(UESj(*iP>2k z;er!5eY|Wt?tGfR4Rn}2@~t`;?_2%5f97;NdzQ9!_GsM)CU|l#;AX4BfUmr| zXUZ_7ph;%;!{()UH6#;ONf4yu64X1k;-1EE*U>ApxD@rq))(?7dh5#zm^{Iy4zjED zu#466%!=q)KgSW1@FHWZ3}x%|K9Ziv7h@H*V?05<-hnDJFYp^?+L>|c<6#oGtWq%C z(2~HOv<;v2ScZcNi=T z78a#Acu?Ci!b+E2JksCn*TA``nJuCu67UvLQ@5eh(PdXGCNW?*>LOb!+ThbsOs_$g zV2NtF&0%^XnSL3wmRWO!xizI9V=RF>U8nDo^k3jX6=75?W?j_*?NO~Wm6F=dmnezU zZ!Z#2L$Ih9=nK9&B+5d`9706vM1m&o;SYgl-CGkYYoVZ!wLoYToXx@ z**$_YJBX9m!!@~&gEL8Mau?u?)?`{2dS_q5K;QUNsn7G_*+CITpA)1YN1qpC7^U_3 zL+mky$)G+zi^On!{s_@C{@igwn7i^iS8WU#)n*z;SD&e?)w^Ru`M9|Cy6su~_7_8}AnF z6t^uEGG|n~s0ybHJGX9F5TwOwPeFyZYtZil+|l%(LHaGCjHbV?roYz~hyF83e>$@| z?fNRb82Yc(>3c+b>pSU&{&VndC8KJA6!15iuy4_C98Fjq61JH>*l5B|(}cad*&*z7 z5>_DYT4Qi#OIIWY=LMZULkP=p(hXsGc(;n#T%LnAXe$)n0B%DW(x^@ibjI39Q1I-5 znh|j{ZKr73&I25jqjn(w5N6zQYW5)A;9MAd=&Hu=Ej;e8JZRtp^P2G%ly&jz?ys70yjx9^K8rglom%lDzCQ&Zh}Gr2Bi!<)`F zmb2cQowL>JH688n2pOSM=zvA6qbl1_SN3X@s_k1N3Zgl)mRZ|GlTXEq(U5vNz0QNw z@I!FfB0Z4D6{o1ak!FGxr4Kei2K&d}1C2eQjZ(`n7;(B_PtH}r{?T_y(4H`O&X)0# z?jLgj!p^jqCP5nmF%qVSWT8Q8AQTjjoB~VWB7spYsU?Va6jn^8EEOhGVH?mD9jz4S zYd+O_-{I2*Jeg#vKAl14-&YLy0O@hPkkQ5oYAD8qe)K#TA({OP*4t?Y3pthhbfS+ z@JPyPPtJ5OG&C-&4=jc^qm%U->V;%X)mYdYYwW*lbQp6H8S^uiy@DoYD_#s^cIfnW zqChL0bi z8%3X}8CsvN5)hhaYE`Ld6^psChig6z>vsCb2~+UcVG5-fQT}jpAZT2*vxBuFz=3 zyI7O{>3UJTCV_Up!c%cD&N~Ei5V{xv_hu}(rW)=!z-gOw1*`n5_O|M__5fatO6BSF zT~g(tIz6x-lE%nsv-%o=F`^@sx@yNsrR;Fvu0FlP;nc=K{qP`B&yUVV#-Nc$l$$wD zfF#!dS<;_0*G*LYOh;%Gmsw@{Z$<}ln{ zQ==z<)6o)Au3O<%)RG6p@f$U3x>~dB?qY{!*N|m*Y8S0$Sr@z*mffP$wU#t@(v6n1 zz`J#rTGA6O&1i|1mYZwIKhGcmK@Oj zz_eXq{=j41FJ%0!^t5vBNAsVNs;URXbq^mi_e*BuE4xLkygi9UGqW*C!TK9VAvY%F z!{lM{W(zr%iL=y_Vn2SVz zp(9oE>-pp57aZz{r{9QW5j9=rXxLSPt)&k%I7_ycX5#}{g}{*!^fi}B=MurHjcVX3 zd?~l;1X*se2?5OPUuCKg{XUer4 z*e#i`aHt#+_AGv6*=;puYH(5IHpJ(2HStxB7GzyrFSBv=LS6ALs)YTP4}~p^o(@Ma z7XLi>v6}LOa^ula63wZ)>PGm$5T(jx+X?Spior3WgBIgo?6TObI+~*AB0&P>b&;uR z)jPmcX7vJE$^n$Q)QfPzM$4fT%Ys;K9VXZgU@(If!`|s?<$_=(l4Oi2l^9N>p-PYz z)dNUTiJS0a?Uzbi$6}186Bz3-Dn}Pn$)fIDni0zTv-;R+G`$WOyL?Ett26%Y!!!P? zQU(7%p8uFRu1b}7LI6wv`C~A+{*nc;e_bVy2?2ebFh0@ctutYKU6;2OPMu6?U&mW* zVO-zUbzN5$^4|z}t=}i@3DfUX$fC0KII(wr*p7T3S@|B|@-- zihR6gA#Rhet{zzS%BbL`xD~ZcPWZ z42Y0+*Z|a`$((^7YYRW9M4=x65fzJBW{jwa8{oNu74YICxw-(pA~3Okka-g@zeYm0 zWs@NQ1o|@qC@aLLZ38=RzIQyG2?oA%-n){yonV#z(p0E%3r9c2dPj|8?RJRzKV+Wz{)3>b8C>9({Q>M5<0bzJYg!D zcEn-hlP|?$W9Q|DjfnbiSxu*djlCd0Hj;e3Nl^?vift~pv*s0 zv~PoF^8LWjlgj$r1zh4~kQQA^r$d(*@cC%65PPK#-$KF%jU?e5O}!`QJ79JSRS*Bp z8hCQHOQJ->ZB+MxYbjb~h6T|K0%0jaO4fN4tuoKrmWvILt zD{TeMmKpI@CtutTW2Y!oF{5&Tcn1LPRhP8@jLcBqK z;C}oJ_4^Bzk}_|pAqDoQcCVPygI+QSMsuK4;k1(lP{*}Wtb6~LUL9>cw#yn!1Z&}D35jR4l4({ z(k9p%KZV0no8`{YWl5KJXpyNr<1MVZkAn6D;L?>>h)E4q{^XblRyYV4xM6i6f+D!+ zS^4ppT0~TS7Vxq1wNOHaTJc<^mH)dS4OadXR{kdRKh_N5KLX>W3G4`j*i3<=n#E|T zYw+$=T^l)df2kw=o1)7T1{{3LFrYT+7wK0A{SFqj3^N7YpzNSweBT(xa|O32rvUFk zt2PAyEu{r|{{{mxC#sTCXs#4$m7z8iE(Ss_l?l(R)nW$f*8ug)mj+iPd#>@-g}8op zxJ9|N*(QOHMUre180s3b4yhH3Y33n_wpuHoz#U?e^Xr?22Rs_VYDXHXz;%|4gjPj(6}QVACkyRN!}nPl@9Lg-@Fu zL-T|-Ft?aF@aY)zz7_5 zS;Yii4-a~%sc<7GZNYEfkP1)EV|WiXl|JxTv=l|Bah?BkEEe^4N~q5gy8Htr45g1= z$JuXG=ZJx3Q}E<0!G{brFeaYbg2$Q;1XKdqXh3^K53MIy9Cu@y!&(a;nCixk02<@T^JIQ79&*_xF}cMWW&VB%tc~pB!^Zg z^#HmzEySFsVsWXtLt{hIC}zAZXw;jXigM?L3Z#M*$)L+nK-~>98u^mBNOrgx3Rp3S z@DO?=O@k{Y4GUj0d}>4*M3D-9A`M5`sYOD=wh&Q#ERwT}4N+0Hu41v~s2UxlVchIk ze7MA+;T+N+maHXc2x`kLM9%3tw2BG8?^RQWa|theJn$p+nGyGcH+Xd2sR~X0++_bGgRYg@t9WCWa8-(#N!e?)SDDJFpH-2?wEKQYCJgx z&-ujTCY~)w2`m!}PwDG{Ire{{rWxwIn7BTKy9VB#T?W?$#I+3GT-APmMD^iT(t8GQI3}5 z6=mc!)X{LL#;*HqMurlK+Hx(V)BYc}gT0X@yp_U(+XNKll08@HAAjg_W- z+wgcSO2$eOPkhKwlVakzQWNdiwj9SoOQNsj}=(;RkPv1}G7 zus1p$i96Ju(@2OX_cf*qnQ+B7RrPR02$R_ZWvJFMOZX0M7HD}FVCPcq2C%^?(U$?!MIKm)eyxo{*8q6ef?UPe}%xaJA&~5E}iqKx& zWCMiP9I(FKht2&nr`tWl@1Ge}P2V@uqo=BlfB>w%2X6U}Y7`euS7_F<01g-lFSydW z8N{Wl8Se zPxQ!LHRQXVC(yJg58vG~Z(!?G6;PRq#r(vn1RI;0bD1-7s{M~xa$F7fjI^4oK)E%W zlGt3zc1wgH;r1Z>)|s*3Cpqv}6Mh@vrwKeu2mCof_(x*GU+=(QL-@oe0pDHV*;4_2 zH=L8&LiUUaAMe1oAbdN*djwu{L4AzrmZ?k`m?F$kt0hq=EJtF2Fz;1K)Ww={?-NKu z01JYfICEAFF$u+3M-&l@Uf-_+>xwhur?ySV%l#S|rnYtG<$goDvByZe98@V(E(~Tx zILsagX0L|H=Y+tB`mIQ~Nq|F1of7P(dHE{{*U6oi|2E;oC9Qms`FpY)?Yl0|tTMGD zD5Mj4DozHtE-&{Bz^NV~2##zUY09cdZQfxCtj$W65NGF;L;6+*b!G^TOMeQ3PjErQ z6*zE(22R�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

    91-9W>f(EZf4(12|U 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̾#oC1qob`zy%3hkiZ2A zT#̾#oC1qob`zy%3hkiZ2AT#̾#oC|78*o=Ubj?t~=kd1w8eU^DRe49dJ3u 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%0D9uUrqZd%*maiz1qI}EiUMXUx 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%0AqxeEk`ENr@{grk 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

    2ETa>c~+Wth&|#9>3QbG497P#cCafYIdOhA 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

    rA8 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 - -#ifdef __cplusplus -extern "C" { -#endif - -typedef enum { - shaderc_target_env_vulkan, // SPIR-V under Vulkan semantics - shaderc_target_env_opengl, // SPIR-V under OpenGL semantics - // NOTE: SPIR-V code generation is not supported for shaders under OpenGL - // compatibility profile. - shaderc_target_env_opengl_compat, // SPIR-V under OpenGL semantics, - // including compatibility profile - // functions - shaderc_target_env_webgpu, // SPIR-V under WebGPU semantics - shaderc_target_env_default = shaderc_target_env_vulkan -} shaderc_target_env; - -typedef enum { - // For Vulkan, use Vulkan's mapping of version numbers to integers. - // See vulkan.h - shaderc_env_version_vulkan_1_0 = ((1u << 22)), - shaderc_env_version_vulkan_1_1 = ((1u << 22) | (1 << 12)), - shaderc_env_version_vulkan_1_2 = ((1u << 22) | (2 << 12)), - // For OpenGL, use the number from #version in shaders. - // TODO(dneto): Currently no difference between OpenGL 4.5 and 4.6. - // See glslang/Standalone/Standalone.cpp - // TODO(dneto): Glslang doesn't accept a OpenGL client version of 460. - shaderc_env_version_opengl_4_5 = 450, - // Currently WebGPU doesn't have versioning, since it isn't finalized. This - // will have to be updated once the spec is finished. - shaderc_env_version_webgpu, -} shaderc_env_version; - -// The known versions of SPIR-V. -typedef enum { - // Use the values used for word 1 of a SPIR-V binary: - // - bits 24 to 31: zero - // - bits 16 to 23: major version number - // - bits 8 to 15: minor version number - // - bits 0 to 7: zero - shaderc_spirv_version_1_0 = 0x010000u, - shaderc_spirv_version_1_1 = 0x010100u, - shaderc_spirv_version_1_2 = 0x010200u, - shaderc_spirv_version_1_3 = 0x010300u, - shaderc_spirv_version_1_4 = 0x010400u, - shaderc_spirv_version_1_5 = 0x010500u -} shaderc_spirv_version; - -#ifdef __cplusplus -} -#endif // __cplusplus - -#endif // SHADERC_ENV_H_ diff --git a/external/vulkan/windows/include/shaderc/shaderc.h b/external/vulkan/windows/include/shaderc/shaderc.h deleted file mode 100644 index 2fad35ce..00000000 --- a/external/vulkan/windows/include/shaderc/shaderc.h +++ /dev/null @@ -1,582 +0,0 @@ -// Copyright 2015 The Shaderc Authors. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#ifndef SHADERC_SHADERC_H_ -#define SHADERC_SHADERC_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -#include "shaderc/env.h" -#include "shaderc/status.h" -#include "shaderc/visibility.h" - -// Source language kind. -typedef enum { - shaderc_source_language_glsl, - shaderc_source_language_hlsl, -} shaderc_source_language; - -typedef enum { - // Forced shader kinds. These shader kinds force the compiler to compile the - // source code as the specified kind of shader. - shaderc_vertex_shader, - shaderc_fragment_shader, - shaderc_compute_shader, - shaderc_geometry_shader, - shaderc_tess_control_shader, - shaderc_tess_evaluation_shader, - - shaderc_glsl_vertex_shader = shaderc_vertex_shader, - shaderc_glsl_fragment_shader = shaderc_fragment_shader, - shaderc_glsl_compute_shader = shaderc_compute_shader, - shaderc_glsl_geometry_shader = shaderc_geometry_shader, - shaderc_glsl_tess_control_shader = shaderc_tess_control_shader, - shaderc_glsl_tess_evaluation_shader = shaderc_tess_evaluation_shader, - - // Deduce the shader kind from #pragma annotation in the source code. Compiler - // will emit error if #pragma annotation is not found. - shaderc_glsl_infer_from_source, - // Default shader kinds. Compiler will fall back to compile the source code as - // the specified kind of shader when #pragma annotation is not found in the - // source code. - shaderc_glsl_default_vertex_shader, - shaderc_glsl_default_fragment_shader, - shaderc_glsl_default_compute_shader, - shaderc_glsl_default_geometry_shader, - shaderc_glsl_default_tess_control_shader, - shaderc_glsl_default_tess_evaluation_shader, - shaderc_spirv_assembly, -#ifdef NV_EXTENSIONS - shaderc_raygen_shader, - shaderc_anyhit_shader, - shaderc_closesthit_shader, - shaderc_miss_shader, - shaderc_intersection_shader, - shaderc_callable_shader, - shaderc_glsl_raygen_shader = shaderc_raygen_shader, - shaderc_glsl_anyhit_shader = shaderc_anyhit_shader, - shaderc_glsl_closesthit_shader = shaderc_closesthit_shader, - shaderc_glsl_miss_shader = shaderc_miss_shader, - shaderc_glsl_intersection_shader = shaderc_intersection_shader, - shaderc_glsl_callable_shader = shaderc_callable_shader, - shaderc_glsl_default_raygen_shader, - shaderc_glsl_default_anyhit_shader, - shaderc_glsl_default_closesthit_shader, - shaderc_glsl_default_miss_shader, - shaderc_glsl_default_intersection_shader, - shaderc_glsl_default_callable_shader, - shaderc_task_shader, - shaderc_mesh_shader, - shaderc_glsl_task_shader = shaderc_task_shader, - shaderc_glsl_mesh_shader = shaderc_mesh_shader, - shaderc_glsl_default_task_shader, - shaderc_glsl_default_mesh_shader, -#endif -} shaderc_shader_kind; - -typedef enum { - shaderc_profile_none, // Used if and only if GLSL version did not specify - // profiles. - shaderc_profile_core, - shaderc_profile_compatibility, - shaderc_profile_es, -} shaderc_profile; - -// Optimization level. -typedef enum { - shaderc_optimization_level_zero, // no optimization - shaderc_optimization_level_size, // optimize towards reducing code size - shaderc_optimization_level_performance, // optimize towards performance -} shaderc_optimization_level; - -// Resource limits. -typedef enum { - shaderc_limit_max_lights, - shaderc_limit_max_clip_planes, - shaderc_limit_max_texture_units, - shaderc_limit_max_texture_coords, - shaderc_limit_max_vertex_attribs, - shaderc_limit_max_vertex_uniform_components, - shaderc_limit_max_varying_floats, - shaderc_limit_max_vertex_texture_image_units, - shaderc_limit_max_combined_texture_image_units, - shaderc_limit_max_texture_image_units, - shaderc_limit_max_fragment_uniform_components, - shaderc_limit_max_draw_buffers, - shaderc_limit_max_vertex_uniform_vectors, - shaderc_limit_max_varying_vectors, - shaderc_limit_max_fragment_uniform_vectors, - shaderc_limit_max_vertex_output_vectors, - shaderc_limit_max_fragment_input_vectors, - shaderc_limit_min_program_texel_offset, - shaderc_limit_max_program_texel_offset, - shaderc_limit_max_clip_distances, - shaderc_limit_max_compute_work_group_count_x, - shaderc_limit_max_compute_work_group_count_y, - shaderc_limit_max_compute_work_group_count_z, - shaderc_limit_max_compute_work_group_size_x, - shaderc_limit_max_compute_work_group_size_y, - shaderc_limit_max_compute_work_group_size_z, - shaderc_limit_max_compute_uniform_components, - shaderc_limit_max_compute_texture_image_units, - shaderc_limit_max_compute_image_uniforms, - shaderc_limit_max_compute_atomic_counters, - shaderc_limit_max_compute_atomic_counter_buffers, - shaderc_limit_max_varying_components, - shaderc_limit_max_vertex_output_components, - shaderc_limit_max_geometry_input_components, - shaderc_limit_max_geometry_output_components, - shaderc_limit_max_fragment_input_components, - shaderc_limit_max_image_units, - shaderc_limit_max_combined_image_units_and_fragment_outputs, - shaderc_limit_max_combined_shader_output_resources, - shaderc_limit_max_image_samples, - shaderc_limit_max_vertex_image_uniforms, - shaderc_limit_max_tess_control_image_uniforms, - shaderc_limit_max_tess_evaluation_image_uniforms, - shaderc_limit_max_geometry_image_uniforms, - shaderc_limit_max_fragment_image_uniforms, - shaderc_limit_max_combined_image_uniforms, - shaderc_limit_max_geometry_texture_image_units, - shaderc_limit_max_geometry_output_vertices, - shaderc_limit_max_geometry_total_output_components, - shaderc_limit_max_geometry_uniform_components, - shaderc_limit_max_geometry_varying_components, - shaderc_limit_max_tess_control_input_components, - shaderc_limit_max_tess_control_output_components, - shaderc_limit_max_tess_control_texture_image_units, - shaderc_limit_max_tess_control_uniform_components, - shaderc_limit_max_tess_control_total_output_components, - shaderc_limit_max_tess_evaluation_input_components, - shaderc_limit_max_tess_evaluation_output_components, - shaderc_limit_max_tess_evaluation_texture_image_units, - shaderc_limit_max_tess_evaluation_uniform_components, - shaderc_limit_max_tess_patch_components, - shaderc_limit_max_patch_vertices, - shaderc_limit_max_tess_gen_level, - shaderc_limit_max_viewports, - shaderc_limit_max_vertex_atomic_counters, - shaderc_limit_max_tess_control_atomic_counters, - shaderc_limit_max_tess_evaluation_atomic_counters, - shaderc_limit_max_geometry_atomic_counters, - shaderc_limit_max_fragment_atomic_counters, - shaderc_limit_max_combined_atomic_counters, - shaderc_limit_max_atomic_counter_bindings, - shaderc_limit_max_vertex_atomic_counter_buffers, - shaderc_limit_max_tess_control_atomic_counter_buffers, - shaderc_limit_max_tess_evaluation_atomic_counter_buffers, - shaderc_limit_max_geometry_atomic_counter_buffers, - shaderc_limit_max_fragment_atomic_counter_buffers, - shaderc_limit_max_combined_atomic_counter_buffers, - shaderc_limit_max_atomic_counter_buffer_size, - shaderc_limit_max_transform_feedback_buffers, - shaderc_limit_max_transform_feedback_interleaved_components, - shaderc_limit_max_cull_distances, - shaderc_limit_max_combined_clip_and_cull_distances, - shaderc_limit_max_samples, -} shaderc_limit; - -// Uniform resource kinds. -// In Vulkan, uniform resources are bound to the pipeline via descriptors -// with numbered bindings and sets. -typedef enum { - // Image and image buffer. - shaderc_uniform_kind_image, - // Pure sampler. - shaderc_uniform_kind_sampler, - // Sampled texture in GLSL, and Shader Resource View in HLSL. - shaderc_uniform_kind_texture, - // Uniform Buffer Object (UBO) in GLSL. Cbuffer in HLSL. - shaderc_uniform_kind_buffer, - // Shader Storage Buffer Object (SSBO) in GLSL. - shaderc_uniform_kind_storage_buffer, - // Unordered Access View, in HLSL. (Writable storage image or storage - // buffer.) - shaderc_uniform_kind_unordered_access_view, -} shaderc_uniform_kind; - -// Usage examples: -// -// Aggressively release compiler resources, but spend time in initialization -// for each new use. -// shaderc_compiler_t compiler = shaderc_compiler_initialize(); -// shaderc_compilation_result_t result = shaderc_compile_into_spv( -// compiler, "#version 450\nvoid main() {}", 27, -// shaderc_glsl_vertex_shader, "main.vert", "main", nullptr); -// // Do stuff with compilation results. -// shaderc_result_release(result); -// shaderc_compiler_release(compiler); -// -// Keep the compiler object around for a long time, but pay for extra space -// occupied. -// shaderc_compiler_t compiler = shaderc_compiler_initialize(); -// // On the same, other or multiple simultaneous threads. -// shaderc_compilation_result_t result = shaderc_compile_into_spv( -// compiler, "#version 450\nvoid main() {}", 27, -// shaderc_glsl_vertex_shader, "main.vert", "main", nullptr); -// // Do stuff with compilation results. -// shaderc_result_release(result); -// // Once no more compilations are to happen. -// shaderc_compiler_release(compiler); - -// An opaque handle to an object that manages all compiler state. -typedef struct shaderc_compiler* shaderc_compiler_t; - -// Returns a shaderc_compiler_t that can be used to compile modules. -// A return of NULL indicates that there was an error initializing the compiler. -// Any function operating on shaderc_compiler_t must offer the basic -// thread-safety guarantee. -// [http://herbsutter.com/2014/01/13/gotw-95-solution-thread-safety-and-synchronization/] -// That is: concurrent invocation of these functions on DIFFERENT objects needs -// no synchronization; concurrent invocation of these functions on the SAME -// object requires synchronization IF AND ONLY IF some of them take a non-const -// argument. -SHADERC_EXPORT shaderc_compiler_t shaderc_compiler_initialize(void); - -// Releases the resources held by the shaderc_compiler_t. -// After this call it is invalid to make any future calls to functions -// involving this shaderc_compiler_t. -SHADERC_EXPORT void shaderc_compiler_release(shaderc_compiler_t); - -// An opaque handle to an object that manages options to a single compilation -// result. -typedef struct shaderc_compile_options* shaderc_compile_options_t; - -// Returns a default-initialized shaderc_compile_options_t that can be used -// to modify the functionality of a compiled module. -// A return of NULL indicates that there was an error initializing the options. -// Any function operating on shaderc_compile_options_t must offer the -// basic thread-safety guarantee. -SHADERC_EXPORT shaderc_compile_options_t - shaderc_compile_options_initialize(void); - -// Returns a copy of the given shaderc_compile_options_t. -// If NULL is passed as the parameter the call is the same as -// shaderc_compile_options_init. -SHADERC_EXPORT shaderc_compile_options_t shaderc_compile_options_clone( - const shaderc_compile_options_t options); - -// Releases the compilation options. It is invalid to use the given -// shaderc_compile_options_t object in any future calls. It is safe to pass -// NULL to this function, and doing such will have no effect. -SHADERC_EXPORT void shaderc_compile_options_release( - shaderc_compile_options_t options); - -// Adds a predefined macro to the compilation options. This has the same -// effect as passing -Dname=value to the command-line compiler. If value -// is NULL, it has the same effect as passing -Dname to the command-line -// compiler. If a macro definition with the same name has previously been -// added, the value is replaced with the new value. The macro name and -// value are passed in with char pointers, which point to their data, and -// the lengths of their data. The strings that the name and value pointers -// point to must remain valid for the duration of the call, but can be -// modified or deleted after this function has returned. In case of adding -// a valueless macro, the value argument should be a null pointer or the -// value_length should be 0u. -SHADERC_EXPORT void shaderc_compile_options_add_macro_definition( - shaderc_compile_options_t options, const char* name, size_t name_length, - const char* value, size_t value_length); - -// Sets the source language. The default is GLSL. -SHADERC_EXPORT void shaderc_compile_options_set_source_language( - shaderc_compile_options_t options, shaderc_source_language lang); - -// Sets the compiler mode to generate debug information in the output. -SHADERC_EXPORT void shaderc_compile_options_set_generate_debug_info( - shaderc_compile_options_t options); - -// Sets the compiler optimization level to the given level. Only the last one -// takes effect if multiple calls of this function exist. -SHADERC_EXPORT void shaderc_compile_options_set_optimization_level( - shaderc_compile_options_t options, shaderc_optimization_level level); - -// Forces the GLSL language version and profile to a given pair. The version -// number is the same as would appear in the #version annotation in the source. -// Version and profile specified here overrides the #version annotation in the -// source. Use profile: 'shaderc_profile_none' for GLSL versions that do not -// define profiles, e.g. versions below 150. -SHADERC_EXPORT void shaderc_compile_options_set_forced_version_profile( - shaderc_compile_options_t options, int version, shaderc_profile profile); - -// Source text inclusion via #include is supported with a pair of callbacks -// to an "includer" on the client side. The first callback processes an -// inclusion request, and returns an include result. The includer owns -// the contents of the result, and those contents must remain valid until the -// second callback is invoked to release the result. Both callbacks take a -// user_data argument to specify the client context. -// To return an error, set the source_name to an empty string and put your -// error message in content. - -// An include result. -typedef struct shaderc_include_result { - // The name of the source file. The name should be fully resolved - // in the sense that it should be a unique name in the context of the - // includer. For example, if the includer maps source names to files in - // a filesystem, then this name should be the absolute path of the file. - // For a failed inclusion, this string is empty. - const char* source_name; - size_t source_name_length; - // The text contents of the source file in the normal case. - // For a failed inclusion, this contains the error message. - const char* content; - size_t content_length; - // User data to be passed along with this request. - void* user_data; -} shaderc_include_result; - -// The kinds of include requests. -enum shaderc_include_type { - shaderc_include_type_relative, // E.g. #include "source" - shaderc_include_type_standard // E.g. #include -}; - -// An includer callback type for mapping an #include request to an include -// result. The user_data parameter specifies the client context. The -// requested_source parameter specifies the name of the source being requested. -// The type parameter specifies the kind of inclusion request being made. -// The requesting_source parameter specifies the name of the source containing -// the #include request. The includer owns the result object and its contents, -// and both must remain valid until the release callback is called on the result -// object. -typedef shaderc_include_result* (*shaderc_include_resolve_fn)( - void* user_data, const char* requested_source, int type, - const char* requesting_source, size_t include_depth); - -// An includer callback type for destroying an include result. -typedef void (*shaderc_include_result_release_fn)( - void* user_data, shaderc_include_result* include_result); - -// Sets includer callback functions. -SHADERC_EXPORT void shaderc_compile_options_set_include_callbacks( - shaderc_compile_options_t options, shaderc_include_resolve_fn resolver, - shaderc_include_result_release_fn result_releaser, void* user_data); - -// Sets the compiler mode to suppress warnings, overriding warnings-as-errors -// mode. When both suppress-warnings and warnings-as-errors modes are -// turned on, warning messages will be inhibited, and will not be emitted -// as error messages. -SHADERC_EXPORT void shaderc_compile_options_set_suppress_warnings( - shaderc_compile_options_t options); - -// Sets the target shader environment, affecting which warnings or errors will -// be issued. The version will be for distinguishing between different versions -// of the target environment. The version value should be either 0 or -// a value listed in shaderc_env_version. The 0 value maps to Vulkan 1.0 if -// |target| is Vulkan, and it maps to OpenGL 4.5 if |target| is OpenGL. -SHADERC_EXPORT void shaderc_compile_options_set_target_env( - shaderc_compile_options_t options, - shaderc_target_env target, - uint32_t version); - -// Sets the target SPIR-V version. The generated module will use this version -// of SPIR-V. Each target environment determines what versions of SPIR-V -// it can consume. Defaults to the highest version of SPIR-V 1.0 which is -// required to be supported by the target environment. E.g. Default to SPIR-V -// 1.0 for Vulkan 1.0 and SPIR-V 1.3 for Vulkan 1.1. -SHADERC_EXPORT void shaderc_compile_options_set_target_spirv( - shaderc_compile_options_t options, shaderc_spirv_version version); - -// Sets the compiler mode to treat all warnings as errors. Note the -// suppress-warnings mode overrides this option, i.e. if both -// warning-as-errors and suppress-warnings modes are set, warnings will not -// be emitted as error messages. -SHADERC_EXPORT void shaderc_compile_options_set_warnings_as_errors( - shaderc_compile_options_t options); - -// Sets a resource limit. -SHADERC_EXPORT void shaderc_compile_options_set_limit( - shaderc_compile_options_t options, shaderc_limit limit, int value); - -// Sets whether the compiler should automatically assign bindings to uniforms -// that aren't already explicitly bound in the shader source. -SHADERC_EXPORT void shaderc_compile_options_set_auto_bind_uniforms( - shaderc_compile_options_t options, bool auto_bind); - -// Sets whether the compiler should use HLSL IO mapping rules for bindings. -// Defaults to false. -SHADERC_EXPORT void shaderc_compile_options_set_hlsl_io_mapping( - shaderc_compile_options_t options, bool hlsl_iomap); - -// Sets whether the compiler should determine block member offsets using HLSL -// packing rules instead of standard GLSL rules. Defaults to false. Only -// affects GLSL compilation. HLSL rules are always used when compiling HLSL. -SHADERC_EXPORT void shaderc_compile_options_set_hlsl_offsets( - shaderc_compile_options_t options, bool hlsl_offsets); - -// Sets the base binding number used for for a uniform resource type when -// automatically assigning bindings. For GLSL compilation, sets the lowest -// automatically assigned number. For HLSL compilation, the regsiter number -// assigned to the resource is added to this specified base. -SHADERC_EXPORT void shaderc_compile_options_set_binding_base( - shaderc_compile_options_t options, - shaderc_uniform_kind kind, - uint32_t base); - -// Like shaderc_compile_options_set_binding_base, but only takes effect when -// compiling a given shader stage. The stage is assumed to be one of vertex, -// fragment, tessellation evaluation, tesselation control, geometry, or compute. -SHADERC_EXPORT void shaderc_compile_options_set_binding_base_for_stage( - shaderc_compile_options_t options, shaderc_shader_kind shader_kind, - shaderc_uniform_kind kind, uint32_t base); - -// Sets whether the compiler should automatically assign locations to -// uniform variables that don't have explicit locations in the shader source. -SHADERC_EXPORT void shaderc_compile_options_set_auto_map_locations( - shaderc_compile_options_t options, bool auto_map); - -// Sets a descriptor set and binding for an HLSL register in the given stage. -// This method keeps a copy of the string data. -SHADERC_EXPORT void shaderc_compile_options_set_hlsl_register_set_and_binding_for_stage( - shaderc_compile_options_t options, shaderc_shader_kind shader_kind, - const char* reg, const char* set, const char* binding); - -// Like shaderc_compile_options_set_hlsl_register_set_and_binding_for_stage, -// but affects all shader stages. -SHADERC_EXPORT void shaderc_compile_options_set_hlsl_register_set_and_binding( - shaderc_compile_options_t options, const char* reg, const char* set, - const char* binding); - -// Sets whether the compiler should enable extension -// SPV_GOOGLE_hlsl_functionality1. -SHADERC_EXPORT void shaderc_compile_options_set_hlsl_functionality1( - shaderc_compile_options_t options, bool enable); - -// Sets whether the compiler should invert position.Y output in vertex shader. -SHADERC_EXPORT void shaderc_compile_options_set_invert_y( - shaderc_compile_options_t options, bool enable); - -// Sets whether the compiler generates code for max and min builtins which, -// if given a NaN operand, will return the other operand. Similarly, the clamp -// builtin will favour the non-NaN operands, as if clamp were implemented -// as a composition of max and min. -SHADERC_EXPORT void shaderc_compile_options_set_nan_clamp( - shaderc_compile_options_t options, bool enable); - -// An opaque handle to the results of a call to any shaderc_compile_into_*() -// function. -typedef struct shaderc_compilation_result* shaderc_compilation_result_t; - -// Takes a GLSL source string and the associated shader kind, input file -// name, compiles it according to the given additional_options. If the shader -// kind is not set to a specified kind, but shaderc_glslc_infer_from_source, -// the compiler will try to deduce the shader kind from the source -// string and a failure in deducing will generate an error. Currently only -// #pragma annotation is supported. If the shader kind is set to one of the -// default shader kinds, the compiler will fall back to the default shader -// kind in case it failed to deduce the shader kind from source string. -// The input_file_name is a null-termintated string. It is used as a tag to -// identify the source string in cases like emitting error messages. It -// doesn't have to be a 'file name'. -// The source string will be compiled into SPIR-V binary and a -// shaderc_compilation_result will be returned to hold the results. -// The entry_point_name null-terminated string defines the name of the entry -// point to associate with this GLSL source. If the additional_options -// parameter is not null, then the compilation is modified by any options -// present. May be safely called from multiple threads without explicit -// synchronization. If there was failure in allocating the compiler object, -// null will be returned. -SHADERC_EXPORT shaderc_compilation_result_t shaderc_compile_into_spv( - const shaderc_compiler_t compiler, const char* source_text, - size_t source_text_size, shaderc_shader_kind shader_kind, - const char* input_file_name, const char* entry_point_name, - const shaderc_compile_options_t additional_options); - -// Like shaderc_compile_into_spv, but the result contains SPIR-V assembly text -// instead of a SPIR-V binary module. The SPIR-V assembly syntax is as defined -// by the SPIRV-Tools open source project. -SHADERC_EXPORT shaderc_compilation_result_t shaderc_compile_into_spv_assembly( - const shaderc_compiler_t compiler, const char* source_text, - size_t source_text_size, shaderc_shader_kind shader_kind, - const char* input_file_name, const char* entry_point_name, - const shaderc_compile_options_t additional_options); - -// Like shaderc_compile_into_spv, but the result contains preprocessed source -// code instead of a SPIR-V binary module -SHADERC_EXPORT shaderc_compilation_result_t shaderc_compile_into_preprocessed_text( - const shaderc_compiler_t compiler, const char* source_text, - size_t source_text_size, shaderc_shader_kind shader_kind, - const char* input_file_name, const char* entry_point_name, - const shaderc_compile_options_t additional_options); - -// Takes an assembly string of the format defined in the SPIRV-Tools project -// (https://github.com/KhronosGroup/SPIRV-Tools/blob/master/syntax.md), -// assembles it into SPIR-V binary and a shaderc_compilation_result will be -// returned to hold the results. -// The assembling will pick options suitable for assembling specified in the -// additional_options parameter. -// May be safely called from multiple threads without explicit synchronization. -// If there was failure in allocating the compiler object, null will be -// returned. -SHADERC_EXPORT shaderc_compilation_result_t shaderc_assemble_into_spv( - const shaderc_compiler_t compiler, const char* source_assembly, - size_t source_assembly_size, - const shaderc_compile_options_t additional_options); - -// The following functions, operating on shaderc_compilation_result_t objects, -// offer only the basic thread-safety guarantee. - -// Releases the resources held by the result object. It is invalid to use the -// result object for any further operations. -SHADERC_EXPORT void shaderc_result_release(shaderc_compilation_result_t result); - -// Returns the number of bytes of the compilation output data in a result -// object. -SHADERC_EXPORT size_t shaderc_result_get_length(const shaderc_compilation_result_t result); - -// Returns the number of warnings generated during the compilation. -SHADERC_EXPORT size_t shaderc_result_get_num_warnings( - const shaderc_compilation_result_t result); - -// Returns the number of errors generated during the compilation. -SHADERC_EXPORT size_t shaderc_result_get_num_errors(const shaderc_compilation_result_t result); - -// Returns the compilation status, indicating whether the compilation succeeded, -// or failed due to some reasons, like invalid shader stage or compilation -// errors. -SHADERC_EXPORT shaderc_compilation_status shaderc_result_get_compilation_status( - const shaderc_compilation_result_t); - -// Returns a pointer to the start of the compilation output data bytes, either -// SPIR-V binary or char string. When the source string is compiled into SPIR-V -// binary, this is guaranteed to be castable to a uint32_t*. If the result -// contains assembly text or preprocessed source text, the pointer will point to -// the resulting array of characters. -SHADERC_EXPORT const char* shaderc_result_get_bytes(const shaderc_compilation_result_t result); - -// Returns a null-terminated string that contains any error messages generated -// during the compilation. -SHADERC_EXPORT const char* shaderc_result_get_error_message( - const shaderc_compilation_result_t result); - -// Provides the version & revision of the SPIR-V which will be produced -SHADERC_EXPORT void shaderc_get_spv_version(unsigned int* version, unsigned int* revision); - -// Parses the version and profile from a given null-terminated string -// containing both version and profile, like: '450core'. Returns false if -// the string can not be parsed. Returns true when the parsing succeeds. The -// parsed version and profile are returned through arguments. -SHADERC_EXPORT bool shaderc_parse_version_profile(const char* str, int* version, - shaderc_profile* profile); - -#ifdef __cplusplus -} -#endif // __cplusplus - -#endif // SHADERC_SHADERC_H_ diff --git a/external/vulkan/windows/include/shaderc/shaderc.hpp b/external/vulkan/windows/include/shaderc/shaderc.hpp deleted file mode 100644 index c88b684f..00000000 --- a/external/vulkan/windows/include/shaderc/shaderc.hpp +++ /dev/null @@ -1,595 +0,0 @@ -// Copyright 2015 The Shaderc Authors. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#ifndef SHADERC_SHADERC_HPP_ -#define SHADERC_SHADERC_HPP_ - -#include -#include -#include - -#include "shaderc.h" - -namespace shaderc { -// A CompilationResult contains the compiler output, compilation status, -// and messages. -// -// The compiler output is stored as an array of elements and accessed -// via random access iterators provided by cbegin() and cend(). The iterators -// are contiguous in the sense of "Contiguous Iterators: A Refinement of -// Random Access Iterators", Nevin Liber, C++ Library Evolution Working -// Group Working Paper N3884. -// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3884.pdf -// -// Methods begin() and end() are also provided to enable range-based for. -// They are synonyms to cbegin() and cend(), respectively. -template -class CompilationResult { - public: - typedef OutputElementType element_type; - // The type used to describe the begin and end iterators on the - // compiler output. - typedef const OutputElementType* const_iterator; - - // Upon creation, the CompilationResult takes ownership of the - // shaderc_compilation_result instance. During destruction of the - // CompilationResult, the shaderc_compilation_result will be released. - explicit CompilationResult(shaderc_compilation_result_t compilation_result) - : compilation_result_(compilation_result) {} - CompilationResult() : compilation_result_(nullptr) {} - ~CompilationResult() { shaderc_result_release(compilation_result_); } - - CompilationResult(CompilationResult&& other) : compilation_result_(nullptr) { - *this = std::move(other); - } - - CompilationResult& operator=(CompilationResult&& other) { - if (compilation_result_) { - shaderc_result_release(compilation_result_); - } - compilation_result_ = other.compilation_result_; - other.compilation_result_ = nullptr; - return *this; - } - - // Returns any error message found during compilation. - std::string GetErrorMessage() const { - if (!compilation_result_) { - return ""; - } - return shaderc_result_get_error_message(compilation_result_); - } - - // Returns the compilation status, indicating whether the compilation - // succeeded, or failed due to some reasons, like invalid shader stage or - // compilation errors. - shaderc_compilation_status GetCompilationStatus() const { - if (!compilation_result_) { - return shaderc_compilation_status_null_result_object; - } - return shaderc_result_get_compilation_status(compilation_result_); - } - - // Returns a random access (contiguous) iterator pointing to the start - // of the compilation output. It is valid for the lifetime of this object. - // If there is no compilation result, then returns nullptr. - const_iterator cbegin() const { - if (!compilation_result_) return nullptr; - return reinterpret_cast( - shaderc_result_get_bytes(compilation_result_)); - } - - // Returns a random access (contiguous) iterator pointing to the end of - // the compilation output. It is valid for the lifetime of this object. - // If there is no compilation result, then returns nullptr. - const_iterator cend() const { - if (!compilation_result_) return nullptr; - return cbegin() + - shaderc_result_get_length(compilation_result_) / - sizeof(OutputElementType); - } - - // Returns the same iterator as cbegin(). - const_iterator begin() const { return cbegin(); } - // Returns the same iterator as cend(). - const_iterator end() const { return cend(); } - - // Returns the number of warnings generated during the compilation. - size_t GetNumWarnings() const { - if (!compilation_result_) { - return 0; - } - return shaderc_result_get_num_warnings(compilation_result_); - } - - // Returns the number of errors generated during the compilation. - size_t GetNumErrors() const { - if (!compilation_result_) { - return 0; - } - return shaderc_result_get_num_errors(compilation_result_); - } - - private: - CompilationResult(const CompilationResult& other) = delete; - CompilationResult& operator=(const CompilationResult& other) = delete; - - shaderc_compilation_result_t compilation_result_; -}; - -// A compilation result for a SPIR-V binary module, which is an array -// of uint32_t words. -using SpvCompilationResult = CompilationResult; -// A compilation result in SPIR-V assembly syntax. -using AssemblyCompilationResult = CompilationResult; -// Preprocessed source text. -using PreprocessedSourceCompilationResult = CompilationResult; - -// Contains any options that can have default values for a compilation. -class CompileOptions { - public: - CompileOptions() { options_ = shaderc_compile_options_initialize(); } - ~CompileOptions() { shaderc_compile_options_release(options_); } - CompileOptions(const CompileOptions& other) { - options_ = shaderc_compile_options_clone(other.options_); - } - CompileOptions(CompileOptions&& other) { - options_ = other.options_; - other.options_ = nullptr; - } - - // Adds a predefined macro to the compilation options. It behaves the same as - // shaderc_compile_options_add_macro_definition in shaderc.h. - void AddMacroDefinition(const char* name, size_t name_length, - const char* value, size_t value_length) { - shaderc_compile_options_add_macro_definition(options_, name, name_length, - value, value_length); - } - - // Adds a valueless predefined macro to the compilation options. - void AddMacroDefinition(const std::string& name) { - AddMacroDefinition(name.c_str(), name.size(), nullptr, 0u); - } - - // Adds a predefined macro to the compilation options. - void AddMacroDefinition(const std::string& name, const std::string& value) { - AddMacroDefinition(name.c_str(), name.size(), value.c_str(), value.size()); - } - - // Sets the compiler mode to generate debug information in the output. - void SetGenerateDebugInfo() { - shaderc_compile_options_set_generate_debug_info(options_); - } - - // Sets the compiler optimization level to the given level. Only the last one - // takes effect if multiple calls of this function exist. - void SetOptimizationLevel(shaderc_optimization_level level) { - shaderc_compile_options_set_optimization_level(options_, level); - } - - // A C++ version of the libshaderc includer interface. - class IncluderInterface { - public: - // Handles shaderc_include_resolver_fn callbacks. - virtual shaderc_include_result* GetInclude(const char* requested_source, - shaderc_include_type type, - const char* requesting_source, - size_t include_depth) = 0; - - // Handles shaderc_include_result_release_fn callbacks. - virtual void ReleaseInclude(shaderc_include_result* data) = 0; - - virtual ~IncluderInterface() = default; - }; - - // Sets the includer instance for libshaderc to call during compilation, as - // described in shaderc_compile_options_set_include_callbacks(). Callbacks - // are routed to this includer's methods. - void SetIncluder(std::unique_ptr&& includer) { - includer_ = std::move(includer); - shaderc_compile_options_set_include_callbacks( - options_, - [](void* user_data, const char* requested_source, int type, - const char* requesting_source, size_t include_depth) { - auto* sub_includer = static_cast(user_data); - return sub_includer->GetInclude(requested_source, - (shaderc_include_type)type, - requesting_source, include_depth); - }, - [](void* user_data, shaderc_include_result* include_result) { - auto* sub_includer = static_cast(user_data); - return sub_includer->ReleaseInclude(include_result); - }, - includer_.get()); - } - - // Forces the GLSL language version and profile to a given pair. The version - // number is the same as would appear in the #version annotation in the - // source. Version and profile specified here overrides the #version - // annotation in the source. Use profile: 'shaderc_profile_none' for GLSL - // versions that do not define profiles, e.g. versions below 150. - void SetForcedVersionProfile(int version, shaderc_profile profile) { - shaderc_compile_options_set_forced_version_profile(options_, version, - profile); - } - - // Sets the compiler mode to suppress warnings. Note this option overrides - // warnings-as-errors mode. When both suppress-warnings and warnings-as-errors - // modes are turned on, warning messages will be inhibited, and will not be - // emitted as error message. - void SetSuppressWarnings() { - shaderc_compile_options_set_suppress_warnings(options_); - } - - // Sets the source language. The default is GLSL. - void SetSourceLanguage(shaderc_source_language lang) { - shaderc_compile_options_set_source_language(options_, lang); - } - - // Sets the target shader environment, affecting which warnings or errors will - // be issued. The version will be for distinguishing between different - // versions of the target environment. The version value should be either 0 - // or a value listed in shaderc_env_version. The 0 value maps to Vulkan 1.0 - // if |target| is Vulkan, and it maps to OpenGL 4.5 if |target| is OpenGL. - void SetTargetEnvironment(shaderc_target_env target, uint32_t version) { - shaderc_compile_options_set_target_env(options_, target, version); - } - - // Sets the target SPIR-V version. The generated module will use this version - // of SPIR-V. Each target environment determines what versions of SPIR-V - // it can consume. Defaults to the highest version of SPIR-V 1.0 which is - // required to be supported by the target environment. E.g. Default to SPIR-V - // 1.0 for Vulkan 1.0 and SPIR-V 1.3 for Vulkan 1.1. - void SetTargetSpirv(shaderc_spirv_version version) { - shaderc_compile_options_set_target_spirv(options_, version); - } - - // Sets the compiler mode to make all warnings into errors. Note the - // suppress-warnings mode overrides this option, i.e. if both - // warning-as-errors and suppress-warnings modes are set on, warnings will not - // be emitted as error message. - void SetWarningsAsErrors() { - shaderc_compile_options_set_warnings_as_errors(options_); - } - - // Sets a resource limit. - void SetLimit(shaderc_limit limit, int value) { - shaderc_compile_options_set_limit(options_, limit, value); - } - - // Sets whether the compiler should automatically assign bindings to uniforms - // that aren't already explicitly bound in the shader source. - void SetAutoBindUniforms(bool auto_bind) { - shaderc_compile_options_set_auto_bind_uniforms(options_, auto_bind); - } - - // Sets whether the compiler should use HLSL IO mapping rules for bindings. - // Defaults to false. - void SetHlslIoMapping(bool hlsl_iomap) { - shaderc_compile_options_set_hlsl_io_mapping(options_, hlsl_iomap); - } - - // Sets whether the compiler should determine block member offsets using HLSL - // packing rules instead of standard GLSL rules. Defaults to false. Only - // affects GLSL compilation. HLSL rules are always used when compiling HLSL. - void SetHlslOffsets(bool hlsl_offsets) { - shaderc_compile_options_set_hlsl_offsets(options_, hlsl_offsets); - } - - // Sets the base binding number used for for a uniform resource type when - // automatically assigning bindings. For GLSL compilation, sets the lowest - // automatically assigned number. For HLSL compilation, the regsiter number - // assigned to the resource is added to this specified base. - void SetBindingBase(shaderc_uniform_kind kind, uint32_t base) { - shaderc_compile_options_set_binding_base(options_, kind, base); - } - - // Like SetBindingBase, but only takes effect when compiling a given shader - // stage. The stage is assumed to be one of vertex, fragment, tessellation - // evaluation, tesselation control, geometry, or compute. - void SetBindingBaseForStage(shaderc_shader_kind shader_kind, - shaderc_uniform_kind kind, uint32_t base) { - shaderc_compile_options_set_binding_base_for_stage(options_, shader_kind, - kind, base); - } - - // Sets whether the compiler automatically assigns locations to - // uniform variables that don't have explicit locations. - void SetAutoMapLocations(bool auto_map) { - shaderc_compile_options_set_auto_map_locations(options_, auto_map); - } - - // Sets a descriptor set and binding for an HLSL register in the given stage. - // Copies the parameter strings. - void SetHlslRegisterSetAndBindingForStage(shaderc_shader_kind shader_kind, - const std::string& reg, - const std::string& set, - const std::string& binding) { - shaderc_compile_options_set_hlsl_register_set_and_binding_for_stage( - options_, shader_kind, reg.c_str(), set.c_str(), binding.c_str()); - } - - // Sets a descriptor set and binding for an HLSL register in any stage. - // Copies the parameter strings. - void SetHlslRegisterSetAndBinding(const std::string& reg, - const std::string& set, - const std::string& binding) { - shaderc_compile_options_set_hlsl_register_set_and_binding( - options_, reg.c_str(), set.c_str(), binding.c_str()); - } - - // Sets whether the compiler should enable extension - // SPV_GOOGLE_hlsl_functionality1. - void SetHlslFunctionality1(bool enable) { - shaderc_compile_options_set_hlsl_functionality1(options_, enable); - } - - // Sets whether the compiler should invert position.Y output in vertex shader. - void SetInvertY(bool enable) { - shaderc_compile_options_set_invert_y(options_, enable); - } - - // Sets whether the compiler should generates code for max an min which, - // if given a NaN operand, will return the other operand. Similarly, the - // clamp builtin will favour the non-NaN operands, as if clamp were - // implemented as a composition of max and min. - void SetNanClamp(bool enable) { - shaderc_compile_options_set_nan_clamp(options_, enable); - } - - private: - CompileOptions& operator=(const CompileOptions& other) = delete; - shaderc_compile_options_t options_; - std::unique_ptr includer_; - - friend class Compiler; -}; - -// The compilation context for compiling source to SPIR-V. -class Compiler { - public: - Compiler() : compiler_(shaderc_compiler_initialize()) {} - ~Compiler() { shaderc_compiler_release(compiler_); } - - Compiler(Compiler&& other) { - compiler_ = other.compiler_; - other.compiler_ = nullptr; - } - - bool IsValid() const { return compiler_ != nullptr; } - - // Compiles the given source GLSL and returns a SPIR-V binary module - // compilation result. - // The source_text parameter must be a valid pointer. - // The source_text_size parameter must be the length of the source text. - // The shader_kind parameter either forces the compilation to be done with a - // specified shader kind, or hint the compiler how to determine the exact - // shader kind. If the shader kind is set to shaderc_glslc_infer_from_source, - // the compiler will try to deduce the shader kind from the source string and - // a failure in this proess will generate an error. Currently only #pragma - // annotation is supported. If the shader kind is set to one of the default - // shader kinds, the compiler will fall back to the specified default shader - // kind in case it failed to deduce the shader kind from the source string. - // The input_file_name is a null-termintated string. It is used as a tag to - // identify the source string in cases like emitting error messages. It - // doesn't have to be a 'file name'. - // The entry_point_name parameter is a null-terminated string specifying - // the entry point name for HLSL compilation. For GLSL compilation, the - // entry point name is assumed to be "main". - // The compilation is passed any options specified in the CompileOptions - // parameter. - // It is valid for the returned CompilationResult object to outlive this - // compiler object. - // Note when the options_ has disassembly mode or preprocessing only mode set - // on, the returned CompilationResult will hold a text string, instead of a - // SPIR-V binary generated with default options. - SpvCompilationResult CompileGlslToSpv(const char* source_text, - size_t source_text_size, - shaderc_shader_kind shader_kind, - const char* input_file_name, - const char* entry_point_name, - const CompileOptions& options) const { - shaderc_compilation_result_t compilation_result = shaderc_compile_into_spv( - compiler_, source_text, source_text_size, shader_kind, input_file_name, - entry_point_name, options.options_); - return SpvCompilationResult(compilation_result); - } - - // Compiles the given source shader and returns a SPIR-V binary module - // compilation result. - // Like the first CompileGlslToSpv method but assumes the entry point name - // is "main". - SpvCompilationResult CompileGlslToSpv(const char* source_text, - size_t source_text_size, - shaderc_shader_kind shader_kind, - const char* input_file_name, - const CompileOptions& options) const { - return CompileGlslToSpv(source_text, source_text_size, shader_kind, - input_file_name, "main", options); - } - - // Compiles the given source GLSL and returns a SPIR-V binary module - // compilation result. - // Like the previous CompileGlslToSpv method but uses default options. - SpvCompilationResult CompileGlslToSpv(const char* source_text, - size_t source_text_size, - shaderc_shader_kind shader_kind, - const char* input_file_name) const { - shaderc_compilation_result_t compilation_result = - shaderc_compile_into_spv(compiler_, source_text, source_text_size, - shader_kind, input_file_name, "main", nullptr); - return SpvCompilationResult(compilation_result); - } - - // Compiles the given source shader and returns a SPIR-V binary module - // compilation result. - // Like the first CompileGlslToSpv method but the source is provided as - // a std::string, and we assume the entry point is "main". - SpvCompilationResult CompileGlslToSpv(const std::string& source_text, - shaderc_shader_kind shader_kind, - const char* input_file_name, - const CompileOptions& options) const { - return CompileGlslToSpv(source_text.data(), source_text.size(), shader_kind, - input_file_name, options); - } - - // Compiles the given source shader and returns a SPIR-V binary module - // compilation result. - // Like the first CompileGlslToSpv method but the source is provided as - // a std::string. - SpvCompilationResult CompileGlslToSpv(const std::string& source_text, - shaderc_shader_kind shader_kind, - const char* input_file_name, - const char* entry_point_name, - const CompileOptions& options) const { - return CompileGlslToSpv(source_text.data(), source_text.size(), shader_kind, - input_file_name, entry_point_name, options); - } - - // Compiles the given source GLSL and returns a SPIR-V binary module - // compilation result. - // Like the previous CompileGlslToSpv method but assumes the entry point - // name is "main". - SpvCompilationResult CompileGlslToSpv(const std::string& source_text, - shaderc_shader_kind shader_kind, - const char* input_file_name) const { - return CompileGlslToSpv(source_text.data(), source_text.size(), shader_kind, - input_file_name); - } - - // Assembles the given SPIR-V assembly and returns a SPIR-V binary module - // compilation result. - // The assembly should follow the syntax defined in the SPIRV-Tools project - // (https://github.com/KhronosGroup/SPIRV-Tools/blob/master/syntax.md). - // It is valid for the returned CompilationResult object to outlive this - // compiler object. - // The assembling will pick options suitable for assembling specified in the - // CompileOptions parameter. - SpvCompilationResult AssembleToSpv(const char* source_assembly, - size_t source_assembly_size, - const CompileOptions& options) const { - return SpvCompilationResult(shaderc_assemble_into_spv( - compiler_, source_assembly, source_assembly_size, options.options_)); - } - - // Assembles the given SPIR-V assembly and returns a SPIR-V binary module - // compilation result. - // Like the first AssembleToSpv method but uses the default compiler options. - SpvCompilationResult AssembleToSpv(const char* source_assembly, - size_t source_assembly_size) const { - return SpvCompilationResult(shaderc_assemble_into_spv( - compiler_, source_assembly, source_assembly_size, nullptr)); - } - - // Assembles the given SPIR-V assembly and returns a SPIR-V binary module - // compilation result. - // Like the first AssembleToSpv method but the source is provided as a - // std::string. - SpvCompilationResult AssembleToSpv(const std::string& source_assembly, - const CompileOptions& options) const { - return SpvCompilationResult( - shaderc_assemble_into_spv(compiler_, source_assembly.data(), - source_assembly.size(), options.options_)); - } - - // Assembles the given SPIR-V assembly and returns a SPIR-V binary module - // compilation result. - // Like the first AssembleToSpv method but the source is provided as a - // std::string and also uses default compiler options. - SpvCompilationResult AssembleToSpv(const std::string& source_assembly) const { - return SpvCompilationResult(shaderc_assemble_into_spv( - compiler_, source_assembly.data(), source_assembly.size(), nullptr)); - } - - // Compiles the given source GLSL and returns the SPIR-V assembly text - // compilation result. - // Options are similar to the first CompileToSpv method. - AssemblyCompilationResult CompileGlslToSpvAssembly( - const char* source_text, size_t source_text_size, - shaderc_shader_kind shader_kind, const char* input_file_name, - const char* entry_point_name, const CompileOptions& options) const { - shaderc_compilation_result_t compilation_result = - shaderc_compile_into_spv_assembly( - compiler_, source_text, source_text_size, shader_kind, - input_file_name, entry_point_name, options.options_); - return AssemblyCompilationResult(compilation_result); - } - - // Compiles the given source GLSL and returns the SPIR-V assembly text - // compilation result. - // Similare to the previous method, but assumes entry point name is "main". - AssemblyCompilationResult CompileGlslToSpvAssembly( - const char* source_text, size_t source_text_size, - shaderc_shader_kind shader_kind, const char* input_file_name, - const CompileOptions& options) const { - return CompileGlslToSpvAssembly(source_text, source_text_size, shader_kind, - input_file_name, "main", options); - } - - // Compiles the given source GLSL and returns the SPIR-V assembly text - // result. Like the first CompileGlslToSpvAssembly method but the source - // is provided as a std::string. Options are otherwise similar to - // the first CompileToSpv method. - AssemblyCompilationResult CompileGlslToSpvAssembly( - const std::string& source_text, shaderc_shader_kind shader_kind, - const char* input_file_name, const char* entry_point_name, - const CompileOptions& options) const { - return CompileGlslToSpvAssembly(source_text.data(), source_text.size(), - shader_kind, input_file_name, - entry_point_name, options); - } - - // Compiles the given source GLSL and returns the SPIR-V assembly text - // result. Like the previous CompileGlslToSpvAssembly method but assumes - // the entry point name is "main". - AssemblyCompilationResult CompileGlslToSpvAssembly( - const std::string& source_text, shaderc_shader_kind shader_kind, - const char* input_file_name, const CompileOptions& options) const { - return CompileGlslToSpvAssembly(source_text, shader_kind, input_file_name, - "main", options); - } - - // Preprocesses the given source GLSL and returns the preprocessed - // source text as a compilation result. - // Options are similar to the first CompileToSpv method. - PreprocessedSourceCompilationResult PreprocessGlsl( - const char* source_text, size_t source_text_size, - shaderc_shader_kind shader_kind, const char* input_file_name, - const CompileOptions& options) const { - shaderc_compilation_result_t compilation_result = - shaderc_compile_into_preprocessed_text( - compiler_, source_text, source_text_size, shader_kind, - input_file_name, "main", options.options_); - return PreprocessedSourceCompilationResult(compilation_result); - } - - // Preprocesses the given source GLSL and returns text result. Like the first - // PreprocessGlsl method but the source is provided as a std::string. - // Options are otherwise similar to the first CompileToSpv method. - PreprocessedSourceCompilationResult PreprocessGlsl( - const std::string& source_text, shaderc_shader_kind shader_kind, - const char* input_file_name, const CompileOptions& options) const { - return PreprocessGlsl(source_text.data(), source_text.size(), shader_kind, - input_file_name, options); - } - - private: - Compiler(const Compiler&) = delete; - Compiler& operator=(const Compiler& other) = delete; - - shaderc_compiler_t compiler_; -}; -} // namespace shaderc - -#endif // SHADERC_SHADERC_HPP_ diff --git a/external/vulkan/windows/include/shaderc/status.h b/external/vulkan/windows/include/shaderc/status.h deleted file mode 100644 index 57ac70d7..00000000 --- a/external/vulkan/windows/include/shaderc/status.h +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2018 The Shaderc Authors. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#ifndef SHADERC_STATUS_H_ -#define SHADERC_STATUS_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -// Indicate the status of a compilation. -typedef enum { - shaderc_compilation_status_success = 0, - shaderc_compilation_status_invalid_stage = 1, // error stage deduction - shaderc_compilation_status_compilation_error = 2, - shaderc_compilation_status_internal_error = 3, // unexpected failure - shaderc_compilation_status_null_result_object = 4, - shaderc_compilation_status_invalid_assembly = 5, - shaderc_compilation_status_validation_error = 6, - shaderc_compilation_status_transformation_error = 7, - shaderc_compilation_status_configuration_error = 8, -} shaderc_compilation_status; - -#ifdef __cplusplus -} -#endif // __cplusplus - -#endif // SHADERC_STATUS_H_ diff --git a/external/vulkan/windows/include/shaderc/visibility.h b/external/vulkan/windows/include/shaderc/visibility.h deleted file mode 100644 index 88ec151b..00000000 --- a/external/vulkan/windows/include/shaderc/visibility.h +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2018 The Shaderc Authors. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#ifndef SHADERC_VISIBILITY_H_ -#define SHADERC_VISIBILITY_H_ - -// SHADERC_EXPORT tags symbol that will be exposed by the shared libraries. -#if defined(SHADERC_SHAREDLIB) -#if defined(_WIN32) -#if defined(SHADERC_IMPLEMENTATION) -#define SHADERC_EXPORT __declspec(dllexport) -#else -#define SHADERC_EXPORT __declspec(dllimport) -#endif -#else -#if defined(SHADERC_IMPLEMENTATION) -#define SHADERC_EXPORT __attribute__((visibility("default"))) -#else -#define SHADERC_EXPORT -#endif -#endif -#else -#define SHADERC_EXPORT -#endif - -#endif // SHADERC_VISIBILITY_H_ diff --git a/external/vulkan/windows/include/vulkan/GLSL.std.450.h b/external/vulkan/windows/include/vulkan/GLSL.std.450.h deleted file mode 100644 index 54cc00e9..00000000 --- a/external/vulkan/windows/include/vulkan/GLSL.std.450.h +++ /dev/null @@ -1,131 +0,0 @@ -/* -** Copyright (c) 2014-2016 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a copy -** of this software and/or associated documentation files (the "Materials"), -** to deal in the Materials without restriction, including without limitation -** the rights to use, copy, modify, merge, publish, distribute, sublicense, -** and/or sell copies of the Materials, and to permit persons to whom the -** Materials are furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Materials. -** -** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS -** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND -** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS -** IN THE MATERIALS. -*/ - -#ifndef GLSLstd450_H -#define GLSLstd450_H - -static const int GLSLstd450Version = 100; -static const int GLSLstd450Revision = 3; - -enum GLSLstd450 { - GLSLstd450Bad = 0, // Don't use - - GLSLstd450Round = 1, - GLSLstd450RoundEven = 2, - GLSLstd450Trunc = 3, - GLSLstd450FAbs = 4, - GLSLstd450SAbs = 5, - GLSLstd450FSign = 6, - GLSLstd450SSign = 7, - GLSLstd450Floor = 8, - GLSLstd450Ceil = 9, - GLSLstd450Fract = 10, - - GLSLstd450Radians = 11, - GLSLstd450Degrees = 12, - GLSLstd450Sin = 13, - GLSLstd450Cos = 14, - GLSLstd450Tan = 15, - GLSLstd450Asin = 16, - GLSLstd450Acos = 17, - GLSLstd450Atan = 18, - GLSLstd450Sinh = 19, - GLSLstd450Cosh = 20, - GLSLstd450Tanh = 21, - GLSLstd450Asinh = 22, - GLSLstd450Acosh = 23, - GLSLstd450Atanh = 24, - GLSLstd450Atan2 = 25, - - GLSLstd450Pow = 26, - GLSLstd450Exp = 27, - GLSLstd450Log = 28, - GLSLstd450Exp2 = 29, - GLSLstd450Log2 = 30, - GLSLstd450Sqrt = 31, - GLSLstd450InverseSqrt = 32, - - GLSLstd450Determinant = 33, - GLSLstd450MatrixInverse = 34, - - GLSLstd450Modf = 35, // second operand needs an OpVariable to write to - GLSLstd450ModfStruct = 36, // no OpVariable operand - GLSLstd450FMin = 37, - GLSLstd450UMin = 38, - GLSLstd450SMin = 39, - GLSLstd450FMax = 40, - GLSLstd450UMax = 41, - GLSLstd450SMax = 42, - GLSLstd450FClamp = 43, - GLSLstd450UClamp = 44, - GLSLstd450SClamp = 45, - GLSLstd450FMix = 46, - GLSLstd450IMix = 47, // Reserved - GLSLstd450Step = 48, - GLSLstd450SmoothStep = 49, - - GLSLstd450Fma = 50, - GLSLstd450Frexp = 51, // second operand needs an OpVariable to write to - GLSLstd450FrexpStruct = 52, // no OpVariable operand - GLSLstd450Ldexp = 53, - - GLSLstd450PackSnorm4x8 = 54, - GLSLstd450PackUnorm4x8 = 55, - GLSLstd450PackSnorm2x16 = 56, - GLSLstd450PackUnorm2x16 = 57, - GLSLstd450PackHalf2x16 = 58, - GLSLstd450PackDouble2x32 = 59, - GLSLstd450UnpackSnorm2x16 = 60, - GLSLstd450UnpackUnorm2x16 = 61, - GLSLstd450UnpackHalf2x16 = 62, - GLSLstd450UnpackSnorm4x8 = 63, - GLSLstd450UnpackUnorm4x8 = 64, - GLSLstd450UnpackDouble2x32 = 65, - - GLSLstd450Length = 66, - GLSLstd450Distance = 67, - GLSLstd450Cross = 68, - GLSLstd450Normalize = 69, - GLSLstd450FaceForward = 70, - GLSLstd450Reflect = 71, - GLSLstd450Refract = 72, - - GLSLstd450FindILsb = 73, - GLSLstd450FindSMsb = 74, - GLSLstd450FindUMsb = 75, - - GLSLstd450InterpolateAtCentroid = 76, - GLSLstd450InterpolateAtSample = 77, - GLSLstd450InterpolateAtOffset = 78, - - GLSLstd450NMin = 79, - GLSLstd450NMax = 80, - GLSLstd450NClamp = 81, - - GLSLstd450Count -}; - -#endif // #ifndef GLSLstd450_H diff --git a/external/vulkan/windows/include/vulkan/spirv.h b/external/vulkan/windows/include/vulkan/spirv.h deleted file mode 100644 index 53928a4a..00000000 --- a/external/vulkan/windows/include/vulkan/spirv.h +++ /dev/null @@ -1,1972 +0,0 @@ -/* -** Copyright (c) 2014-2019 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a copy -** of this software and/or associated documentation files (the "Materials"), -** to deal in the Materials without restriction, including without limitation -** the rights to use, copy, modify, merge, publish, distribute, sublicense, -** and/or sell copies of the Materials, and to permit persons to whom the -** Materials are furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Materials. -** -** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS -** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND -** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS -** IN THE MATERIALS. -*/ - -/* -** This header is automatically generated by the same tool that creates -** the Binary Section of the SPIR-V specification. -*/ - -/* -** Enumeration tokens for SPIR-V, in various styles: -** C, C++, C++11, JSON, Lua, Python, C#, D -** -** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL -** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL -** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL -** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL -** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] -** - C# will use enum classes in the Specification class located in the "Spv" namespace, -** e.g.: Spv.Specification.SourceLanguage.GLSL -** - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL -** -** Some tokens act like mask values, which can be OR'd together, -** while others are mutually exclusive. The mask-like ones have -** "Mask" in their name, and a parallel enum that has the shift -** amount (1 << x) for each corresponding enumerant. -*/ - -#ifndef spirv_H -#define spirv_H - -typedef unsigned int SpvId; - -#define SPV_VERSION 0x10500 -#define SPV_REVISION 1 - -static const unsigned int SpvMagicNumber = 0x07230203; -static const unsigned int SpvVersion = 0x00010500; -static const unsigned int SpvRevision = 1; -static const unsigned int SpvOpCodeMask = 0xffff; -static const unsigned int SpvWordCountShift = 16; - -typedef enum SpvSourceLanguage_ { - SpvSourceLanguageUnknown = 0, - SpvSourceLanguageESSL = 1, - SpvSourceLanguageGLSL = 2, - SpvSourceLanguageOpenCL_C = 3, - SpvSourceLanguageOpenCL_CPP = 4, - SpvSourceLanguageHLSL = 5, - SpvSourceLanguageMax = 0x7fffffff, -} SpvSourceLanguage; - -typedef enum SpvExecutionModel_ { - SpvExecutionModelVertex = 0, - SpvExecutionModelTessellationControl = 1, - SpvExecutionModelTessellationEvaluation = 2, - SpvExecutionModelGeometry = 3, - SpvExecutionModelFragment = 4, - SpvExecutionModelGLCompute = 5, - SpvExecutionModelKernel = 6, - SpvExecutionModelTaskNV = 5267, - SpvExecutionModelMeshNV = 5268, - SpvExecutionModelRayGenerationNV = 5313, - SpvExecutionModelIntersectionNV = 5314, - SpvExecutionModelAnyHitNV = 5315, - SpvExecutionModelClosestHitNV = 5316, - SpvExecutionModelMissNV = 5317, - SpvExecutionModelCallableNV = 5318, - SpvExecutionModelMax = 0x7fffffff, -} SpvExecutionModel; - -typedef enum SpvAddressingModel_ { - SpvAddressingModelLogical = 0, - SpvAddressingModelPhysical32 = 1, - SpvAddressingModelPhysical64 = 2, - SpvAddressingModelPhysicalStorageBuffer64 = 5348, - SpvAddressingModelPhysicalStorageBuffer64EXT = 5348, - SpvAddressingModelMax = 0x7fffffff, -} SpvAddressingModel; - -typedef enum SpvMemoryModel_ { - SpvMemoryModelSimple = 0, - SpvMemoryModelGLSL450 = 1, - SpvMemoryModelOpenCL = 2, - SpvMemoryModelVulkan = 3, - SpvMemoryModelVulkanKHR = 3, - SpvMemoryModelMax = 0x7fffffff, -} SpvMemoryModel; - -typedef enum SpvExecutionMode_ { - SpvExecutionModeInvocations = 0, - SpvExecutionModeSpacingEqual = 1, - SpvExecutionModeSpacingFractionalEven = 2, - SpvExecutionModeSpacingFractionalOdd = 3, - SpvExecutionModeVertexOrderCw = 4, - SpvExecutionModeVertexOrderCcw = 5, - SpvExecutionModePixelCenterInteger = 6, - SpvExecutionModeOriginUpperLeft = 7, - SpvExecutionModeOriginLowerLeft = 8, - SpvExecutionModeEarlyFragmentTests = 9, - SpvExecutionModePointMode = 10, - SpvExecutionModeXfb = 11, - SpvExecutionModeDepthReplacing = 12, - SpvExecutionModeDepthGreater = 14, - SpvExecutionModeDepthLess = 15, - SpvExecutionModeDepthUnchanged = 16, - SpvExecutionModeLocalSize = 17, - SpvExecutionModeLocalSizeHint = 18, - SpvExecutionModeInputPoints = 19, - SpvExecutionModeInputLines = 20, - SpvExecutionModeInputLinesAdjacency = 21, - SpvExecutionModeTriangles = 22, - SpvExecutionModeInputTrianglesAdjacency = 23, - SpvExecutionModeQuads = 24, - SpvExecutionModeIsolines = 25, - SpvExecutionModeOutputVertices = 26, - SpvExecutionModeOutputPoints = 27, - SpvExecutionModeOutputLineStrip = 28, - SpvExecutionModeOutputTriangleStrip = 29, - SpvExecutionModeVecTypeHint = 30, - SpvExecutionModeContractionOff = 31, - SpvExecutionModeInitializer = 33, - SpvExecutionModeFinalizer = 34, - SpvExecutionModeSubgroupSize = 35, - SpvExecutionModeSubgroupsPerWorkgroup = 36, - SpvExecutionModeSubgroupsPerWorkgroupId = 37, - SpvExecutionModeLocalSizeId = 38, - SpvExecutionModeLocalSizeHintId = 39, - SpvExecutionModePostDepthCoverage = 4446, - SpvExecutionModeDenormPreserve = 4459, - SpvExecutionModeDenormFlushToZero = 4460, - SpvExecutionModeSignedZeroInfNanPreserve = 4461, - SpvExecutionModeRoundingModeRTE = 4462, - SpvExecutionModeRoundingModeRTZ = 4463, - SpvExecutionModeStencilRefReplacingEXT = 5027, - SpvExecutionModeOutputLinesNV = 5269, - SpvExecutionModeOutputPrimitivesNV = 5270, - SpvExecutionModeDerivativeGroupQuadsNV = 5289, - SpvExecutionModeDerivativeGroupLinearNV = 5290, - SpvExecutionModeOutputTrianglesNV = 5298, - SpvExecutionModePixelInterlockOrderedEXT = 5366, - SpvExecutionModePixelInterlockUnorderedEXT = 5367, - SpvExecutionModeSampleInterlockOrderedEXT = 5368, - SpvExecutionModeSampleInterlockUnorderedEXT = 5369, - SpvExecutionModeShadingRateInterlockOrderedEXT = 5370, - SpvExecutionModeShadingRateInterlockUnorderedEXT = 5371, - SpvExecutionModeMax = 0x7fffffff, -} SpvExecutionMode; - -typedef enum SpvStorageClass_ { - SpvStorageClassUniformConstant = 0, - SpvStorageClassInput = 1, - SpvStorageClassUniform = 2, - SpvStorageClassOutput = 3, - SpvStorageClassWorkgroup = 4, - SpvStorageClassCrossWorkgroup = 5, - SpvStorageClassPrivate = 6, - SpvStorageClassFunction = 7, - SpvStorageClassGeneric = 8, - SpvStorageClassPushConstant = 9, - SpvStorageClassAtomicCounter = 10, - SpvStorageClassImage = 11, - SpvStorageClassStorageBuffer = 12, - SpvStorageClassCallableDataNV = 5328, - SpvStorageClassIncomingCallableDataNV = 5329, - SpvStorageClassRayPayloadNV = 5338, - SpvStorageClassHitAttributeNV = 5339, - SpvStorageClassIncomingRayPayloadNV = 5342, - SpvStorageClassShaderRecordBufferNV = 5343, - SpvStorageClassPhysicalStorageBuffer = 5349, - SpvStorageClassPhysicalStorageBufferEXT = 5349, - SpvStorageClassMax = 0x7fffffff, -} SpvStorageClass; - -typedef enum SpvDim_ { - SpvDim1D = 0, - SpvDim2D = 1, - SpvDim3D = 2, - SpvDimCube = 3, - SpvDimRect = 4, - SpvDimBuffer = 5, - SpvDimSubpassData = 6, - SpvDimMax = 0x7fffffff, -} SpvDim; - -typedef enum SpvSamplerAddressingMode_ { - SpvSamplerAddressingModeNone = 0, - SpvSamplerAddressingModeClampToEdge = 1, - SpvSamplerAddressingModeClamp = 2, - SpvSamplerAddressingModeRepeat = 3, - SpvSamplerAddressingModeRepeatMirrored = 4, - SpvSamplerAddressingModeMax = 0x7fffffff, -} SpvSamplerAddressingMode; - -typedef enum SpvSamplerFilterMode_ { - SpvSamplerFilterModeNearest = 0, - SpvSamplerFilterModeLinear = 1, - SpvSamplerFilterModeMax = 0x7fffffff, -} SpvSamplerFilterMode; - -typedef enum SpvImageFormat_ { - SpvImageFormatUnknown = 0, - SpvImageFormatRgba32f = 1, - SpvImageFormatRgba16f = 2, - SpvImageFormatR32f = 3, - SpvImageFormatRgba8 = 4, - SpvImageFormatRgba8Snorm = 5, - SpvImageFormatRg32f = 6, - SpvImageFormatRg16f = 7, - SpvImageFormatR11fG11fB10f = 8, - SpvImageFormatR16f = 9, - SpvImageFormatRgba16 = 10, - SpvImageFormatRgb10A2 = 11, - SpvImageFormatRg16 = 12, - SpvImageFormatRg8 = 13, - SpvImageFormatR16 = 14, - SpvImageFormatR8 = 15, - SpvImageFormatRgba16Snorm = 16, - SpvImageFormatRg16Snorm = 17, - SpvImageFormatRg8Snorm = 18, - SpvImageFormatR16Snorm = 19, - SpvImageFormatR8Snorm = 20, - SpvImageFormatRgba32i = 21, - SpvImageFormatRgba16i = 22, - SpvImageFormatRgba8i = 23, - SpvImageFormatR32i = 24, - SpvImageFormatRg32i = 25, - SpvImageFormatRg16i = 26, - SpvImageFormatRg8i = 27, - SpvImageFormatR16i = 28, - SpvImageFormatR8i = 29, - SpvImageFormatRgba32ui = 30, - SpvImageFormatRgba16ui = 31, - SpvImageFormatRgba8ui = 32, - SpvImageFormatR32ui = 33, - SpvImageFormatRgb10a2ui = 34, - SpvImageFormatRg32ui = 35, - SpvImageFormatRg16ui = 36, - SpvImageFormatRg8ui = 37, - SpvImageFormatR16ui = 38, - SpvImageFormatR8ui = 39, - SpvImageFormatMax = 0x7fffffff, -} SpvImageFormat; - -typedef enum SpvImageChannelOrder_ { - SpvImageChannelOrderR = 0, - SpvImageChannelOrderA = 1, - SpvImageChannelOrderRG = 2, - SpvImageChannelOrderRA = 3, - SpvImageChannelOrderRGB = 4, - SpvImageChannelOrderRGBA = 5, - SpvImageChannelOrderBGRA = 6, - SpvImageChannelOrderARGB = 7, - SpvImageChannelOrderIntensity = 8, - SpvImageChannelOrderLuminance = 9, - SpvImageChannelOrderRx = 10, - SpvImageChannelOrderRGx = 11, - SpvImageChannelOrderRGBx = 12, - SpvImageChannelOrderDepth = 13, - SpvImageChannelOrderDepthStencil = 14, - SpvImageChannelOrdersRGB = 15, - SpvImageChannelOrdersRGBx = 16, - SpvImageChannelOrdersRGBA = 17, - SpvImageChannelOrdersBGRA = 18, - SpvImageChannelOrderABGR = 19, - SpvImageChannelOrderMax = 0x7fffffff, -} SpvImageChannelOrder; - -typedef enum SpvImageChannelDataType_ { - SpvImageChannelDataTypeSnormInt8 = 0, - SpvImageChannelDataTypeSnormInt16 = 1, - SpvImageChannelDataTypeUnormInt8 = 2, - SpvImageChannelDataTypeUnormInt16 = 3, - SpvImageChannelDataTypeUnormShort565 = 4, - SpvImageChannelDataTypeUnormShort555 = 5, - SpvImageChannelDataTypeUnormInt101010 = 6, - SpvImageChannelDataTypeSignedInt8 = 7, - SpvImageChannelDataTypeSignedInt16 = 8, - SpvImageChannelDataTypeSignedInt32 = 9, - SpvImageChannelDataTypeUnsignedInt8 = 10, - SpvImageChannelDataTypeUnsignedInt16 = 11, - SpvImageChannelDataTypeUnsignedInt32 = 12, - SpvImageChannelDataTypeHalfFloat = 13, - SpvImageChannelDataTypeFloat = 14, - SpvImageChannelDataTypeUnormInt24 = 15, - SpvImageChannelDataTypeUnormInt101010_2 = 16, - SpvImageChannelDataTypeMax = 0x7fffffff, -} SpvImageChannelDataType; - -typedef enum SpvImageOperandsShift_ { - SpvImageOperandsBiasShift = 0, - SpvImageOperandsLodShift = 1, - SpvImageOperandsGradShift = 2, - SpvImageOperandsConstOffsetShift = 3, - SpvImageOperandsOffsetShift = 4, - SpvImageOperandsConstOffsetsShift = 5, - SpvImageOperandsSampleShift = 6, - SpvImageOperandsMinLodShift = 7, - SpvImageOperandsMakeTexelAvailableShift = 8, - SpvImageOperandsMakeTexelAvailableKHRShift = 8, - SpvImageOperandsMakeTexelVisibleShift = 9, - SpvImageOperandsMakeTexelVisibleKHRShift = 9, - SpvImageOperandsNonPrivateTexelShift = 10, - SpvImageOperandsNonPrivateTexelKHRShift = 10, - SpvImageOperandsVolatileTexelShift = 11, - SpvImageOperandsVolatileTexelKHRShift = 11, - SpvImageOperandsSignExtendShift = 12, - SpvImageOperandsZeroExtendShift = 13, - SpvImageOperandsMax = 0x7fffffff, -} SpvImageOperandsShift; - -typedef enum SpvImageOperandsMask_ { - SpvImageOperandsMaskNone = 0, - SpvImageOperandsBiasMask = 0x00000001, - SpvImageOperandsLodMask = 0x00000002, - SpvImageOperandsGradMask = 0x00000004, - SpvImageOperandsConstOffsetMask = 0x00000008, - SpvImageOperandsOffsetMask = 0x00000010, - SpvImageOperandsConstOffsetsMask = 0x00000020, - SpvImageOperandsSampleMask = 0x00000040, - SpvImageOperandsMinLodMask = 0x00000080, - SpvImageOperandsMakeTexelAvailableMask = 0x00000100, - SpvImageOperandsMakeTexelAvailableKHRMask = 0x00000100, - SpvImageOperandsMakeTexelVisibleMask = 0x00000200, - SpvImageOperandsMakeTexelVisibleKHRMask = 0x00000200, - SpvImageOperandsNonPrivateTexelMask = 0x00000400, - SpvImageOperandsNonPrivateTexelKHRMask = 0x00000400, - SpvImageOperandsVolatileTexelMask = 0x00000800, - SpvImageOperandsVolatileTexelKHRMask = 0x00000800, - SpvImageOperandsSignExtendMask = 0x00001000, - SpvImageOperandsZeroExtendMask = 0x00002000, -} SpvImageOperandsMask; - -typedef enum SpvFPFastMathModeShift_ { - SpvFPFastMathModeNotNaNShift = 0, - SpvFPFastMathModeNotInfShift = 1, - SpvFPFastMathModeNSZShift = 2, - SpvFPFastMathModeAllowRecipShift = 3, - SpvFPFastMathModeFastShift = 4, - SpvFPFastMathModeMax = 0x7fffffff, -} SpvFPFastMathModeShift; - -typedef enum SpvFPFastMathModeMask_ { - SpvFPFastMathModeMaskNone = 0, - SpvFPFastMathModeNotNaNMask = 0x00000001, - SpvFPFastMathModeNotInfMask = 0x00000002, - SpvFPFastMathModeNSZMask = 0x00000004, - SpvFPFastMathModeAllowRecipMask = 0x00000008, - SpvFPFastMathModeFastMask = 0x00000010, -} SpvFPFastMathModeMask; - -typedef enum SpvFPRoundingMode_ { - SpvFPRoundingModeRTE = 0, - SpvFPRoundingModeRTZ = 1, - SpvFPRoundingModeRTP = 2, - SpvFPRoundingModeRTN = 3, - SpvFPRoundingModeMax = 0x7fffffff, -} SpvFPRoundingMode; - -typedef enum SpvLinkageType_ { - SpvLinkageTypeExport = 0, - SpvLinkageTypeImport = 1, - SpvLinkageTypeMax = 0x7fffffff, -} SpvLinkageType; - -typedef enum SpvAccessQualifier_ { - SpvAccessQualifierReadOnly = 0, - SpvAccessQualifierWriteOnly = 1, - SpvAccessQualifierReadWrite = 2, - SpvAccessQualifierMax = 0x7fffffff, -} SpvAccessQualifier; - -typedef enum SpvFunctionParameterAttribute_ { - SpvFunctionParameterAttributeZext = 0, - SpvFunctionParameterAttributeSext = 1, - SpvFunctionParameterAttributeByVal = 2, - SpvFunctionParameterAttributeSret = 3, - SpvFunctionParameterAttributeNoAlias = 4, - SpvFunctionParameterAttributeNoCapture = 5, - SpvFunctionParameterAttributeNoWrite = 6, - SpvFunctionParameterAttributeNoReadWrite = 7, - SpvFunctionParameterAttributeMax = 0x7fffffff, -} SpvFunctionParameterAttribute; - -typedef enum SpvDecoration_ { - SpvDecorationRelaxedPrecision = 0, - SpvDecorationSpecId = 1, - SpvDecorationBlock = 2, - SpvDecorationBufferBlock = 3, - SpvDecorationRowMajor = 4, - SpvDecorationColMajor = 5, - SpvDecorationArrayStride = 6, - SpvDecorationMatrixStride = 7, - SpvDecorationGLSLShared = 8, - SpvDecorationGLSLPacked = 9, - SpvDecorationCPacked = 10, - SpvDecorationBuiltIn = 11, - SpvDecorationNoPerspective = 13, - SpvDecorationFlat = 14, - SpvDecorationPatch = 15, - SpvDecorationCentroid = 16, - SpvDecorationSample = 17, - SpvDecorationInvariant = 18, - SpvDecorationRestrict = 19, - SpvDecorationAliased = 20, - SpvDecorationVolatile = 21, - SpvDecorationConstant = 22, - SpvDecorationCoherent = 23, - SpvDecorationNonWritable = 24, - SpvDecorationNonReadable = 25, - SpvDecorationUniform = 26, - SpvDecorationUniformId = 27, - SpvDecorationSaturatedConversion = 28, - SpvDecorationStream = 29, - SpvDecorationLocation = 30, - SpvDecorationComponent = 31, - SpvDecorationIndex = 32, - SpvDecorationBinding = 33, - SpvDecorationDescriptorSet = 34, - SpvDecorationOffset = 35, - SpvDecorationXfbBuffer = 36, - SpvDecorationXfbStride = 37, - SpvDecorationFuncParamAttr = 38, - SpvDecorationFPRoundingMode = 39, - SpvDecorationFPFastMathMode = 40, - SpvDecorationLinkageAttributes = 41, - SpvDecorationNoContraction = 42, - SpvDecorationInputAttachmentIndex = 43, - SpvDecorationAlignment = 44, - SpvDecorationMaxByteOffset = 45, - SpvDecorationAlignmentId = 46, - SpvDecorationMaxByteOffsetId = 47, - SpvDecorationNoSignedWrap = 4469, - SpvDecorationNoUnsignedWrap = 4470, - SpvDecorationExplicitInterpAMD = 4999, - SpvDecorationOverrideCoverageNV = 5248, - SpvDecorationPassthroughNV = 5250, - SpvDecorationViewportRelativeNV = 5252, - SpvDecorationSecondaryViewportRelativeNV = 5256, - SpvDecorationPerPrimitiveNV = 5271, - SpvDecorationPerViewNV = 5272, - SpvDecorationPerTaskNV = 5273, - SpvDecorationPerVertexNV = 5285, - SpvDecorationNonUniform = 5300, - SpvDecorationNonUniformEXT = 5300, - SpvDecorationRestrictPointer = 5355, - SpvDecorationRestrictPointerEXT = 5355, - SpvDecorationAliasedPointer = 5356, - SpvDecorationAliasedPointerEXT = 5356, - SpvDecorationCounterBuffer = 5634, - SpvDecorationHlslCounterBufferGOOGLE = 5634, - SpvDecorationHlslSemanticGOOGLE = 5635, - SpvDecorationUserSemantic = 5635, - SpvDecorationUserTypeGOOGLE = 5636, - SpvDecorationMax = 0x7fffffff, -} SpvDecoration; - -typedef enum SpvBuiltIn_ { - SpvBuiltInPosition = 0, - SpvBuiltInPointSize = 1, - SpvBuiltInClipDistance = 3, - SpvBuiltInCullDistance = 4, - SpvBuiltInVertexId = 5, - SpvBuiltInInstanceId = 6, - SpvBuiltInPrimitiveId = 7, - SpvBuiltInInvocationId = 8, - SpvBuiltInLayer = 9, - SpvBuiltInViewportIndex = 10, - SpvBuiltInTessLevelOuter = 11, - SpvBuiltInTessLevelInner = 12, - SpvBuiltInTessCoord = 13, - SpvBuiltInPatchVertices = 14, - SpvBuiltInFragCoord = 15, - SpvBuiltInPointCoord = 16, - SpvBuiltInFrontFacing = 17, - SpvBuiltInSampleId = 18, - SpvBuiltInSamplePosition = 19, - SpvBuiltInSampleMask = 20, - SpvBuiltInFragDepth = 22, - SpvBuiltInHelperInvocation = 23, - SpvBuiltInNumWorkgroups = 24, - SpvBuiltInWorkgroupSize = 25, - SpvBuiltInWorkgroupId = 26, - SpvBuiltInLocalInvocationId = 27, - SpvBuiltInGlobalInvocationId = 28, - SpvBuiltInLocalInvocationIndex = 29, - SpvBuiltInWorkDim = 30, - SpvBuiltInGlobalSize = 31, - SpvBuiltInEnqueuedWorkgroupSize = 32, - SpvBuiltInGlobalOffset = 33, - SpvBuiltInGlobalLinearId = 34, - SpvBuiltInSubgroupSize = 36, - SpvBuiltInSubgroupMaxSize = 37, - SpvBuiltInNumSubgroups = 38, - SpvBuiltInNumEnqueuedSubgroups = 39, - SpvBuiltInSubgroupId = 40, - SpvBuiltInSubgroupLocalInvocationId = 41, - SpvBuiltInVertexIndex = 42, - SpvBuiltInInstanceIndex = 43, - SpvBuiltInSubgroupEqMask = 4416, - SpvBuiltInSubgroupEqMaskKHR = 4416, - SpvBuiltInSubgroupGeMask = 4417, - SpvBuiltInSubgroupGeMaskKHR = 4417, - SpvBuiltInSubgroupGtMask = 4418, - SpvBuiltInSubgroupGtMaskKHR = 4418, - SpvBuiltInSubgroupLeMask = 4419, - SpvBuiltInSubgroupLeMaskKHR = 4419, - SpvBuiltInSubgroupLtMask = 4420, - SpvBuiltInSubgroupLtMaskKHR = 4420, - SpvBuiltInBaseVertex = 4424, - SpvBuiltInBaseInstance = 4425, - SpvBuiltInDrawIndex = 4426, - SpvBuiltInDeviceIndex = 4438, - SpvBuiltInViewIndex = 4440, - SpvBuiltInBaryCoordNoPerspAMD = 4992, - SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993, - SpvBuiltInBaryCoordNoPerspSampleAMD = 4994, - SpvBuiltInBaryCoordSmoothAMD = 4995, - SpvBuiltInBaryCoordSmoothCentroidAMD = 4996, - SpvBuiltInBaryCoordSmoothSampleAMD = 4997, - SpvBuiltInBaryCoordPullModelAMD = 4998, - SpvBuiltInFragStencilRefEXT = 5014, - SpvBuiltInViewportMaskNV = 5253, - SpvBuiltInSecondaryPositionNV = 5257, - SpvBuiltInSecondaryViewportMaskNV = 5258, - SpvBuiltInPositionPerViewNV = 5261, - SpvBuiltInViewportMaskPerViewNV = 5262, - SpvBuiltInFullyCoveredEXT = 5264, - SpvBuiltInTaskCountNV = 5274, - SpvBuiltInPrimitiveCountNV = 5275, - SpvBuiltInPrimitiveIndicesNV = 5276, - SpvBuiltInClipDistancePerViewNV = 5277, - SpvBuiltInCullDistancePerViewNV = 5278, - SpvBuiltInLayerPerViewNV = 5279, - SpvBuiltInMeshViewCountNV = 5280, - SpvBuiltInMeshViewIndicesNV = 5281, - SpvBuiltInBaryCoordNV = 5286, - SpvBuiltInBaryCoordNoPerspNV = 5287, - SpvBuiltInFragSizeEXT = 5292, - SpvBuiltInFragmentSizeNV = 5292, - SpvBuiltInFragInvocationCountEXT = 5293, - SpvBuiltInInvocationsPerPixelNV = 5293, - SpvBuiltInLaunchIdNV = 5319, - SpvBuiltInLaunchSizeNV = 5320, - SpvBuiltInWorldRayOriginNV = 5321, - SpvBuiltInWorldRayDirectionNV = 5322, - SpvBuiltInObjectRayOriginNV = 5323, - SpvBuiltInObjectRayDirectionNV = 5324, - SpvBuiltInRayTminNV = 5325, - SpvBuiltInRayTmaxNV = 5326, - SpvBuiltInInstanceCustomIndexNV = 5327, - SpvBuiltInObjectToWorldNV = 5330, - SpvBuiltInWorldToObjectNV = 5331, - SpvBuiltInHitTNV = 5332, - SpvBuiltInHitKindNV = 5333, - SpvBuiltInIncomingRayFlagsNV = 5351, - SpvBuiltInWarpsPerSMNV = 5374, - SpvBuiltInSMCountNV = 5375, - SpvBuiltInWarpIDNV = 5376, - SpvBuiltInSMIDNV = 5377, - SpvBuiltInMax = 0x7fffffff, -} SpvBuiltIn; - -typedef enum SpvSelectionControlShift_ { - SpvSelectionControlFlattenShift = 0, - SpvSelectionControlDontFlattenShift = 1, - SpvSelectionControlMax = 0x7fffffff, -} SpvSelectionControlShift; - -typedef enum SpvSelectionControlMask_ { - SpvSelectionControlMaskNone = 0, - SpvSelectionControlFlattenMask = 0x00000001, - SpvSelectionControlDontFlattenMask = 0x00000002, -} SpvSelectionControlMask; - -typedef enum SpvLoopControlShift_ { - SpvLoopControlUnrollShift = 0, - SpvLoopControlDontUnrollShift = 1, - SpvLoopControlDependencyInfiniteShift = 2, - SpvLoopControlDependencyLengthShift = 3, - SpvLoopControlMinIterationsShift = 4, - SpvLoopControlMaxIterationsShift = 5, - SpvLoopControlIterationMultipleShift = 6, - SpvLoopControlPeelCountShift = 7, - SpvLoopControlPartialCountShift = 8, - SpvLoopControlMax = 0x7fffffff, -} SpvLoopControlShift; - -typedef enum SpvLoopControlMask_ { - SpvLoopControlMaskNone = 0, - SpvLoopControlUnrollMask = 0x00000001, - SpvLoopControlDontUnrollMask = 0x00000002, - SpvLoopControlDependencyInfiniteMask = 0x00000004, - SpvLoopControlDependencyLengthMask = 0x00000008, - SpvLoopControlMinIterationsMask = 0x00000010, - SpvLoopControlMaxIterationsMask = 0x00000020, - SpvLoopControlIterationMultipleMask = 0x00000040, - SpvLoopControlPeelCountMask = 0x00000080, - SpvLoopControlPartialCountMask = 0x00000100, -} SpvLoopControlMask; - -typedef enum SpvFunctionControlShift_ { - SpvFunctionControlInlineShift = 0, - SpvFunctionControlDontInlineShift = 1, - SpvFunctionControlPureShift = 2, - SpvFunctionControlConstShift = 3, - SpvFunctionControlMax = 0x7fffffff, -} SpvFunctionControlShift; - -typedef enum SpvFunctionControlMask_ { - SpvFunctionControlMaskNone = 0, - SpvFunctionControlInlineMask = 0x00000001, - SpvFunctionControlDontInlineMask = 0x00000002, - SpvFunctionControlPureMask = 0x00000004, - SpvFunctionControlConstMask = 0x00000008, -} SpvFunctionControlMask; - -typedef enum SpvMemorySemanticsShift_ { - SpvMemorySemanticsAcquireShift = 1, - SpvMemorySemanticsReleaseShift = 2, - SpvMemorySemanticsAcquireReleaseShift = 3, - SpvMemorySemanticsSequentiallyConsistentShift = 4, - SpvMemorySemanticsUniformMemoryShift = 6, - SpvMemorySemanticsSubgroupMemoryShift = 7, - SpvMemorySemanticsWorkgroupMemoryShift = 8, - SpvMemorySemanticsCrossWorkgroupMemoryShift = 9, - SpvMemorySemanticsAtomicCounterMemoryShift = 10, - SpvMemorySemanticsImageMemoryShift = 11, - SpvMemorySemanticsOutputMemoryShift = 12, - SpvMemorySemanticsOutputMemoryKHRShift = 12, - SpvMemorySemanticsMakeAvailableShift = 13, - SpvMemorySemanticsMakeAvailableKHRShift = 13, - SpvMemorySemanticsMakeVisibleShift = 14, - SpvMemorySemanticsMakeVisibleKHRShift = 14, - SpvMemorySemanticsVolatileShift = 15, - SpvMemorySemanticsMax = 0x7fffffff, -} SpvMemorySemanticsShift; - -typedef enum SpvMemorySemanticsMask_ { - SpvMemorySemanticsMaskNone = 0, - SpvMemorySemanticsAcquireMask = 0x00000002, - SpvMemorySemanticsReleaseMask = 0x00000004, - SpvMemorySemanticsAcquireReleaseMask = 0x00000008, - SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010, - SpvMemorySemanticsUniformMemoryMask = 0x00000040, - SpvMemorySemanticsSubgroupMemoryMask = 0x00000080, - SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100, - SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200, - SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400, - SpvMemorySemanticsImageMemoryMask = 0x00000800, - SpvMemorySemanticsOutputMemoryMask = 0x00001000, - SpvMemorySemanticsOutputMemoryKHRMask = 0x00001000, - SpvMemorySemanticsMakeAvailableMask = 0x00002000, - SpvMemorySemanticsMakeAvailableKHRMask = 0x00002000, - SpvMemorySemanticsMakeVisibleMask = 0x00004000, - SpvMemorySemanticsMakeVisibleKHRMask = 0x00004000, - SpvMemorySemanticsVolatileMask = 0x00008000, -} SpvMemorySemanticsMask; - -typedef enum SpvMemoryAccessShift_ { - SpvMemoryAccessVolatileShift = 0, - SpvMemoryAccessAlignedShift = 1, - SpvMemoryAccessNontemporalShift = 2, - SpvMemoryAccessMakePointerAvailableShift = 3, - SpvMemoryAccessMakePointerAvailableKHRShift = 3, - SpvMemoryAccessMakePointerVisibleShift = 4, - SpvMemoryAccessMakePointerVisibleKHRShift = 4, - SpvMemoryAccessNonPrivatePointerShift = 5, - SpvMemoryAccessNonPrivatePointerKHRShift = 5, - SpvMemoryAccessMax = 0x7fffffff, -} SpvMemoryAccessShift; - -typedef enum SpvMemoryAccessMask_ { - SpvMemoryAccessMaskNone = 0, - SpvMemoryAccessVolatileMask = 0x00000001, - SpvMemoryAccessAlignedMask = 0x00000002, - SpvMemoryAccessNontemporalMask = 0x00000004, - SpvMemoryAccessMakePointerAvailableMask = 0x00000008, - SpvMemoryAccessMakePointerAvailableKHRMask = 0x00000008, - SpvMemoryAccessMakePointerVisibleMask = 0x00000010, - SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010, - SpvMemoryAccessNonPrivatePointerMask = 0x00000020, - SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020, -} SpvMemoryAccessMask; - -typedef enum SpvScope_ { - SpvScopeCrossDevice = 0, - SpvScopeDevice = 1, - SpvScopeWorkgroup = 2, - SpvScopeSubgroup = 3, - SpvScopeInvocation = 4, - SpvScopeQueueFamily = 5, - SpvScopeQueueFamilyKHR = 5, - SpvScopeMax = 0x7fffffff, -} SpvScope; - -typedef enum SpvGroupOperation_ { - SpvGroupOperationReduce = 0, - SpvGroupOperationInclusiveScan = 1, - SpvGroupOperationExclusiveScan = 2, - SpvGroupOperationClusteredReduce = 3, - SpvGroupOperationPartitionedReduceNV = 6, - SpvGroupOperationPartitionedInclusiveScanNV = 7, - SpvGroupOperationPartitionedExclusiveScanNV = 8, - SpvGroupOperationMax = 0x7fffffff, -} SpvGroupOperation; - -typedef enum SpvKernelEnqueueFlags_ { - SpvKernelEnqueueFlagsNoWait = 0, - SpvKernelEnqueueFlagsWaitKernel = 1, - SpvKernelEnqueueFlagsWaitWorkGroup = 2, - SpvKernelEnqueueFlagsMax = 0x7fffffff, -} SpvKernelEnqueueFlags; - -typedef enum SpvKernelProfilingInfoShift_ { - SpvKernelProfilingInfoCmdExecTimeShift = 0, - SpvKernelProfilingInfoMax = 0x7fffffff, -} SpvKernelProfilingInfoShift; - -typedef enum SpvKernelProfilingInfoMask_ { - SpvKernelProfilingInfoMaskNone = 0, - SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001, -} SpvKernelProfilingInfoMask; - -typedef enum SpvCapability_ { - SpvCapabilityMatrix = 0, - SpvCapabilityShader = 1, - SpvCapabilityGeometry = 2, - SpvCapabilityTessellation = 3, - SpvCapabilityAddresses = 4, - SpvCapabilityLinkage = 5, - SpvCapabilityKernel = 6, - SpvCapabilityVector16 = 7, - SpvCapabilityFloat16Buffer = 8, - SpvCapabilityFloat16 = 9, - SpvCapabilityFloat64 = 10, - SpvCapabilityInt64 = 11, - SpvCapabilityInt64Atomics = 12, - SpvCapabilityImageBasic = 13, - SpvCapabilityImageReadWrite = 14, - SpvCapabilityImageMipmap = 15, - SpvCapabilityPipes = 17, - SpvCapabilityGroups = 18, - SpvCapabilityDeviceEnqueue = 19, - SpvCapabilityLiteralSampler = 20, - SpvCapabilityAtomicStorage = 21, - SpvCapabilityInt16 = 22, - SpvCapabilityTessellationPointSize = 23, - SpvCapabilityGeometryPointSize = 24, - SpvCapabilityImageGatherExtended = 25, - SpvCapabilityStorageImageMultisample = 27, - SpvCapabilityUniformBufferArrayDynamicIndexing = 28, - SpvCapabilitySampledImageArrayDynamicIndexing = 29, - SpvCapabilityStorageBufferArrayDynamicIndexing = 30, - SpvCapabilityStorageImageArrayDynamicIndexing = 31, - SpvCapabilityClipDistance = 32, - SpvCapabilityCullDistance = 33, - SpvCapabilityImageCubeArray = 34, - SpvCapabilitySampleRateShading = 35, - SpvCapabilityImageRect = 36, - SpvCapabilitySampledRect = 37, - SpvCapabilityGenericPointer = 38, - SpvCapabilityInt8 = 39, - SpvCapabilityInputAttachment = 40, - SpvCapabilitySparseResidency = 41, - SpvCapabilityMinLod = 42, - SpvCapabilitySampled1D = 43, - SpvCapabilityImage1D = 44, - SpvCapabilitySampledCubeArray = 45, - SpvCapabilitySampledBuffer = 46, - SpvCapabilityImageBuffer = 47, - SpvCapabilityImageMSArray = 48, - SpvCapabilityStorageImageExtendedFormats = 49, - SpvCapabilityImageQuery = 50, - SpvCapabilityDerivativeControl = 51, - SpvCapabilityInterpolationFunction = 52, - SpvCapabilityTransformFeedback = 53, - SpvCapabilityGeometryStreams = 54, - SpvCapabilityStorageImageReadWithoutFormat = 55, - SpvCapabilityStorageImageWriteWithoutFormat = 56, - SpvCapabilityMultiViewport = 57, - SpvCapabilitySubgroupDispatch = 58, - SpvCapabilityNamedBarrier = 59, - SpvCapabilityPipeStorage = 60, - SpvCapabilityGroupNonUniform = 61, - SpvCapabilityGroupNonUniformVote = 62, - SpvCapabilityGroupNonUniformArithmetic = 63, - SpvCapabilityGroupNonUniformBallot = 64, - SpvCapabilityGroupNonUniformShuffle = 65, - SpvCapabilityGroupNonUniformShuffleRelative = 66, - SpvCapabilityGroupNonUniformClustered = 67, - SpvCapabilityGroupNonUniformQuad = 68, - SpvCapabilityShaderLayer = 69, - SpvCapabilityShaderViewportIndex = 70, - SpvCapabilitySubgroupBallotKHR = 4423, - SpvCapabilityDrawParameters = 4427, - SpvCapabilitySubgroupVoteKHR = 4431, - SpvCapabilityStorageBuffer16BitAccess = 4433, - SpvCapabilityStorageUniformBufferBlock16 = 4433, - SpvCapabilityStorageUniform16 = 4434, - SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434, - SpvCapabilityStoragePushConstant16 = 4435, - SpvCapabilityStorageInputOutput16 = 4436, - SpvCapabilityDeviceGroup = 4437, - SpvCapabilityMultiView = 4439, - SpvCapabilityVariablePointersStorageBuffer = 4441, - SpvCapabilityVariablePointers = 4442, - SpvCapabilityAtomicStorageOps = 4445, - SpvCapabilitySampleMaskPostDepthCoverage = 4447, - SpvCapabilityStorageBuffer8BitAccess = 4448, - SpvCapabilityUniformAndStorageBuffer8BitAccess = 4449, - SpvCapabilityStoragePushConstant8 = 4450, - SpvCapabilityDenormPreserve = 4464, - SpvCapabilityDenormFlushToZero = 4465, - SpvCapabilitySignedZeroInfNanPreserve = 4466, - SpvCapabilityRoundingModeRTE = 4467, - SpvCapabilityRoundingModeRTZ = 4468, - SpvCapabilityFloat16ImageAMD = 5008, - SpvCapabilityImageGatherBiasLodAMD = 5009, - SpvCapabilityFragmentMaskAMD = 5010, - SpvCapabilityStencilExportEXT = 5013, - SpvCapabilityImageReadWriteLodAMD = 5015, - SpvCapabilityShaderClockKHR = 5055, - SpvCapabilitySampleMaskOverrideCoverageNV = 5249, - SpvCapabilityGeometryShaderPassthroughNV = 5251, - SpvCapabilityShaderViewportIndexLayerEXT = 5254, - SpvCapabilityShaderViewportIndexLayerNV = 5254, - SpvCapabilityShaderViewportMaskNV = 5255, - SpvCapabilityShaderStereoViewNV = 5259, - SpvCapabilityPerViewAttributesNV = 5260, - SpvCapabilityFragmentFullyCoveredEXT = 5265, - SpvCapabilityMeshShadingNV = 5266, - SpvCapabilityImageFootprintNV = 5282, - SpvCapabilityFragmentBarycentricNV = 5284, - SpvCapabilityComputeDerivativeGroupQuadsNV = 5288, - SpvCapabilityFragmentDensityEXT = 5291, - SpvCapabilityShadingRateNV = 5291, - SpvCapabilityGroupNonUniformPartitionedNV = 5297, - SpvCapabilityShaderNonUniform = 5301, - SpvCapabilityShaderNonUniformEXT = 5301, - SpvCapabilityRuntimeDescriptorArray = 5302, - SpvCapabilityRuntimeDescriptorArrayEXT = 5302, - SpvCapabilityInputAttachmentArrayDynamicIndexing = 5303, - SpvCapabilityInputAttachmentArrayDynamicIndexingEXT = 5303, - SpvCapabilityUniformTexelBufferArrayDynamicIndexing = 5304, - SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304, - SpvCapabilityStorageTexelBufferArrayDynamicIndexing = 5305, - SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305, - SpvCapabilityUniformBufferArrayNonUniformIndexing = 5306, - SpvCapabilityUniformBufferArrayNonUniformIndexingEXT = 5306, - SpvCapabilitySampledImageArrayNonUniformIndexing = 5307, - SpvCapabilitySampledImageArrayNonUniformIndexingEXT = 5307, - SpvCapabilityStorageBufferArrayNonUniformIndexing = 5308, - SpvCapabilityStorageBufferArrayNonUniformIndexingEXT = 5308, - SpvCapabilityStorageImageArrayNonUniformIndexing = 5309, - SpvCapabilityStorageImageArrayNonUniformIndexingEXT = 5309, - SpvCapabilityInputAttachmentArrayNonUniformIndexing = 5310, - SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310, - SpvCapabilityUniformTexelBufferArrayNonUniformIndexing = 5311, - SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311, - SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312, - SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312, - SpvCapabilityRayTracingNV = 5340, - SpvCapabilityVulkanMemoryModel = 5345, - SpvCapabilityVulkanMemoryModelKHR = 5345, - SpvCapabilityVulkanMemoryModelDeviceScope = 5346, - SpvCapabilityVulkanMemoryModelDeviceScopeKHR = 5346, - SpvCapabilityPhysicalStorageBufferAddresses = 5347, - SpvCapabilityPhysicalStorageBufferAddressesEXT = 5347, - SpvCapabilityComputeDerivativeGroupLinearNV = 5350, - SpvCapabilityCooperativeMatrixNV = 5357, - SpvCapabilityFragmentShaderSampleInterlockEXT = 5363, - SpvCapabilityFragmentShaderShadingRateInterlockEXT = 5372, - SpvCapabilityShaderSMBuiltinsNV = 5373, - SpvCapabilityFragmentShaderPixelInterlockEXT = 5378, - SpvCapabilityDemoteToHelperInvocationEXT = 5379, - SpvCapabilitySubgroupShuffleINTEL = 5568, - SpvCapabilitySubgroupBufferBlockIOINTEL = 5569, - SpvCapabilitySubgroupImageBlockIOINTEL = 5570, - SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579, - SpvCapabilityIntegerFunctions2INTEL = 5584, - SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696, - SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697, - SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698, - SpvCapabilityMax = 0x7fffffff, -} SpvCapability; - -typedef enum SpvOp_ { - SpvOpNop = 0, - SpvOpUndef = 1, - SpvOpSourceContinued = 2, - SpvOpSource = 3, - SpvOpSourceExtension = 4, - SpvOpName = 5, - SpvOpMemberName = 6, - SpvOpString = 7, - SpvOpLine = 8, - SpvOpExtension = 10, - SpvOpExtInstImport = 11, - SpvOpExtInst = 12, - SpvOpMemoryModel = 14, - SpvOpEntryPoint = 15, - SpvOpExecutionMode = 16, - SpvOpCapability = 17, - SpvOpTypeVoid = 19, - SpvOpTypeBool = 20, - SpvOpTypeInt = 21, - SpvOpTypeFloat = 22, - SpvOpTypeVector = 23, - SpvOpTypeMatrix = 24, - SpvOpTypeImage = 25, - SpvOpTypeSampler = 26, - SpvOpTypeSampledImage = 27, - SpvOpTypeArray = 28, - SpvOpTypeRuntimeArray = 29, - SpvOpTypeStruct = 30, - SpvOpTypeOpaque = 31, - SpvOpTypePointer = 32, - SpvOpTypeFunction = 33, - SpvOpTypeEvent = 34, - SpvOpTypeDeviceEvent = 35, - SpvOpTypeReserveId = 36, - SpvOpTypeQueue = 37, - SpvOpTypePipe = 38, - SpvOpTypeForwardPointer = 39, - SpvOpConstantTrue = 41, - SpvOpConstantFalse = 42, - SpvOpConstant = 43, - SpvOpConstantComposite = 44, - SpvOpConstantSampler = 45, - SpvOpConstantNull = 46, - SpvOpSpecConstantTrue = 48, - SpvOpSpecConstantFalse = 49, - SpvOpSpecConstant = 50, - SpvOpSpecConstantComposite = 51, - SpvOpSpecConstantOp = 52, - SpvOpFunction = 54, - SpvOpFunctionParameter = 55, - SpvOpFunctionEnd = 56, - SpvOpFunctionCall = 57, - SpvOpVariable = 59, - SpvOpImageTexelPointer = 60, - SpvOpLoad = 61, - SpvOpStore = 62, - SpvOpCopyMemory = 63, - SpvOpCopyMemorySized = 64, - SpvOpAccessChain = 65, - SpvOpInBoundsAccessChain = 66, - SpvOpPtrAccessChain = 67, - SpvOpArrayLength = 68, - SpvOpGenericPtrMemSemantics = 69, - SpvOpInBoundsPtrAccessChain = 70, - SpvOpDecorate = 71, - SpvOpMemberDecorate = 72, - SpvOpDecorationGroup = 73, - SpvOpGroupDecorate = 74, - SpvOpGroupMemberDecorate = 75, - SpvOpVectorExtractDynamic = 77, - SpvOpVectorInsertDynamic = 78, - SpvOpVectorShuffle = 79, - SpvOpCompositeConstruct = 80, - SpvOpCompositeExtract = 81, - SpvOpCompositeInsert = 82, - SpvOpCopyObject = 83, - SpvOpTranspose = 84, - SpvOpSampledImage = 86, - SpvOpImageSampleImplicitLod = 87, - SpvOpImageSampleExplicitLod = 88, - SpvOpImageSampleDrefImplicitLod = 89, - SpvOpImageSampleDrefExplicitLod = 90, - SpvOpImageSampleProjImplicitLod = 91, - SpvOpImageSampleProjExplicitLod = 92, - SpvOpImageSampleProjDrefImplicitLod = 93, - SpvOpImageSampleProjDrefExplicitLod = 94, - SpvOpImageFetch = 95, - SpvOpImageGather = 96, - SpvOpImageDrefGather = 97, - SpvOpImageRead = 98, - SpvOpImageWrite = 99, - SpvOpImage = 100, - SpvOpImageQueryFormat = 101, - SpvOpImageQueryOrder = 102, - SpvOpImageQuerySizeLod = 103, - SpvOpImageQuerySize = 104, - SpvOpImageQueryLod = 105, - SpvOpImageQueryLevels = 106, - SpvOpImageQuerySamples = 107, - SpvOpConvertFToU = 109, - SpvOpConvertFToS = 110, - SpvOpConvertSToF = 111, - SpvOpConvertUToF = 112, - SpvOpUConvert = 113, - SpvOpSConvert = 114, - SpvOpFConvert = 115, - SpvOpQuantizeToF16 = 116, - SpvOpConvertPtrToU = 117, - SpvOpSatConvertSToU = 118, - SpvOpSatConvertUToS = 119, - SpvOpConvertUToPtr = 120, - SpvOpPtrCastToGeneric = 121, - SpvOpGenericCastToPtr = 122, - SpvOpGenericCastToPtrExplicit = 123, - SpvOpBitcast = 124, - SpvOpSNegate = 126, - SpvOpFNegate = 127, - SpvOpIAdd = 128, - SpvOpFAdd = 129, - SpvOpISub = 130, - SpvOpFSub = 131, - SpvOpIMul = 132, - SpvOpFMul = 133, - SpvOpUDiv = 134, - SpvOpSDiv = 135, - SpvOpFDiv = 136, - SpvOpUMod = 137, - SpvOpSRem = 138, - SpvOpSMod = 139, - SpvOpFRem = 140, - SpvOpFMod = 141, - SpvOpVectorTimesScalar = 142, - SpvOpMatrixTimesScalar = 143, - SpvOpVectorTimesMatrix = 144, - SpvOpMatrixTimesVector = 145, - SpvOpMatrixTimesMatrix = 146, - SpvOpOuterProduct = 147, - SpvOpDot = 148, - SpvOpIAddCarry = 149, - SpvOpISubBorrow = 150, - SpvOpUMulExtended = 151, - SpvOpSMulExtended = 152, - SpvOpAny = 154, - SpvOpAll = 155, - SpvOpIsNan = 156, - SpvOpIsInf = 157, - SpvOpIsFinite = 158, - SpvOpIsNormal = 159, - SpvOpSignBitSet = 160, - SpvOpLessOrGreater = 161, - SpvOpOrdered = 162, - SpvOpUnordered = 163, - SpvOpLogicalEqual = 164, - SpvOpLogicalNotEqual = 165, - SpvOpLogicalOr = 166, - SpvOpLogicalAnd = 167, - SpvOpLogicalNot = 168, - SpvOpSelect = 169, - SpvOpIEqual = 170, - SpvOpINotEqual = 171, - SpvOpUGreaterThan = 172, - SpvOpSGreaterThan = 173, - SpvOpUGreaterThanEqual = 174, - SpvOpSGreaterThanEqual = 175, - SpvOpULessThan = 176, - SpvOpSLessThan = 177, - SpvOpULessThanEqual = 178, - SpvOpSLessThanEqual = 179, - SpvOpFOrdEqual = 180, - SpvOpFUnordEqual = 181, - SpvOpFOrdNotEqual = 182, - SpvOpFUnordNotEqual = 183, - SpvOpFOrdLessThan = 184, - SpvOpFUnordLessThan = 185, - SpvOpFOrdGreaterThan = 186, - SpvOpFUnordGreaterThan = 187, - SpvOpFOrdLessThanEqual = 188, - SpvOpFUnordLessThanEqual = 189, - SpvOpFOrdGreaterThanEqual = 190, - SpvOpFUnordGreaterThanEqual = 191, - SpvOpShiftRightLogical = 194, - SpvOpShiftRightArithmetic = 195, - SpvOpShiftLeftLogical = 196, - SpvOpBitwiseOr = 197, - SpvOpBitwiseXor = 198, - SpvOpBitwiseAnd = 199, - SpvOpNot = 200, - SpvOpBitFieldInsert = 201, - SpvOpBitFieldSExtract = 202, - SpvOpBitFieldUExtract = 203, - SpvOpBitReverse = 204, - SpvOpBitCount = 205, - SpvOpDPdx = 207, - SpvOpDPdy = 208, - SpvOpFwidth = 209, - SpvOpDPdxFine = 210, - SpvOpDPdyFine = 211, - SpvOpFwidthFine = 212, - SpvOpDPdxCoarse = 213, - SpvOpDPdyCoarse = 214, - SpvOpFwidthCoarse = 215, - SpvOpEmitVertex = 218, - SpvOpEndPrimitive = 219, - SpvOpEmitStreamVertex = 220, - SpvOpEndStreamPrimitive = 221, - SpvOpControlBarrier = 224, - SpvOpMemoryBarrier = 225, - SpvOpAtomicLoad = 227, - SpvOpAtomicStore = 228, - SpvOpAtomicExchange = 229, - SpvOpAtomicCompareExchange = 230, - SpvOpAtomicCompareExchangeWeak = 231, - SpvOpAtomicIIncrement = 232, - SpvOpAtomicIDecrement = 233, - SpvOpAtomicIAdd = 234, - SpvOpAtomicISub = 235, - SpvOpAtomicSMin = 236, - SpvOpAtomicUMin = 237, - SpvOpAtomicSMax = 238, - SpvOpAtomicUMax = 239, - SpvOpAtomicAnd = 240, - SpvOpAtomicOr = 241, - SpvOpAtomicXor = 242, - SpvOpPhi = 245, - SpvOpLoopMerge = 246, - SpvOpSelectionMerge = 247, - SpvOpLabel = 248, - SpvOpBranch = 249, - SpvOpBranchConditional = 250, - SpvOpSwitch = 251, - SpvOpKill = 252, - SpvOpReturn = 253, - SpvOpReturnValue = 254, - SpvOpUnreachable = 255, - SpvOpLifetimeStart = 256, - SpvOpLifetimeStop = 257, - SpvOpGroupAsyncCopy = 259, - SpvOpGroupWaitEvents = 260, - SpvOpGroupAll = 261, - SpvOpGroupAny = 262, - SpvOpGroupBroadcast = 263, - SpvOpGroupIAdd = 264, - SpvOpGroupFAdd = 265, - SpvOpGroupFMin = 266, - SpvOpGroupUMin = 267, - SpvOpGroupSMin = 268, - SpvOpGroupFMax = 269, - SpvOpGroupUMax = 270, - SpvOpGroupSMax = 271, - SpvOpReadPipe = 274, - SpvOpWritePipe = 275, - SpvOpReservedReadPipe = 276, - SpvOpReservedWritePipe = 277, - SpvOpReserveReadPipePackets = 278, - SpvOpReserveWritePipePackets = 279, - SpvOpCommitReadPipe = 280, - SpvOpCommitWritePipe = 281, - SpvOpIsValidReserveId = 282, - SpvOpGetNumPipePackets = 283, - SpvOpGetMaxPipePackets = 284, - SpvOpGroupReserveReadPipePackets = 285, - SpvOpGroupReserveWritePipePackets = 286, - SpvOpGroupCommitReadPipe = 287, - SpvOpGroupCommitWritePipe = 288, - SpvOpEnqueueMarker = 291, - SpvOpEnqueueKernel = 292, - SpvOpGetKernelNDrangeSubGroupCount = 293, - SpvOpGetKernelNDrangeMaxSubGroupSize = 294, - SpvOpGetKernelWorkGroupSize = 295, - SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296, - SpvOpRetainEvent = 297, - SpvOpReleaseEvent = 298, - SpvOpCreateUserEvent = 299, - SpvOpIsValidEvent = 300, - SpvOpSetUserEventStatus = 301, - SpvOpCaptureEventProfilingInfo = 302, - SpvOpGetDefaultQueue = 303, - SpvOpBuildNDRange = 304, - SpvOpImageSparseSampleImplicitLod = 305, - SpvOpImageSparseSampleExplicitLod = 306, - SpvOpImageSparseSampleDrefImplicitLod = 307, - SpvOpImageSparseSampleDrefExplicitLod = 308, - SpvOpImageSparseSampleProjImplicitLod = 309, - SpvOpImageSparseSampleProjExplicitLod = 310, - SpvOpImageSparseSampleProjDrefImplicitLod = 311, - SpvOpImageSparseSampleProjDrefExplicitLod = 312, - SpvOpImageSparseFetch = 313, - SpvOpImageSparseGather = 314, - SpvOpImageSparseDrefGather = 315, - SpvOpImageSparseTexelsResident = 316, - SpvOpNoLine = 317, - SpvOpAtomicFlagTestAndSet = 318, - SpvOpAtomicFlagClear = 319, - SpvOpImageSparseRead = 320, - SpvOpSizeOf = 321, - SpvOpTypePipeStorage = 322, - SpvOpConstantPipeStorage = 323, - SpvOpCreatePipeFromPipeStorage = 324, - SpvOpGetKernelLocalSizeForSubgroupCount = 325, - SpvOpGetKernelMaxNumSubgroups = 326, - SpvOpTypeNamedBarrier = 327, - SpvOpNamedBarrierInitialize = 328, - SpvOpMemoryNamedBarrier = 329, - SpvOpModuleProcessed = 330, - SpvOpExecutionModeId = 331, - SpvOpDecorateId = 332, - SpvOpGroupNonUniformElect = 333, - SpvOpGroupNonUniformAll = 334, - SpvOpGroupNonUniformAny = 335, - SpvOpGroupNonUniformAllEqual = 336, - SpvOpGroupNonUniformBroadcast = 337, - SpvOpGroupNonUniformBroadcastFirst = 338, - SpvOpGroupNonUniformBallot = 339, - SpvOpGroupNonUniformInverseBallot = 340, - SpvOpGroupNonUniformBallotBitExtract = 341, - SpvOpGroupNonUniformBallotBitCount = 342, - SpvOpGroupNonUniformBallotFindLSB = 343, - SpvOpGroupNonUniformBallotFindMSB = 344, - SpvOpGroupNonUniformShuffle = 345, - SpvOpGroupNonUniformShuffleXor = 346, - SpvOpGroupNonUniformShuffleUp = 347, - SpvOpGroupNonUniformShuffleDown = 348, - SpvOpGroupNonUniformIAdd = 349, - SpvOpGroupNonUniformFAdd = 350, - SpvOpGroupNonUniformIMul = 351, - SpvOpGroupNonUniformFMul = 352, - SpvOpGroupNonUniformSMin = 353, - SpvOpGroupNonUniformUMin = 354, - SpvOpGroupNonUniformFMin = 355, - SpvOpGroupNonUniformSMax = 356, - SpvOpGroupNonUniformUMax = 357, - SpvOpGroupNonUniformFMax = 358, - SpvOpGroupNonUniformBitwiseAnd = 359, - SpvOpGroupNonUniformBitwiseOr = 360, - SpvOpGroupNonUniformBitwiseXor = 361, - SpvOpGroupNonUniformLogicalAnd = 362, - SpvOpGroupNonUniformLogicalOr = 363, - SpvOpGroupNonUniformLogicalXor = 364, - SpvOpGroupNonUniformQuadBroadcast = 365, - SpvOpGroupNonUniformQuadSwap = 366, - SpvOpCopyLogical = 400, - SpvOpPtrEqual = 401, - SpvOpPtrNotEqual = 402, - SpvOpPtrDiff = 403, - SpvOpSubgroupBallotKHR = 4421, - SpvOpSubgroupFirstInvocationKHR = 4422, - SpvOpSubgroupAllKHR = 4428, - SpvOpSubgroupAnyKHR = 4429, - SpvOpSubgroupAllEqualKHR = 4430, - SpvOpSubgroupReadInvocationKHR = 4432, - SpvOpGroupIAddNonUniformAMD = 5000, - SpvOpGroupFAddNonUniformAMD = 5001, - SpvOpGroupFMinNonUniformAMD = 5002, - SpvOpGroupUMinNonUniformAMD = 5003, - SpvOpGroupSMinNonUniformAMD = 5004, - SpvOpGroupFMaxNonUniformAMD = 5005, - SpvOpGroupUMaxNonUniformAMD = 5006, - SpvOpGroupSMaxNonUniformAMD = 5007, - SpvOpFragmentMaskFetchAMD = 5011, - SpvOpFragmentFetchAMD = 5012, - SpvOpReadClockKHR = 5056, - SpvOpImageSampleFootprintNV = 5283, - SpvOpGroupNonUniformPartitionNV = 5296, - SpvOpWritePackedPrimitiveIndices4x8NV = 5299, - SpvOpReportIntersectionNV = 5334, - SpvOpIgnoreIntersectionNV = 5335, - SpvOpTerminateRayNV = 5336, - SpvOpTraceNV = 5337, - SpvOpTypeAccelerationStructureNV = 5341, - SpvOpExecuteCallableNV = 5344, - SpvOpTypeCooperativeMatrixNV = 5358, - SpvOpCooperativeMatrixLoadNV = 5359, - SpvOpCooperativeMatrixStoreNV = 5360, - SpvOpCooperativeMatrixMulAddNV = 5361, - SpvOpCooperativeMatrixLengthNV = 5362, - SpvOpBeginInvocationInterlockEXT = 5364, - SpvOpEndInvocationInterlockEXT = 5365, - SpvOpDemoteToHelperInvocationEXT = 5380, - SpvOpIsHelperInvocationEXT = 5381, - SpvOpSubgroupShuffleINTEL = 5571, - SpvOpSubgroupShuffleDownINTEL = 5572, - SpvOpSubgroupShuffleUpINTEL = 5573, - SpvOpSubgroupShuffleXorINTEL = 5574, - SpvOpSubgroupBlockReadINTEL = 5575, - SpvOpSubgroupBlockWriteINTEL = 5576, - SpvOpSubgroupImageBlockReadINTEL = 5577, - SpvOpSubgroupImageBlockWriteINTEL = 5578, - SpvOpSubgroupImageMediaBlockReadINTEL = 5580, - SpvOpSubgroupImageMediaBlockWriteINTEL = 5581, - SpvOpUCountLeadingZerosINTEL = 5585, - SpvOpUCountTrailingZerosINTEL = 5586, - SpvOpAbsISubINTEL = 5587, - SpvOpAbsUSubINTEL = 5588, - SpvOpIAddSatINTEL = 5589, - SpvOpUAddSatINTEL = 5590, - SpvOpIAverageINTEL = 5591, - SpvOpUAverageINTEL = 5592, - SpvOpIAverageRoundedINTEL = 5593, - SpvOpUAverageRoundedINTEL = 5594, - SpvOpISubSatINTEL = 5595, - SpvOpUSubSatINTEL = 5596, - SpvOpIMul32x16INTEL = 5597, - SpvOpUMul32x16INTEL = 5598, - SpvOpDecorateString = 5632, - SpvOpDecorateStringGOOGLE = 5632, - SpvOpMemberDecorateString = 5633, - SpvOpMemberDecorateStringGOOGLE = 5633, - SpvOpVmeImageINTEL = 5699, - SpvOpTypeVmeImageINTEL = 5700, - SpvOpTypeAvcImePayloadINTEL = 5701, - SpvOpTypeAvcRefPayloadINTEL = 5702, - SpvOpTypeAvcSicPayloadINTEL = 5703, - SpvOpTypeAvcMcePayloadINTEL = 5704, - SpvOpTypeAvcMceResultINTEL = 5705, - SpvOpTypeAvcImeResultINTEL = 5706, - SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707, - SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708, - SpvOpTypeAvcImeSingleReferenceStreaminINTEL = 5709, - SpvOpTypeAvcImeDualReferenceStreaminINTEL = 5710, - SpvOpTypeAvcRefResultINTEL = 5711, - SpvOpTypeAvcSicResultINTEL = 5712, - SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713, - SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714, - SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715, - SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716, - SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717, - SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718, - SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719, - SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720, - SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721, - SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722, - SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723, - SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724, - SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725, - SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726, - SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727, - SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728, - SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729, - SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730, - SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731, - SpvOpSubgroupAvcMceConvertToImePayloadINTEL = 5732, - SpvOpSubgroupAvcMceConvertToImeResultINTEL = 5733, - SpvOpSubgroupAvcMceConvertToRefPayloadINTEL = 5734, - SpvOpSubgroupAvcMceConvertToRefResultINTEL = 5735, - SpvOpSubgroupAvcMceConvertToSicPayloadINTEL = 5736, - SpvOpSubgroupAvcMceConvertToSicResultINTEL = 5737, - SpvOpSubgroupAvcMceGetMotionVectorsINTEL = 5738, - SpvOpSubgroupAvcMceGetInterDistortionsINTEL = 5739, - SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740, - SpvOpSubgroupAvcMceGetInterMajorShapeINTEL = 5741, - SpvOpSubgroupAvcMceGetInterMinorShapeINTEL = 5742, - SpvOpSubgroupAvcMceGetInterDirectionsINTEL = 5743, - SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744, - SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745, - SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746, - SpvOpSubgroupAvcImeInitializeINTEL = 5747, - SpvOpSubgroupAvcImeSetSingleReferenceINTEL = 5748, - SpvOpSubgroupAvcImeSetDualReferenceINTEL = 5749, - SpvOpSubgroupAvcImeRefWindowSizeINTEL = 5750, - SpvOpSubgroupAvcImeAdjustRefOffsetINTEL = 5751, - SpvOpSubgroupAvcImeConvertToMcePayloadINTEL = 5752, - SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753, - SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754, - SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755, - SpvOpSubgroupAvcImeSetWeightedSadINTEL = 5756, - SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757, - SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758, - SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759, - SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760, - SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761, - SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762, - SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763, - SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764, - SpvOpSubgroupAvcImeConvertToMceResultINTEL = 5765, - SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766, - SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767, - SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768, - SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769, - SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770, - SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771, - SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772, - SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773, - SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774, - SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775, - SpvOpSubgroupAvcImeGetBorderReachedINTEL = 5776, - SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777, - SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778, - SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779, - SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780, - SpvOpSubgroupAvcFmeInitializeINTEL = 5781, - SpvOpSubgroupAvcBmeInitializeINTEL = 5782, - SpvOpSubgroupAvcRefConvertToMcePayloadINTEL = 5783, - SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784, - SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785, - SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786, - SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787, - SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788, - SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789, - SpvOpSubgroupAvcRefConvertToMceResultINTEL = 5790, - SpvOpSubgroupAvcSicInitializeINTEL = 5791, - SpvOpSubgroupAvcSicConfigureSkcINTEL = 5792, - SpvOpSubgroupAvcSicConfigureIpeLumaINTEL = 5793, - SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794, - SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795, - SpvOpSubgroupAvcSicConvertToMcePayloadINTEL = 5796, - SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797, - SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798, - SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799, - SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800, - SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801, - SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802, - SpvOpSubgroupAvcSicEvaluateIpeINTEL = 5803, - SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804, - SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805, - SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806, - SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807, - SpvOpSubgroupAvcSicConvertToMceResultINTEL = 5808, - SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809, - SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810, - SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811, - SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812, - SpvOpSubgroupAvcSicGetIpeChromaModeINTEL = 5813, - SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814, - SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815, - SpvOpSubgroupAvcSicGetInterRawSadsINTEL = 5816, - SpvOpMax = 0x7fffffff, -} SpvOp; - -#ifdef SPV_ENABLE_UTILITY_CODE -inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultType) { - *hasResult = *hasResultType = false; - switch (opcode) { - default: /* unknown opcode */ break; - case SpvOpNop: *hasResult = false; *hasResultType = false; break; - case SpvOpUndef: *hasResult = true; *hasResultType = true; break; - case SpvOpSourceContinued: *hasResult = false; *hasResultType = false; break; - case SpvOpSource: *hasResult = false; *hasResultType = false; break; - case SpvOpSourceExtension: *hasResult = false; *hasResultType = false; break; - case SpvOpName: *hasResult = false; *hasResultType = false; break; - case SpvOpMemberName: *hasResult = false; *hasResultType = false; break; - case SpvOpString: *hasResult = true; *hasResultType = false; break; - case SpvOpLine: *hasResult = false; *hasResultType = false; break; - case SpvOpExtension: *hasResult = false; *hasResultType = false; break; - case SpvOpExtInstImport: *hasResult = true; *hasResultType = false; break; - case SpvOpExtInst: *hasResult = true; *hasResultType = true; break; - case SpvOpMemoryModel: *hasResult = false; *hasResultType = false; break; - case SpvOpEntryPoint: *hasResult = false; *hasResultType = false; break; - case SpvOpExecutionMode: *hasResult = false; *hasResultType = false; break; - case SpvOpCapability: *hasResult = false; *hasResultType = false; break; - case SpvOpTypeVoid: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeBool: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeInt: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeFloat: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeVector: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeMatrix: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeImage: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeSampler: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeSampledImage: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeArray: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeStruct: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeOpaque: *hasResult = true; *hasResultType = false; break; - case SpvOpTypePointer: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeFunction: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeEvent: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeReserveId: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeQueue: *hasResult = true; *hasResultType = false; break; - case SpvOpTypePipe: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeForwardPointer: *hasResult = false; *hasResultType = false; break; - case SpvOpConstantTrue: *hasResult = true; *hasResultType = true; break; - case SpvOpConstantFalse: *hasResult = true; *hasResultType = true; break; - case SpvOpConstant: *hasResult = true; *hasResultType = true; break; - case SpvOpConstantComposite: *hasResult = true; *hasResultType = true; break; - case SpvOpConstantSampler: *hasResult = true; *hasResultType = true; break; - case SpvOpConstantNull: *hasResult = true; *hasResultType = true; break; - case SpvOpSpecConstantTrue: *hasResult = true; *hasResultType = true; break; - case SpvOpSpecConstantFalse: *hasResult = true; *hasResultType = true; break; - case SpvOpSpecConstant: *hasResult = true; *hasResultType = true; break; - case SpvOpSpecConstantComposite: *hasResult = true; *hasResultType = true; break; - case SpvOpSpecConstantOp: *hasResult = true; *hasResultType = true; break; - case SpvOpFunction: *hasResult = true; *hasResultType = true; break; - case SpvOpFunctionParameter: *hasResult = true; *hasResultType = true; break; - case SpvOpFunctionEnd: *hasResult = false; *hasResultType = false; break; - case SpvOpFunctionCall: *hasResult = true; *hasResultType = true; break; - case SpvOpVariable: *hasResult = true; *hasResultType = true; break; - case SpvOpImageTexelPointer: *hasResult = true; *hasResultType = true; break; - case SpvOpLoad: *hasResult = true; *hasResultType = true; break; - case SpvOpStore: *hasResult = false; *hasResultType = false; break; - case SpvOpCopyMemory: *hasResult = false; *hasResultType = false; break; - case SpvOpCopyMemorySized: *hasResult = false; *hasResultType = false; break; - case SpvOpAccessChain: *hasResult = true; *hasResultType = true; break; - case SpvOpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break; - case SpvOpPtrAccessChain: *hasResult = true; *hasResultType = true; break; - case SpvOpArrayLength: *hasResult = true; *hasResultType = true; break; - case SpvOpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break; - case SpvOpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break; - case SpvOpDecorate: *hasResult = false; *hasResultType = false; break; - case SpvOpMemberDecorate: *hasResult = false; *hasResultType = false; break; - case SpvOpDecorationGroup: *hasResult = true; *hasResultType = false; break; - case SpvOpGroupDecorate: *hasResult = false; *hasResultType = false; break; - case SpvOpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break; - case SpvOpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break; - case SpvOpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break; - case SpvOpVectorShuffle: *hasResult = true; *hasResultType = true; break; - case SpvOpCompositeConstruct: *hasResult = true; *hasResultType = true; break; - case SpvOpCompositeExtract: *hasResult = true; *hasResultType = true; break; - case SpvOpCompositeInsert: *hasResult = true; *hasResultType = true; break; - case SpvOpCopyObject: *hasResult = true; *hasResultType = true; break; - case SpvOpTranspose: *hasResult = true; *hasResultType = true; break; - case SpvOpSampledImage: *hasResult = true; *hasResultType = true; break; - case SpvOpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break; - case SpvOpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break; - case SpvOpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break; - case SpvOpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break; - case SpvOpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break; - case SpvOpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break; - case SpvOpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break; - case SpvOpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break; - case SpvOpImageFetch: *hasResult = true; *hasResultType = true; break; - case SpvOpImageGather: *hasResult = true; *hasResultType = true; break; - case SpvOpImageDrefGather: *hasResult = true; *hasResultType = true; break; - case SpvOpImageRead: *hasResult = true; *hasResultType = true; break; - case SpvOpImageWrite: *hasResult = false; *hasResultType = false; break; - case SpvOpImage: *hasResult = true; *hasResultType = true; break; - case SpvOpImageQueryFormat: *hasResult = true; *hasResultType = true; break; - case SpvOpImageQueryOrder: *hasResult = true; *hasResultType = true; break; - case SpvOpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break; - case SpvOpImageQuerySize: *hasResult = true; *hasResultType = true; break; - case SpvOpImageQueryLod: *hasResult = true; *hasResultType = true; break; - case SpvOpImageQueryLevels: *hasResult = true; *hasResultType = true; break; - case SpvOpImageQuerySamples: *hasResult = true; *hasResultType = true; break; - case SpvOpConvertFToU: *hasResult = true; *hasResultType = true; break; - case SpvOpConvertFToS: *hasResult = true; *hasResultType = true; break; - case SpvOpConvertSToF: *hasResult = true; *hasResultType = true; break; - case SpvOpConvertUToF: *hasResult = true; *hasResultType = true; break; - case SpvOpUConvert: *hasResult = true; *hasResultType = true; break; - case SpvOpSConvert: *hasResult = true; *hasResultType = true; break; - case SpvOpFConvert: *hasResult = true; *hasResultType = true; break; - case SpvOpQuantizeToF16: *hasResult = true; *hasResultType = true; break; - case SpvOpConvertPtrToU: *hasResult = true; *hasResultType = true; break; - case SpvOpSatConvertSToU: *hasResult = true; *hasResultType = true; break; - case SpvOpSatConvertUToS: *hasResult = true; *hasResultType = true; break; - case SpvOpConvertUToPtr: *hasResult = true; *hasResultType = true; break; - case SpvOpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break; - case SpvOpGenericCastToPtr: *hasResult = true; *hasResultType = true; break; - case SpvOpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break; - case SpvOpBitcast: *hasResult = true; *hasResultType = true; break; - case SpvOpSNegate: *hasResult = true; *hasResultType = true; break; - case SpvOpFNegate: *hasResult = true; *hasResultType = true; break; - case SpvOpIAdd: *hasResult = true; *hasResultType = true; break; - case SpvOpFAdd: *hasResult = true; *hasResultType = true; break; - case SpvOpISub: *hasResult = true; *hasResultType = true; break; - case SpvOpFSub: *hasResult = true; *hasResultType = true; break; - case SpvOpIMul: *hasResult = true; *hasResultType = true; break; - case SpvOpFMul: *hasResult = true; *hasResultType = true; break; - case SpvOpUDiv: *hasResult = true; *hasResultType = true; break; - case SpvOpSDiv: *hasResult = true; *hasResultType = true; break; - case SpvOpFDiv: *hasResult = true; *hasResultType = true; break; - case SpvOpUMod: *hasResult = true; *hasResultType = true; break; - case SpvOpSRem: *hasResult = true; *hasResultType = true; break; - case SpvOpSMod: *hasResult = true; *hasResultType = true; break; - case SpvOpFRem: *hasResult = true; *hasResultType = true; break; - case SpvOpFMod: *hasResult = true; *hasResultType = true; break; - case SpvOpVectorTimesScalar: *hasResult = true; *hasResultType = true; break; - case SpvOpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break; - case SpvOpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break; - case SpvOpMatrixTimesVector: *hasResult = true; *hasResultType = true; break; - case SpvOpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break; - case SpvOpOuterProduct: *hasResult = true; *hasResultType = true; break; - case SpvOpDot: *hasResult = true; *hasResultType = true; break; - case SpvOpIAddCarry: *hasResult = true; *hasResultType = true; break; - case SpvOpISubBorrow: *hasResult = true; *hasResultType = true; break; - case SpvOpUMulExtended: *hasResult = true; *hasResultType = true; break; - case SpvOpSMulExtended: *hasResult = true; *hasResultType = true; break; - case SpvOpAny: *hasResult = true; *hasResultType = true; break; - case SpvOpAll: *hasResult = true; *hasResultType = true; break; - case SpvOpIsNan: *hasResult = true; *hasResultType = true; break; - case SpvOpIsInf: *hasResult = true; *hasResultType = true; break; - case SpvOpIsFinite: *hasResult = true; *hasResultType = true; break; - case SpvOpIsNormal: *hasResult = true; *hasResultType = true; break; - case SpvOpSignBitSet: *hasResult = true; *hasResultType = true; break; - case SpvOpLessOrGreater: *hasResult = true; *hasResultType = true; break; - case SpvOpOrdered: *hasResult = true; *hasResultType = true; break; - case SpvOpUnordered: *hasResult = true; *hasResultType = true; break; - case SpvOpLogicalEqual: *hasResult = true; *hasResultType = true; break; - case SpvOpLogicalNotEqual: *hasResult = true; *hasResultType = true; break; - case SpvOpLogicalOr: *hasResult = true; *hasResultType = true; break; - case SpvOpLogicalAnd: *hasResult = true; *hasResultType = true; break; - case SpvOpLogicalNot: *hasResult = true; *hasResultType = true; break; - case SpvOpSelect: *hasResult = true; *hasResultType = true; break; - case SpvOpIEqual: *hasResult = true; *hasResultType = true; break; - case SpvOpINotEqual: *hasResult = true; *hasResultType = true; break; - case SpvOpUGreaterThan: *hasResult = true; *hasResultType = true; break; - case SpvOpSGreaterThan: *hasResult = true; *hasResultType = true; break; - case SpvOpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break; - case SpvOpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break; - case SpvOpULessThan: *hasResult = true; *hasResultType = true; break; - case SpvOpSLessThan: *hasResult = true; *hasResultType = true; break; - case SpvOpULessThanEqual: *hasResult = true; *hasResultType = true; break; - case SpvOpSLessThanEqual: *hasResult = true; *hasResultType = true; break; - case SpvOpFOrdEqual: *hasResult = true; *hasResultType = true; break; - case SpvOpFUnordEqual: *hasResult = true; *hasResultType = true; break; - case SpvOpFOrdNotEqual: *hasResult = true; *hasResultType = true; break; - case SpvOpFUnordNotEqual: *hasResult = true; *hasResultType = true; break; - case SpvOpFOrdLessThan: *hasResult = true; *hasResultType = true; break; - case SpvOpFUnordLessThan: *hasResult = true; *hasResultType = true; break; - case SpvOpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break; - case SpvOpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break; - case SpvOpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break; - case SpvOpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break; - case SpvOpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break; - case SpvOpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break; - case SpvOpShiftRightLogical: *hasResult = true; *hasResultType = true; break; - case SpvOpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break; - case SpvOpShiftLeftLogical: *hasResult = true; *hasResultType = true; break; - case SpvOpBitwiseOr: *hasResult = true; *hasResultType = true; break; - case SpvOpBitwiseXor: *hasResult = true; *hasResultType = true; break; - case SpvOpBitwiseAnd: *hasResult = true; *hasResultType = true; break; - case SpvOpNot: *hasResult = true; *hasResultType = true; break; - case SpvOpBitFieldInsert: *hasResult = true; *hasResultType = true; break; - case SpvOpBitFieldSExtract: *hasResult = true; *hasResultType = true; break; - case SpvOpBitFieldUExtract: *hasResult = true; *hasResultType = true; break; - case SpvOpBitReverse: *hasResult = true; *hasResultType = true; break; - case SpvOpBitCount: *hasResult = true; *hasResultType = true; break; - case SpvOpDPdx: *hasResult = true; *hasResultType = true; break; - case SpvOpDPdy: *hasResult = true; *hasResultType = true; break; - case SpvOpFwidth: *hasResult = true; *hasResultType = true; break; - case SpvOpDPdxFine: *hasResult = true; *hasResultType = true; break; - case SpvOpDPdyFine: *hasResult = true; *hasResultType = true; break; - case SpvOpFwidthFine: *hasResult = true; *hasResultType = true; break; - case SpvOpDPdxCoarse: *hasResult = true; *hasResultType = true; break; - case SpvOpDPdyCoarse: *hasResult = true; *hasResultType = true; break; - case SpvOpFwidthCoarse: *hasResult = true; *hasResultType = true; break; - case SpvOpEmitVertex: *hasResult = false; *hasResultType = false; break; - case SpvOpEndPrimitive: *hasResult = false; *hasResultType = false; break; - case SpvOpEmitStreamVertex: *hasResult = false; *hasResultType = false; break; - case SpvOpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break; - case SpvOpControlBarrier: *hasResult = false; *hasResultType = false; break; - case SpvOpMemoryBarrier: *hasResult = false; *hasResultType = false; break; - case SpvOpAtomicLoad: *hasResult = true; *hasResultType = true; break; - case SpvOpAtomicStore: *hasResult = false; *hasResultType = false; break; - case SpvOpAtomicExchange: *hasResult = true; *hasResultType = true; break; - case SpvOpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break; - case SpvOpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break; - case SpvOpAtomicIIncrement: *hasResult = true; *hasResultType = true; break; - case SpvOpAtomicIDecrement: *hasResult = true; *hasResultType = true; break; - case SpvOpAtomicIAdd: *hasResult = true; *hasResultType = true; break; - case SpvOpAtomicISub: *hasResult = true; *hasResultType = true; break; - case SpvOpAtomicSMin: *hasResult = true; *hasResultType = true; break; - case SpvOpAtomicUMin: *hasResult = true; *hasResultType = true; break; - case SpvOpAtomicSMax: *hasResult = true; *hasResultType = true; break; - case SpvOpAtomicUMax: *hasResult = true; *hasResultType = true; break; - case SpvOpAtomicAnd: *hasResult = true; *hasResultType = true; break; - case SpvOpAtomicOr: *hasResult = true; *hasResultType = true; break; - case SpvOpAtomicXor: *hasResult = true; *hasResultType = true; break; - case SpvOpPhi: *hasResult = true; *hasResultType = true; break; - case SpvOpLoopMerge: *hasResult = false; *hasResultType = false; break; - case SpvOpSelectionMerge: *hasResult = false; *hasResultType = false; break; - case SpvOpLabel: *hasResult = true; *hasResultType = false; break; - case SpvOpBranch: *hasResult = false; *hasResultType = false; break; - case SpvOpBranchConditional: *hasResult = false; *hasResultType = false; break; - case SpvOpSwitch: *hasResult = false; *hasResultType = false; break; - case SpvOpKill: *hasResult = false; *hasResultType = false; break; - case SpvOpReturn: *hasResult = false; *hasResultType = false; break; - case SpvOpReturnValue: *hasResult = false; *hasResultType = false; break; - case SpvOpUnreachable: *hasResult = false; *hasResultType = false; break; - case SpvOpLifetimeStart: *hasResult = false; *hasResultType = false; break; - case SpvOpLifetimeStop: *hasResult = false; *hasResultType = false; break; - case SpvOpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupWaitEvents: *hasResult = false; *hasResultType = false; break; - case SpvOpGroupAll: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupAny: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupBroadcast: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupIAdd: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupFAdd: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupFMin: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupUMin: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupSMin: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupFMax: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupUMax: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupSMax: *hasResult = true; *hasResultType = true; break; - case SpvOpReadPipe: *hasResult = true; *hasResultType = true; break; - case SpvOpWritePipe: *hasResult = true; *hasResultType = true; break; - case SpvOpReservedReadPipe: *hasResult = true; *hasResultType = true; break; - case SpvOpReservedWritePipe: *hasResult = true; *hasResultType = true; break; - case SpvOpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break; - case SpvOpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break; - case SpvOpCommitReadPipe: *hasResult = false; *hasResultType = false; break; - case SpvOpCommitWritePipe: *hasResult = false; *hasResultType = false; break; - case SpvOpIsValidReserveId: *hasResult = true; *hasResultType = true; break; - case SpvOpGetNumPipePackets: *hasResult = true; *hasResultType = true; break; - case SpvOpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break; - case SpvOpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break; - case SpvOpEnqueueMarker: *hasResult = true; *hasResultType = true; break; - case SpvOpEnqueueKernel: *hasResult = true; *hasResultType = true; break; - case SpvOpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break; - case SpvOpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break; - case SpvOpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break; - case SpvOpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break; - case SpvOpRetainEvent: *hasResult = false; *hasResultType = false; break; - case SpvOpReleaseEvent: *hasResult = false; *hasResultType = false; break; - case SpvOpCreateUserEvent: *hasResult = true; *hasResultType = true; break; - case SpvOpIsValidEvent: *hasResult = true; *hasResultType = true; break; - case SpvOpSetUserEventStatus: *hasResult = false; *hasResultType = false; break; - case SpvOpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break; - case SpvOpGetDefaultQueue: *hasResult = true; *hasResultType = true; break; - case SpvOpBuildNDRange: *hasResult = true; *hasResultType = true; break; - case SpvOpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break; - case SpvOpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break; - case SpvOpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break; - case SpvOpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break; - case SpvOpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break; - case SpvOpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break; - case SpvOpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break; - case SpvOpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break; - case SpvOpImageSparseFetch: *hasResult = true; *hasResultType = true; break; - case SpvOpImageSparseGather: *hasResult = true; *hasResultType = true; break; - case SpvOpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break; - case SpvOpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break; - case SpvOpNoLine: *hasResult = false; *hasResultType = false; break; - case SpvOpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break; - case SpvOpAtomicFlagClear: *hasResult = false; *hasResultType = false; break; - case SpvOpImageSparseRead: *hasResult = true; *hasResultType = true; break; - case SpvOpSizeOf: *hasResult = true; *hasResultType = true; break; - case SpvOpTypePipeStorage: *hasResult = true; *hasResultType = false; break; - case SpvOpConstantPipeStorage: *hasResult = true; *hasResultType = true; break; - case SpvOpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break; - case SpvOpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break; - case SpvOpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break; - case SpvOpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break; - case SpvOpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break; - case SpvOpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break; - case SpvOpModuleProcessed: *hasResult = false; *hasResultType = false; break; - case SpvOpExecutionModeId: *hasResult = false; *hasResultType = false; break; - case SpvOpDecorateId: *hasResult = false; *hasResultType = false; break; - case SpvOpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break; - case SpvOpCopyLogical: *hasResult = true; *hasResultType = true; break; - case SpvOpPtrEqual: *hasResult = true; *hasResultType = true; break; - case SpvOpPtrNotEqual: *hasResult = true; *hasResultType = true; break; - case SpvOpPtrDiff: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case SpvOpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break; - case SpvOpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break; - case SpvOpReadClockKHR: *hasResult = true; *hasResultType = true; break; - case SpvOpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break; - case SpvOpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break; - case SpvOpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break; - case SpvOpReportIntersectionNV: *hasResult = true; *hasResultType = true; break; - case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break; - case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break; - case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break; - case SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break; - case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break; - case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break; - case SpvOpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break; - case SpvOpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break; - case SpvOpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break; - case SpvOpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break; - case SpvOpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; - case SpvOpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; - case SpvOpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break; - case SpvOpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; - case SpvOpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; - case SpvOpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; - case SpvOpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpAbsISubINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpIAddSatINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpUAddSatINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpIAverageINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpUAverageINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpISubSatINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpUSubSatINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpDecorateString: *hasResult = false; *hasResultType = false; break; - case SpvOpMemberDecorateString: *hasResult = false; *hasResultType = false; break; - case SpvOpVmeImageINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break; - case SpvOpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break; - case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break; - case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break; - } -} -#endif /* SPV_ENABLE_UTILITY_CODE */ - -#endif - diff --git a/external/vulkan/windows/include/vulkan/spirv.hpp b/external/vulkan/windows/include/vulkan/spirv.hpp deleted file mode 100644 index ae999578..00000000 --- a/external/vulkan/windows/include/vulkan/spirv.hpp +++ /dev/null @@ -1,1981 +0,0 @@ -// Copyright (c) 2014-2019 The Khronos Group Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and/or associated documentation files (the "Materials"), -// to deal in the Materials without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Materials, and to permit persons to whom the -// Materials are furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Materials. -// -// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS -// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND -// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ -// -// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS -// IN THE MATERIALS. - -// This header is automatically generated by the same tool that creates -// the Binary Section of the SPIR-V specification. - -// Enumeration tokens for SPIR-V, in various styles: -// C, C++, C++11, JSON, Lua, Python, C#, D -// -// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL -// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL -// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL -// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL -// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] -// - C# will use enum classes in the Specification class located in the "Spv" namespace, -// e.g.: Spv.Specification.SourceLanguage.GLSL -// - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL -// -// Some tokens act like mask values, which can be OR'd together, -// while others are mutually exclusive. The mask-like ones have -// "Mask" in their name, and a parallel enum that has the shift -// amount (1 << x) for each corresponding enumerant. - -#ifndef spirv_HPP -#define spirv_HPP - -namespace spv { - -typedef unsigned int Id; - -#define SPV_VERSION 0x10500 -#define SPV_REVISION 1 - -static const unsigned int MagicNumber = 0x07230203; -static const unsigned int Version = 0x00010500; -static const unsigned int Revision = 1; -static const unsigned int OpCodeMask = 0xffff; -static const unsigned int WordCountShift = 16; - -enum SourceLanguage { - SourceLanguageUnknown = 0, - SourceLanguageESSL = 1, - SourceLanguageGLSL = 2, - SourceLanguageOpenCL_C = 3, - SourceLanguageOpenCL_CPP = 4, - SourceLanguageHLSL = 5, - SourceLanguageMax = 0x7fffffff, -}; - -enum ExecutionModel { - ExecutionModelVertex = 0, - ExecutionModelTessellationControl = 1, - ExecutionModelTessellationEvaluation = 2, - ExecutionModelGeometry = 3, - ExecutionModelFragment = 4, - ExecutionModelGLCompute = 5, - ExecutionModelKernel = 6, - ExecutionModelTaskNV = 5267, - ExecutionModelMeshNV = 5268, - ExecutionModelRayGenerationNV = 5313, - ExecutionModelIntersectionNV = 5314, - ExecutionModelAnyHitNV = 5315, - ExecutionModelClosestHitNV = 5316, - ExecutionModelMissNV = 5317, - ExecutionModelCallableNV = 5318, - ExecutionModelMax = 0x7fffffff, -}; - -enum AddressingModel { - AddressingModelLogical = 0, - AddressingModelPhysical32 = 1, - AddressingModelPhysical64 = 2, - AddressingModelPhysicalStorageBuffer64 = 5348, - AddressingModelPhysicalStorageBuffer64EXT = 5348, - AddressingModelMax = 0x7fffffff, -}; - -enum MemoryModel { - MemoryModelSimple = 0, - MemoryModelGLSL450 = 1, - MemoryModelOpenCL = 2, - MemoryModelVulkan = 3, - MemoryModelVulkanKHR = 3, - MemoryModelMax = 0x7fffffff, -}; - -enum ExecutionMode { - ExecutionModeInvocations = 0, - ExecutionModeSpacingEqual = 1, - ExecutionModeSpacingFractionalEven = 2, - ExecutionModeSpacingFractionalOdd = 3, - ExecutionModeVertexOrderCw = 4, - ExecutionModeVertexOrderCcw = 5, - ExecutionModePixelCenterInteger = 6, - ExecutionModeOriginUpperLeft = 7, - ExecutionModeOriginLowerLeft = 8, - ExecutionModeEarlyFragmentTests = 9, - ExecutionModePointMode = 10, - ExecutionModeXfb = 11, - ExecutionModeDepthReplacing = 12, - ExecutionModeDepthGreater = 14, - ExecutionModeDepthLess = 15, - ExecutionModeDepthUnchanged = 16, - ExecutionModeLocalSize = 17, - ExecutionModeLocalSizeHint = 18, - ExecutionModeInputPoints = 19, - ExecutionModeInputLines = 20, - ExecutionModeInputLinesAdjacency = 21, - ExecutionModeTriangles = 22, - ExecutionModeInputTrianglesAdjacency = 23, - ExecutionModeQuads = 24, - ExecutionModeIsolines = 25, - ExecutionModeOutputVertices = 26, - ExecutionModeOutputPoints = 27, - ExecutionModeOutputLineStrip = 28, - ExecutionModeOutputTriangleStrip = 29, - ExecutionModeVecTypeHint = 30, - ExecutionModeContractionOff = 31, - ExecutionModeInitializer = 33, - ExecutionModeFinalizer = 34, - ExecutionModeSubgroupSize = 35, - ExecutionModeSubgroupsPerWorkgroup = 36, - ExecutionModeSubgroupsPerWorkgroupId = 37, - ExecutionModeLocalSizeId = 38, - ExecutionModeLocalSizeHintId = 39, - ExecutionModePostDepthCoverage = 4446, - ExecutionModeDenormPreserve = 4459, - ExecutionModeDenormFlushToZero = 4460, - ExecutionModeSignedZeroInfNanPreserve = 4461, - ExecutionModeRoundingModeRTE = 4462, - ExecutionModeRoundingModeRTZ = 4463, - ExecutionModeStencilRefReplacingEXT = 5027, - ExecutionModeOutputLinesNV = 5269, - ExecutionModeOutputPrimitivesNV = 5270, - ExecutionModeDerivativeGroupQuadsNV = 5289, - ExecutionModeDerivativeGroupLinearNV = 5290, - ExecutionModeOutputTrianglesNV = 5298, - ExecutionModePixelInterlockOrderedEXT = 5366, - ExecutionModePixelInterlockUnorderedEXT = 5367, - ExecutionModeSampleInterlockOrderedEXT = 5368, - ExecutionModeSampleInterlockUnorderedEXT = 5369, - ExecutionModeShadingRateInterlockOrderedEXT = 5370, - ExecutionModeShadingRateInterlockUnorderedEXT = 5371, - ExecutionModeMax = 0x7fffffff, -}; - -enum StorageClass { - StorageClassUniformConstant = 0, - StorageClassInput = 1, - StorageClassUniform = 2, - StorageClassOutput = 3, - StorageClassWorkgroup = 4, - StorageClassCrossWorkgroup = 5, - StorageClassPrivate = 6, - StorageClassFunction = 7, - StorageClassGeneric = 8, - StorageClassPushConstant = 9, - StorageClassAtomicCounter = 10, - StorageClassImage = 11, - StorageClassStorageBuffer = 12, - StorageClassCallableDataNV = 5328, - StorageClassIncomingCallableDataNV = 5329, - StorageClassRayPayloadNV = 5338, - StorageClassHitAttributeNV = 5339, - StorageClassIncomingRayPayloadNV = 5342, - StorageClassShaderRecordBufferNV = 5343, - StorageClassPhysicalStorageBuffer = 5349, - StorageClassPhysicalStorageBufferEXT = 5349, - StorageClassMax = 0x7fffffff, -}; - -enum Dim { - Dim1D = 0, - Dim2D = 1, - Dim3D = 2, - DimCube = 3, - DimRect = 4, - DimBuffer = 5, - DimSubpassData = 6, - DimMax = 0x7fffffff, -}; - -enum SamplerAddressingMode { - SamplerAddressingModeNone = 0, - SamplerAddressingModeClampToEdge = 1, - SamplerAddressingModeClamp = 2, - SamplerAddressingModeRepeat = 3, - SamplerAddressingModeRepeatMirrored = 4, - SamplerAddressingModeMax = 0x7fffffff, -}; - -enum SamplerFilterMode { - SamplerFilterModeNearest = 0, - SamplerFilterModeLinear = 1, - SamplerFilterModeMax = 0x7fffffff, -}; - -enum ImageFormat { - ImageFormatUnknown = 0, - ImageFormatRgba32f = 1, - ImageFormatRgba16f = 2, - ImageFormatR32f = 3, - ImageFormatRgba8 = 4, - ImageFormatRgba8Snorm = 5, - ImageFormatRg32f = 6, - ImageFormatRg16f = 7, - ImageFormatR11fG11fB10f = 8, - ImageFormatR16f = 9, - ImageFormatRgba16 = 10, - ImageFormatRgb10A2 = 11, - ImageFormatRg16 = 12, - ImageFormatRg8 = 13, - ImageFormatR16 = 14, - ImageFormatR8 = 15, - ImageFormatRgba16Snorm = 16, - ImageFormatRg16Snorm = 17, - ImageFormatRg8Snorm = 18, - ImageFormatR16Snorm = 19, - ImageFormatR8Snorm = 20, - ImageFormatRgba32i = 21, - ImageFormatRgba16i = 22, - ImageFormatRgba8i = 23, - ImageFormatR32i = 24, - ImageFormatRg32i = 25, - ImageFormatRg16i = 26, - ImageFormatRg8i = 27, - ImageFormatR16i = 28, - ImageFormatR8i = 29, - ImageFormatRgba32ui = 30, - ImageFormatRgba16ui = 31, - ImageFormatRgba8ui = 32, - ImageFormatR32ui = 33, - ImageFormatRgb10a2ui = 34, - ImageFormatRg32ui = 35, - ImageFormatRg16ui = 36, - ImageFormatRg8ui = 37, - ImageFormatR16ui = 38, - ImageFormatR8ui = 39, - ImageFormatMax = 0x7fffffff, -}; - -enum ImageChannelOrder { - ImageChannelOrderR = 0, - ImageChannelOrderA = 1, - ImageChannelOrderRG = 2, - ImageChannelOrderRA = 3, - ImageChannelOrderRGB = 4, - ImageChannelOrderRGBA = 5, - ImageChannelOrderBGRA = 6, - ImageChannelOrderARGB = 7, - ImageChannelOrderIntensity = 8, - ImageChannelOrderLuminance = 9, - ImageChannelOrderRx = 10, - ImageChannelOrderRGx = 11, - ImageChannelOrderRGBx = 12, - ImageChannelOrderDepth = 13, - ImageChannelOrderDepthStencil = 14, - ImageChannelOrdersRGB = 15, - ImageChannelOrdersRGBx = 16, - ImageChannelOrdersRGBA = 17, - ImageChannelOrdersBGRA = 18, - ImageChannelOrderABGR = 19, - ImageChannelOrderMax = 0x7fffffff, -}; - -enum ImageChannelDataType { - ImageChannelDataTypeSnormInt8 = 0, - ImageChannelDataTypeSnormInt16 = 1, - ImageChannelDataTypeUnormInt8 = 2, - ImageChannelDataTypeUnormInt16 = 3, - ImageChannelDataTypeUnormShort565 = 4, - ImageChannelDataTypeUnormShort555 = 5, - ImageChannelDataTypeUnormInt101010 = 6, - ImageChannelDataTypeSignedInt8 = 7, - ImageChannelDataTypeSignedInt16 = 8, - ImageChannelDataTypeSignedInt32 = 9, - ImageChannelDataTypeUnsignedInt8 = 10, - ImageChannelDataTypeUnsignedInt16 = 11, - ImageChannelDataTypeUnsignedInt32 = 12, - ImageChannelDataTypeHalfFloat = 13, - ImageChannelDataTypeFloat = 14, - ImageChannelDataTypeUnormInt24 = 15, - ImageChannelDataTypeUnormInt101010_2 = 16, - ImageChannelDataTypeMax = 0x7fffffff, -}; - -enum ImageOperandsShift { - ImageOperandsBiasShift = 0, - ImageOperandsLodShift = 1, - ImageOperandsGradShift = 2, - ImageOperandsConstOffsetShift = 3, - ImageOperandsOffsetShift = 4, - ImageOperandsConstOffsetsShift = 5, - ImageOperandsSampleShift = 6, - ImageOperandsMinLodShift = 7, - ImageOperandsMakeTexelAvailableShift = 8, - ImageOperandsMakeTexelAvailableKHRShift = 8, - ImageOperandsMakeTexelVisibleShift = 9, - ImageOperandsMakeTexelVisibleKHRShift = 9, - ImageOperandsNonPrivateTexelShift = 10, - ImageOperandsNonPrivateTexelKHRShift = 10, - ImageOperandsVolatileTexelShift = 11, - ImageOperandsVolatileTexelKHRShift = 11, - ImageOperandsSignExtendShift = 12, - ImageOperandsZeroExtendShift = 13, - ImageOperandsMax = 0x7fffffff, -}; - -enum ImageOperandsMask { - ImageOperandsMaskNone = 0, - ImageOperandsBiasMask = 0x00000001, - ImageOperandsLodMask = 0x00000002, - ImageOperandsGradMask = 0x00000004, - ImageOperandsConstOffsetMask = 0x00000008, - ImageOperandsOffsetMask = 0x00000010, - ImageOperandsConstOffsetsMask = 0x00000020, - ImageOperandsSampleMask = 0x00000040, - ImageOperandsMinLodMask = 0x00000080, - ImageOperandsMakeTexelAvailableMask = 0x00000100, - ImageOperandsMakeTexelAvailableKHRMask = 0x00000100, - ImageOperandsMakeTexelVisibleMask = 0x00000200, - ImageOperandsMakeTexelVisibleKHRMask = 0x00000200, - ImageOperandsNonPrivateTexelMask = 0x00000400, - ImageOperandsNonPrivateTexelKHRMask = 0x00000400, - ImageOperandsVolatileTexelMask = 0x00000800, - ImageOperandsVolatileTexelKHRMask = 0x00000800, - ImageOperandsSignExtendMask = 0x00001000, - ImageOperandsZeroExtendMask = 0x00002000, -}; - -enum FPFastMathModeShift { - FPFastMathModeNotNaNShift = 0, - FPFastMathModeNotInfShift = 1, - FPFastMathModeNSZShift = 2, - FPFastMathModeAllowRecipShift = 3, - FPFastMathModeFastShift = 4, - FPFastMathModeMax = 0x7fffffff, -}; - -enum FPFastMathModeMask { - FPFastMathModeMaskNone = 0, - FPFastMathModeNotNaNMask = 0x00000001, - FPFastMathModeNotInfMask = 0x00000002, - FPFastMathModeNSZMask = 0x00000004, - FPFastMathModeAllowRecipMask = 0x00000008, - FPFastMathModeFastMask = 0x00000010, -}; - -enum FPRoundingMode { - FPRoundingModeRTE = 0, - FPRoundingModeRTZ = 1, - FPRoundingModeRTP = 2, - FPRoundingModeRTN = 3, - FPRoundingModeMax = 0x7fffffff, -}; - -enum LinkageType { - LinkageTypeExport = 0, - LinkageTypeImport = 1, - LinkageTypeMax = 0x7fffffff, -}; - -enum AccessQualifier { - AccessQualifierReadOnly = 0, - AccessQualifierWriteOnly = 1, - AccessQualifierReadWrite = 2, - AccessQualifierMax = 0x7fffffff, -}; - -enum FunctionParameterAttribute { - FunctionParameterAttributeZext = 0, - FunctionParameterAttributeSext = 1, - FunctionParameterAttributeByVal = 2, - FunctionParameterAttributeSret = 3, - FunctionParameterAttributeNoAlias = 4, - FunctionParameterAttributeNoCapture = 5, - FunctionParameterAttributeNoWrite = 6, - FunctionParameterAttributeNoReadWrite = 7, - FunctionParameterAttributeMax = 0x7fffffff, -}; - -enum Decoration { - DecorationRelaxedPrecision = 0, - DecorationSpecId = 1, - DecorationBlock = 2, - DecorationBufferBlock = 3, - DecorationRowMajor = 4, - DecorationColMajor = 5, - DecorationArrayStride = 6, - DecorationMatrixStride = 7, - DecorationGLSLShared = 8, - DecorationGLSLPacked = 9, - DecorationCPacked = 10, - DecorationBuiltIn = 11, - DecorationNoPerspective = 13, - DecorationFlat = 14, - DecorationPatch = 15, - DecorationCentroid = 16, - DecorationSample = 17, - DecorationInvariant = 18, - DecorationRestrict = 19, - DecorationAliased = 20, - DecorationVolatile = 21, - DecorationConstant = 22, - DecorationCoherent = 23, - DecorationNonWritable = 24, - DecorationNonReadable = 25, - DecorationUniform = 26, - DecorationUniformId = 27, - DecorationSaturatedConversion = 28, - DecorationStream = 29, - DecorationLocation = 30, - DecorationComponent = 31, - DecorationIndex = 32, - DecorationBinding = 33, - DecorationDescriptorSet = 34, - DecorationOffset = 35, - DecorationXfbBuffer = 36, - DecorationXfbStride = 37, - DecorationFuncParamAttr = 38, - DecorationFPRoundingMode = 39, - DecorationFPFastMathMode = 40, - DecorationLinkageAttributes = 41, - DecorationNoContraction = 42, - DecorationInputAttachmentIndex = 43, - DecorationAlignment = 44, - DecorationMaxByteOffset = 45, - DecorationAlignmentId = 46, - DecorationMaxByteOffsetId = 47, - DecorationNoSignedWrap = 4469, - DecorationNoUnsignedWrap = 4470, - DecorationExplicitInterpAMD = 4999, - DecorationOverrideCoverageNV = 5248, - DecorationPassthroughNV = 5250, - DecorationViewportRelativeNV = 5252, - DecorationSecondaryViewportRelativeNV = 5256, - DecorationPerPrimitiveNV = 5271, - DecorationPerViewNV = 5272, - DecorationPerTaskNV = 5273, - DecorationPerVertexNV = 5285, - DecorationNonUniform = 5300, - DecorationNonUniformEXT = 5300, - DecorationRestrictPointer = 5355, - DecorationRestrictPointerEXT = 5355, - DecorationAliasedPointer = 5356, - DecorationAliasedPointerEXT = 5356, - DecorationCounterBuffer = 5634, - DecorationHlslCounterBufferGOOGLE = 5634, - DecorationHlslSemanticGOOGLE = 5635, - DecorationUserSemantic = 5635, - DecorationUserTypeGOOGLE = 5636, - DecorationMax = 0x7fffffff, -}; - -enum BuiltIn { - BuiltInPosition = 0, - BuiltInPointSize = 1, - BuiltInClipDistance = 3, - BuiltInCullDistance = 4, - BuiltInVertexId = 5, - BuiltInInstanceId = 6, - BuiltInPrimitiveId = 7, - BuiltInInvocationId = 8, - BuiltInLayer = 9, - BuiltInViewportIndex = 10, - BuiltInTessLevelOuter = 11, - BuiltInTessLevelInner = 12, - BuiltInTessCoord = 13, - BuiltInPatchVertices = 14, - BuiltInFragCoord = 15, - BuiltInPointCoord = 16, - BuiltInFrontFacing = 17, - BuiltInSampleId = 18, - BuiltInSamplePosition = 19, - BuiltInSampleMask = 20, - BuiltInFragDepth = 22, - BuiltInHelperInvocation = 23, - BuiltInNumWorkgroups = 24, - BuiltInWorkgroupSize = 25, - BuiltInWorkgroupId = 26, - BuiltInLocalInvocationId = 27, - BuiltInGlobalInvocationId = 28, - BuiltInLocalInvocationIndex = 29, - BuiltInWorkDim = 30, - BuiltInGlobalSize = 31, - BuiltInEnqueuedWorkgroupSize = 32, - BuiltInGlobalOffset = 33, - BuiltInGlobalLinearId = 34, - BuiltInSubgroupSize = 36, - BuiltInSubgroupMaxSize = 37, - BuiltInNumSubgroups = 38, - BuiltInNumEnqueuedSubgroups = 39, - BuiltInSubgroupId = 40, - BuiltInSubgroupLocalInvocationId = 41, - BuiltInVertexIndex = 42, - BuiltInInstanceIndex = 43, - BuiltInSubgroupEqMask = 4416, - BuiltInSubgroupEqMaskKHR = 4416, - BuiltInSubgroupGeMask = 4417, - BuiltInSubgroupGeMaskKHR = 4417, - BuiltInSubgroupGtMask = 4418, - BuiltInSubgroupGtMaskKHR = 4418, - BuiltInSubgroupLeMask = 4419, - BuiltInSubgroupLeMaskKHR = 4419, - BuiltInSubgroupLtMask = 4420, - BuiltInSubgroupLtMaskKHR = 4420, - BuiltInBaseVertex = 4424, - BuiltInBaseInstance = 4425, - BuiltInDrawIndex = 4426, - BuiltInDeviceIndex = 4438, - BuiltInViewIndex = 4440, - BuiltInBaryCoordNoPerspAMD = 4992, - BuiltInBaryCoordNoPerspCentroidAMD = 4993, - BuiltInBaryCoordNoPerspSampleAMD = 4994, - BuiltInBaryCoordSmoothAMD = 4995, - BuiltInBaryCoordSmoothCentroidAMD = 4996, - BuiltInBaryCoordSmoothSampleAMD = 4997, - BuiltInBaryCoordPullModelAMD = 4998, - BuiltInFragStencilRefEXT = 5014, - BuiltInViewportMaskNV = 5253, - BuiltInSecondaryPositionNV = 5257, - BuiltInSecondaryViewportMaskNV = 5258, - BuiltInPositionPerViewNV = 5261, - BuiltInViewportMaskPerViewNV = 5262, - BuiltInFullyCoveredEXT = 5264, - BuiltInTaskCountNV = 5274, - BuiltInPrimitiveCountNV = 5275, - BuiltInPrimitiveIndicesNV = 5276, - BuiltInClipDistancePerViewNV = 5277, - BuiltInCullDistancePerViewNV = 5278, - BuiltInLayerPerViewNV = 5279, - BuiltInMeshViewCountNV = 5280, - BuiltInMeshViewIndicesNV = 5281, - BuiltInBaryCoordNV = 5286, - BuiltInBaryCoordNoPerspNV = 5287, - BuiltInFragSizeEXT = 5292, - BuiltInFragmentSizeNV = 5292, - BuiltInFragInvocationCountEXT = 5293, - BuiltInInvocationsPerPixelNV = 5293, - BuiltInLaunchIdNV = 5319, - BuiltInLaunchSizeNV = 5320, - BuiltInWorldRayOriginNV = 5321, - BuiltInWorldRayDirectionNV = 5322, - BuiltInObjectRayOriginNV = 5323, - BuiltInObjectRayDirectionNV = 5324, - BuiltInRayTminNV = 5325, - BuiltInRayTmaxNV = 5326, - BuiltInInstanceCustomIndexNV = 5327, - BuiltInObjectToWorldNV = 5330, - BuiltInWorldToObjectNV = 5331, - BuiltInHitTNV = 5332, - BuiltInHitKindNV = 5333, - BuiltInIncomingRayFlagsNV = 5351, - BuiltInWarpsPerSMNV = 5374, - BuiltInSMCountNV = 5375, - BuiltInWarpIDNV = 5376, - BuiltInSMIDNV = 5377, - BuiltInMax = 0x7fffffff, -}; - -enum SelectionControlShift { - SelectionControlFlattenShift = 0, - SelectionControlDontFlattenShift = 1, - SelectionControlMax = 0x7fffffff, -}; - -enum SelectionControlMask { - SelectionControlMaskNone = 0, - SelectionControlFlattenMask = 0x00000001, - SelectionControlDontFlattenMask = 0x00000002, -}; - -enum LoopControlShift { - LoopControlUnrollShift = 0, - LoopControlDontUnrollShift = 1, - LoopControlDependencyInfiniteShift = 2, - LoopControlDependencyLengthShift = 3, - LoopControlMinIterationsShift = 4, - LoopControlMaxIterationsShift = 5, - LoopControlIterationMultipleShift = 6, - LoopControlPeelCountShift = 7, - LoopControlPartialCountShift = 8, - LoopControlMax = 0x7fffffff, -}; - -enum LoopControlMask { - LoopControlMaskNone = 0, - LoopControlUnrollMask = 0x00000001, - LoopControlDontUnrollMask = 0x00000002, - LoopControlDependencyInfiniteMask = 0x00000004, - LoopControlDependencyLengthMask = 0x00000008, - LoopControlMinIterationsMask = 0x00000010, - LoopControlMaxIterationsMask = 0x00000020, - LoopControlIterationMultipleMask = 0x00000040, - LoopControlPeelCountMask = 0x00000080, - LoopControlPartialCountMask = 0x00000100, -}; - -enum FunctionControlShift { - FunctionControlInlineShift = 0, - FunctionControlDontInlineShift = 1, - FunctionControlPureShift = 2, - FunctionControlConstShift = 3, - FunctionControlMax = 0x7fffffff, -}; - -enum FunctionControlMask { - FunctionControlMaskNone = 0, - FunctionControlInlineMask = 0x00000001, - FunctionControlDontInlineMask = 0x00000002, - FunctionControlPureMask = 0x00000004, - FunctionControlConstMask = 0x00000008, -}; - -enum MemorySemanticsShift { - MemorySemanticsAcquireShift = 1, - MemorySemanticsReleaseShift = 2, - MemorySemanticsAcquireReleaseShift = 3, - MemorySemanticsSequentiallyConsistentShift = 4, - MemorySemanticsUniformMemoryShift = 6, - MemorySemanticsSubgroupMemoryShift = 7, - MemorySemanticsWorkgroupMemoryShift = 8, - MemorySemanticsCrossWorkgroupMemoryShift = 9, - MemorySemanticsAtomicCounterMemoryShift = 10, - MemorySemanticsImageMemoryShift = 11, - MemorySemanticsOutputMemoryShift = 12, - MemorySemanticsOutputMemoryKHRShift = 12, - MemorySemanticsMakeAvailableShift = 13, - MemorySemanticsMakeAvailableKHRShift = 13, - MemorySemanticsMakeVisibleShift = 14, - MemorySemanticsMakeVisibleKHRShift = 14, - MemorySemanticsVolatileShift = 15, - MemorySemanticsMax = 0x7fffffff, -}; - -enum MemorySemanticsMask { - MemorySemanticsMaskNone = 0, - MemorySemanticsAcquireMask = 0x00000002, - MemorySemanticsReleaseMask = 0x00000004, - MemorySemanticsAcquireReleaseMask = 0x00000008, - MemorySemanticsSequentiallyConsistentMask = 0x00000010, - MemorySemanticsUniformMemoryMask = 0x00000040, - MemorySemanticsSubgroupMemoryMask = 0x00000080, - MemorySemanticsWorkgroupMemoryMask = 0x00000100, - MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200, - MemorySemanticsAtomicCounterMemoryMask = 0x00000400, - MemorySemanticsImageMemoryMask = 0x00000800, - MemorySemanticsOutputMemoryMask = 0x00001000, - MemorySemanticsOutputMemoryKHRMask = 0x00001000, - MemorySemanticsMakeAvailableMask = 0x00002000, - MemorySemanticsMakeAvailableKHRMask = 0x00002000, - MemorySemanticsMakeVisibleMask = 0x00004000, - MemorySemanticsMakeVisibleKHRMask = 0x00004000, - MemorySemanticsVolatileMask = 0x00008000, -}; - -enum MemoryAccessShift { - MemoryAccessVolatileShift = 0, - MemoryAccessAlignedShift = 1, - MemoryAccessNontemporalShift = 2, - MemoryAccessMakePointerAvailableShift = 3, - MemoryAccessMakePointerAvailableKHRShift = 3, - MemoryAccessMakePointerVisibleShift = 4, - MemoryAccessMakePointerVisibleKHRShift = 4, - MemoryAccessNonPrivatePointerShift = 5, - MemoryAccessNonPrivatePointerKHRShift = 5, - MemoryAccessMax = 0x7fffffff, -}; - -enum MemoryAccessMask { - MemoryAccessMaskNone = 0, - MemoryAccessVolatileMask = 0x00000001, - MemoryAccessAlignedMask = 0x00000002, - MemoryAccessNontemporalMask = 0x00000004, - MemoryAccessMakePointerAvailableMask = 0x00000008, - MemoryAccessMakePointerAvailableKHRMask = 0x00000008, - MemoryAccessMakePointerVisibleMask = 0x00000010, - MemoryAccessMakePointerVisibleKHRMask = 0x00000010, - MemoryAccessNonPrivatePointerMask = 0x00000020, - MemoryAccessNonPrivatePointerKHRMask = 0x00000020, -}; - -enum Scope { - ScopeCrossDevice = 0, - ScopeDevice = 1, - ScopeWorkgroup = 2, - ScopeSubgroup = 3, - ScopeInvocation = 4, - ScopeQueueFamily = 5, - ScopeQueueFamilyKHR = 5, - ScopeMax = 0x7fffffff, -}; - -enum GroupOperation { - GroupOperationReduce = 0, - GroupOperationInclusiveScan = 1, - GroupOperationExclusiveScan = 2, - GroupOperationClusteredReduce = 3, - GroupOperationPartitionedReduceNV = 6, - GroupOperationPartitionedInclusiveScanNV = 7, - GroupOperationPartitionedExclusiveScanNV = 8, - GroupOperationMax = 0x7fffffff, -}; - -enum KernelEnqueueFlags { - KernelEnqueueFlagsNoWait = 0, - KernelEnqueueFlagsWaitKernel = 1, - KernelEnqueueFlagsWaitWorkGroup = 2, - KernelEnqueueFlagsMax = 0x7fffffff, -}; - -enum KernelProfilingInfoShift { - KernelProfilingInfoCmdExecTimeShift = 0, - KernelProfilingInfoMax = 0x7fffffff, -}; - -enum KernelProfilingInfoMask { - KernelProfilingInfoMaskNone = 0, - KernelProfilingInfoCmdExecTimeMask = 0x00000001, -}; - -enum Capability { - CapabilityMatrix = 0, - CapabilityShader = 1, - CapabilityGeometry = 2, - CapabilityTessellation = 3, - CapabilityAddresses = 4, - CapabilityLinkage = 5, - CapabilityKernel = 6, - CapabilityVector16 = 7, - CapabilityFloat16Buffer = 8, - CapabilityFloat16 = 9, - CapabilityFloat64 = 10, - CapabilityInt64 = 11, - CapabilityInt64Atomics = 12, - CapabilityImageBasic = 13, - CapabilityImageReadWrite = 14, - CapabilityImageMipmap = 15, - CapabilityPipes = 17, - CapabilityGroups = 18, - CapabilityDeviceEnqueue = 19, - CapabilityLiteralSampler = 20, - CapabilityAtomicStorage = 21, - CapabilityInt16 = 22, - CapabilityTessellationPointSize = 23, - CapabilityGeometryPointSize = 24, - CapabilityImageGatherExtended = 25, - CapabilityStorageImageMultisample = 27, - CapabilityUniformBufferArrayDynamicIndexing = 28, - CapabilitySampledImageArrayDynamicIndexing = 29, - CapabilityStorageBufferArrayDynamicIndexing = 30, - CapabilityStorageImageArrayDynamicIndexing = 31, - CapabilityClipDistance = 32, - CapabilityCullDistance = 33, - CapabilityImageCubeArray = 34, - CapabilitySampleRateShading = 35, - CapabilityImageRect = 36, - CapabilitySampledRect = 37, - CapabilityGenericPointer = 38, - CapabilityInt8 = 39, - CapabilityInputAttachment = 40, - CapabilitySparseResidency = 41, - CapabilityMinLod = 42, - CapabilitySampled1D = 43, - CapabilityImage1D = 44, - CapabilitySampledCubeArray = 45, - CapabilitySampledBuffer = 46, - CapabilityImageBuffer = 47, - CapabilityImageMSArray = 48, - CapabilityStorageImageExtendedFormats = 49, - CapabilityImageQuery = 50, - CapabilityDerivativeControl = 51, - CapabilityInterpolationFunction = 52, - CapabilityTransformFeedback = 53, - CapabilityGeometryStreams = 54, - CapabilityStorageImageReadWithoutFormat = 55, - CapabilityStorageImageWriteWithoutFormat = 56, - CapabilityMultiViewport = 57, - CapabilitySubgroupDispatch = 58, - CapabilityNamedBarrier = 59, - CapabilityPipeStorage = 60, - CapabilityGroupNonUniform = 61, - CapabilityGroupNonUniformVote = 62, - CapabilityGroupNonUniformArithmetic = 63, - CapabilityGroupNonUniformBallot = 64, - CapabilityGroupNonUniformShuffle = 65, - CapabilityGroupNonUniformShuffleRelative = 66, - CapabilityGroupNonUniformClustered = 67, - CapabilityGroupNonUniformQuad = 68, - CapabilityShaderLayer = 69, - CapabilityShaderViewportIndex = 70, - CapabilitySubgroupBallotKHR = 4423, - CapabilityDrawParameters = 4427, - CapabilitySubgroupVoteKHR = 4431, - CapabilityStorageBuffer16BitAccess = 4433, - CapabilityStorageUniformBufferBlock16 = 4433, - CapabilityStorageUniform16 = 4434, - CapabilityUniformAndStorageBuffer16BitAccess = 4434, - CapabilityStoragePushConstant16 = 4435, - CapabilityStorageInputOutput16 = 4436, - CapabilityDeviceGroup = 4437, - CapabilityMultiView = 4439, - CapabilityVariablePointersStorageBuffer = 4441, - CapabilityVariablePointers = 4442, - CapabilityAtomicStorageOps = 4445, - CapabilitySampleMaskPostDepthCoverage = 4447, - CapabilityStorageBuffer8BitAccess = 4448, - CapabilityUniformAndStorageBuffer8BitAccess = 4449, - CapabilityStoragePushConstant8 = 4450, - CapabilityDenormPreserve = 4464, - CapabilityDenormFlushToZero = 4465, - CapabilitySignedZeroInfNanPreserve = 4466, - CapabilityRoundingModeRTE = 4467, - CapabilityRoundingModeRTZ = 4468, - CapabilityFloat16ImageAMD = 5008, - CapabilityImageGatherBiasLodAMD = 5009, - CapabilityFragmentMaskAMD = 5010, - CapabilityStencilExportEXT = 5013, - CapabilityImageReadWriteLodAMD = 5015, - CapabilityShaderClockKHR = 5055, - CapabilitySampleMaskOverrideCoverageNV = 5249, - CapabilityGeometryShaderPassthroughNV = 5251, - CapabilityShaderViewportIndexLayerEXT = 5254, - CapabilityShaderViewportIndexLayerNV = 5254, - CapabilityShaderViewportMaskNV = 5255, - CapabilityShaderStereoViewNV = 5259, - CapabilityPerViewAttributesNV = 5260, - CapabilityFragmentFullyCoveredEXT = 5265, - CapabilityMeshShadingNV = 5266, - CapabilityImageFootprintNV = 5282, - CapabilityFragmentBarycentricNV = 5284, - CapabilityComputeDerivativeGroupQuadsNV = 5288, - CapabilityFragmentDensityEXT = 5291, - CapabilityShadingRateNV = 5291, - CapabilityGroupNonUniformPartitionedNV = 5297, - CapabilityShaderNonUniform = 5301, - CapabilityShaderNonUniformEXT = 5301, - CapabilityRuntimeDescriptorArray = 5302, - CapabilityRuntimeDescriptorArrayEXT = 5302, - CapabilityInputAttachmentArrayDynamicIndexing = 5303, - CapabilityInputAttachmentArrayDynamicIndexingEXT = 5303, - CapabilityUniformTexelBufferArrayDynamicIndexing = 5304, - CapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304, - CapabilityStorageTexelBufferArrayDynamicIndexing = 5305, - CapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305, - CapabilityUniformBufferArrayNonUniformIndexing = 5306, - CapabilityUniformBufferArrayNonUniformIndexingEXT = 5306, - CapabilitySampledImageArrayNonUniformIndexing = 5307, - CapabilitySampledImageArrayNonUniformIndexingEXT = 5307, - CapabilityStorageBufferArrayNonUniformIndexing = 5308, - CapabilityStorageBufferArrayNonUniformIndexingEXT = 5308, - CapabilityStorageImageArrayNonUniformIndexing = 5309, - CapabilityStorageImageArrayNonUniformIndexingEXT = 5309, - CapabilityInputAttachmentArrayNonUniformIndexing = 5310, - CapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310, - CapabilityUniformTexelBufferArrayNonUniformIndexing = 5311, - CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311, - CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312, - CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312, - CapabilityRayTracingNV = 5340, - CapabilityVulkanMemoryModel = 5345, - CapabilityVulkanMemoryModelKHR = 5345, - CapabilityVulkanMemoryModelDeviceScope = 5346, - CapabilityVulkanMemoryModelDeviceScopeKHR = 5346, - CapabilityPhysicalStorageBufferAddresses = 5347, - CapabilityPhysicalStorageBufferAddressesEXT = 5347, - CapabilityComputeDerivativeGroupLinearNV = 5350, - CapabilityCooperativeMatrixNV = 5357, - CapabilityFragmentShaderSampleInterlockEXT = 5363, - CapabilityFragmentShaderShadingRateInterlockEXT = 5372, - CapabilityShaderSMBuiltinsNV = 5373, - CapabilityFragmentShaderPixelInterlockEXT = 5378, - CapabilityDemoteToHelperInvocationEXT = 5379, - CapabilitySubgroupShuffleINTEL = 5568, - CapabilitySubgroupBufferBlockIOINTEL = 5569, - CapabilitySubgroupImageBlockIOINTEL = 5570, - CapabilitySubgroupImageMediaBlockIOINTEL = 5579, - CapabilityIntegerFunctions2INTEL = 5584, - CapabilitySubgroupAvcMotionEstimationINTEL = 5696, - CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697, - CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698, - CapabilityMax = 0x7fffffff, -}; - -enum Op { - OpNop = 0, - OpUndef = 1, - OpSourceContinued = 2, - OpSource = 3, - OpSourceExtension = 4, - OpName = 5, - OpMemberName = 6, - OpString = 7, - OpLine = 8, - OpExtension = 10, - OpExtInstImport = 11, - OpExtInst = 12, - OpMemoryModel = 14, - OpEntryPoint = 15, - OpExecutionMode = 16, - OpCapability = 17, - OpTypeVoid = 19, - OpTypeBool = 20, - OpTypeInt = 21, - OpTypeFloat = 22, - OpTypeVector = 23, - OpTypeMatrix = 24, - OpTypeImage = 25, - OpTypeSampler = 26, - OpTypeSampledImage = 27, - OpTypeArray = 28, - OpTypeRuntimeArray = 29, - OpTypeStruct = 30, - OpTypeOpaque = 31, - OpTypePointer = 32, - OpTypeFunction = 33, - OpTypeEvent = 34, - OpTypeDeviceEvent = 35, - OpTypeReserveId = 36, - OpTypeQueue = 37, - OpTypePipe = 38, - OpTypeForwardPointer = 39, - OpConstantTrue = 41, - OpConstantFalse = 42, - OpConstant = 43, - OpConstantComposite = 44, - OpConstantSampler = 45, - OpConstantNull = 46, - OpSpecConstantTrue = 48, - OpSpecConstantFalse = 49, - OpSpecConstant = 50, - OpSpecConstantComposite = 51, - OpSpecConstantOp = 52, - OpFunction = 54, - OpFunctionParameter = 55, - OpFunctionEnd = 56, - OpFunctionCall = 57, - OpVariable = 59, - OpImageTexelPointer = 60, - OpLoad = 61, - OpStore = 62, - OpCopyMemory = 63, - OpCopyMemorySized = 64, - OpAccessChain = 65, - OpInBoundsAccessChain = 66, - OpPtrAccessChain = 67, - OpArrayLength = 68, - OpGenericPtrMemSemantics = 69, - OpInBoundsPtrAccessChain = 70, - OpDecorate = 71, - OpMemberDecorate = 72, - OpDecorationGroup = 73, - OpGroupDecorate = 74, - OpGroupMemberDecorate = 75, - OpVectorExtractDynamic = 77, - OpVectorInsertDynamic = 78, - OpVectorShuffle = 79, - OpCompositeConstruct = 80, - OpCompositeExtract = 81, - OpCompositeInsert = 82, - OpCopyObject = 83, - OpTranspose = 84, - OpSampledImage = 86, - OpImageSampleImplicitLod = 87, - OpImageSampleExplicitLod = 88, - OpImageSampleDrefImplicitLod = 89, - OpImageSampleDrefExplicitLod = 90, - OpImageSampleProjImplicitLod = 91, - OpImageSampleProjExplicitLod = 92, - OpImageSampleProjDrefImplicitLod = 93, - OpImageSampleProjDrefExplicitLod = 94, - OpImageFetch = 95, - OpImageGather = 96, - OpImageDrefGather = 97, - OpImageRead = 98, - OpImageWrite = 99, - OpImage = 100, - OpImageQueryFormat = 101, - OpImageQueryOrder = 102, - OpImageQuerySizeLod = 103, - OpImageQuerySize = 104, - OpImageQueryLod = 105, - OpImageQueryLevels = 106, - OpImageQuerySamples = 107, - OpConvertFToU = 109, - OpConvertFToS = 110, - OpConvertSToF = 111, - OpConvertUToF = 112, - OpUConvert = 113, - OpSConvert = 114, - OpFConvert = 115, - OpQuantizeToF16 = 116, - OpConvertPtrToU = 117, - OpSatConvertSToU = 118, - OpSatConvertUToS = 119, - OpConvertUToPtr = 120, - OpPtrCastToGeneric = 121, - OpGenericCastToPtr = 122, - OpGenericCastToPtrExplicit = 123, - OpBitcast = 124, - OpSNegate = 126, - OpFNegate = 127, - OpIAdd = 128, - OpFAdd = 129, - OpISub = 130, - OpFSub = 131, - OpIMul = 132, - OpFMul = 133, - OpUDiv = 134, - OpSDiv = 135, - OpFDiv = 136, - OpUMod = 137, - OpSRem = 138, - OpSMod = 139, - OpFRem = 140, - OpFMod = 141, - OpVectorTimesScalar = 142, - OpMatrixTimesScalar = 143, - OpVectorTimesMatrix = 144, - OpMatrixTimesVector = 145, - OpMatrixTimesMatrix = 146, - OpOuterProduct = 147, - OpDot = 148, - OpIAddCarry = 149, - OpISubBorrow = 150, - OpUMulExtended = 151, - OpSMulExtended = 152, - OpAny = 154, - OpAll = 155, - OpIsNan = 156, - OpIsInf = 157, - OpIsFinite = 158, - OpIsNormal = 159, - OpSignBitSet = 160, - OpLessOrGreater = 161, - OpOrdered = 162, - OpUnordered = 163, - OpLogicalEqual = 164, - OpLogicalNotEqual = 165, - OpLogicalOr = 166, - OpLogicalAnd = 167, - OpLogicalNot = 168, - OpSelect = 169, - OpIEqual = 170, - OpINotEqual = 171, - OpUGreaterThan = 172, - OpSGreaterThan = 173, - OpUGreaterThanEqual = 174, - OpSGreaterThanEqual = 175, - OpULessThan = 176, - OpSLessThan = 177, - OpULessThanEqual = 178, - OpSLessThanEqual = 179, - OpFOrdEqual = 180, - OpFUnordEqual = 181, - OpFOrdNotEqual = 182, - OpFUnordNotEqual = 183, - OpFOrdLessThan = 184, - OpFUnordLessThan = 185, - OpFOrdGreaterThan = 186, - OpFUnordGreaterThan = 187, - OpFOrdLessThanEqual = 188, - OpFUnordLessThanEqual = 189, - OpFOrdGreaterThanEqual = 190, - OpFUnordGreaterThanEqual = 191, - OpShiftRightLogical = 194, - OpShiftRightArithmetic = 195, - OpShiftLeftLogical = 196, - OpBitwiseOr = 197, - OpBitwiseXor = 198, - OpBitwiseAnd = 199, - OpNot = 200, - OpBitFieldInsert = 201, - OpBitFieldSExtract = 202, - OpBitFieldUExtract = 203, - OpBitReverse = 204, - OpBitCount = 205, - OpDPdx = 207, - OpDPdy = 208, - OpFwidth = 209, - OpDPdxFine = 210, - OpDPdyFine = 211, - OpFwidthFine = 212, - OpDPdxCoarse = 213, - OpDPdyCoarse = 214, - OpFwidthCoarse = 215, - OpEmitVertex = 218, - OpEndPrimitive = 219, - OpEmitStreamVertex = 220, - OpEndStreamPrimitive = 221, - OpControlBarrier = 224, - OpMemoryBarrier = 225, - OpAtomicLoad = 227, - OpAtomicStore = 228, - OpAtomicExchange = 229, - OpAtomicCompareExchange = 230, - OpAtomicCompareExchangeWeak = 231, - OpAtomicIIncrement = 232, - OpAtomicIDecrement = 233, - OpAtomicIAdd = 234, - OpAtomicISub = 235, - OpAtomicSMin = 236, - OpAtomicUMin = 237, - OpAtomicSMax = 238, - OpAtomicUMax = 239, - OpAtomicAnd = 240, - OpAtomicOr = 241, - OpAtomicXor = 242, - OpPhi = 245, - OpLoopMerge = 246, - OpSelectionMerge = 247, - OpLabel = 248, - OpBranch = 249, - OpBranchConditional = 250, - OpSwitch = 251, - OpKill = 252, - OpReturn = 253, - OpReturnValue = 254, - OpUnreachable = 255, - OpLifetimeStart = 256, - OpLifetimeStop = 257, - OpGroupAsyncCopy = 259, - OpGroupWaitEvents = 260, - OpGroupAll = 261, - OpGroupAny = 262, - OpGroupBroadcast = 263, - OpGroupIAdd = 264, - OpGroupFAdd = 265, - OpGroupFMin = 266, - OpGroupUMin = 267, - OpGroupSMin = 268, - OpGroupFMax = 269, - OpGroupUMax = 270, - OpGroupSMax = 271, - OpReadPipe = 274, - OpWritePipe = 275, - OpReservedReadPipe = 276, - OpReservedWritePipe = 277, - OpReserveReadPipePackets = 278, - OpReserveWritePipePackets = 279, - OpCommitReadPipe = 280, - OpCommitWritePipe = 281, - OpIsValidReserveId = 282, - OpGetNumPipePackets = 283, - OpGetMaxPipePackets = 284, - OpGroupReserveReadPipePackets = 285, - OpGroupReserveWritePipePackets = 286, - OpGroupCommitReadPipe = 287, - OpGroupCommitWritePipe = 288, - OpEnqueueMarker = 291, - OpEnqueueKernel = 292, - OpGetKernelNDrangeSubGroupCount = 293, - OpGetKernelNDrangeMaxSubGroupSize = 294, - OpGetKernelWorkGroupSize = 295, - OpGetKernelPreferredWorkGroupSizeMultiple = 296, - OpRetainEvent = 297, - OpReleaseEvent = 298, - OpCreateUserEvent = 299, - OpIsValidEvent = 300, - OpSetUserEventStatus = 301, - OpCaptureEventProfilingInfo = 302, - OpGetDefaultQueue = 303, - OpBuildNDRange = 304, - OpImageSparseSampleImplicitLod = 305, - OpImageSparseSampleExplicitLod = 306, - OpImageSparseSampleDrefImplicitLod = 307, - OpImageSparseSampleDrefExplicitLod = 308, - OpImageSparseSampleProjImplicitLod = 309, - OpImageSparseSampleProjExplicitLod = 310, - OpImageSparseSampleProjDrefImplicitLod = 311, - OpImageSparseSampleProjDrefExplicitLod = 312, - OpImageSparseFetch = 313, - OpImageSparseGather = 314, - OpImageSparseDrefGather = 315, - OpImageSparseTexelsResident = 316, - OpNoLine = 317, - OpAtomicFlagTestAndSet = 318, - OpAtomicFlagClear = 319, - OpImageSparseRead = 320, - OpSizeOf = 321, - OpTypePipeStorage = 322, - OpConstantPipeStorage = 323, - OpCreatePipeFromPipeStorage = 324, - OpGetKernelLocalSizeForSubgroupCount = 325, - OpGetKernelMaxNumSubgroups = 326, - OpTypeNamedBarrier = 327, - OpNamedBarrierInitialize = 328, - OpMemoryNamedBarrier = 329, - OpModuleProcessed = 330, - OpExecutionModeId = 331, - OpDecorateId = 332, - OpGroupNonUniformElect = 333, - OpGroupNonUniformAll = 334, - OpGroupNonUniformAny = 335, - OpGroupNonUniformAllEqual = 336, - OpGroupNonUniformBroadcast = 337, - OpGroupNonUniformBroadcastFirst = 338, - OpGroupNonUniformBallot = 339, - OpGroupNonUniformInverseBallot = 340, - OpGroupNonUniformBallotBitExtract = 341, - OpGroupNonUniformBallotBitCount = 342, - OpGroupNonUniformBallotFindLSB = 343, - OpGroupNonUniformBallotFindMSB = 344, - OpGroupNonUniformShuffle = 345, - OpGroupNonUniformShuffleXor = 346, - OpGroupNonUniformShuffleUp = 347, - OpGroupNonUniformShuffleDown = 348, - OpGroupNonUniformIAdd = 349, - OpGroupNonUniformFAdd = 350, - OpGroupNonUniformIMul = 351, - OpGroupNonUniformFMul = 352, - OpGroupNonUniformSMin = 353, - OpGroupNonUniformUMin = 354, - OpGroupNonUniformFMin = 355, - OpGroupNonUniformSMax = 356, - OpGroupNonUniformUMax = 357, - OpGroupNonUniformFMax = 358, - OpGroupNonUniformBitwiseAnd = 359, - OpGroupNonUniformBitwiseOr = 360, - OpGroupNonUniformBitwiseXor = 361, - OpGroupNonUniformLogicalAnd = 362, - OpGroupNonUniformLogicalOr = 363, - OpGroupNonUniformLogicalXor = 364, - OpGroupNonUniformQuadBroadcast = 365, - OpGroupNonUniformQuadSwap = 366, - OpCopyLogical = 400, - OpPtrEqual = 401, - OpPtrNotEqual = 402, - OpPtrDiff = 403, - OpSubgroupBallotKHR = 4421, - OpSubgroupFirstInvocationKHR = 4422, - OpSubgroupAllKHR = 4428, - OpSubgroupAnyKHR = 4429, - OpSubgroupAllEqualKHR = 4430, - OpSubgroupReadInvocationKHR = 4432, - OpGroupIAddNonUniformAMD = 5000, - OpGroupFAddNonUniformAMD = 5001, - OpGroupFMinNonUniformAMD = 5002, - OpGroupUMinNonUniformAMD = 5003, - OpGroupSMinNonUniformAMD = 5004, - OpGroupFMaxNonUniformAMD = 5005, - OpGroupUMaxNonUniformAMD = 5006, - OpGroupSMaxNonUniformAMD = 5007, - OpFragmentMaskFetchAMD = 5011, - OpFragmentFetchAMD = 5012, - OpReadClockKHR = 5056, - OpImageSampleFootprintNV = 5283, - OpGroupNonUniformPartitionNV = 5296, - OpWritePackedPrimitiveIndices4x8NV = 5299, - OpReportIntersectionNV = 5334, - OpIgnoreIntersectionNV = 5335, - OpTerminateRayNV = 5336, - OpTraceNV = 5337, - OpTypeAccelerationStructureNV = 5341, - OpExecuteCallableNV = 5344, - OpTypeCooperativeMatrixNV = 5358, - OpCooperativeMatrixLoadNV = 5359, - OpCooperativeMatrixStoreNV = 5360, - OpCooperativeMatrixMulAddNV = 5361, - OpCooperativeMatrixLengthNV = 5362, - OpBeginInvocationInterlockEXT = 5364, - OpEndInvocationInterlockEXT = 5365, - OpDemoteToHelperInvocationEXT = 5380, - OpIsHelperInvocationEXT = 5381, - OpSubgroupShuffleINTEL = 5571, - OpSubgroupShuffleDownINTEL = 5572, - OpSubgroupShuffleUpINTEL = 5573, - OpSubgroupShuffleXorINTEL = 5574, - OpSubgroupBlockReadINTEL = 5575, - OpSubgroupBlockWriteINTEL = 5576, - OpSubgroupImageBlockReadINTEL = 5577, - OpSubgroupImageBlockWriteINTEL = 5578, - OpSubgroupImageMediaBlockReadINTEL = 5580, - OpSubgroupImageMediaBlockWriteINTEL = 5581, - OpUCountLeadingZerosINTEL = 5585, - OpUCountTrailingZerosINTEL = 5586, - OpAbsISubINTEL = 5587, - OpAbsUSubINTEL = 5588, - OpIAddSatINTEL = 5589, - OpUAddSatINTEL = 5590, - OpIAverageINTEL = 5591, - OpUAverageINTEL = 5592, - OpIAverageRoundedINTEL = 5593, - OpUAverageRoundedINTEL = 5594, - OpISubSatINTEL = 5595, - OpUSubSatINTEL = 5596, - OpIMul32x16INTEL = 5597, - OpUMul32x16INTEL = 5598, - OpDecorateString = 5632, - OpDecorateStringGOOGLE = 5632, - OpMemberDecorateString = 5633, - OpMemberDecorateStringGOOGLE = 5633, - OpVmeImageINTEL = 5699, - OpTypeVmeImageINTEL = 5700, - OpTypeAvcImePayloadINTEL = 5701, - OpTypeAvcRefPayloadINTEL = 5702, - OpTypeAvcSicPayloadINTEL = 5703, - OpTypeAvcMcePayloadINTEL = 5704, - OpTypeAvcMceResultINTEL = 5705, - OpTypeAvcImeResultINTEL = 5706, - OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707, - OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708, - OpTypeAvcImeSingleReferenceStreaminINTEL = 5709, - OpTypeAvcImeDualReferenceStreaminINTEL = 5710, - OpTypeAvcRefResultINTEL = 5711, - OpTypeAvcSicResultINTEL = 5712, - OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713, - OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714, - OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715, - OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716, - OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717, - OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718, - OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719, - OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720, - OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721, - OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722, - OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723, - OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724, - OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725, - OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726, - OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727, - OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728, - OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729, - OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730, - OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731, - OpSubgroupAvcMceConvertToImePayloadINTEL = 5732, - OpSubgroupAvcMceConvertToImeResultINTEL = 5733, - OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734, - OpSubgroupAvcMceConvertToRefResultINTEL = 5735, - OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736, - OpSubgroupAvcMceConvertToSicResultINTEL = 5737, - OpSubgroupAvcMceGetMotionVectorsINTEL = 5738, - OpSubgroupAvcMceGetInterDistortionsINTEL = 5739, - OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740, - OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741, - OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742, - OpSubgroupAvcMceGetInterDirectionsINTEL = 5743, - OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744, - OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745, - OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746, - OpSubgroupAvcImeInitializeINTEL = 5747, - OpSubgroupAvcImeSetSingleReferenceINTEL = 5748, - OpSubgroupAvcImeSetDualReferenceINTEL = 5749, - OpSubgroupAvcImeRefWindowSizeINTEL = 5750, - OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751, - OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752, - OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753, - OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754, - OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755, - OpSubgroupAvcImeSetWeightedSadINTEL = 5756, - OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757, - OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758, - OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759, - OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760, - OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761, - OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762, - OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763, - OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764, - OpSubgroupAvcImeConvertToMceResultINTEL = 5765, - OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766, - OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767, - OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768, - OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769, - OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770, - OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771, - OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772, - OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773, - OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774, - OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775, - OpSubgroupAvcImeGetBorderReachedINTEL = 5776, - OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777, - OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778, - OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779, - OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780, - OpSubgroupAvcFmeInitializeINTEL = 5781, - OpSubgroupAvcBmeInitializeINTEL = 5782, - OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783, - OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784, - OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785, - OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786, - OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787, - OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788, - OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789, - OpSubgroupAvcRefConvertToMceResultINTEL = 5790, - OpSubgroupAvcSicInitializeINTEL = 5791, - OpSubgroupAvcSicConfigureSkcINTEL = 5792, - OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793, - OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794, - OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795, - OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796, - OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797, - OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798, - OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799, - OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800, - OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801, - OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802, - OpSubgroupAvcSicEvaluateIpeINTEL = 5803, - OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804, - OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805, - OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806, - OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807, - OpSubgroupAvcSicConvertToMceResultINTEL = 5808, - OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809, - OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810, - OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811, - OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812, - OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813, - OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814, - OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815, - OpSubgroupAvcSicGetInterRawSadsINTEL = 5816, - OpMax = 0x7fffffff, -}; - -#ifdef SPV_ENABLE_UTILITY_CODE -inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { - *hasResult = *hasResultType = false; - switch (opcode) { - default: /* unknown opcode */ break; - case OpNop: *hasResult = false; *hasResultType = false; break; - case OpUndef: *hasResult = true; *hasResultType = true; break; - case OpSourceContinued: *hasResult = false; *hasResultType = false; break; - case OpSource: *hasResult = false; *hasResultType = false; break; - case OpSourceExtension: *hasResult = false; *hasResultType = false; break; - case OpName: *hasResult = false; *hasResultType = false; break; - case OpMemberName: *hasResult = false; *hasResultType = false; break; - case OpString: *hasResult = true; *hasResultType = false; break; - case OpLine: *hasResult = false; *hasResultType = false; break; - case OpExtension: *hasResult = false; *hasResultType = false; break; - case OpExtInstImport: *hasResult = true; *hasResultType = false; break; - case OpExtInst: *hasResult = true; *hasResultType = true; break; - case OpMemoryModel: *hasResult = false; *hasResultType = false; break; - case OpEntryPoint: *hasResult = false; *hasResultType = false; break; - case OpExecutionMode: *hasResult = false; *hasResultType = false; break; - case OpCapability: *hasResult = false; *hasResultType = false; break; - case OpTypeVoid: *hasResult = true; *hasResultType = false; break; - case OpTypeBool: *hasResult = true; *hasResultType = false; break; - case OpTypeInt: *hasResult = true; *hasResultType = false; break; - case OpTypeFloat: *hasResult = true; *hasResultType = false; break; - case OpTypeVector: *hasResult = true; *hasResultType = false; break; - case OpTypeMatrix: *hasResult = true; *hasResultType = false; break; - case OpTypeImage: *hasResult = true; *hasResultType = false; break; - case OpTypeSampler: *hasResult = true; *hasResultType = false; break; - case OpTypeSampledImage: *hasResult = true; *hasResultType = false; break; - case OpTypeArray: *hasResult = true; *hasResultType = false; break; - case OpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break; - case OpTypeStruct: *hasResult = true; *hasResultType = false; break; - case OpTypeOpaque: *hasResult = true; *hasResultType = false; break; - case OpTypePointer: *hasResult = true; *hasResultType = false; break; - case OpTypeFunction: *hasResult = true; *hasResultType = false; break; - case OpTypeEvent: *hasResult = true; *hasResultType = false; break; - case OpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break; - case OpTypeReserveId: *hasResult = true; *hasResultType = false; break; - case OpTypeQueue: *hasResult = true; *hasResultType = false; break; - case OpTypePipe: *hasResult = true; *hasResultType = false; break; - case OpTypeForwardPointer: *hasResult = false; *hasResultType = false; break; - case OpConstantTrue: *hasResult = true; *hasResultType = true; break; - case OpConstantFalse: *hasResult = true; *hasResultType = true; break; - case OpConstant: *hasResult = true; *hasResultType = true; break; - case OpConstantComposite: *hasResult = true; *hasResultType = true; break; - case OpConstantSampler: *hasResult = true; *hasResultType = true; break; - case OpConstantNull: *hasResult = true; *hasResultType = true; break; - case OpSpecConstantTrue: *hasResult = true; *hasResultType = true; break; - case OpSpecConstantFalse: *hasResult = true; *hasResultType = true; break; - case OpSpecConstant: *hasResult = true; *hasResultType = true; break; - case OpSpecConstantComposite: *hasResult = true; *hasResultType = true; break; - case OpSpecConstantOp: *hasResult = true; *hasResultType = true; break; - case OpFunction: *hasResult = true; *hasResultType = true; break; - case OpFunctionParameter: *hasResult = true; *hasResultType = true; break; - case OpFunctionEnd: *hasResult = false; *hasResultType = false; break; - case OpFunctionCall: *hasResult = true; *hasResultType = true; break; - case OpVariable: *hasResult = true; *hasResultType = true; break; - case OpImageTexelPointer: *hasResult = true; *hasResultType = true; break; - case OpLoad: *hasResult = true; *hasResultType = true; break; - case OpStore: *hasResult = false; *hasResultType = false; break; - case OpCopyMemory: *hasResult = false; *hasResultType = false; break; - case OpCopyMemorySized: *hasResult = false; *hasResultType = false; break; - case OpAccessChain: *hasResult = true; *hasResultType = true; break; - case OpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break; - case OpPtrAccessChain: *hasResult = true; *hasResultType = true; break; - case OpArrayLength: *hasResult = true; *hasResultType = true; break; - case OpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break; - case OpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break; - case OpDecorate: *hasResult = false; *hasResultType = false; break; - case OpMemberDecorate: *hasResult = false; *hasResultType = false; break; - case OpDecorationGroup: *hasResult = true; *hasResultType = false; break; - case OpGroupDecorate: *hasResult = false; *hasResultType = false; break; - case OpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break; - case OpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break; - case OpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break; - case OpVectorShuffle: *hasResult = true; *hasResultType = true; break; - case OpCompositeConstruct: *hasResult = true; *hasResultType = true; break; - case OpCompositeExtract: *hasResult = true; *hasResultType = true; break; - case OpCompositeInsert: *hasResult = true; *hasResultType = true; break; - case OpCopyObject: *hasResult = true; *hasResultType = true; break; - case OpTranspose: *hasResult = true; *hasResultType = true; break; - case OpSampledImage: *hasResult = true; *hasResultType = true; break; - case OpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageFetch: *hasResult = true; *hasResultType = true; break; - case OpImageGather: *hasResult = true; *hasResultType = true; break; - case OpImageDrefGather: *hasResult = true; *hasResultType = true; break; - case OpImageRead: *hasResult = true; *hasResultType = true; break; - case OpImageWrite: *hasResult = false; *hasResultType = false; break; - case OpImage: *hasResult = true; *hasResultType = true; break; - case OpImageQueryFormat: *hasResult = true; *hasResultType = true; break; - case OpImageQueryOrder: *hasResult = true; *hasResultType = true; break; - case OpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break; - case OpImageQuerySize: *hasResult = true; *hasResultType = true; break; - case OpImageQueryLod: *hasResult = true; *hasResultType = true; break; - case OpImageQueryLevels: *hasResult = true; *hasResultType = true; break; - case OpImageQuerySamples: *hasResult = true; *hasResultType = true; break; - case OpConvertFToU: *hasResult = true; *hasResultType = true; break; - case OpConvertFToS: *hasResult = true; *hasResultType = true; break; - case OpConvertSToF: *hasResult = true; *hasResultType = true; break; - case OpConvertUToF: *hasResult = true; *hasResultType = true; break; - case OpUConvert: *hasResult = true; *hasResultType = true; break; - case OpSConvert: *hasResult = true; *hasResultType = true; break; - case OpFConvert: *hasResult = true; *hasResultType = true; break; - case OpQuantizeToF16: *hasResult = true; *hasResultType = true; break; - case OpConvertPtrToU: *hasResult = true; *hasResultType = true; break; - case OpSatConvertSToU: *hasResult = true; *hasResultType = true; break; - case OpSatConvertUToS: *hasResult = true; *hasResultType = true; break; - case OpConvertUToPtr: *hasResult = true; *hasResultType = true; break; - case OpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break; - case OpGenericCastToPtr: *hasResult = true; *hasResultType = true; break; - case OpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break; - case OpBitcast: *hasResult = true; *hasResultType = true; break; - case OpSNegate: *hasResult = true; *hasResultType = true; break; - case OpFNegate: *hasResult = true; *hasResultType = true; break; - case OpIAdd: *hasResult = true; *hasResultType = true; break; - case OpFAdd: *hasResult = true; *hasResultType = true; break; - case OpISub: *hasResult = true; *hasResultType = true; break; - case OpFSub: *hasResult = true; *hasResultType = true; break; - case OpIMul: *hasResult = true; *hasResultType = true; break; - case OpFMul: *hasResult = true; *hasResultType = true; break; - case OpUDiv: *hasResult = true; *hasResultType = true; break; - case OpSDiv: *hasResult = true; *hasResultType = true; break; - case OpFDiv: *hasResult = true; *hasResultType = true; break; - case OpUMod: *hasResult = true; *hasResultType = true; break; - case OpSRem: *hasResult = true; *hasResultType = true; break; - case OpSMod: *hasResult = true; *hasResultType = true; break; - case OpFRem: *hasResult = true; *hasResultType = true; break; - case OpFMod: *hasResult = true; *hasResultType = true; break; - case OpVectorTimesScalar: *hasResult = true; *hasResultType = true; break; - case OpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break; - case OpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break; - case OpMatrixTimesVector: *hasResult = true; *hasResultType = true; break; - case OpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break; - case OpOuterProduct: *hasResult = true; *hasResultType = true; break; - case OpDot: *hasResult = true; *hasResultType = true; break; - case OpIAddCarry: *hasResult = true; *hasResultType = true; break; - case OpISubBorrow: *hasResult = true; *hasResultType = true; break; - case OpUMulExtended: *hasResult = true; *hasResultType = true; break; - case OpSMulExtended: *hasResult = true; *hasResultType = true; break; - case OpAny: *hasResult = true; *hasResultType = true; break; - case OpAll: *hasResult = true; *hasResultType = true; break; - case OpIsNan: *hasResult = true; *hasResultType = true; break; - case OpIsInf: *hasResult = true; *hasResultType = true; break; - case OpIsFinite: *hasResult = true; *hasResultType = true; break; - case OpIsNormal: *hasResult = true; *hasResultType = true; break; - case OpSignBitSet: *hasResult = true; *hasResultType = true; break; - case OpLessOrGreater: *hasResult = true; *hasResultType = true; break; - case OpOrdered: *hasResult = true; *hasResultType = true; break; - case OpUnordered: *hasResult = true; *hasResultType = true; break; - case OpLogicalEqual: *hasResult = true; *hasResultType = true; break; - case OpLogicalNotEqual: *hasResult = true; *hasResultType = true; break; - case OpLogicalOr: *hasResult = true; *hasResultType = true; break; - case OpLogicalAnd: *hasResult = true; *hasResultType = true; break; - case OpLogicalNot: *hasResult = true; *hasResultType = true; break; - case OpSelect: *hasResult = true; *hasResultType = true; break; - case OpIEqual: *hasResult = true; *hasResultType = true; break; - case OpINotEqual: *hasResult = true; *hasResultType = true; break; - case OpUGreaterThan: *hasResult = true; *hasResultType = true; break; - case OpSGreaterThan: *hasResult = true; *hasResultType = true; break; - case OpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break; - case OpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break; - case OpULessThan: *hasResult = true; *hasResultType = true; break; - case OpSLessThan: *hasResult = true; *hasResultType = true; break; - case OpULessThanEqual: *hasResult = true; *hasResultType = true; break; - case OpSLessThanEqual: *hasResult = true; *hasResultType = true; break; - case OpFOrdEqual: *hasResult = true; *hasResultType = true; break; - case OpFUnordEqual: *hasResult = true; *hasResultType = true; break; - case OpFOrdNotEqual: *hasResult = true; *hasResultType = true; break; - case OpFUnordNotEqual: *hasResult = true; *hasResultType = true; break; - case OpFOrdLessThan: *hasResult = true; *hasResultType = true; break; - case OpFUnordLessThan: *hasResult = true; *hasResultType = true; break; - case OpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break; - case OpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break; - case OpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break; - case OpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break; - case OpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break; - case OpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break; - case OpShiftRightLogical: *hasResult = true; *hasResultType = true; break; - case OpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break; - case OpShiftLeftLogical: *hasResult = true; *hasResultType = true; break; - case OpBitwiseOr: *hasResult = true; *hasResultType = true; break; - case OpBitwiseXor: *hasResult = true; *hasResultType = true; break; - case OpBitwiseAnd: *hasResult = true; *hasResultType = true; break; - case OpNot: *hasResult = true; *hasResultType = true; break; - case OpBitFieldInsert: *hasResult = true; *hasResultType = true; break; - case OpBitFieldSExtract: *hasResult = true; *hasResultType = true; break; - case OpBitFieldUExtract: *hasResult = true; *hasResultType = true; break; - case OpBitReverse: *hasResult = true; *hasResultType = true; break; - case OpBitCount: *hasResult = true; *hasResultType = true; break; - case OpDPdx: *hasResult = true; *hasResultType = true; break; - case OpDPdy: *hasResult = true; *hasResultType = true; break; - case OpFwidth: *hasResult = true; *hasResultType = true; break; - case OpDPdxFine: *hasResult = true; *hasResultType = true; break; - case OpDPdyFine: *hasResult = true; *hasResultType = true; break; - case OpFwidthFine: *hasResult = true; *hasResultType = true; break; - case OpDPdxCoarse: *hasResult = true; *hasResultType = true; break; - case OpDPdyCoarse: *hasResult = true; *hasResultType = true; break; - case OpFwidthCoarse: *hasResult = true; *hasResultType = true; break; - case OpEmitVertex: *hasResult = false; *hasResultType = false; break; - case OpEndPrimitive: *hasResult = false; *hasResultType = false; break; - case OpEmitStreamVertex: *hasResult = false; *hasResultType = false; break; - case OpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break; - case OpControlBarrier: *hasResult = false; *hasResultType = false; break; - case OpMemoryBarrier: *hasResult = false; *hasResultType = false; break; - case OpAtomicLoad: *hasResult = true; *hasResultType = true; break; - case OpAtomicStore: *hasResult = false; *hasResultType = false; break; - case OpAtomicExchange: *hasResult = true; *hasResultType = true; break; - case OpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break; - case OpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break; - case OpAtomicIIncrement: *hasResult = true; *hasResultType = true; break; - case OpAtomicIDecrement: *hasResult = true; *hasResultType = true; break; - case OpAtomicIAdd: *hasResult = true; *hasResultType = true; break; - case OpAtomicISub: *hasResult = true; *hasResultType = true; break; - case OpAtomicSMin: *hasResult = true; *hasResultType = true; break; - case OpAtomicUMin: *hasResult = true; *hasResultType = true; break; - case OpAtomicSMax: *hasResult = true; *hasResultType = true; break; - case OpAtomicUMax: *hasResult = true; *hasResultType = true; break; - case OpAtomicAnd: *hasResult = true; *hasResultType = true; break; - case OpAtomicOr: *hasResult = true; *hasResultType = true; break; - case OpAtomicXor: *hasResult = true; *hasResultType = true; break; - case OpPhi: *hasResult = true; *hasResultType = true; break; - case OpLoopMerge: *hasResult = false; *hasResultType = false; break; - case OpSelectionMerge: *hasResult = false; *hasResultType = false; break; - case OpLabel: *hasResult = true; *hasResultType = false; break; - case OpBranch: *hasResult = false; *hasResultType = false; break; - case OpBranchConditional: *hasResult = false; *hasResultType = false; break; - case OpSwitch: *hasResult = false; *hasResultType = false; break; - case OpKill: *hasResult = false; *hasResultType = false; break; - case OpReturn: *hasResult = false; *hasResultType = false; break; - case OpReturnValue: *hasResult = false; *hasResultType = false; break; - case OpUnreachable: *hasResult = false; *hasResultType = false; break; - case OpLifetimeStart: *hasResult = false; *hasResultType = false; break; - case OpLifetimeStop: *hasResult = false; *hasResultType = false; break; - case OpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break; - case OpGroupWaitEvents: *hasResult = false; *hasResultType = false; break; - case OpGroupAll: *hasResult = true; *hasResultType = true; break; - case OpGroupAny: *hasResult = true; *hasResultType = true; break; - case OpGroupBroadcast: *hasResult = true; *hasResultType = true; break; - case OpGroupIAdd: *hasResult = true; *hasResultType = true; break; - case OpGroupFAdd: *hasResult = true; *hasResultType = true; break; - case OpGroupFMin: *hasResult = true; *hasResultType = true; break; - case OpGroupUMin: *hasResult = true; *hasResultType = true; break; - case OpGroupSMin: *hasResult = true; *hasResultType = true; break; - case OpGroupFMax: *hasResult = true; *hasResultType = true; break; - case OpGroupUMax: *hasResult = true; *hasResultType = true; break; - case OpGroupSMax: *hasResult = true; *hasResultType = true; break; - case OpReadPipe: *hasResult = true; *hasResultType = true; break; - case OpWritePipe: *hasResult = true; *hasResultType = true; break; - case OpReservedReadPipe: *hasResult = true; *hasResultType = true; break; - case OpReservedWritePipe: *hasResult = true; *hasResultType = true; break; - case OpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break; - case OpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break; - case OpCommitReadPipe: *hasResult = false; *hasResultType = false; break; - case OpCommitWritePipe: *hasResult = false; *hasResultType = false; break; - case OpIsValidReserveId: *hasResult = true; *hasResultType = true; break; - case OpGetNumPipePackets: *hasResult = true; *hasResultType = true; break; - case OpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break; - case OpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break; - case OpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break; - case OpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break; - case OpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break; - case OpEnqueueMarker: *hasResult = true; *hasResultType = true; break; - case OpEnqueueKernel: *hasResult = true; *hasResultType = true; break; - case OpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break; - case OpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break; - case OpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break; - case OpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break; - case OpRetainEvent: *hasResult = false; *hasResultType = false; break; - case OpReleaseEvent: *hasResult = false; *hasResultType = false; break; - case OpCreateUserEvent: *hasResult = true; *hasResultType = true; break; - case OpIsValidEvent: *hasResult = true; *hasResultType = true; break; - case OpSetUserEventStatus: *hasResult = false; *hasResultType = false; break; - case OpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break; - case OpGetDefaultQueue: *hasResult = true; *hasResultType = true; break; - case OpBuildNDRange: *hasResult = true; *hasResultType = true; break; - case OpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break; - case OpImageSparseFetch: *hasResult = true; *hasResultType = true; break; - case OpImageSparseGather: *hasResult = true; *hasResultType = true; break; - case OpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break; - case OpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break; - case OpNoLine: *hasResult = false; *hasResultType = false; break; - case OpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break; - case OpAtomicFlagClear: *hasResult = false; *hasResultType = false; break; - case OpImageSparseRead: *hasResult = true; *hasResultType = true; break; - case OpSizeOf: *hasResult = true; *hasResultType = true; break; - case OpTypePipeStorage: *hasResult = true; *hasResultType = false; break; - case OpConstantPipeStorage: *hasResult = true; *hasResultType = true; break; - case OpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break; - case OpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break; - case OpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break; - case OpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break; - case OpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break; - case OpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break; - case OpModuleProcessed: *hasResult = false; *hasResultType = false; break; - case OpExecutionModeId: *hasResult = false; *hasResultType = false; break; - case OpDecorateId: *hasResult = false; *hasResultType = false; break; - case OpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break; - case OpCopyLogical: *hasResult = true; *hasResultType = true; break; - case OpPtrEqual: *hasResult = true; *hasResultType = true; break; - case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break; - case OpPtrDiff: *hasResult = true; *hasResultType = true; break; - case OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break; - case OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break; - case OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break; - case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case OpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case OpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case OpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case OpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break; - case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break; - case OpReadClockKHR: *hasResult = true; *hasResultType = true; break; - case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break; - case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break; - case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break; - case OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break; - case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break; - case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break; - case OpTraceNV: *hasResult = false; *hasResultType = false; break; - case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break; - case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break; - case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break; - case OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break; - case OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break; - case OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break; - case OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break; - case OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; - case OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; - case OpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break; - case OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break; - case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; - case OpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; - case OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; - case OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break; - case OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break; - case OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break; - case OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break; - case OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break; - case OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break; - case OpIAverageINTEL: *hasResult = true; *hasResultType = true; break; - case OpUAverageINTEL: *hasResult = true; *hasResultType = true; break; - case OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break; - case OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break; - case OpISubSatINTEL: *hasResult = true; *hasResultType = true; break; - case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break; - case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break; - case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break; - case OpDecorateString: *hasResult = false; *hasResultType = false; break; - case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break; - case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break; - case OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break; - case OpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break; - case OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break; - case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break; - } -} -#endif /* SPV_ENABLE_UTILITY_CODE */ - -// Overload operator| for mask bit combining - -inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); } -inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); } -inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); } -inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); } -inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); } -inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); } -inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); } -inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); } - -} // end namespace spv - -#endif // #ifndef spirv_HPP - diff --git a/external/vulkan/windows/include/vulkan/spirv.hpp11 b/external/vulkan/windows/include/vulkan/spirv.hpp11 deleted file mode 100644 index 34ee3b49..00000000 --- a/external/vulkan/windows/include/vulkan/spirv.hpp11 +++ /dev/null @@ -1,1981 +0,0 @@ -// Copyright (c) 2014-2019 The Khronos Group Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and/or associated documentation files (the "Materials"), -// to deal in the Materials without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Materials, and to permit persons to whom the -// Materials are furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Materials. -// -// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS -// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND -// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ -// -// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS -// IN THE MATERIALS. - -// This header is automatically generated by the same tool that creates -// the Binary Section of the SPIR-V specification. - -// Enumeration tokens for SPIR-V, in various styles: -// C, C++, C++11, JSON, Lua, Python, C#, D -// -// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL -// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL -// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL -// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL -// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] -// - C# will use enum classes in the Specification class located in the "Spv" namespace, -// e.g.: Spv.Specification.SourceLanguage.GLSL -// - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL -// -// Some tokens act like mask values, which can be OR'd together, -// while others are mutually exclusive. The mask-like ones have -// "Mask" in their name, and a parallel enum that has the shift -// amount (1 << x) for each corresponding enumerant. - -#ifndef spirv_HPP -#define spirv_HPP - -namespace spv { - -typedef unsigned int Id; - -#define SPV_VERSION 0x10500 -#define SPV_REVISION 1 - -static const unsigned int MagicNumber = 0x07230203; -static const unsigned int Version = 0x00010500; -static const unsigned int Revision = 1; -static const unsigned int OpCodeMask = 0xffff; -static const unsigned int WordCountShift = 16; - -enum class SourceLanguage : unsigned { - Unknown = 0, - ESSL = 1, - GLSL = 2, - OpenCL_C = 3, - OpenCL_CPP = 4, - HLSL = 5, - Max = 0x7fffffff, -}; - -enum class ExecutionModel : unsigned { - Vertex = 0, - TessellationControl = 1, - TessellationEvaluation = 2, - Geometry = 3, - Fragment = 4, - GLCompute = 5, - Kernel = 6, - TaskNV = 5267, - MeshNV = 5268, - RayGenerationNV = 5313, - IntersectionNV = 5314, - AnyHitNV = 5315, - ClosestHitNV = 5316, - MissNV = 5317, - CallableNV = 5318, - Max = 0x7fffffff, -}; - -enum class AddressingModel : unsigned { - Logical = 0, - Physical32 = 1, - Physical64 = 2, - PhysicalStorageBuffer64 = 5348, - PhysicalStorageBuffer64EXT = 5348, - Max = 0x7fffffff, -}; - -enum class MemoryModel : unsigned { - Simple = 0, - GLSL450 = 1, - OpenCL = 2, - Vulkan = 3, - VulkanKHR = 3, - Max = 0x7fffffff, -}; - -enum class ExecutionMode : unsigned { - Invocations = 0, - SpacingEqual = 1, - SpacingFractionalEven = 2, - SpacingFractionalOdd = 3, - VertexOrderCw = 4, - VertexOrderCcw = 5, - PixelCenterInteger = 6, - OriginUpperLeft = 7, - OriginLowerLeft = 8, - EarlyFragmentTests = 9, - PointMode = 10, - Xfb = 11, - DepthReplacing = 12, - DepthGreater = 14, - DepthLess = 15, - DepthUnchanged = 16, - LocalSize = 17, - LocalSizeHint = 18, - InputPoints = 19, - InputLines = 20, - InputLinesAdjacency = 21, - Triangles = 22, - InputTrianglesAdjacency = 23, - Quads = 24, - Isolines = 25, - OutputVertices = 26, - OutputPoints = 27, - OutputLineStrip = 28, - OutputTriangleStrip = 29, - VecTypeHint = 30, - ContractionOff = 31, - Initializer = 33, - Finalizer = 34, - SubgroupSize = 35, - SubgroupsPerWorkgroup = 36, - SubgroupsPerWorkgroupId = 37, - LocalSizeId = 38, - LocalSizeHintId = 39, - PostDepthCoverage = 4446, - DenormPreserve = 4459, - DenormFlushToZero = 4460, - SignedZeroInfNanPreserve = 4461, - RoundingModeRTE = 4462, - RoundingModeRTZ = 4463, - StencilRefReplacingEXT = 5027, - OutputLinesNV = 5269, - OutputPrimitivesNV = 5270, - DerivativeGroupQuadsNV = 5289, - DerivativeGroupLinearNV = 5290, - OutputTrianglesNV = 5298, - PixelInterlockOrderedEXT = 5366, - PixelInterlockUnorderedEXT = 5367, - SampleInterlockOrderedEXT = 5368, - SampleInterlockUnorderedEXT = 5369, - ShadingRateInterlockOrderedEXT = 5370, - ShadingRateInterlockUnorderedEXT = 5371, - Max = 0x7fffffff, -}; - -enum class StorageClass : unsigned { - UniformConstant = 0, - Input = 1, - Uniform = 2, - Output = 3, - Workgroup = 4, - CrossWorkgroup = 5, - Private = 6, - Function = 7, - Generic = 8, - PushConstant = 9, - AtomicCounter = 10, - Image = 11, - StorageBuffer = 12, - CallableDataNV = 5328, - IncomingCallableDataNV = 5329, - RayPayloadNV = 5338, - HitAttributeNV = 5339, - IncomingRayPayloadNV = 5342, - ShaderRecordBufferNV = 5343, - PhysicalStorageBuffer = 5349, - PhysicalStorageBufferEXT = 5349, - Max = 0x7fffffff, -}; - -enum class Dim : unsigned { - Dim1D = 0, - Dim2D = 1, - Dim3D = 2, - Cube = 3, - Rect = 4, - Buffer = 5, - SubpassData = 6, - Max = 0x7fffffff, -}; - -enum class SamplerAddressingMode : unsigned { - None = 0, - ClampToEdge = 1, - Clamp = 2, - Repeat = 3, - RepeatMirrored = 4, - Max = 0x7fffffff, -}; - -enum class SamplerFilterMode : unsigned { - Nearest = 0, - Linear = 1, - Max = 0x7fffffff, -}; - -enum class ImageFormat : unsigned { - Unknown = 0, - Rgba32f = 1, - Rgba16f = 2, - R32f = 3, - Rgba8 = 4, - Rgba8Snorm = 5, - Rg32f = 6, - Rg16f = 7, - R11fG11fB10f = 8, - R16f = 9, - Rgba16 = 10, - Rgb10A2 = 11, - Rg16 = 12, - Rg8 = 13, - R16 = 14, - R8 = 15, - Rgba16Snorm = 16, - Rg16Snorm = 17, - Rg8Snorm = 18, - R16Snorm = 19, - R8Snorm = 20, - Rgba32i = 21, - Rgba16i = 22, - Rgba8i = 23, - R32i = 24, - Rg32i = 25, - Rg16i = 26, - Rg8i = 27, - R16i = 28, - R8i = 29, - Rgba32ui = 30, - Rgba16ui = 31, - Rgba8ui = 32, - R32ui = 33, - Rgb10a2ui = 34, - Rg32ui = 35, - Rg16ui = 36, - Rg8ui = 37, - R16ui = 38, - R8ui = 39, - Max = 0x7fffffff, -}; - -enum class ImageChannelOrder : unsigned { - R = 0, - A = 1, - RG = 2, - RA = 3, - RGB = 4, - RGBA = 5, - BGRA = 6, - ARGB = 7, - Intensity = 8, - Luminance = 9, - Rx = 10, - RGx = 11, - RGBx = 12, - Depth = 13, - DepthStencil = 14, - sRGB = 15, - sRGBx = 16, - sRGBA = 17, - sBGRA = 18, - ABGR = 19, - Max = 0x7fffffff, -}; - -enum class ImageChannelDataType : unsigned { - SnormInt8 = 0, - SnormInt16 = 1, - UnormInt8 = 2, - UnormInt16 = 3, - UnormShort565 = 4, - UnormShort555 = 5, - UnormInt101010 = 6, - SignedInt8 = 7, - SignedInt16 = 8, - SignedInt32 = 9, - UnsignedInt8 = 10, - UnsignedInt16 = 11, - UnsignedInt32 = 12, - HalfFloat = 13, - Float = 14, - UnormInt24 = 15, - UnormInt101010_2 = 16, - Max = 0x7fffffff, -}; - -enum class ImageOperandsShift : unsigned { - Bias = 0, - Lod = 1, - Grad = 2, - ConstOffset = 3, - Offset = 4, - ConstOffsets = 5, - Sample = 6, - MinLod = 7, - MakeTexelAvailable = 8, - MakeTexelAvailableKHR = 8, - MakeTexelVisible = 9, - MakeTexelVisibleKHR = 9, - NonPrivateTexel = 10, - NonPrivateTexelKHR = 10, - VolatileTexel = 11, - VolatileTexelKHR = 11, - SignExtend = 12, - ZeroExtend = 13, - Max = 0x7fffffff, -}; - -enum class ImageOperandsMask : unsigned { - MaskNone = 0, - Bias = 0x00000001, - Lod = 0x00000002, - Grad = 0x00000004, - ConstOffset = 0x00000008, - Offset = 0x00000010, - ConstOffsets = 0x00000020, - Sample = 0x00000040, - MinLod = 0x00000080, - MakeTexelAvailable = 0x00000100, - MakeTexelAvailableKHR = 0x00000100, - MakeTexelVisible = 0x00000200, - MakeTexelVisibleKHR = 0x00000200, - NonPrivateTexel = 0x00000400, - NonPrivateTexelKHR = 0x00000400, - VolatileTexel = 0x00000800, - VolatileTexelKHR = 0x00000800, - SignExtend = 0x00001000, - ZeroExtend = 0x00002000, -}; - -enum class FPFastMathModeShift : unsigned { - NotNaN = 0, - NotInf = 1, - NSZ = 2, - AllowRecip = 3, - Fast = 4, - Max = 0x7fffffff, -}; - -enum class FPFastMathModeMask : unsigned { - MaskNone = 0, - NotNaN = 0x00000001, - NotInf = 0x00000002, - NSZ = 0x00000004, - AllowRecip = 0x00000008, - Fast = 0x00000010, -}; - -enum class FPRoundingMode : unsigned { - RTE = 0, - RTZ = 1, - RTP = 2, - RTN = 3, - Max = 0x7fffffff, -}; - -enum class LinkageType : unsigned { - Export = 0, - Import = 1, - Max = 0x7fffffff, -}; - -enum class AccessQualifier : unsigned { - ReadOnly = 0, - WriteOnly = 1, - ReadWrite = 2, - Max = 0x7fffffff, -}; - -enum class FunctionParameterAttribute : unsigned { - Zext = 0, - Sext = 1, - ByVal = 2, - Sret = 3, - NoAlias = 4, - NoCapture = 5, - NoWrite = 6, - NoReadWrite = 7, - Max = 0x7fffffff, -}; - -enum class Decoration : unsigned { - RelaxedPrecision = 0, - SpecId = 1, - Block = 2, - BufferBlock = 3, - RowMajor = 4, - ColMajor = 5, - ArrayStride = 6, - MatrixStride = 7, - GLSLShared = 8, - GLSLPacked = 9, - CPacked = 10, - BuiltIn = 11, - NoPerspective = 13, - Flat = 14, - Patch = 15, - Centroid = 16, - Sample = 17, - Invariant = 18, - Restrict = 19, - Aliased = 20, - Volatile = 21, - Constant = 22, - Coherent = 23, - NonWritable = 24, - NonReadable = 25, - Uniform = 26, - UniformId = 27, - SaturatedConversion = 28, - Stream = 29, - Location = 30, - Component = 31, - Index = 32, - Binding = 33, - DescriptorSet = 34, - Offset = 35, - XfbBuffer = 36, - XfbStride = 37, - FuncParamAttr = 38, - FPRoundingMode = 39, - FPFastMathMode = 40, - LinkageAttributes = 41, - NoContraction = 42, - InputAttachmentIndex = 43, - Alignment = 44, - MaxByteOffset = 45, - AlignmentId = 46, - MaxByteOffsetId = 47, - NoSignedWrap = 4469, - NoUnsignedWrap = 4470, - ExplicitInterpAMD = 4999, - OverrideCoverageNV = 5248, - PassthroughNV = 5250, - ViewportRelativeNV = 5252, - SecondaryViewportRelativeNV = 5256, - PerPrimitiveNV = 5271, - PerViewNV = 5272, - PerTaskNV = 5273, - PerVertexNV = 5285, - NonUniform = 5300, - NonUniformEXT = 5300, - RestrictPointer = 5355, - RestrictPointerEXT = 5355, - AliasedPointer = 5356, - AliasedPointerEXT = 5356, - CounterBuffer = 5634, - HlslCounterBufferGOOGLE = 5634, - HlslSemanticGOOGLE = 5635, - UserSemantic = 5635, - UserTypeGOOGLE = 5636, - Max = 0x7fffffff, -}; - -enum class BuiltIn : unsigned { - Position = 0, - PointSize = 1, - ClipDistance = 3, - CullDistance = 4, - VertexId = 5, - InstanceId = 6, - PrimitiveId = 7, - InvocationId = 8, - Layer = 9, - ViewportIndex = 10, - TessLevelOuter = 11, - TessLevelInner = 12, - TessCoord = 13, - PatchVertices = 14, - FragCoord = 15, - PointCoord = 16, - FrontFacing = 17, - SampleId = 18, - SamplePosition = 19, - SampleMask = 20, - FragDepth = 22, - HelperInvocation = 23, - NumWorkgroups = 24, - WorkgroupSize = 25, - WorkgroupId = 26, - LocalInvocationId = 27, - GlobalInvocationId = 28, - LocalInvocationIndex = 29, - WorkDim = 30, - GlobalSize = 31, - EnqueuedWorkgroupSize = 32, - GlobalOffset = 33, - GlobalLinearId = 34, - SubgroupSize = 36, - SubgroupMaxSize = 37, - NumSubgroups = 38, - NumEnqueuedSubgroups = 39, - SubgroupId = 40, - SubgroupLocalInvocationId = 41, - VertexIndex = 42, - InstanceIndex = 43, - SubgroupEqMask = 4416, - SubgroupEqMaskKHR = 4416, - SubgroupGeMask = 4417, - SubgroupGeMaskKHR = 4417, - SubgroupGtMask = 4418, - SubgroupGtMaskKHR = 4418, - SubgroupLeMask = 4419, - SubgroupLeMaskKHR = 4419, - SubgroupLtMask = 4420, - SubgroupLtMaskKHR = 4420, - BaseVertex = 4424, - BaseInstance = 4425, - DrawIndex = 4426, - DeviceIndex = 4438, - ViewIndex = 4440, - BaryCoordNoPerspAMD = 4992, - BaryCoordNoPerspCentroidAMD = 4993, - BaryCoordNoPerspSampleAMD = 4994, - BaryCoordSmoothAMD = 4995, - BaryCoordSmoothCentroidAMD = 4996, - BaryCoordSmoothSampleAMD = 4997, - BaryCoordPullModelAMD = 4998, - FragStencilRefEXT = 5014, - ViewportMaskNV = 5253, - SecondaryPositionNV = 5257, - SecondaryViewportMaskNV = 5258, - PositionPerViewNV = 5261, - ViewportMaskPerViewNV = 5262, - FullyCoveredEXT = 5264, - TaskCountNV = 5274, - PrimitiveCountNV = 5275, - PrimitiveIndicesNV = 5276, - ClipDistancePerViewNV = 5277, - CullDistancePerViewNV = 5278, - LayerPerViewNV = 5279, - MeshViewCountNV = 5280, - MeshViewIndicesNV = 5281, - BaryCoordNV = 5286, - BaryCoordNoPerspNV = 5287, - FragSizeEXT = 5292, - FragmentSizeNV = 5292, - FragInvocationCountEXT = 5293, - InvocationsPerPixelNV = 5293, - LaunchIdNV = 5319, - LaunchSizeNV = 5320, - WorldRayOriginNV = 5321, - WorldRayDirectionNV = 5322, - ObjectRayOriginNV = 5323, - ObjectRayDirectionNV = 5324, - RayTminNV = 5325, - RayTmaxNV = 5326, - InstanceCustomIndexNV = 5327, - ObjectToWorldNV = 5330, - WorldToObjectNV = 5331, - HitTNV = 5332, - HitKindNV = 5333, - IncomingRayFlagsNV = 5351, - WarpsPerSMNV = 5374, - SMCountNV = 5375, - WarpIDNV = 5376, - SMIDNV = 5377, - Max = 0x7fffffff, -}; - -enum class SelectionControlShift : unsigned { - Flatten = 0, - DontFlatten = 1, - Max = 0x7fffffff, -}; - -enum class SelectionControlMask : unsigned { - MaskNone = 0, - Flatten = 0x00000001, - DontFlatten = 0x00000002, -}; - -enum class LoopControlShift : unsigned { - Unroll = 0, - DontUnroll = 1, - DependencyInfinite = 2, - DependencyLength = 3, - MinIterations = 4, - MaxIterations = 5, - IterationMultiple = 6, - PeelCount = 7, - PartialCount = 8, - Max = 0x7fffffff, -}; - -enum class LoopControlMask : unsigned { - MaskNone = 0, - Unroll = 0x00000001, - DontUnroll = 0x00000002, - DependencyInfinite = 0x00000004, - DependencyLength = 0x00000008, - MinIterations = 0x00000010, - MaxIterations = 0x00000020, - IterationMultiple = 0x00000040, - PeelCount = 0x00000080, - PartialCount = 0x00000100, -}; - -enum class FunctionControlShift : unsigned { - Inline = 0, - DontInline = 1, - Pure = 2, - Const = 3, - Max = 0x7fffffff, -}; - -enum class FunctionControlMask : unsigned { - MaskNone = 0, - Inline = 0x00000001, - DontInline = 0x00000002, - Pure = 0x00000004, - Const = 0x00000008, -}; - -enum class MemorySemanticsShift : unsigned { - Acquire = 1, - Release = 2, - AcquireRelease = 3, - SequentiallyConsistent = 4, - UniformMemory = 6, - SubgroupMemory = 7, - WorkgroupMemory = 8, - CrossWorkgroupMemory = 9, - AtomicCounterMemory = 10, - ImageMemory = 11, - OutputMemory = 12, - OutputMemoryKHR = 12, - MakeAvailable = 13, - MakeAvailableKHR = 13, - MakeVisible = 14, - MakeVisibleKHR = 14, - Volatile = 15, - Max = 0x7fffffff, -}; - -enum class MemorySemanticsMask : unsigned { - MaskNone = 0, - Acquire = 0x00000002, - Release = 0x00000004, - AcquireRelease = 0x00000008, - SequentiallyConsistent = 0x00000010, - UniformMemory = 0x00000040, - SubgroupMemory = 0x00000080, - WorkgroupMemory = 0x00000100, - CrossWorkgroupMemory = 0x00000200, - AtomicCounterMemory = 0x00000400, - ImageMemory = 0x00000800, - OutputMemory = 0x00001000, - OutputMemoryKHR = 0x00001000, - MakeAvailable = 0x00002000, - MakeAvailableKHR = 0x00002000, - MakeVisible = 0x00004000, - MakeVisibleKHR = 0x00004000, - Volatile = 0x00008000, -}; - -enum class MemoryAccessShift : unsigned { - Volatile = 0, - Aligned = 1, - Nontemporal = 2, - MakePointerAvailable = 3, - MakePointerAvailableKHR = 3, - MakePointerVisible = 4, - MakePointerVisibleKHR = 4, - NonPrivatePointer = 5, - NonPrivatePointerKHR = 5, - Max = 0x7fffffff, -}; - -enum class MemoryAccessMask : unsigned { - MaskNone = 0, - Volatile = 0x00000001, - Aligned = 0x00000002, - Nontemporal = 0x00000004, - MakePointerAvailable = 0x00000008, - MakePointerAvailableKHR = 0x00000008, - MakePointerVisible = 0x00000010, - MakePointerVisibleKHR = 0x00000010, - NonPrivatePointer = 0x00000020, - NonPrivatePointerKHR = 0x00000020, -}; - -enum class Scope : unsigned { - CrossDevice = 0, - Device = 1, - Workgroup = 2, - Subgroup = 3, - Invocation = 4, - QueueFamily = 5, - QueueFamilyKHR = 5, - Max = 0x7fffffff, -}; - -enum class GroupOperation : unsigned { - Reduce = 0, - InclusiveScan = 1, - ExclusiveScan = 2, - ClusteredReduce = 3, - PartitionedReduceNV = 6, - PartitionedInclusiveScanNV = 7, - PartitionedExclusiveScanNV = 8, - Max = 0x7fffffff, -}; - -enum class KernelEnqueueFlags : unsigned { - NoWait = 0, - WaitKernel = 1, - WaitWorkGroup = 2, - Max = 0x7fffffff, -}; - -enum class KernelProfilingInfoShift : unsigned { - CmdExecTime = 0, - Max = 0x7fffffff, -}; - -enum class KernelProfilingInfoMask : unsigned { - MaskNone = 0, - CmdExecTime = 0x00000001, -}; - -enum class Capability : unsigned { - Matrix = 0, - Shader = 1, - Geometry = 2, - Tessellation = 3, - Addresses = 4, - Linkage = 5, - Kernel = 6, - Vector16 = 7, - Float16Buffer = 8, - Float16 = 9, - Float64 = 10, - Int64 = 11, - Int64Atomics = 12, - ImageBasic = 13, - ImageReadWrite = 14, - ImageMipmap = 15, - Pipes = 17, - Groups = 18, - DeviceEnqueue = 19, - LiteralSampler = 20, - AtomicStorage = 21, - Int16 = 22, - TessellationPointSize = 23, - GeometryPointSize = 24, - ImageGatherExtended = 25, - StorageImageMultisample = 27, - UniformBufferArrayDynamicIndexing = 28, - SampledImageArrayDynamicIndexing = 29, - StorageBufferArrayDynamicIndexing = 30, - StorageImageArrayDynamicIndexing = 31, - ClipDistance = 32, - CullDistance = 33, - ImageCubeArray = 34, - SampleRateShading = 35, - ImageRect = 36, - SampledRect = 37, - GenericPointer = 38, - Int8 = 39, - InputAttachment = 40, - SparseResidency = 41, - MinLod = 42, - Sampled1D = 43, - Image1D = 44, - SampledCubeArray = 45, - SampledBuffer = 46, - ImageBuffer = 47, - ImageMSArray = 48, - StorageImageExtendedFormats = 49, - ImageQuery = 50, - DerivativeControl = 51, - InterpolationFunction = 52, - TransformFeedback = 53, - GeometryStreams = 54, - StorageImageReadWithoutFormat = 55, - StorageImageWriteWithoutFormat = 56, - MultiViewport = 57, - SubgroupDispatch = 58, - NamedBarrier = 59, - PipeStorage = 60, - GroupNonUniform = 61, - GroupNonUniformVote = 62, - GroupNonUniformArithmetic = 63, - GroupNonUniformBallot = 64, - GroupNonUniformShuffle = 65, - GroupNonUniformShuffleRelative = 66, - GroupNonUniformClustered = 67, - GroupNonUniformQuad = 68, - ShaderLayer = 69, - ShaderViewportIndex = 70, - SubgroupBallotKHR = 4423, - DrawParameters = 4427, - SubgroupVoteKHR = 4431, - StorageBuffer16BitAccess = 4433, - StorageUniformBufferBlock16 = 4433, - StorageUniform16 = 4434, - UniformAndStorageBuffer16BitAccess = 4434, - StoragePushConstant16 = 4435, - StorageInputOutput16 = 4436, - DeviceGroup = 4437, - MultiView = 4439, - VariablePointersStorageBuffer = 4441, - VariablePointers = 4442, - AtomicStorageOps = 4445, - SampleMaskPostDepthCoverage = 4447, - StorageBuffer8BitAccess = 4448, - UniformAndStorageBuffer8BitAccess = 4449, - StoragePushConstant8 = 4450, - DenormPreserve = 4464, - DenormFlushToZero = 4465, - SignedZeroInfNanPreserve = 4466, - RoundingModeRTE = 4467, - RoundingModeRTZ = 4468, - Float16ImageAMD = 5008, - ImageGatherBiasLodAMD = 5009, - FragmentMaskAMD = 5010, - StencilExportEXT = 5013, - ImageReadWriteLodAMD = 5015, - ShaderClockKHR = 5055, - SampleMaskOverrideCoverageNV = 5249, - GeometryShaderPassthroughNV = 5251, - ShaderViewportIndexLayerEXT = 5254, - ShaderViewportIndexLayerNV = 5254, - ShaderViewportMaskNV = 5255, - ShaderStereoViewNV = 5259, - PerViewAttributesNV = 5260, - FragmentFullyCoveredEXT = 5265, - MeshShadingNV = 5266, - ImageFootprintNV = 5282, - FragmentBarycentricNV = 5284, - ComputeDerivativeGroupQuadsNV = 5288, - FragmentDensityEXT = 5291, - ShadingRateNV = 5291, - GroupNonUniformPartitionedNV = 5297, - ShaderNonUniform = 5301, - ShaderNonUniformEXT = 5301, - RuntimeDescriptorArray = 5302, - RuntimeDescriptorArrayEXT = 5302, - InputAttachmentArrayDynamicIndexing = 5303, - InputAttachmentArrayDynamicIndexingEXT = 5303, - UniformTexelBufferArrayDynamicIndexing = 5304, - UniformTexelBufferArrayDynamicIndexingEXT = 5304, - StorageTexelBufferArrayDynamicIndexing = 5305, - StorageTexelBufferArrayDynamicIndexingEXT = 5305, - UniformBufferArrayNonUniformIndexing = 5306, - UniformBufferArrayNonUniformIndexingEXT = 5306, - SampledImageArrayNonUniformIndexing = 5307, - SampledImageArrayNonUniformIndexingEXT = 5307, - StorageBufferArrayNonUniformIndexing = 5308, - StorageBufferArrayNonUniformIndexingEXT = 5308, - StorageImageArrayNonUniformIndexing = 5309, - StorageImageArrayNonUniformIndexingEXT = 5309, - InputAttachmentArrayNonUniformIndexing = 5310, - InputAttachmentArrayNonUniformIndexingEXT = 5310, - UniformTexelBufferArrayNonUniformIndexing = 5311, - UniformTexelBufferArrayNonUniformIndexingEXT = 5311, - StorageTexelBufferArrayNonUniformIndexing = 5312, - StorageTexelBufferArrayNonUniformIndexingEXT = 5312, - RayTracingNV = 5340, - VulkanMemoryModel = 5345, - VulkanMemoryModelKHR = 5345, - VulkanMemoryModelDeviceScope = 5346, - VulkanMemoryModelDeviceScopeKHR = 5346, - PhysicalStorageBufferAddresses = 5347, - PhysicalStorageBufferAddressesEXT = 5347, - ComputeDerivativeGroupLinearNV = 5350, - CooperativeMatrixNV = 5357, - FragmentShaderSampleInterlockEXT = 5363, - FragmentShaderShadingRateInterlockEXT = 5372, - ShaderSMBuiltinsNV = 5373, - FragmentShaderPixelInterlockEXT = 5378, - DemoteToHelperInvocationEXT = 5379, - SubgroupShuffleINTEL = 5568, - SubgroupBufferBlockIOINTEL = 5569, - SubgroupImageBlockIOINTEL = 5570, - SubgroupImageMediaBlockIOINTEL = 5579, - IntegerFunctions2INTEL = 5584, - SubgroupAvcMotionEstimationINTEL = 5696, - SubgroupAvcMotionEstimationIntraINTEL = 5697, - SubgroupAvcMotionEstimationChromaINTEL = 5698, - Max = 0x7fffffff, -}; - -enum class Op : unsigned { - OpNop = 0, - OpUndef = 1, - OpSourceContinued = 2, - OpSource = 3, - OpSourceExtension = 4, - OpName = 5, - OpMemberName = 6, - OpString = 7, - OpLine = 8, - OpExtension = 10, - OpExtInstImport = 11, - OpExtInst = 12, - OpMemoryModel = 14, - OpEntryPoint = 15, - OpExecutionMode = 16, - OpCapability = 17, - OpTypeVoid = 19, - OpTypeBool = 20, - OpTypeInt = 21, - OpTypeFloat = 22, - OpTypeVector = 23, - OpTypeMatrix = 24, - OpTypeImage = 25, - OpTypeSampler = 26, - OpTypeSampledImage = 27, - OpTypeArray = 28, - OpTypeRuntimeArray = 29, - OpTypeStruct = 30, - OpTypeOpaque = 31, - OpTypePointer = 32, - OpTypeFunction = 33, - OpTypeEvent = 34, - OpTypeDeviceEvent = 35, - OpTypeReserveId = 36, - OpTypeQueue = 37, - OpTypePipe = 38, - OpTypeForwardPointer = 39, - OpConstantTrue = 41, - OpConstantFalse = 42, - OpConstant = 43, - OpConstantComposite = 44, - OpConstantSampler = 45, - OpConstantNull = 46, - OpSpecConstantTrue = 48, - OpSpecConstantFalse = 49, - OpSpecConstant = 50, - OpSpecConstantComposite = 51, - OpSpecConstantOp = 52, - OpFunction = 54, - OpFunctionParameter = 55, - OpFunctionEnd = 56, - OpFunctionCall = 57, - OpVariable = 59, - OpImageTexelPointer = 60, - OpLoad = 61, - OpStore = 62, - OpCopyMemory = 63, - OpCopyMemorySized = 64, - OpAccessChain = 65, - OpInBoundsAccessChain = 66, - OpPtrAccessChain = 67, - OpArrayLength = 68, - OpGenericPtrMemSemantics = 69, - OpInBoundsPtrAccessChain = 70, - OpDecorate = 71, - OpMemberDecorate = 72, - OpDecorationGroup = 73, - OpGroupDecorate = 74, - OpGroupMemberDecorate = 75, - OpVectorExtractDynamic = 77, - OpVectorInsertDynamic = 78, - OpVectorShuffle = 79, - OpCompositeConstruct = 80, - OpCompositeExtract = 81, - OpCompositeInsert = 82, - OpCopyObject = 83, - OpTranspose = 84, - OpSampledImage = 86, - OpImageSampleImplicitLod = 87, - OpImageSampleExplicitLod = 88, - OpImageSampleDrefImplicitLod = 89, - OpImageSampleDrefExplicitLod = 90, - OpImageSampleProjImplicitLod = 91, - OpImageSampleProjExplicitLod = 92, - OpImageSampleProjDrefImplicitLod = 93, - OpImageSampleProjDrefExplicitLod = 94, - OpImageFetch = 95, - OpImageGather = 96, - OpImageDrefGather = 97, - OpImageRead = 98, - OpImageWrite = 99, - OpImage = 100, - OpImageQueryFormat = 101, - OpImageQueryOrder = 102, - OpImageQuerySizeLod = 103, - OpImageQuerySize = 104, - OpImageQueryLod = 105, - OpImageQueryLevels = 106, - OpImageQuerySamples = 107, - OpConvertFToU = 109, - OpConvertFToS = 110, - OpConvertSToF = 111, - OpConvertUToF = 112, - OpUConvert = 113, - OpSConvert = 114, - OpFConvert = 115, - OpQuantizeToF16 = 116, - OpConvertPtrToU = 117, - OpSatConvertSToU = 118, - OpSatConvertUToS = 119, - OpConvertUToPtr = 120, - OpPtrCastToGeneric = 121, - OpGenericCastToPtr = 122, - OpGenericCastToPtrExplicit = 123, - OpBitcast = 124, - OpSNegate = 126, - OpFNegate = 127, - OpIAdd = 128, - OpFAdd = 129, - OpISub = 130, - OpFSub = 131, - OpIMul = 132, - OpFMul = 133, - OpUDiv = 134, - OpSDiv = 135, - OpFDiv = 136, - OpUMod = 137, - OpSRem = 138, - OpSMod = 139, - OpFRem = 140, - OpFMod = 141, - OpVectorTimesScalar = 142, - OpMatrixTimesScalar = 143, - OpVectorTimesMatrix = 144, - OpMatrixTimesVector = 145, - OpMatrixTimesMatrix = 146, - OpOuterProduct = 147, - OpDot = 148, - OpIAddCarry = 149, - OpISubBorrow = 150, - OpUMulExtended = 151, - OpSMulExtended = 152, - OpAny = 154, - OpAll = 155, - OpIsNan = 156, - OpIsInf = 157, - OpIsFinite = 158, - OpIsNormal = 159, - OpSignBitSet = 160, - OpLessOrGreater = 161, - OpOrdered = 162, - OpUnordered = 163, - OpLogicalEqual = 164, - OpLogicalNotEqual = 165, - OpLogicalOr = 166, - OpLogicalAnd = 167, - OpLogicalNot = 168, - OpSelect = 169, - OpIEqual = 170, - OpINotEqual = 171, - OpUGreaterThan = 172, - OpSGreaterThan = 173, - OpUGreaterThanEqual = 174, - OpSGreaterThanEqual = 175, - OpULessThan = 176, - OpSLessThan = 177, - OpULessThanEqual = 178, - OpSLessThanEqual = 179, - OpFOrdEqual = 180, - OpFUnordEqual = 181, - OpFOrdNotEqual = 182, - OpFUnordNotEqual = 183, - OpFOrdLessThan = 184, - OpFUnordLessThan = 185, - OpFOrdGreaterThan = 186, - OpFUnordGreaterThan = 187, - OpFOrdLessThanEqual = 188, - OpFUnordLessThanEqual = 189, - OpFOrdGreaterThanEqual = 190, - OpFUnordGreaterThanEqual = 191, - OpShiftRightLogical = 194, - OpShiftRightArithmetic = 195, - OpShiftLeftLogical = 196, - OpBitwiseOr = 197, - OpBitwiseXor = 198, - OpBitwiseAnd = 199, - OpNot = 200, - OpBitFieldInsert = 201, - OpBitFieldSExtract = 202, - OpBitFieldUExtract = 203, - OpBitReverse = 204, - OpBitCount = 205, - OpDPdx = 207, - OpDPdy = 208, - OpFwidth = 209, - OpDPdxFine = 210, - OpDPdyFine = 211, - OpFwidthFine = 212, - OpDPdxCoarse = 213, - OpDPdyCoarse = 214, - OpFwidthCoarse = 215, - OpEmitVertex = 218, - OpEndPrimitive = 219, - OpEmitStreamVertex = 220, - OpEndStreamPrimitive = 221, - OpControlBarrier = 224, - OpMemoryBarrier = 225, - OpAtomicLoad = 227, - OpAtomicStore = 228, - OpAtomicExchange = 229, - OpAtomicCompareExchange = 230, - OpAtomicCompareExchangeWeak = 231, - OpAtomicIIncrement = 232, - OpAtomicIDecrement = 233, - OpAtomicIAdd = 234, - OpAtomicISub = 235, - OpAtomicSMin = 236, - OpAtomicUMin = 237, - OpAtomicSMax = 238, - OpAtomicUMax = 239, - OpAtomicAnd = 240, - OpAtomicOr = 241, - OpAtomicXor = 242, - OpPhi = 245, - OpLoopMerge = 246, - OpSelectionMerge = 247, - OpLabel = 248, - OpBranch = 249, - OpBranchConditional = 250, - OpSwitch = 251, - OpKill = 252, - OpReturn = 253, - OpReturnValue = 254, - OpUnreachable = 255, - OpLifetimeStart = 256, - OpLifetimeStop = 257, - OpGroupAsyncCopy = 259, - OpGroupWaitEvents = 260, - OpGroupAll = 261, - OpGroupAny = 262, - OpGroupBroadcast = 263, - OpGroupIAdd = 264, - OpGroupFAdd = 265, - OpGroupFMin = 266, - OpGroupUMin = 267, - OpGroupSMin = 268, - OpGroupFMax = 269, - OpGroupUMax = 270, - OpGroupSMax = 271, - OpReadPipe = 274, - OpWritePipe = 275, - OpReservedReadPipe = 276, - OpReservedWritePipe = 277, - OpReserveReadPipePackets = 278, - OpReserveWritePipePackets = 279, - OpCommitReadPipe = 280, - OpCommitWritePipe = 281, - OpIsValidReserveId = 282, - OpGetNumPipePackets = 283, - OpGetMaxPipePackets = 284, - OpGroupReserveReadPipePackets = 285, - OpGroupReserveWritePipePackets = 286, - OpGroupCommitReadPipe = 287, - OpGroupCommitWritePipe = 288, - OpEnqueueMarker = 291, - OpEnqueueKernel = 292, - OpGetKernelNDrangeSubGroupCount = 293, - OpGetKernelNDrangeMaxSubGroupSize = 294, - OpGetKernelWorkGroupSize = 295, - OpGetKernelPreferredWorkGroupSizeMultiple = 296, - OpRetainEvent = 297, - OpReleaseEvent = 298, - OpCreateUserEvent = 299, - OpIsValidEvent = 300, - OpSetUserEventStatus = 301, - OpCaptureEventProfilingInfo = 302, - OpGetDefaultQueue = 303, - OpBuildNDRange = 304, - OpImageSparseSampleImplicitLod = 305, - OpImageSparseSampleExplicitLod = 306, - OpImageSparseSampleDrefImplicitLod = 307, - OpImageSparseSampleDrefExplicitLod = 308, - OpImageSparseSampleProjImplicitLod = 309, - OpImageSparseSampleProjExplicitLod = 310, - OpImageSparseSampleProjDrefImplicitLod = 311, - OpImageSparseSampleProjDrefExplicitLod = 312, - OpImageSparseFetch = 313, - OpImageSparseGather = 314, - OpImageSparseDrefGather = 315, - OpImageSparseTexelsResident = 316, - OpNoLine = 317, - OpAtomicFlagTestAndSet = 318, - OpAtomicFlagClear = 319, - OpImageSparseRead = 320, - OpSizeOf = 321, - OpTypePipeStorage = 322, - OpConstantPipeStorage = 323, - OpCreatePipeFromPipeStorage = 324, - OpGetKernelLocalSizeForSubgroupCount = 325, - OpGetKernelMaxNumSubgroups = 326, - OpTypeNamedBarrier = 327, - OpNamedBarrierInitialize = 328, - OpMemoryNamedBarrier = 329, - OpModuleProcessed = 330, - OpExecutionModeId = 331, - OpDecorateId = 332, - OpGroupNonUniformElect = 333, - OpGroupNonUniformAll = 334, - OpGroupNonUniformAny = 335, - OpGroupNonUniformAllEqual = 336, - OpGroupNonUniformBroadcast = 337, - OpGroupNonUniformBroadcastFirst = 338, - OpGroupNonUniformBallot = 339, - OpGroupNonUniformInverseBallot = 340, - OpGroupNonUniformBallotBitExtract = 341, - OpGroupNonUniformBallotBitCount = 342, - OpGroupNonUniformBallotFindLSB = 343, - OpGroupNonUniformBallotFindMSB = 344, - OpGroupNonUniformShuffle = 345, - OpGroupNonUniformShuffleXor = 346, - OpGroupNonUniformShuffleUp = 347, - OpGroupNonUniformShuffleDown = 348, - OpGroupNonUniformIAdd = 349, - OpGroupNonUniformFAdd = 350, - OpGroupNonUniformIMul = 351, - OpGroupNonUniformFMul = 352, - OpGroupNonUniformSMin = 353, - OpGroupNonUniformUMin = 354, - OpGroupNonUniformFMin = 355, - OpGroupNonUniformSMax = 356, - OpGroupNonUniformUMax = 357, - OpGroupNonUniformFMax = 358, - OpGroupNonUniformBitwiseAnd = 359, - OpGroupNonUniformBitwiseOr = 360, - OpGroupNonUniformBitwiseXor = 361, - OpGroupNonUniformLogicalAnd = 362, - OpGroupNonUniformLogicalOr = 363, - OpGroupNonUniformLogicalXor = 364, - OpGroupNonUniformQuadBroadcast = 365, - OpGroupNonUniformQuadSwap = 366, - OpCopyLogical = 400, - OpPtrEqual = 401, - OpPtrNotEqual = 402, - OpPtrDiff = 403, - OpSubgroupBallotKHR = 4421, - OpSubgroupFirstInvocationKHR = 4422, - OpSubgroupAllKHR = 4428, - OpSubgroupAnyKHR = 4429, - OpSubgroupAllEqualKHR = 4430, - OpSubgroupReadInvocationKHR = 4432, - OpGroupIAddNonUniformAMD = 5000, - OpGroupFAddNonUniformAMD = 5001, - OpGroupFMinNonUniformAMD = 5002, - OpGroupUMinNonUniformAMD = 5003, - OpGroupSMinNonUniformAMD = 5004, - OpGroupFMaxNonUniformAMD = 5005, - OpGroupUMaxNonUniformAMD = 5006, - OpGroupSMaxNonUniformAMD = 5007, - OpFragmentMaskFetchAMD = 5011, - OpFragmentFetchAMD = 5012, - OpReadClockKHR = 5056, - OpImageSampleFootprintNV = 5283, - OpGroupNonUniformPartitionNV = 5296, - OpWritePackedPrimitiveIndices4x8NV = 5299, - OpReportIntersectionNV = 5334, - OpIgnoreIntersectionNV = 5335, - OpTerminateRayNV = 5336, - OpTraceNV = 5337, - OpTypeAccelerationStructureNV = 5341, - OpExecuteCallableNV = 5344, - OpTypeCooperativeMatrixNV = 5358, - OpCooperativeMatrixLoadNV = 5359, - OpCooperativeMatrixStoreNV = 5360, - OpCooperativeMatrixMulAddNV = 5361, - OpCooperativeMatrixLengthNV = 5362, - OpBeginInvocationInterlockEXT = 5364, - OpEndInvocationInterlockEXT = 5365, - OpDemoteToHelperInvocationEXT = 5380, - OpIsHelperInvocationEXT = 5381, - OpSubgroupShuffleINTEL = 5571, - OpSubgroupShuffleDownINTEL = 5572, - OpSubgroupShuffleUpINTEL = 5573, - OpSubgroupShuffleXorINTEL = 5574, - OpSubgroupBlockReadINTEL = 5575, - OpSubgroupBlockWriteINTEL = 5576, - OpSubgroupImageBlockReadINTEL = 5577, - OpSubgroupImageBlockWriteINTEL = 5578, - OpSubgroupImageMediaBlockReadINTEL = 5580, - OpSubgroupImageMediaBlockWriteINTEL = 5581, - OpUCountLeadingZerosINTEL = 5585, - OpUCountTrailingZerosINTEL = 5586, - OpAbsISubINTEL = 5587, - OpAbsUSubINTEL = 5588, - OpIAddSatINTEL = 5589, - OpUAddSatINTEL = 5590, - OpIAverageINTEL = 5591, - OpUAverageINTEL = 5592, - OpIAverageRoundedINTEL = 5593, - OpUAverageRoundedINTEL = 5594, - OpISubSatINTEL = 5595, - OpUSubSatINTEL = 5596, - OpIMul32x16INTEL = 5597, - OpUMul32x16INTEL = 5598, - OpDecorateString = 5632, - OpDecorateStringGOOGLE = 5632, - OpMemberDecorateString = 5633, - OpMemberDecorateStringGOOGLE = 5633, - OpVmeImageINTEL = 5699, - OpTypeVmeImageINTEL = 5700, - OpTypeAvcImePayloadINTEL = 5701, - OpTypeAvcRefPayloadINTEL = 5702, - OpTypeAvcSicPayloadINTEL = 5703, - OpTypeAvcMcePayloadINTEL = 5704, - OpTypeAvcMceResultINTEL = 5705, - OpTypeAvcImeResultINTEL = 5706, - OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707, - OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708, - OpTypeAvcImeSingleReferenceStreaminINTEL = 5709, - OpTypeAvcImeDualReferenceStreaminINTEL = 5710, - OpTypeAvcRefResultINTEL = 5711, - OpTypeAvcSicResultINTEL = 5712, - OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713, - OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714, - OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715, - OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716, - OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717, - OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718, - OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719, - OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720, - OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721, - OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722, - OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723, - OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724, - OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725, - OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726, - OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727, - OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728, - OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729, - OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730, - OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731, - OpSubgroupAvcMceConvertToImePayloadINTEL = 5732, - OpSubgroupAvcMceConvertToImeResultINTEL = 5733, - OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734, - OpSubgroupAvcMceConvertToRefResultINTEL = 5735, - OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736, - OpSubgroupAvcMceConvertToSicResultINTEL = 5737, - OpSubgroupAvcMceGetMotionVectorsINTEL = 5738, - OpSubgroupAvcMceGetInterDistortionsINTEL = 5739, - OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740, - OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741, - OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742, - OpSubgroupAvcMceGetInterDirectionsINTEL = 5743, - OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744, - OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745, - OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746, - OpSubgroupAvcImeInitializeINTEL = 5747, - OpSubgroupAvcImeSetSingleReferenceINTEL = 5748, - OpSubgroupAvcImeSetDualReferenceINTEL = 5749, - OpSubgroupAvcImeRefWindowSizeINTEL = 5750, - OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751, - OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752, - OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753, - OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754, - OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755, - OpSubgroupAvcImeSetWeightedSadINTEL = 5756, - OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757, - OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758, - OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759, - OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760, - OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761, - OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762, - OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763, - OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764, - OpSubgroupAvcImeConvertToMceResultINTEL = 5765, - OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766, - OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767, - OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768, - OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769, - OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770, - OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771, - OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772, - OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773, - OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774, - OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775, - OpSubgroupAvcImeGetBorderReachedINTEL = 5776, - OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777, - OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778, - OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779, - OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780, - OpSubgroupAvcFmeInitializeINTEL = 5781, - OpSubgroupAvcBmeInitializeINTEL = 5782, - OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783, - OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784, - OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785, - OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786, - OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787, - OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788, - OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789, - OpSubgroupAvcRefConvertToMceResultINTEL = 5790, - OpSubgroupAvcSicInitializeINTEL = 5791, - OpSubgroupAvcSicConfigureSkcINTEL = 5792, - OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793, - OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794, - OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795, - OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796, - OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797, - OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798, - OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799, - OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800, - OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801, - OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802, - OpSubgroupAvcSicEvaluateIpeINTEL = 5803, - OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804, - OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805, - OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806, - OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807, - OpSubgroupAvcSicConvertToMceResultINTEL = 5808, - OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809, - OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810, - OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811, - OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812, - OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813, - OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814, - OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815, - OpSubgroupAvcSicGetInterRawSadsINTEL = 5816, - Max = 0x7fffffff, -}; - -#ifdef SPV_ENABLE_UTILITY_CODE -inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { - *hasResult = *hasResultType = false; - switch (opcode) { - default: /* unknown opcode */ break; - case Op::OpNop: *hasResult = false; *hasResultType = false; break; - case Op::OpUndef: *hasResult = true; *hasResultType = true; break; - case Op::OpSourceContinued: *hasResult = false; *hasResultType = false; break; - case Op::OpSource: *hasResult = false; *hasResultType = false; break; - case Op::OpSourceExtension: *hasResult = false; *hasResultType = false; break; - case Op::OpName: *hasResult = false; *hasResultType = false; break; - case Op::OpMemberName: *hasResult = false; *hasResultType = false; break; - case Op::OpString: *hasResult = true; *hasResultType = false; break; - case Op::OpLine: *hasResult = false; *hasResultType = false; break; - case Op::OpExtension: *hasResult = false; *hasResultType = false; break; - case Op::OpExtInstImport: *hasResult = true; *hasResultType = false; break; - case Op::OpExtInst: *hasResult = true; *hasResultType = true; break; - case Op::OpMemoryModel: *hasResult = false; *hasResultType = false; break; - case Op::OpEntryPoint: *hasResult = false; *hasResultType = false; break; - case Op::OpExecutionMode: *hasResult = false; *hasResultType = false; break; - case Op::OpCapability: *hasResult = false; *hasResultType = false; break; - case Op::OpTypeVoid: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeBool: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeInt: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeFloat: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeVector: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeMatrix: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeImage: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeSampler: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeSampledImage: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeArray: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeStruct: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeOpaque: *hasResult = true; *hasResultType = false; break; - case Op::OpTypePointer: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeFunction: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeEvent: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeReserveId: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeQueue: *hasResult = true; *hasResultType = false; break; - case Op::OpTypePipe: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeForwardPointer: *hasResult = false; *hasResultType = false; break; - case Op::OpConstantTrue: *hasResult = true; *hasResultType = true; break; - case Op::OpConstantFalse: *hasResult = true; *hasResultType = true; break; - case Op::OpConstant: *hasResult = true; *hasResultType = true; break; - case Op::OpConstantComposite: *hasResult = true; *hasResultType = true; break; - case Op::OpConstantSampler: *hasResult = true; *hasResultType = true; break; - case Op::OpConstantNull: *hasResult = true; *hasResultType = true; break; - case Op::OpSpecConstantTrue: *hasResult = true; *hasResultType = true; break; - case Op::OpSpecConstantFalse: *hasResult = true; *hasResultType = true; break; - case Op::OpSpecConstant: *hasResult = true; *hasResultType = true; break; - case Op::OpSpecConstantComposite: *hasResult = true; *hasResultType = true; break; - case Op::OpSpecConstantOp: *hasResult = true; *hasResultType = true; break; - case Op::OpFunction: *hasResult = true; *hasResultType = true; break; - case Op::OpFunctionParameter: *hasResult = true; *hasResultType = true; break; - case Op::OpFunctionEnd: *hasResult = false; *hasResultType = false; break; - case Op::OpFunctionCall: *hasResult = true; *hasResultType = true; break; - case Op::OpVariable: *hasResult = true; *hasResultType = true; break; - case Op::OpImageTexelPointer: *hasResult = true; *hasResultType = true; break; - case Op::OpLoad: *hasResult = true; *hasResultType = true; break; - case Op::OpStore: *hasResult = false; *hasResultType = false; break; - case Op::OpCopyMemory: *hasResult = false; *hasResultType = false; break; - case Op::OpCopyMemorySized: *hasResult = false; *hasResultType = false; break; - case Op::OpAccessChain: *hasResult = true; *hasResultType = true; break; - case Op::OpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break; - case Op::OpPtrAccessChain: *hasResult = true; *hasResultType = true; break; - case Op::OpArrayLength: *hasResult = true; *hasResultType = true; break; - case Op::OpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break; - case Op::OpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break; - case Op::OpDecorate: *hasResult = false; *hasResultType = false; break; - case Op::OpMemberDecorate: *hasResult = false; *hasResultType = false; break; - case Op::OpDecorationGroup: *hasResult = true; *hasResultType = false; break; - case Op::OpGroupDecorate: *hasResult = false; *hasResultType = false; break; - case Op::OpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break; - case Op::OpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break; - case Op::OpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break; - case Op::OpVectorShuffle: *hasResult = true; *hasResultType = true; break; - case Op::OpCompositeConstruct: *hasResult = true; *hasResultType = true; break; - case Op::OpCompositeExtract: *hasResult = true; *hasResultType = true; break; - case Op::OpCompositeInsert: *hasResult = true; *hasResultType = true; break; - case Op::OpCopyObject: *hasResult = true; *hasResultType = true; break; - case Op::OpTranspose: *hasResult = true; *hasResultType = true; break; - case Op::OpSampledImage: *hasResult = true; *hasResultType = true; break; - case Op::OpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break; - case Op::OpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break; - case Op::OpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break; - case Op::OpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break; - case Op::OpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break; - case Op::OpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break; - case Op::OpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break; - case Op::OpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break; - case Op::OpImageFetch: *hasResult = true; *hasResultType = true; break; - case Op::OpImageGather: *hasResult = true; *hasResultType = true; break; - case Op::OpImageDrefGather: *hasResult = true; *hasResultType = true; break; - case Op::OpImageRead: *hasResult = true; *hasResultType = true; break; - case Op::OpImageWrite: *hasResult = false; *hasResultType = false; break; - case Op::OpImage: *hasResult = true; *hasResultType = true; break; - case Op::OpImageQueryFormat: *hasResult = true; *hasResultType = true; break; - case Op::OpImageQueryOrder: *hasResult = true; *hasResultType = true; break; - case Op::OpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break; - case Op::OpImageQuerySize: *hasResult = true; *hasResultType = true; break; - case Op::OpImageQueryLod: *hasResult = true; *hasResultType = true; break; - case Op::OpImageQueryLevels: *hasResult = true; *hasResultType = true; break; - case Op::OpImageQuerySamples: *hasResult = true; *hasResultType = true; break; - case Op::OpConvertFToU: *hasResult = true; *hasResultType = true; break; - case Op::OpConvertFToS: *hasResult = true; *hasResultType = true; break; - case Op::OpConvertSToF: *hasResult = true; *hasResultType = true; break; - case Op::OpConvertUToF: *hasResult = true; *hasResultType = true; break; - case Op::OpUConvert: *hasResult = true; *hasResultType = true; break; - case Op::OpSConvert: *hasResult = true; *hasResultType = true; break; - case Op::OpFConvert: *hasResult = true; *hasResultType = true; break; - case Op::OpQuantizeToF16: *hasResult = true; *hasResultType = true; break; - case Op::OpConvertPtrToU: *hasResult = true; *hasResultType = true; break; - case Op::OpSatConvertSToU: *hasResult = true; *hasResultType = true; break; - case Op::OpSatConvertUToS: *hasResult = true; *hasResultType = true; break; - case Op::OpConvertUToPtr: *hasResult = true; *hasResultType = true; break; - case Op::OpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break; - case Op::OpGenericCastToPtr: *hasResult = true; *hasResultType = true; break; - case Op::OpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break; - case Op::OpBitcast: *hasResult = true; *hasResultType = true; break; - case Op::OpSNegate: *hasResult = true; *hasResultType = true; break; - case Op::OpFNegate: *hasResult = true; *hasResultType = true; break; - case Op::OpIAdd: *hasResult = true; *hasResultType = true; break; - case Op::OpFAdd: *hasResult = true; *hasResultType = true; break; - case Op::OpISub: *hasResult = true; *hasResultType = true; break; - case Op::OpFSub: *hasResult = true; *hasResultType = true; break; - case Op::OpIMul: *hasResult = true; *hasResultType = true; break; - case Op::OpFMul: *hasResult = true; *hasResultType = true; break; - case Op::OpUDiv: *hasResult = true; *hasResultType = true; break; - case Op::OpSDiv: *hasResult = true; *hasResultType = true; break; - case Op::OpFDiv: *hasResult = true; *hasResultType = true; break; - case Op::OpUMod: *hasResult = true; *hasResultType = true; break; - case Op::OpSRem: *hasResult = true; *hasResultType = true; break; - case Op::OpSMod: *hasResult = true; *hasResultType = true; break; - case Op::OpFRem: *hasResult = true; *hasResultType = true; break; - case Op::OpFMod: *hasResult = true; *hasResultType = true; break; - case Op::OpVectorTimesScalar: *hasResult = true; *hasResultType = true; break; - case Op::OpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break; - case Op::OpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break; - case Op::OpMatrixTimesVector: *hasResult = true; *hasResultType = true; break; - case Op::OpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break; - case Op::OpOuterProduct: *hasResult = true; *hasResultType = true; break; - case Op::OpDot: *hasResult = true; *hasResultType = true; break; - case Op::OpIAddCarry: *hasResult = true; *hasResultType = true; break; - case Op::OpISubBorrow: *hasResult = true; *hasResultType = true; break; - case Op::OpUMulExtended: *hasResult = true; *hasResultType = true; break; - case Op::OpSMulExtended: *hasResult = true; *hasResultType = true; break; - case Op::OpAny: *hasResult = true; *hasResultType = true; break; - case Op::OpAll: *hasResult = true; *hasResultType = true; break; - case Op::OpIsNan: *hasResult = true; *hasResultType = true; break; - case Op::OpIsInf: *hasResult = true; *hasResultType = true; break; - case Op::OpIsFinite: *hasResult = true; *hasResultType = true; break; - case Op::OpIsNormal: *hasResult = true; *hasResultType = true; break; - case Op::OpSignBitSet: *hasResult = true; *hasResultType = true; break; - case Op::OpLessOrGreater: *hasResult = true; *hasResultType = true; break; - case Op::OpOrdered: *hasResult = true; *hasResultType = true; break; - case Op::OpUnordered: *hasResult = true; *hasResultType = true; break; - case Op::OpLogicalEqual: *hasResult = true; *hasResultType = true; break; - case Op::OpLogicalNotEqual: *hasResult = true; *hasResultType = true; break; - case Op::OpLogicalOr: *hasResult = true; *hasResultType = true; break; - case Op::OpLogicalAnd: *hasResult = true; *hasResultType = true; break; - case Op::OpLogicalNot: *hasResult = true; *hasResultType = true; break; - case Op::OpSelect: *hasResult = true; *hasResultType = true; break; - case Op::OpIEqual: *hasResult = true; *hasResultType = true; break; - case Op::OpINotEqual: *hasResult = true; *hasResultType = true; break; - case Op::OpUGreaterThan: *hasResult = true; *hasResultType = true; break; - case Op::OpSGreaterThan: *hasResult = true; *hasResultType = true; break; - case Op::OpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break; - case Op::OpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break; - case Op::OpULessThan: *hasResult = true; *hasResultType = true; break; - case Op::OpSLessThan: *hasResult = true; *hasResultType = true; break; - case Op::OpULessThanEqual: *hasResult = true; *hasResultType = true; break; - case Op::OpSLessThanEqual: *hasResult = true; *hasResultType = true; break; - case Op::OpFOrdEqual: *hasResult = true; *hasResultType = true; break; - case Op::OpFUnordEqual: *hasResult = true; *hasResultType = true; break; - case Op::OpFOrdNotEqual: *hasResult = true; *hasResultType = true; break; - case Op::OpFUnordNotEqual: *hasResult = true; *hasResultType = true; break; - case Op::OpFOrdLessThan: *hasResult = true; *hasResultType = true; break; - case Op::OpFUnordLessThan: *hasResult = true; *hasResultType = true; break; - case Op::OpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break; - case Op::OpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break; - case Op::OpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break; - case Op::OpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break; - case Op::OpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break; - case Op::OpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break; - case Op::OpShiftRightLogical: *hasResult = true; *hasResultType = true; break; - case Op::OpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break; - case Op::OpShiftLeftLogical: *hasResult = true; *hasResultType = true; break; - case Op::OpBitwiseOr: *hasResult = true; *hasResultType = true; break; - case Op::OpBitwiseXor: *hasResult = true; *hasResultType = true; break; - case Op::OpBitwiseAnd: *hasResult = true; *hasResultType = true; break; - case Op::OpNot: *hasResult = true; *hasResultType = true; break; - case Op::OpBitFieldInsert: *hasResult = true; *hasResultType = true; break; - case Op::OpBitFieldSExtract: *hasResult = true; *hasResultType = true; break; - case Op::OpBitFieldUExtract: *hasResult = true; *hasResultType = true; break; - case Op::OpBitReverse: *hasResult = true; *hasResultType = true; break; - case Op::OpBitCount: *hasResult = true; *hasResultType = true; break; - case Op::OpDPdx: *hasResult = true; *hasResultType = true; break; - case Op::OpDPdy: *hasResult = true; *hasResultType = true; break; - case Op::OpFwidth: *hasResult = true; *hasResultType = true; break; - case Op::OpDPdxFine: *hasResult = true; *hasResultType = true; break; - case Op::OpDPdyFine: *hasResult = true; *hasResultType = true; break; - case Op::OpFwidthFine: *hasResult = true; *hasResultType = true; break; - case Op::OpDPdxCoarse: *hasResult = true; *hasResultType = true; break; - case Op::OpDPdyCoarse: *hasResult = true; *hasResultType = true; break; - case Op::OpFwidthCoarse: *hasResult = true; *hasResultType = true; break; - case Op::OpEmitVertex: *hasResult = false; *hasResultType = false; break; - case Op::OpEndPrimitive: *hasResult = false; *hasResultType = false; break; - case Op::OpEmitStreamVertex: *hasResult = false; *hasResultType = false; break; - case Op::OpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break; - case Op::OpControlBarrier: *hasResult = false; *hasResultType = false; break; - case Op::OpMemoryBarrier: *hasResult = false; *hasResultType = false; break; - case Op::OpAtomicLoad: *hasResult = true; *hasResultType = true; break; - case Op::OpAtomicStore: *hasResult = false; *hasResultType = false; break; - case Op::OpAtomicExchange: *hasResult = true; *hasResultType = true; break; - case Op::OpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break; - case Op::OpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break; - case Op::OpAtomicIIncrement: *hasResult = true; *hasResultType = true; break; - case Op::OpAtomicIDecrement: *hasResult = true; *hasResultType = true; break; - case Op::OpAtomicIAdd: *hasResult = true; *hasResultType = true; break; - case Op::OpAtomicISub: *hasResult = true; *hasResultType = true; break; - case Op::OpAtomicSMin: *hasResult = true; *hasResultType = true; break; - case Op::OpAtomicUMin: *hasResult = true; *hasResultType = true; break; - case Op::OpAtomicSMax: *hasResult = true; *hasResultType = true; break; - case Op::OpAtomicUMax: *hasResult = true; *hasResultType = true; break; - case Op::OpAtomicAnd: *hasResult = true; *hasResultType = true; break; - case Op::OpAtomicOr: *hasResult = true; *hasResultType = true; break; - case Op::OpAtomicXor: *hasResult = true; *hasResultType = true; break; - case Op::OpPhi: *hasResult = true; *hasResultType = true; break; - case Op::OpLoopMerge: *hasResult = false; *hasResultType = false; break; - case Op::OpSelectionMerge: *hasResult = false; *hasResultType = false; break; - case Op::OpLabel: *hasResult = true; *hasResultType = false; break; - case Op::OpBranch: *hasResult = false; *hasResultType = false; break; - case Op::OpBranchConditional: *hasResult = false; *hasResultType = false; break; - case Op::OpSwitch: *hasResult = false; *hasResultType = false; break; - case Op::OpKill: *hasResult = false; *hasResultType = false; break; - case Op::OpReturn: *hasResult = false; *hasResultType = false; break; - case Op::OpReturnValue: *hasResult = false; *hasResultType = false; break; - case Op::OpUnreachable: *hasResult = false; *hasResultType = false; break; - case Op::OpLifetimeStart: *hasResult = false; *hasResultType = false; break; - case Op::OpLifetimeStop: *hasResult = false; *hasResultType = false; break; - case Op::OpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupWaitEvents: *hasResult = false; *hasResultType = false; break; - case Op::OpGroupAll: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupAny: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupBroadcast: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupIAdd: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupFAdd: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupFMin: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupUMin: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupSMin: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupFMax: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupUMax: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupSMax: *hasResult = true; *hasResultType = true; break; - case Op::OpReadPipe: *hasResult = true; *hasResultType = true; break; - case Op::OpWritePipe: *hasResult = true; *hasResultType = true; break; - case Op::OpReservedReadPipe: *hasResult = true; *hasResultType = true; break; - case Op::OpReservedWritePipe: *hasResult = true; *hasResultType = true; break; - case Op::OpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break; - case Op::OpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break; - case Op::OpCommitReadPipe: *hasResult = false; *hasResultType = false; break; - case Op::OpCommitWritePipe: *hasResult = false; *hasResultType = false; break; - case Op::OpIsValidReserveId: *hasResult = true; *hasResultType = true; break; - case Op::OpGetNumPipePackets: *hasResult = true; *hasResultType = true; break; - case Op::OpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break; - case Op::OpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break; - case Op::OpEnqueueMarker: *hasResult = true; *hasResultType = true; break; - case Op::OpEnqueueKernel: *hasResult = true; *hasResultType = true; break; - case Op::OpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break; - case Op::OpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break; - case Op::OpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break; - case Op::OpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break; - case Op::OpRetainEvent: *hasResult = false; *hasResultType = false; break; - case Op::OpReleaseEvent: *hasResult = false; *hasResultType = false; break; - case Op::OpCreateUserEvent: *hasResult = true; *hasResultType = true; break; - case Op::OpIsValidEvent: *hasResult = true; *hasResultType = true; break; - case Op::OpSetUserEventStatus: *hasResult = false; *hasResultType = false; break; - case Op::OpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break; - case Op::OpGetDefaultQueue: *hasResult = true; *hasResultType = true; break; - case Op::OpBuildNDRange: *hasResult = true; *hasResultType = true; break; - case Op::OpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break; - case Op::OpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break; - case Op::OpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break; - case Op::OpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break; - case Op::OpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break; - case Op::OpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break; - case Op::OpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break; - case Op::OpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break; - case Op::OpImageSparseFetch: *hasResult = true; *hasResultType = true; break; - case Op::OpImageSparseGather: *hasResult = true; *hasResultType = true; break; - case Op::OpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break; - case Op::OpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break; - case Op::OpNoLine: *hasResult = false; *hasResultType = false; break; - case Op::OpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break; - case Op::OpAtomicFlagClear: *hasResult = false; *hasResultType = false; break; - case Op::OpImageSparseRead: *hasResult = true; *hasResultType = true; break; - case Op::OpSizeOf: *hasResult = true; *hasResultType = true; break; - case Op::OpTypePipeStorage: *hasResult = true; *hasResultType = false; break; - case Op::OpConstantPipeStorage: *hasResult = true; *hasResultType = true; break; - case Op::OpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break; - case Op::OpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break; - case Op::OpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break; - case Op::OpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break; - case Op::OpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break; - case Op::OpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break; - case Op::OpModuleProcessed: *hasResult = false; *hasResultType = false; break; - case Op::OpExecutionModeId: *hasResult = false; *hasResultType = false; break; - case Op::OpDecorateId: *hasResult = false; *hasResultType = false; break; - case Op::OpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break; - case Op::OpCopyLogical: *hasResult = true; *hasResultType = true; break; - case Op::OpPtrEqual: *hasResult = true; *hasResultType = true; break; - case Op::OpPtrNotEqual: *hasResult = true; *hasResultType = true; break; - case Op::OpPtrDiff: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; - case Op::OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break; - case Op::OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break; - case Op::OpReadClockKHR: *hasResult = true; *hasResultType = true; break; - case Op::OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break; - case Op::OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break; - case Op::OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break; - case Op::OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break; - case Op::OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break; - case Op::OpTerminateRayNV: *hasResult = false; *hasResultType = false; break; - case Op::OpTraceNV: *hasResult = false; *hasResultType = false; break; - case Op::OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break; - case Op::OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break; - case Op::OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break; - case Op::OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break; - case Op::OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break; - case Op::OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break; - case Op::OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break; - case Op::OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; - case Op::OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; - case Op::OpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break; - case Op::OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; - case Op::OpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; - case Op::OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; - case Op::OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpIAverageINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpUAverageINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpISubSatINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpDecorateString: *hasResult = false; *hasResultType = false; break; - case Op::OpMemberDecorateString: *hasResult = false; *hasResultType = false; break; - case Op::OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break; - case Op::OpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break; - case Op::OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break; - case Op::OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break; - } -} -#endif /* SPV_ENABLE_UTILITY_CODE */ - -// Overload operator| for mask bit combining - -inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); } -inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); } -inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); } -inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); } -inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); } -inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); } -inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); } -inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); } - -} // end namespace spv - -#endif // #ifndef spirv_HPP - diff --git a/external/vulkan/windows/include/vulkan/spirv.json b/external/vulkan/windows/include/vulkan/spirv.json deleted file mode 100644 index b08a1a5d..00000000 --- a/external/vulkan/windows/include/vulkan/spirv.json +++ /dev/null @@ -1,1437 +0,0 @@ -{ - "spv": - { - "meta": - { - "Comment": - [ - [ - "Copyright (c) 2014-2019 The Khronos Group Inc.", - "", - "Permission is hereby granted, free of charge, to any person obtaining a copy", - "of this software and/or associated documentation files (the \"Materials\"),", - "to deal in the Materials without restriction, including without limitation", - "the rights to use, copy, modify, merge, publish, distribute, sublicense,", - "and/or sell copies of the Materials, and to permit persons to whom the", - "Materials are furnished to do so, subject to the following conditions:", - "", - "The above copyright notice and this permission notice shall be included in", - "all copies or substantial portions of the Materials.", - "", - "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS", - "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND", - "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ", - "", - "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS", - "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", - "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL", - "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", - "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING", - "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS", - "IN THE MATERIALS." - ], - [ - "This header is automatically generated by the same tool that creates", - "the Binary Section of the SPIR-V specification." - ], - [ - "Enumeration tokens for SPIR-V, in various styles:", - " C, C++, C++11, JSON, Lua, Python, C#, D", - "", - "- C will have tokens with a \"Spv\" prefix, e.g.: SpvSourceLanguageGLSL", - "- C++ will have tokens in the \"spv\" name space, e.g.: spv::SourceLanguageGLSL", - "- C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL", - "- Lua will use tables, e.g.: spv.SourceLanguage.GLSL", - "- Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']", - "- C# will use enum classes in the Specification class located in the \"Spv\" namespace,", - " e.g.: Spv.Specification.SourceLanguage.GLSL", - "- D will have tokens under the \"spv\" module, e.g: spv.SourceLanguage.GLSL", - "", - "Some tokens act like mask values, which can be OR'd together,", - "while others are mutually exclusive. The mask-like ones have", - "\"Mask\" in their name, and a parallel enum that has the shift", - "amount (1 << x) for each corresponding enumerant." - ] - ], - "MagicNumber": 119734787, - "Version": 66816, - "Revision": 1, - "OpCodeMask": 65535, - "WordCountShift": 16 - }, - "enum": - [ - { - "Name": "SourceLanguage", - "Type": "Value", - "Values": - { - "Unknown": 0, - "ESSL": 1, - "GLSL": 2, - "OpenCL_C": 3, - "OpenCL_CPP": 4, - "HLSL": 5 - } - }, - { - "Name": "ExecutionModel", - "Type": "Value", - "Values": - { - "Vertex": 0, - "TessellationControl": 1, - "TessellationEvaluation": 2, - "Geometry": 3, - "Fragment": 4, - "GLCompute": 5, - "Kernel": 6, - "TaskNV": 5267, - "MeshNV": 5268, - "RayGenerationNV": 5313, - "IntersectionNV": 5314, - "AnyHitNV": 5315, - "ClosestHitNV": 5316, - "MissNV": 5317, - "CallableNV": 5318 - } - }, - { - "Name": "AddressingModel", - "Type": "Value", - "Values": - { - "Logical": 0, - "Physical32": 1, - "Physical64": 2, - "PhysicalStorageBuffer64": 5348, - "PhysicalStorageBuffer64EXT": 5348 - } - }, - { - "Name": "MemoryModel", - "Type": "Value", - "Values": - { - "Simple": 0, - "GLSL450": 1, - "OpenCL": 2, - "Vulkan": 3, - "VulkanKHR": 3 - } - }, - { - "Name": "ExecutionMode", - "Type": "Value", - "Values": - { - "Invocations": 0, - "SpacingEqual": 1, - "SpacingFractionalEven": 2, - "SpacingFractionalOdd": 3, - "VertexOrderCw": 4, - "VertexOrderCcw": 5, - "PixelCenterInteger": 6, - "OriginUpperLeft": 7, - "OriginLowerLeft": 8, - "EarlyFragmentTests": 9, - "PointMode": 10, - "Xfb": 11, - "DepthReplacing": 12, - "DepthGreater": 14, - "DepthLess": 15, - "DepthUnchanged": 16, - "LocalSize": 17, - "LocalSizeHint": 18, - "InputPoints": 19, - "InputLines": 20, - "InputLinesAdjacency": 21, - "Triangles": 22, - "InputTrianglesAdjacency": 23, - "Quads": 24, - "Isolines": 25, - "OutputVertices": 26, - "OutputPoints": 27, - "OutputLineStrip": 28, - "OutputTriangleStrip": 29, - "VecTypeHint": 30, - "ContractionOff": 31, - "Initializer": 33, - "Finalizer": 34, - "SubgroupSize": 35, - "SubgroupsPerWorkgroup": 36, - "SubgroupsPerWorkgroupId": 37, - "LocalSizeId": 38, - "LocalSizeHintId": 39, - "PostDepthCoverage": 4446, - "DenormPreserve": 4459, - "DenormFlushToZero": 4460, - "SignedZeroInfNanPreserve": 4461, - "RoundingModeRTE": 4462, - "RoundingModeRTZ": 4463, - "StencilRefReplacingEXT": 5027, - "OutputLinesNV": 5269, - "OutputPrimitivesNV": 5270, - "DerivativeGroupQuadsNV": 5289, - "DerivativeGroupLinearNV": 5290, - "OutputTrianglesNV": 5298, - "PixelInterlockOrderedEXT": 5366, - "PixelInterlockUnorderedEXT": 5367, - "SampleInterlockOrderedEXT": 5368, - "SampleInterlockUnorderedEXT": 5369, - "ShadingRateInterlockOrderedEXT": 5370, - "ShadingRateInterlockUnorderedEXT": 5371 - } - }, - { - "Name": "StorageClass", - "Type": "Value", - "Values": - { - "UniformConstant": 0, - "Input": 1, - "Uniform": 2, - "Output": 3, - "Workgroup": 4, - "CrossWorkgroup": 5, - "Private": 6, - "Function": 7, - "Generic": 8, - "PushConstant": 9, - "AtomicCounter": 10, - "Image": 11, - "StorageBuffer": 12, - "CallableDataNV": 5328, - "IncomingCallableDataNV": 5329, - "RayPayloadNV": 5338, - "HitAttributeNV": 5339, - "IncomingRayPayloadNV": 5342, - "ShaderRecordBufferNV": 5343, - "PhysicalStorageBuffer": 5349, - "PhysicalStorageBufferEXT": 5349 - } - }, - { - "Name": "Dim", - "Type": "Value", - "Values": - { - "Dim1D": 0, - "Dim2D": 1, - "Dim3D": 2, - "Cube": 3, - "Rect": 4, - "Buffer": 5, - "SubpassData": 6 - } - }, - { - "Name": "SamplerAddressingMode", - "Type": "Value", - "Values": - { - "None": 0, - "ClampToEdge": 1, - "Clamp": 2, - "Repeat": 3, - "RepeatMirrored": 4 - } - }, - { - "Name": "SamplerFilterMode", - "Type": "Value", - "Values": - { - "Nearest": 0, - "Linear": 1 - } - }, - { - "Name": "ImageFormat", - "Type": "Value", - "Values": - { - "Unknown": 0, - "Rgba32f": 1, - "Rgba16f": 2, - "R32f": 3, - "Rgba8": 4, - "Rgba8Snorm": 5, - "Rg32f": 6, - "Rg16f": 7, - "R11fG11fB10f": 8, - "R16f": 9, - "Rgba16": 10, - "Rgb10A2": 11, - "Rg16": 12, - "Rg8": 13, - "R16": 14, - "R8": 15, - "Rgba16Snorm": 16, - "Rg16Snorm": 17, - "Rg8Snorm": 18, - "R16Snorm": 19, - "R8Snorm": 20, - "Rgba32i": 21, - "Rgba16i": 22, - "Rgba8i": 23, - "R32i": 24, - "Rg32i": 25, - "Rg16i": 26, - "Rg8i": 27, - "R16i": 28, - "R8i": 29, - "Rgba32ui": 30, - "Rgba16ui": 31, - "Rgba8ui": 32, - "R32ui": 33, - "Rgb10a2ui": 34, - "Rg32ui": 35, - "Rg16ui": 36, - "Rg8ui": 37, - "R16ui": 38, - "R8ui": 39 - } - }, - { - "Name": "ImageChannelOrder", - "Type": "Value", - "Values": - { - "R": 0, - "A": 1, - "RG": 2, - "RA": 3, - "RGB": 4, - "RGBA": 5, - "BGRA": 6, - "ARGB": 7, - "Intensity": 8, - "Luminance": 9, - "Rx": 10, - "RGx": 11, - "RGBx": 12, - "Depth": 13, - "DepthStencil": 14, - "sRGB": 15, - "sRGBx": 16, - "sRGBA": 17, - "sBGRA": 18, - "ABGR": 19 - } - }, - { - "Name": "ImageChannelDataType", - "Type": "Value", - "Values": - { - "SnormInt8": 0, - "SnormInt16": 1, - "UnormInt8": 2, - "UnormInt16": 3, - "UnormShort565": 4, - "UnormShort555": 5, - "UnormInt101010": 6, - "SignedInt8": 7, - "SignedInt16": 8, - "SignedInt32": 9, - "UnsignedInt8": 10, - "UnsignedInt16": 11, - "UnsignedInt32": 12, - "HalfFloat": 13, - "Float": 14, - "UnormInt24": 15, - "UnormInt101010_2": 16 - } - }, - { - "Name": "ImageOperands", - "Type": "Bit", - "Values": - { - "Bias": 0, - "Lod": 1, - "Grad": 2, - "ConstOffset": 3, - "Offset": 4, - "ConstOffsets": 5, - "Sample": 6, - "MinLod": 7, - "MakeTexelAvailable": 8, - "MakeTexelAvailableKHR": 8, - "MakeTexelVisible": 9, - "MakeTexelVisibleKHR": 9, - "NonPrivateTexel": 10, - "NonPrivateTexelKHR": 10, - "VolatileTexel": 11, - "VolatileTexelKHR": 11, - "SignExtend": 12, - "ZeroExtend": 13 - } - }, - { - "Name": "FPFastMathMode", - "Type": "Bit", - "Values": - { - "NotNaN": 0, - "NotInf": 1, - "NSZ": 2, - "AllowRecip": 3, - "Fast": 4 - } - }, - { - "Name": "FPRoundingMode", - "Type": "Value", - "Values": - { - "RTE": 0, - "RTZ": 1, - "RTP": 2, - "RTN": 3 - } - }, - { - "Name": "LinkageType", - "Type": "Value", - "Values": - { - "Export": 0, - "Import": 1 - } - }, - { - "Name": "AccessQualifier", - "Type": "Value", - "Values": - { - "ReadOnly": 0, - "WriteOnly": 1, - "ReadWrite": 2 - } - }, - { - "Name": "FunctionParameterAttribute", - "Type": "Value", - "Values": - { - "Zext": 0, - "Sext": 1, - "ByVal": 2, - "Sret": 3, - "NoAlias": 4, - "NoCapture": 5, - "NoWrite": 6, - "NoReadWrite": 7 - } - }, - { - "Name": "Decoration", - "Type": "Value", - "Values": - { - "RelaxedPrecision": 0, - "SpecId": 1, - "Block": 2, - "BufferBlock": 3, - "RowMajor": 4, - "ColMajor": 5, - "ArrayStride": 6, - "MatrixStride": 7, - "GLSLShared": 8, - "GLSLPacked": 9, - "CPacked": 10, - "BuiltIn": 11, - "NoPerspective": 13, - "Flat": 14, - "Patch": 15, - "Centroid": 16, - "Sample": 17, - "Invariant": 18, - "Restrict": 19, - "Aliased": 20, - "Volatile": 21, - "Constant": 22, - "Coherent": 23, - "NonWritable": 24, - "NonReadable": 25, - "Uniform": 26, - "UniformId": 27, - "SaturatedConversion": 28, - "Stream": 29, - "Location": 30, - "Component": 31, - "Index": 32, - "Binding": 33, - "DescriptorSet": 34, - "Offset": 35, - "XfbBuffer": 36, - "XfbStride": 37, - "FuncParamAttr": 38, - "FPRoundingMode": 39, - "FPFastMathMode": 40, - "LinkageAttributes": 41, - "NoContraction": 42, - "InputAttachmentIndex": 43, - "Alignment": 44, - "MaxByteOffset": 45, - "AlignmentId": 46, - "MaxByteOffsetId": 47, - "NoSignedWrap": 4469, - "NoUnsignedWrap": 4470, - "ExplicitInterpAMD": 4999, - "OverrideCoverageNV": 5248, - "PassthroughNV": 5250, - "ViewportRelativeNV": 5252, - "SecondaryViewportRelativeNV": 5256, - "PerPrimitiveNV": 5271, - "PerViewNV": 5272, - "PerTaskNV": 5273, - "PerVertexNV": 5285, - "NonUniform": 5300, - "NonUniformEXT": 5300, - "RestrictPointer": 5355, - "RestrictPointerEXT": 5355, - "AliasedPointer": 5356, - "AliasedPointerEXT": 5356, - "CounterBuffer": 5634, - "HlslCounterBufferGOOGLE": 5634, - "HlslSemanticGOOGLE": 5635, - "UserSemantic": 5635, - "UserTypeGOOGLE": 5636 - } - }, - { - "Name": "BuiltIn", - "Type": "Value", - "Values": - { - "Position": 0, - "PointSize": 1, - "ClipDistance": 3, - "CullDistance": 4, - "VertexId": 5, - "InstanceId": 6, - "PrimitiveId": 7, - "InvocationId": 8, - "Layer": 9, - "ViewportIndex": 10, - "TessLevelOuter": 11, - "TessLevelInner": 12, - "TessCoord": 13, - "PatchVertices": 14, - "FragCoord": 15, - "PointCoord": 16, - "FrontFacing": 17, - "SampleId": 18, - "SamplePosition": 19, - "SampleMask": 20, - "FragDepth": 22, - "HelperInvocation": 23, - "NumWorkgroups": 24, - "WorkgroupSize": 25, - "WorkgroupId": 26, - "LocalInvocationId": 27, - "GlobalInvocationId": 28, - "LocalInvocationIndex": 29, - "WorkDim": 30, - "GlobalSize": 31, - "EnqueuedWorkgroupSize": 32, - "GlobalOffset": 33, - "GlobalLinearId": 34, - "SubgroupSize": 36, - "SubgroupMaxSize": 37, - "NumSubgroups": 38, - "NumEnqueuedSubgroups": 39, - "SubgroupId": 40, - "SubgroupLocalInvocationId": 41, - "VertexIndex": 42, - "InstanceIndex": 43, - "SubgroupEqMask": 4416, - "SubgroupEqMaskKHR": 4416, - "SubgroupGeMask": 4417, - "SubgroupGeMaskKHR": 4417, - "SubgroupGtMask": 4418, - "SubgroupGtMaskKHR": 4418, - "SubgroupLeMask": 4419, - "SubgroupLeMaskKHR": 4419, - "SubgroupLtMask": 4420, - "SubgroupLtMaskKHR": 4420, - "BaseVertex": 4424, - "BaseInstance": 4425, - "DrawIndex": 4426, - "DeviceIndex": 4438, - "ViewIndex": 4440, - "BaryCoordNoPerspAMD": 4992, - "BaryCoordNoPerspCentroidAMD": 4993, - "BaryCoordNoPerspSampleAMD": 4994, - "BaryCoordSmoothAMD": 4995, - "BaryCoordSmoothCentroidAMD": 4996, - "BaryCoordSmoothSampleAMD": 4997, - "BaryCoordPullModelAMD": 4998, - "FragStencilRefEXT": 5014, - "ViewportMaskNV": 5253, - "SecondaryPositionNV": 5257, - "SecondaryViewportMaskNV": 5258, - "PositionPerViewNV": 5261, - "ViewportMaskPerViewNV": 5262, - "FullyCoveredEXT": 5264, - "TaskCountNV": 5274, - "PrimitiveCountNV": 5275, - "PrimitiveIndicesNV": 5276, - "ClipDistancePerViewNV": 5277, - "CullDistancePerViewNV": 5278, - "LayerPerViewNV": 5279, - "MeshViewCountNV": 5280, - "MeshViewIndicesNV": 5281, - "BaryCoordNV": 5286, - "BaryCoordNoPerspNV": 5287, - "FragSizeEXT": 5292, - "FragmentSizeNV": 5292, - "FragInvocationCountEXT": 5293, - "InvocationsPerPixelNV": 5293, - "LaunchIdNV": 5319, - "LaunchSizeNV": 5320, - "WorldRayOriginNV": 5321, - "WorldRayDirectionNV": 5322, - "ObjectRayOriginNV": 5323, - "ObjectRayDirectionNV": 5324, - "RayTminNV": 5325, - "RayTmaxNV": 5326, - "InstanceCustomIndexNV": 5327, - "ObjectToWorldNV": 5330, - "WorldToObjectNV": 5331, - "HitTNV": 5332, - "HitKindNV": 5333, - "IncomingRayFlagsNV": 5351, - "WarpsPerSMNV": 5374, - "SMCountNV": 5375, - "WarpIDNV": 5376, - "SMIDNV": 5377 - } - }, - { - "Name": "SelectionControl", - "Type": "Bit", - "Values": - { - "Flatten": 0, - "DontFlatten": 1 - } - }, - { - "Name": "LoopControl", - "Type": "Bit", - "Values": - { - "Unroll": 0, - "DontUnroll": 1, - "DependencyInfinite": 2, - "DependencyLength": 3, - "MinIterations": 4, - "MaxIterations": 5, - "IterationMultiple": 6, - "PeelCount": 7, - "PartialCount": 8 - } - }, - { - "Name": "FunctionControl", - "Type": "Bit", - "Values": - { - "Inline": 0, - "DontInline": 1, - "Pure": 2, - "Const": 3 - } - }, - { - "Name": "MemorySemantics", - "Type": "Bit", - "Values": - { - "Acquire": 1, - "Release": 2, - "AcquireRelease": 3, - "SequentiallyConsistent": 4, - "UniformMemory": 6, - "SubgroupMemory": 7, - "WorkgroupMemory": 8, - "CrossWorkgroupMemory": 9, - "AtomicCounterMemory": 10, - "ImageMemory": 11, - "OutputMemory": 12, - "OutputMemoryKHR": 12, - "MakeAvailable": 13, - "MakeAvailableKHR": 13, - "MakeVisible": 14, - "MakeVisibleKHR": 14, - "Volatile": 15 - } - }, - { - "Name": "MemoryAccess", - "Type": "Bit", - "Values": - { - "Volatile": 0, - "Aligned": 1, - "Nontemporal": 2, - "MakePointerAvailable": 3, - "MakePointerAvailableKHR": 3, - "MakePointerVisible": 4, - "MakePointerVisibleKHR": 4, - "NonPrivatePointer": 5, - "NonPrivatePointerKHR": 5 - } - }, - { - "Name": "Scope", - "Type": "Value", - "Values": - { - "CrossDevice": 0, - "Device": 1, - "Workgroup": 2, - "Subgroup": 3, - "Invocation": 4, - "QueueFamily": 5, - "QueueFamilyKHR": 5 - } - }, - { - "Name": "GroupOperation", - "Type": "Value", - "Values": - { - "Reduce": 0, - "InclusiveScan": 1, - "ExclusiveScan": 2, - "ClusteredReduce": 3, - "PartitionedReduceNV": 6, - "PartitionedInclusiveScanNV": 7, - "PartitionedExclusiveScanNV": 8 - } - }, - { - "Name": "KernelEnqueueFlags", - "Type": "Value", - "Values": - { - "NoWait": 0, - "WaitKernel": 1, - "WaitWorkGroup": 2 - } - }, - { - "Name": "KernelProfilingInfo", - "Type": "Bit", - "Values": - { - "CmdExecTime": 0 - } - }, - { - "Name": "Capability", - "Type": "Value", - "Values": - { - "Matrix": 0, - "Shader": 1, - "Geometry": 2, - "Tessellation": 3, - "Addresses": 4, - "Linkage": 5, - "Kernel": 6, - "Vector16": 7, - "Float16Buffer": 8, - "Float16": 9, - "Float64": 10, - "Int64": 11, - "Int64Atomics": 12, - "ImageBasic": 13, - "ImageReadWrite": 14, - "ImageMipmap": 15, - "Pipes": 17, - "Groups": 18, - "DeviceEnqueue": 19, - "LiteralSampler": 20, - "AtomicStorage": 21, - "Int16": 22, - "TessellationPointSize": 23, - "GeometryPointSize": 24, - "ImageGatherExtended": 25, - "StorageImageMultisample": 27, - "UniformBufferArrayDynamicIndexing": 28, - "SampledImageArrayDynamicIndexing": 29, - "StorageBufferArrayDynamicIndexing": 30, - "StorageImageArrayDynamicIndexing": 31, - "ClipDistance": 32, - "CullDistance": 33, - "ImageCubeArray": 34, - "SampleRateShading": 35, - "ImageRect": 36, - "SampledRect": 37, - "GenericPointer": 38, - "Int8": 39, - "InputAttachment": 40, - "SparseResidency": 41, - "MinLod": 42, - "Sampled1D": 43, - "Image1D": 44, - "SampledCubeArray": 45, - "SampledBuffer": 46, - "ImageBuffer": 47, - "ImageMSArray": 48, - "StorageImageExtendedFormats": 49, - "ImageQuery": 50, - "DerivativeControl": 51, - "InterpolationFunction": 52, - "TransformFeedback": 53, - "GeometryStreams": 54, - "StorageImageReadWithoutFormat": 55, - "StorageImageWriteWithoutFormat": 56, - "MultiViewport": 57, - "SubgroupDispatch": 58, - "NamedBarrier": 59, - "PipeStorage": 60, - "GroupNonUniform": 61, - "GroupNonUniformVote": 62, - "GroupNonUniformArithmetic": 63, - "GroupNonUniformBallot": 64, - "GroupNonUniformShuffle": 65, - "GroupNonUniformShuffleRelative": 66, - "GroupNonUniformClustered": 67, - "GroupNonUniformQuad": 68, - "ShaderLayer": 69, - "ShaderViewportIndex": 70, - "SubgroupBallotKHR": 4423, - "DrawParameters": 4427, - "SubgroupVoteKHR": 4431, - "StorageBuffer16BitAccess": 4433, - "StorageUniformBufferBlock16": 4433, - "StorageUniform16": 4434, - "UniformAndStorageBuffer16BitAccess": 4434, - "StoragePushConstant16": 4435, - "StorageInputOutput16": 4436, - "DeviceGroup": 4437, - "MultiView": 4439, - "VariablePointersStorageBuffer": 4441, - "VariablePointers": 4442, - "AtomicStorageOps": 4445, - "SampleMaskPostDepthCoverage": 4447, - "StorageBuffer8BitAccess": 4448, - "UniformAndStorageBuffer8BitAccess": 4449, - "StoragePushConstant8": 4450, - "DenormPreserve": 4464, - "DenormFlushToZero": 4465, - "SignedZeroInfNanPreserve": 4466, - "RoundingModeRTE": 4467, - "RoundingModeRTZ": 4468, - "Float16ImageAMD": 5008, - "ImageGatherBiasLodAMD": 5009, - "FragmentMaskAMD": 5010, - "StencilExportEXT": 5013, - "ImageReadWriteLodAMD": 5015, - "ShaderClockKHR": 5055, - "SampleMaskOverrideCoverageNV": 5249, - "GeometryShaderPassthroughNV": 5251, - "ShaderViewportIndexLayerEXT": 5254, - "ShaderViewportIndexLayerNV": 5254, - "ShaderViewportMaskNV": 5255, - "ShaderStereoViewNV": 5259, - "PerViewAttributesNV": 5260, - "FragmentFullyCoveredEXT": 5265, - "MeshShadingNV": 5266, - "ImageFootprintNV": 5282, - "FragmentBarycentricNV": 5284, - "ComputeDerivativeGroupQuadsNV": 5288, - "FragmentDensityEXT": 5291, - "ShadingRateNV": 5291, - "GroupNonUniformPartitionedNV": 5297, - "ShaderNonUniform": 5301, - "ShaderNonUniformEXT": 5301, - "RuntimeDescriptorArray": 5302, - "RuntimeDescriptorArrayEXT": 5302, - "InputAttachmentArrayDynamicIndexing": 5303, - "InputAttachmentArrayDynamicIndexingEXT": 5303, - "UniformTexelBufferArrayDynamicIndexing": 5304, - "UniformTexelBufferArrayDynamicIndexingEXT": 5304, - "StorageTexelBufferArrayDynamicIndexing": 5305, - "StorageTexelBufferArrayDynamicIndexingEXT": 5305, - "UniformBufferArrayNonUniformIndexing": 5306, - "UniformBufferArrayNonUniformIndexingEXT": 5306, - "SampledImageArrayNonUniformIndexing": 5307, - "SampledImageArrayNonUniformIndexingEXT": 5307, - "StorageBufferArrayNonUniformIndexing": 5308, - "StorageBufferArrayNonUniformIndexingEXT": 5308, - "StorageImageArrayNonUniformIndexing": 5309, - "StorageImageArrayNonUniformIndexingEXT": 5309, - "InputAttachmentArrayNonUniformIndexing": 5310, - "InputAttachmentArrayNonUniformIndexingEXT": 5310, - "UniformTexelBufferArrayNonUniformIndexing": 5311, - "UniformTexelBufferArrayNonUniformIndexingEXT": 5311, - "StorageTexelBufferArrayNonUniformIndexing": 5312, - "StorageTexelBufferArrayNonUniformIndexingEXT": 5312, - "RayTracingNV": 5340, - "VulkanMemoryModel": 5345, - "VulkanMemoryModelKHR": 5345, - "VulkanMemoryModelDeviceScope": 5346, - "VulkanMemoryModelDeviceScopeKHR": 5346, - "PhysicalStorageBufferAddresses": 5347, - "PhysicalStorageBufferAddressesEXT": 5347, - "ComputeDerivativeGroupLinearNV": 5350, - "CooperativeMatrixNV": 5357, - "FragmentShaderSampleInterlockEXT": 5363, - "FragmentShaderShadingRateInterlockEXT": 5372, - "ShaderSMBuiltinsNV": 5373, - "FragmentShaderPixelInterlockEXT": 5378, - "DemoteToHelperInvocationEXT": 5379, - "SubgroupShuffleINTEL": 5568, - "SubgroupBufferBlockIOINTEL": 5569, - "SubgroupImageBlockIOINTEL": 5570, - "SubgroupImageMediaBlockIOINTEL": 5579, - "IntegerFunctions2INTEL": 5584, - "SubgroupAvcMotionEstimationINTEL": 5696, - "SubgroupAvcMotionEstimationIntraINTEL": 5697, - "SubgroupAvcMotionEstimationChromaINTEL": 5698 - } - }, - { - "Name": "Op", - "Type": "Value", - "Values": - { - "OpNop": 0, - "OpUndef": 1, - "OpSourceContinued": 2, - "OpSource": 3, - "OpSourceExtension": 4, - "OpName": 5, - "OpMemberName": 6, - "OpString": 7, - "OpLine": 8, - "OpExtension": 10, - "OpExtInstImport": 11, - "OpExtInst": 12, - "OpMemoryModel": 14, - "OpEntryPoint": 15, - "OpExecutionMode": 16, - "OpCapability": 17, - "OpTypeVoid": 19, - "OpTypeBool": 20, - "OpTypeInt": 21, - "OpTypeFloat": 22, - "OpTypeVector": 23, - "OpTypeMatrix": 24, - "OpTypeImage": 25, - "OpTypeSampler": 26, - "OpTypeSampledImage": 27, - "OpTypeArray": 28, - "OpTypeRuntimeArray": 29, - "OpTypeStruct": 30, - "OpTypeOpaque": 31, - "OpTypePointer": 32, - "OpTypeFunction": 33, - "OpTypeEvent": 34, - "OpTypeDeviceEvent": 35, - "OpTypeReserveId": 36, - "OpTypeQueue": 37, - "OpTypePipe": 38, - "OpTypeForwardPointer": 39, - "OpConstantTrue": 41, - "OpConstantFalse": 42, - "OpConstant": 43, - "OpConstantComposite": 44, - "OpConstantSampler": 45, - "OpConstantNull": 46, - "OpSpecConstantTrue": 48, - "OpSpecConstantFalse": 49, - "OpSpecConstant": 50, - "OpSpecConstantComposite": 51, - "OpSpecConstantOp": 52, - "OpFunction": 54, - "OpFunctionParameter": 55, - "OpFunctionEnd": 56, - "OpFunctionCall": 57, - "OpVariable": 59, - "OpImageTexelPointer": 60, - "OpLoad": 61, - "OpStore": 62, - "OpCopyMemory": 63, - "OpCopyMemorySized": 64, - "OpAccessChain": 65, - "OpInBoundsAccessChain": 66, - "OpPtrAccessChain": 67, - "OpArrayLength": 68, - "OpGenericPtrMemSemantics": 69, - "OpInBoundsPtrAccessChain": 70, - "OpDecorate": 71, - "OpMemberDecorate": 72, - "OpDecorationGroup": 73, - "OpGroupDecorate": 74, - "OpGroupMemberDecorate": 75, - "OpVectorExtractDynamic": 77, - "OpVectorInsertDynamic": 78, - "OpVectorShuffle": 79, - "OpCompositeConstruct": 80, - "OpCompositeExtract": 81, - "OpCompositeInsert": 82, - "OpCopyObject": 83, - "OpTranspose": 84, - "OpSampledImage": 86, - "OpImageSampleImplicitLod": 87, - "OpImageSampleExplicitLod": 88, - "OpImageSampleDrefImplicitLod": 89, - "OpImageSampleDrefExplicitLod": 90, - "OpImageSampleProjImplicitLod": 91, - "OpImageSampleProjExplicitLod": 92, - "OpImageSampleProjDrefImplicitLod": 93, - "OpImageSampleProjDrefExplicitLod": 94, - "OpImageFetch": 95, - "OpImageGather": 96, - "OpImageDrefGather": 97, - "OpImageRead": 98, - "OpImageWrite": 99, - "OpImage": 100, - "OpImageQueryFormat": 101, - "OpImageQueryOrder": 102, - "OpImageQuerySizeLod": 103, - "OpImageQuerySize": 104, - "OpImageQueryLod": 105, - "OpImageQueryLevels": 106, - "OpImageQuerySamples": 107, - "OpConvertFToU": 109, - "OpConvertFToS": 110, - "OpConvertSToF": 111, - "OpConvertUToF": 112, - "OpUConvert": 113, - "OpSConvert": 114, - "OpFConvert": 115, - "OpQuantizeToF16": 116, - "OpConvertPtrToU": 117, - "OpSatConvertSToU": 118, - "OpSatConvertUToS": 119, - "OpConvertUToPtr": 120, - "OpPtrCastToGeneric": 121, - "OpGenericCastToPtr": 122, - "OpGenericCastToPtrExplicit": 123, - "OpBitcast": 124, - "OpSNegate": 126, - "OpFNegate": 127, - "OpIAdd": 128, - "OpFAdd": 129, - "OpISub": 130, - "OpFSub": 131, - "OpIMul": 132, - "OpFMul": 133, - "OpUDiv": 134, - "OpSDiv": 135, - "OpFDiv": 136, - "OpUMod": 137, - "OpSRem": 138, - "OpSMod": 139, - "OpFRem": 140, - "OpFMod": 141, - "OpVectorTimesScalar": 142, - "OpMatrixTimesScalar": 143, - "OpVectorTimesMatrix": 144, - "OpMatrixTimesVector": 145, - "OpMatrixTimesMatrix": 146, - "OpOuterProduct": 147, - "OpDot": 148, - "OpIAddCarry": 149, - "OpISubBorrow": 150, - "OpUMulExtended": 151, - "OpSMulExtended": 152, - "OpAny": 154, - "OpAll": 155, - "OpIsNan": 156, - "OpIsInf": 157, - "OpIsFinite": 158, - "OpIsNormal": 159, - "OpSignBitSet": 160, - "OpLessOrGreater": 161, - "OpOrdered": 162, - "OpUnordered": 163, - "OpLogicalEqual": 164, - "OpLogicalNotEqual": 165, - "OpLogicalOr": 166, - "OpLogicalAnd": 167, - "OpLogicalNot": 168, - "OpSelect": 169, - "OpIEqual": 170, - "OpINotEqual": 171, - "OpUGreaterThan": 172, - "OpSGreaterThan": 173, - "OpUGreaterThanEqual": 174, - "OpSGreaterThanEqual": 175, - "OpULessThan": 176, - "OpSLessThan": 177, - "OpULessThanEqual": 178, - "OpSLessThanEqual": 179, - "OpFOrdEqual": 180, - "OpFUnordEqual": 181, - "OpFOrdNotEqual": 182, - "OpFUnordNotEqual": 183, - "OpFOrdLessThan": 184, - "OpFUnordLessThan": 185, - "OpFOrdGreaterThan": 186, - "OpFUnordGreaterThan": 187, - "OpFOrdLessThanEqual": 188, - "OpFUnordLessThanEqual": 189, - "OpFOrdGreaterThanEqual": 190, - "OpFUnordGreaterThanEqual": 191, - "OpShiftRightLogical": 194, - "OpShiftRightArithmetic": 195, - "OpShiftLeftLogical": 196, - "OpBitwiseOr": 197, - "OpBitwiseXor": 198, - "OpBitwiseAnd": 199, - "OpNot": 200, - "OpBitFieldInsert": 201, - "OpBitFieldSExtract": 202, - "OpBitFieldUExtract": 203, - "OpBitReverse": 204, - "OpBitCount": 205, - "OpDPdx": 207, - "OpDPdy": 208, - "OpFwidth": 209, - "OpDPdxFine": 210, - "OpDPdyFine": 211, - "OpFwidthFine": 212, - "OpDPdxCoarse": 213, - "OpDPdyCoarse": 214, - "OpFwidthCoarse": 215, - "OpEmitVertex": 218, - "OpEndPrimitive": 219, - "OpEmitStreamVertex": 220, - "OpEndStreamPrimitive": 221, - "OpControlBarrier": 224, - "OpMemoryBarrier": 225, - "OpAtomicLoad": 227, - "OpAtomicStore": 228, - "OpAtomicExchange": 229, - "OpAtomicCompareExchange": 230, - "OpAtomicCompareExchangeWeak": 231, - "OpAtomicIIncrement": 232, - "OpAtomicIDecrement": 233, - "OpAtomicIAdd": 234, - "OpAtomicISub": 235, - "OpAtomicSMin": 236, - "OpAtomicUMin": 237, - "OpAtomicSMax": 238, - "OpAtomicUMax": 239, - "OpAtomicAnd": 240, - "OpAtomicOr": 241, - "OpAtomicXor": 242, - "OpPhi": 245, - "OpLoopMerge": 246, - "OpSelectionMerge": 247, - "OpLabel": 248, - "OpBranch": 249, - "OpBranchConditional": 250, - "OpSwitch": 251, - "OpKill": 252, - "OpReturn": 253, - "OpReturnValue": 254, - "OpUnreachable": 255, - "OpLifetimeStart": 256, - "OpLifetimeStop": 257, - "OpGroupAsyncCopy": 259, - "OpGroupWaitEvents": 260, - "OpGroupAll": 261, - "OpGroupAny": 262, - "OpGroupBroadcast": 263, - "OpGroupIAdd": 264, - "OpGroupFAdd": 265, - "OpGroupFMin": 266, - "OpGroupUMin": 267, - "OpGroupSMin": 268, - "OpGroupFMax": 269, - "OpGroupUMax": 270, - "OpGroupSMax": 271, - "OpReadPipe": 274, - "OpWritePipe": 275, - "OpReservedReadPipe": 276, - "OpReservedWritePipe": 277, - "OpReserveReadPipePackets": 278, - "OpReserveWritePipePackets": 279, - "OpCommitReadPipe": 280, - "OpCommitWritePipe": 281, - "OpIsValidReserveId": 282, - "OpGetNumPipePackets": 283, - "OpGetMaxPipePackets": 284, - "OpGroupReserveReadPipePackets": 285, - "OpGroupReserveWritePipePackets": 286, - "OpGroupCommitReadPipe": 287, - "OpGroupCommitWritePipe": 288, - "OpEnqueueMarker": 291, - "OpEnqueueKernel": 292, - "OpGetKernelNDrangeSubGroupCount": 293, - "OpGetKernelNDrangeMaxSubGroupSize": 294, - "OpGetKernelWorkGroupSize": 295, - "OpGetKernelPreferredWorkGroupSizeMultiple": 296, - "OpRetainEvent": 297, - "OpReleaseEvent": 298, - "OpCreateUserEvent": 299, - "OpIsValidEvent": 300, - "OpSetUserEventStatus": 301, - "OpCaptureEventProfilingInfo": 302, - "OpGetDefaultQueue": 303, - "OpBuildNDRange": 304, - "OpImageSparseSampleImplicitLod": 305, - "OpImageSparseSampleExplicitLod": 306, - "OpImageSparseSampleDrefImplicitLod": 307, - "OpImageSparseSampleDrefExplicitLod": 308, - "OpImageSparseSampleProjImplicitLod": 309, - "OpImageSparseSampleProjExplicitLod": 310, - "OpImageSparseSampleProjDrefImplicitLod": 311, - "OpImageSparseSampleProjDrefExplicitLod": 312, - "OpImageSparseFetch": 313, - "OpImageSparseGather": 314, - "OpImageSparseDrefGather": 315, - "OpImageSparseTexelsResident": 316, - "OpNoLine": 317, - "OpAtomicFlagTestAndSet": 318, - "OpAtomicFlagClear": 319, - "OpImageSparseRead": 320, - "OpSizeOf": 321, - "OpTypePipeStorage": 322, - "OpConstantPipeStorage": 323, - "OpCreatePipeFromPipeStorage": 324, - "OpGetKernelLocalSizeForSubgroupCount": 325, - "OpGetKernelMaxNumSubgroups": 326, - "OpTypeNamedBarrier": 327, - "OpNamedBarrierInitialize": 328, - "OpMemoryNamedBarrier": 329, - "OpModuleProcessed": 330, - "OpExecutionModeId": 331, - "OpDecorateId": 332, - "OpGroupNonUniformElect": 333, - "OpGroupNonUniformAll": 334, - "OpGroupNonUniformAny": 335, - "OpGroupNonUniformAllEqual": 336, - "OpGroupNonUniformBroadcast": 337, - "OpGroupNonUniformBroadcastFirst": 338, - "OpGroupNonUniformBallot": 339, - "OpGroupNonUniformInverseBallot": 340, - "OpGroupNonUniformBallotBitExtract": 341, - "OpGroupNonUniformBallotBitCount": 342, - "OpGroupNonUniformBallotFindLSB": 343, - "OpGroupNonUniformBallotFindMSB": 344, - "OpGroupNonUniformShuffle": 345, - "OpGroupNonUniformShuffleXor": 346, - "OpGroupNonUniformShuffleUp": 347, - "OpGroupNonUniformShuffleDown": 348, - "OpGroupNonUniformIAdd": 349, - "OpGroupNonUniformFAdd": 350, - "OpGroupNonUniformIMul": 351, - "OpGroupNonUniformFMul": 352, - "OpGroupNonUniformSMin": 353, - "OpGroupNonUniformUMin": 354, - "OpGroupNonUniformFMin": 355, - "OpGroupNonUniformSMax": 356, - "OpGroupNonUniformUMax": 357, - "OpGroupNonUniformFMax": 358, - "OpGroupNonUniformBitwiseAnd": 359, - "OpGroupNonUniformBitwiseOr": 360, - "OpGroupNonUniformBitwiseXor": 361, - "OpGroupNonUniformLogicalAnd": 362, - "OpGroupNonUniformLogicalOr": 363, - "OpGroupNonUniformLogicalXor": 364, - "OpGroupNonUniformQuadBroadcast": 365, - "OpGroupNonUniformQuadSwap": 366, - "OpCopyLogical": 400, - "OpPtrEqual": 401, - "OpPtrNotEqual": 402, - "OpPtrDiff": 403, - "OpSubgroupBallotKHR": 4421, - "OpSubgroupFirstInvocationKHR": 4422, - "OpSubgroupAllKHR": 4428, - "OpSubgroupAnyKHR": 4429, - "OpSubgroupAllEqualKHR": 4430, - "OpSubgroupReadInvocationKHR": 4432, - "OpGroupIAddNonUniformAMD": 5000, - "OpGroupFAddNonUniformAMD": 5001, - "OpGroupFMinNonUniformAMD": 5002, - "OpGroupUMinNonUniformAMD": 5003, - "OpGroupSMinNonUniformAMD": 5004, - "OpGroupFMaxNonUniformAMD": 5005, - "OpGroupUMaxNonUniformAMD": 5006, - "OpGroupSMaxNonUniformAMD": 5007, - "OpFragmentMaskFetchAMD": 5011, - "OpFragmentFetchAMD": 5012, - "OpReadClockKHR": 5056, - "OpImageSampleFootprintNV": 5283, - "OpGroupNonUniformPartitionNV": 5296, - "OpWritePackedPrimitiveIndices4x8NV": 5299, - "OpReportIntersectionNV": 5334, - "OpIgnoreIntersectionNV": 5335, - "OpTerminateRayNV": 5336, - "OpTraceNV": 5337, - "OpTypeAccelerationStructureNV": 5341, - "OpExecuteCallableNV": 5344, - "OpTypeCooperativeMatrixNV": 5358, - "OpCooperativeMatrixLoadNV": 5359, - "OpCooperativeMatrixStoreNV": 5360, - "OpCooperativeMatrixMulAddNV": 5361, - "OpCooperativeMatrixLengthNV": 5362, - "OpBeginInvocationInterlockEXT": 5364, - "OpEndInvocationInterlockEXT": 5365, - "OpDemoteToHelperInvocationEXT": 5380, - "OpIsHelperInvocationEXT": 5381, - "OpSubgroupShuffleINTEL": 5571, - "OpSubgroupShuffleDownINTEL": 5572, - "OpSubgroupShuffleUpINTEL": 5573, - "OpSubgroupShuffleXorINTEL": 5574, - "OpSubgroupBlockReadINTEL": 5575, - "OpSubgroupBlockWriteINTEL": 5576, - "OpSubgroupImageBlockReadINTEL": 5577, - "OpSubgroupImageBlockWriteINTEL": 5578, - "OpSubgroupImageMediaBlockReadINTEL": 5580, - "OpSubgroupImageMediaBlockWriteINTEL": 5581, - "OpUCountLeadingZerosINTEL": 5585, - "OpUCountTrailingZerosINTEL": 5586, - "OpAbsISubINTEL": 5587, - "OpAbsUSubINTEL": 5588, - "OpIAddSatINTEL": 5589, - "OpUAddSatINTEL": 5590, - "OpIAverageINTEL": 5591, - "OpUAverageINTEL": 5592, - "OpIAverageRoundedINTEL": 5593, - "OpUAverageRoundedINTEL": 5594, - "OpISubSatINTEL": 5595, - "OpUSubSatINTEL": 5596, - "OpIMul32x16INTEL": 5597, - "OpUMul32x16INTEL": 5598, - "OpDecorateString": 5632, - "OpDecorateStringGOOGLE": 5632, - "OpMemberDecorateString": 5633, - "OpMemberDecorateStringGOOGLE": 5633, - "OpVmeImageINTEL": 5699, - "OpTypeVmeImageINTEL": 5700, - "OpTypeAvcImePayloadINTEL": 5701, - "OpTypeAvcRefPayloadINTEL": 5702, - "OpTypeAvcSicPayloadINTEL": 5703, - "OpTypeAvcMcePayloadINTEL": 5704, - "OpTypeAvcMceResultINTEL": 5705, - "OpTypeAvcImeResultINTEL": 5706, - "OpTypeAvcImeResultSingleReferenceStreamoutINTEL": 5707, - "OpTypeAvcImeResultDualReferenceStreamoutINTEL": 5708, - "OpTypeAvcImeSingleReferenceStreaminINTEL": 5709, - "OpTypeAvcImeDualReferenceStreaminINTEL": 5710, - "OpTypeAvcRefResultINTEL": 5711, - "OpTypeAvcSicResultINTEL": 5712, - "OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL": 5713, - "OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL": 5714, - "OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL": 5715, - "OpSubgroupAvcMceSetInterShapePenaltyINTEL": 5716, - "OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL": 5717, - "OpSubgroupAvcMceSetInterDirectionPenaltyINTEL": 5718, - "OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL": 5719, - "OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL": 5720, - "OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL": 5721, - "OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL": 5722, - "OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL": 5723, - "OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL": 5724, - "OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL": 5725, - "OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL": 5726, - "OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL": 5727, - "OpSubgroupAvcMceSetAcOnlyHaarINTEL": 5728, - "OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL": 5729, - "OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL": 5730, - "OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL": 5731, - "OpSubgroupAvcMceConvertToImePayloadINTEL": 5732, - "OpSubgroupAvcMceConvertToImeResultINTEL": 5733, - "OpSubgroupAvcMceConvertToRefPayloadINTEL": 5734, - "OpSubgroupAvcMceConvertToRefResultINTEL": 5735, - "OpSubgroupAvcMceConvertToSicPayloadINTEL": 5736, - "OpSubgroupAvcMceConvertToSicResultINTEL": 5737, - "OpSubgroupAvcMceGetMotionVectorsINTEL": 5738, - "OpSubgroupAvcMceGetInterDistortionsINTEL": 5739, - "OpSubgroupAvcMceGetBestInterDistortionsINTEL": 5740, - "OpSubgroupAvcMceGetInterMajorShapeINTEL": 5741, - "OpSubgroupAvcMceGetInterMinorShapeINTEL": 5742, - "OpSubgroupAvcMceGetInterDirectionsINTEL": 5743, - "OpSubgroupAvcMceGetInterMotionVectorCountINTEL": 5744, - "OpSubgroupAvcMceGetInterReferenceIdsINTEL": 5745, - "OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL": 5746, - "OpSubgroupAvcImeInitializeINTEL": 5747, - "OpSubgroupAvcImeSetSingleReferenceINTEL": 5748, - "OpSubgroupAvcImeSetDualReferenceINTEL": 5749, - "OpSubgroupAvcImeRefWindowSizeINTEL": 5750, - "OpSubgroupAvcImeAdjustRefOffsetINTEL": 5751, - "OpSubgroupAvcImeConvertToMcePayloadINTEL": 5752, - "OpSubgroupAvcImeSetMaxMotionVectorCountINTEL": 5753, - "OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL": 5754, - "OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL": 5755, - "OpSubgroupAvcImeSetWeightedSadINTEL": 5756, - "OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL": 5757, - "OpSubgroupAvcImeEvaluateWithDualReferenceINTEL": 5758, - "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL": 5759, - "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL": 5760, - "OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL": 5761, - "OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL": 5762, - "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL": 5763, - "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL": 5764, - "OpSubgroupAvcImeConvertToMceResultINTEL": 5765, - "OpSubgroupAvcImeGetSingleReferenceStreaminINTEL": 5766, - "OpSubgroupAvcImeGetDualReferenceStreaminINTEL": 5767, - "OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL": 5768, - "OpSubgroupAvcImeStripDualReferenceStreamoutINTEL": 5769, - "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL": 5770, - "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL": 5771, - "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL": 5772, - "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL": 5773, - "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL": 5774, - "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL": 5775, - "OpSubgroupAvcImeGetBorderReachedINTEL": 5776, - "OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL": 5777, - "OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL": 5778, - "OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL": 5779, - "OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL": 5780, - "OpSubgroupAvcFmeInitializeINTEL": 5781, - "OpSubgroupAvcBmeInitializeINTEL": 5782, - "OpSubgroupAvcRefConvertToMcePayloadINTEL": 5783, - "OpSubgroupAvcRefSetBidirectionalMixDisableINTEL": 5784, - "OpSubgroupAvcRefSetBilinearFilterEnableINTEL": 5785, - "OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL": 5786, - "OpSubgroupAvcRefEvaluateWithDualReferenceINTEL": 5787, - "OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL": 5788, - "OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL": 5789, - "OpSubgroupAvcRefConvertToMceResultINTEL": 5790, - "OpSubgroupAvcSicInitializeINTEL": 5791, - "OpSubgroupAvcSicConfigureSkcINTEL": 5792, - "OpSubgroupAvcSicConfigureIpeLumaINTEL": 5793, - "OpSubgroupAvcSicConfigureIpeLumaChromaINTEL": 5794, - "OpSubgroupAvcSicGetMotionVectorMaskINTEL": 5795, - "OpSubgroupAvcSicConvertToMcePayloadINTEL": 5796, - "OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL": 5797, - "OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL": 5798, - "OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL": 5799, - "OpSubgroupAvcSicSetBilinearFilterEnableINTEL": 5800, - "OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL": 5801, - "OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL": 5802, - "OpSubgroupAvcSicEvaluateIpeINTEL": 5803, - "OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL": 5804, - "OpSubgroupAvcSicEvaluateWithDualReferenceINTEL": 5805, - "OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL": 5806, - "OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL": 5807, - "OpSubgroupAvcSicConvertToMceResultINTEL": 5808, - "OpSubgroupAvcSicGetIpeLumaShapeINTEL": 5809, - "OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL": 5810, - "OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL": 5811, - "OpSubgroupAvcSicGetPackedIpeLumaModesINTEL": 5812, - "OpSubgroupAvcSicGetIpeChromaModeINTEL": 5813, - "OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL": 5814, - "OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL": 5815, - "OpSubgroupAvcSicGetInterRawSadsINTEL": 5816 - } - } - ] - } -} - diff --git a/external/vulkan/windows/include/vulkan/spirv.lua b/external/vulkan/windows/include/vulkan/spirv.lua deleted file mode 100644 index 27385dbb..00000000 --- a/external/vulkan/windows/include/vulkan/spirv.lua +++ /dev/null @@ -1,1396 +0,0 @@ --- Copyright (c) 2014-2019 The Khronos Group Inc. --- --- Permission is hereby granted, free of charge, to any person obtaining a copy --- of this software and/or associated documentation files (the "Materials"), --- to deal in the Materials without restriction, including without limitation --- the rights to use, copy, modify, merge, publish, distribute, sublicense, --- and/or sell copies of the Materials, and to permit persons to whom the --- Materials are furnished to do so, subject to the following conditions: --- --- The above copyright notice and this permission notice shall be included in --- all copies or substantial portions of the Materials. --- --- MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS --- STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND --- HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ --- --- THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, --- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL --- THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER --- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING --- FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS --- IN THE MATERIALS. - --- This header is automatically generated by the same tool that creates --- the Binary Section of the SPIR-V specification. - --- Enumeration tokens for SPIR-V, in various styles: --- C, C++, C++11, JSON, Lua, Python, C#, D --- --- - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL --- - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL --- - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL --- - Lua will use tables, e.g.: spv.SourceLanguage.GLSL --- - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] --- - C# will use enum classes in the Specification class located in the "Spv" namespace, --- e.g.: Spv.Specification.SourceLanguage.GLSL --- - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL --- --- Some tokens act like mask values, which can be OR'd together, --- while others are mutually exclusive. The mask-like ones have --- "Mask" in their name, and a parallel enum that has the shift --- amount (1 << x) for each corresponding enumerant. - -spv = { - MagicNumber = 0x07230203, - Version = 0x00010500, - Revision = 1, - OpCodeMask = 0xffff, - WordCountShift = 16, - - SourceLanguage = { - Unknown = 0, - ESSL = 1, - GLSL = 2, - OpenCL_C = 3, - OpenCL_CPP = 4, - HLSL = 5, - }, - - ExecutionModel = { - Vertex = 0, - TessellationControl = 1, - TessellationEvaluation = 2, - Geometry = 3, - Fragment = 4, - GLCompute = 5, - Kernel = 6, - TaskNV = 5267, - MeshNV = 5268, - RayGenerationNV = 5313, - IntersectionNV = 5314, - AnyHitNV = 5315, - ClosestHitNV = 5316, - MissNV = 5317, - CallableNV = 5318, - }, - - AddressingModel = { - Logical = 0, - Physical32 = 1, - Physical64 = 2, - PhysicalStorageBuffer64 = 5348, - PhysicalStorageBuffer64EXT = 5348, - }, - - MemoryModel = { - Simple = 0, - GLSL450 = 1, - OpenCL = 2, - Vulkan = 3, - VulkanKHR = 3, - }, - - ExecutionMode = { - Invocations = 0, - SpacingEqual = 1, - SpacingFractionalEven = 2, - SpacingFractionalOdd = 3, - VertexOrderCw = 4, - VertexOrderCcw = 5, - PixelCenterInteger = 6, - OriginUpperLeft = 7, - OriginLowerLeft = 8, - EarlyFragmentTests = 9, - PointMode = 10, - Xfb = 11, - DepthReplacing = 12, - DepthGreater = 14, - DepthLess = 15, - DepthUnchanged = 16, - LocalSize = 17, - LocalSizeHint = 18, - InputPoints = 19, - InputLines = 20, - InputLinesAdjacency = 21, - Triangles = 22, - InputTrianglesAdjacency = 23, - Quads = 24, - Isolines = 25, - OutputVertices = 26, - OutputPoints = 27, - OutputLineStrip = 28, - OutputTriangleStrip = 29, - VecTypeHint = 30, - ContractionOff = 31, - Initializer = 33, - Finalizer = 34, - SubgroupSize = 35, - SubgroupsPerWorkgroup = 36, - SubgroupsPerWorkgroupId = 37, - LocalSizeId = 38, - LocalSizeHintId = 39, - PostDepthCoverage = 4446, - DenormPreserve = 4459, - DenormFlushToZero = 4460, - SignedZeroInfNanPreserve = 4461, - RoundingModeRTE = 4462, - RoundingModeRTZ = 4463, - StencilRefReplacingEXT = 5027, - OutputLinesNV = 5269, - OutputPrimitivesNV = 5270, - DerivativeGroupQuadsNV = 5289, - DerivativeGroupLinearNV = 5290, - OutputTrianglesNV = 5298, - PixelInterlockOrderedEXT = 5366, - PixelInterlockUnorderedEXT = 5367, - SampleInterlockOrderedEXT = 5368, - SampleInterlockUnorderedEXT = 5369, - ShadingRateInterlockOrderedEXT = 5370, - ShadingRateInterlockUnorderedEXT = 5371, - }, - - StorageClass = { - UniformConstant = 0, - Input = 1, - Uniform = 2, - Output = 3, - Workgroup = 4, - CrossWorkgroup = 5, - Private = 6, - Function = 7, - Generic = 8, - PushConstant = 9, - AtomicCounter = 10, - Image = 11, - StorageBuffer = 12, - CallableDataNV = 5328, - IncomingCallableDataNV = 5329, - RayPayloadNV = 5338, - HitAttributeNV = 5339, - IncomingRayPayloadNV = 5342, - ShaderRecordBufferNV = 5343, - PhysicalStorageBuffer = 5349, - PhysicalStorageBufferEXT = 5349, - }, - - Dim = { - Dim1D = 0, - Dim2D = 1, - Dim3D = 2, - Cube = 3, - Rect = 4, - Buffer = 5, - SubpassData = 6, - }, - - SamplerAddressingMode = { - None = 0, - ClampToEdge = 1, - Clamp = 2, - Repeat = 3, - RepeatMirrored = 4, - }, - - SamplerFilterMode = { - Nearest = 0, - Linear = 1, - }, - - ImageFormat = { - Unknown = 0, - Rgba32f = 1, - Rgba16f = 2, - R32f = 3, - Rgba8 = 4, - Rgba8Snorm = 5, - Rg32f = 6, - Rg16f = 7, - R11fG11fB10f = 8, - R16f = 9, - Rgba16 = 10, - Rgb10A2 = 11, - Rg16 = 12, - Rg8 = 13, - R16 = 14, - R8 = 15, - Rgba16Snorm = 16, - Rg16Snorm = 17, - Rg8Snorm = 18, - R16Snorm = 19, - R8Snorm = 20, - Rgba32i = 21, - Rgba16i = 22, - Rgba8i = 23, - R32i = 24, - Rg32i = 25, - Rg16i = 26, - Rg8i = 27, - R16i = 28, - R8i = 29, - Rgba32ui = 30, - Rgba16ui = 31, - Rgba8ui = 32, - R32ui = 33, - Rgb10a2ui = 34, - Rg32ui = 35, - Rg16ui = 36, - Rg8ui = 37, - R16ui = 38, - R8ui = 39, - }, - - ImageChannelOrder = { - R = 0, - A = 1, - RG = 2, - RA = 3, - RGB = 4, - RGBA = 5, - BGRA = 6, - ARGB = 7, - Intensity = 8, - Luminance = 9, - Rx = 10, - RGx = 11, - RGBx = 12, - Depth = 13, - DepthStencil = 14, - sRGB = 15, - sRGBx = 16, - sRGBA = 17, - sBGRA = 18, - ABGR = 19, - }, - - ImageChannelDataType = { - SnormInt8 = 0, - SnormInt16 = 1, - UnormInt8 = 2, - UnormInt16 = 3, - UnormShort565 = 4, - UnormShort555 = 5, - UnormInt101010 = 6, - SignedInt8 = 7, - SignedInt16 = 8, - SignedInt32 = 9, - UnsignedInt8 = 10, - UnsignedInt16 = 11, - UnsignedInt32 = 12, - HalfFloat = 13, - Float = 14, - UnormInt24 = 15, - UnormInt101010_2 = 16, - }, - - ImageOperandsShift = { - Bias = 0, - Lod = 1, - Grad = 2, - ConstOffset = 3, - Offset = 4, - ConstOffsets = 5, - Sample = 6, - MinLod = 7, - MakeTexelAvailable = 8, - MakeTexelAvailableKHR = 8, - MakeTexelVisible = 9, - MakeTexelVisibleKHR = 9, - NonPrivateTexel = 10, - NonPrivateTexelKHR = 10, - VolatileTexel = 11, - VolatileTexelKHR = 11, - SignExtend = 12, - ZeroExtend = 13, - }, - - ImageOperandsMask = { - MaskNone = 0, - Bias = 0x00000001, - Lod = 0x00000002, - Grad = 0x00000004, - ConstOffset = 0x00000008, - Offset = 0x00000010, - ConstOffsets = 0x00000020, - Sample = 0x00000040, - MinLod = 0x00000080, - MakeTexelAvailable = 0x00000100, - MakeTexelAvailableKHR = 0x00000100, - MakeTexelVisible = 0x00000200, - MakeTexelVisibleKHR = 0x00000200, - NonPrivateTexel = 0x00000400, - NonPrivateTexelKHR = 0x00000400, - VolatileTexel = 0x00000800, - VolatileTexelKHR = 0x00000800, - SignExtend = 0x00001000, - ZeroExtend = 0x00002000, - }, - - FPFastMathModeShift = { - NotNaN = 0, - NotInf = 1, - NSZ = 2, - AllowRecip = 3, - Fast = 4, - }, - - FPFastMathModeMask = { - MaskNone = 0, - NotNaN = 0x00000001, - NotInf = 0x00000002, - NSZ = 0x00000004, - AllowRecip = 0x00000008, - Fast = 0x00000010, - }, - - FPRoundingMode = { - RTE = 0, - RTZ = 1, - RTP = 2, - RTN = 3, - }, - - LinkageType = { - Export = 0, - Import = 1, - }, - - AccessQualifier = { - ReadOnly = 0, - WriteOnly = 1, - ReadWrite = 2, - }, - - FunctionParameterAttribute = { - Zext = 0, - Sext = 1, - ByVal = 2, - Sret = 3, - NoAlias = 4, - NoCapture = 5, - NoWrite = 6, - NoReadWrite = 7, - }, - - Decoration = { - RelaxedPrecision = 0, - SpecId = 1, - Block = 2, - BufferBlock = 3, - RowMajor = 4, - ColMajor = 5, - ArrayStride = 6, - MatrixStride = 7, - GLSLShared = 8, - GLSLPacked = 9, - CPacked = 10, - BuiltIn = 11, - NoPerspective = 13, - Flat = 14, - Patch = 15, - Centroid = 16, - Sample = 17, - Invariant = 18, - Restrict = 19, - Aliased = 20, - Volatile = 21, - Constant = 22, - Coherent = 23, - NonWritable = 24, - NonReadable = 25, - Uniform = 26, - UniformId = 27, - SaturatedConversion = 28, - Stream = 29, - Location = 30, - Component = 31, - Index = 32, - Binding = 33, - DescriptorSet = 34, - Offset = 35, - XfbBuffer = 36, - XfbStride = 37, - FuncParamAttr = 38, - FPRoundingMode = 39, - FPFastMathMode = 40, - LinkageAttributes = 41, - NoContraction = 42, - InputAttachmentIndex = 43, - Alignment = 44, - MaxByteOffset = 45, - AlignmentId = 46, - MaxByteOffsetId = 47, - NoSignedWrap = 4469, - NoUnsignedWrap = 4470, - ExplicitInterpAMD = 4999, - OverrideCoverageNV = 5248, - PassthroughNV = 5250, - ViewportRelativeNV = 5252, - SecondaryViewportRelativeNV = 5256, - PerPrimitiveNV = 5271, - PerViewNV = 5272, - PerTaskNV = 5273, - PerVertexNV = 5285, - NonUniform = 5300, - NonUniformEXT = 5300, - RestrictPointer = 5355, - RestrictPointerEXT = 5355, - AliasedPointer = 5356, - AliasedPointerEXT = 5356, - CounterBuffer = 5634, - HlslCounterBufferGOOGLE = 5634, - HlslSemanticGOOGLE = 5635, - UserSemantic = 5635, - UserTypeGOOGLE = 5636, - }, - - BuiltIn = { - Position = 0, - PointSize = 1, - ClipDistance = 3, - CullDistance = 4, - VertexId = 5, - InstanceId = 6, - PrimitiveId = 7, - InvocationId = 8, - Layer = 9, - ViewportIndex = 10, - TessLevelOuter = 11, - TessLevelInner = 12, - TessCoord = 13, - PatchVertices = 14, - FragCoord = 15, - PointCoord = 16, - FrontFacing = 17, - SampleId = 18, - SamplePosition = 19, - SampleMask = 20, - FragDepth = 22, - HelperInvocation = 23, - NumWorkgroups = 24, - WorkgroupSize = 25, - WorkgroupId = 26, - LocalInvocationId = 27, - GlobalInvocationId = 28, - LocalInvocationIndex = 29, - WorkDim = 30, - GlobalSize = 31, - EnqueuedWorkgroupSize = 32, - GlobalOffset = 33, - GlobalLinearId = 34, - SubgroupSize = 36, - SubgroupMaxSize = 37, - NumSubgroups = 38, - NumEnqueuedSubgroups = 39, - SubgroupId = 40, - SubgroupLocalInvocationId = 41, - VertexIndex = 42, - InstanceIndex = 43, - SubgroupEqMask = 4416, - SubgroupEqMaskKHR = 4416, - SubgroupGeMask = 4417, - SubgroupGeMaskKHR = 4417, - SubgroupGtMask = 4418, - SubgroupGtMaskKHR = 4418, - SubgroupLeMask = 4419, - SubgroupLeMaskKHR = 4419, - SubgroupLtMask = 4420, - SubgroupLtMaskKHR = 4420, - BaseVertex = 4424, - BaseInstance = 4425, - DrawIndex = 4426, - DeviceIndex = 4438, - ViewIndex = 4440, - BaryCoordNoPerspAMD = 4992, - BaryCoordNoPerspCentroidAMD = 4993, - BaryCoordNoPerspSampleAMD = 4994, - BaryCoordSmoothAMD = 4995, - BaryCoordSmoothCentroidAMD = 4996, - BaryCoordSmoothSampleAMD = 4997, - BaryCoordPullModelAMD = 4998, - FragStencilRefEXT = 5014, - ViewportMaskNV = 5253, - SecondaryPositionNV = 5257, - SecondaryViewportMaskNV = 5258, - PositionPerViewNV = 5261, - ViewportMaskPerViewNV = 5262, - FullyCoveredEXT = 5264, - TaskCountNV = 5274, - PrimitiveCountNV = 5275, - PrimitiveIndicesNV = 5276, - ClipDistancePerViewNV = 5277, - CullDistancePerViewNV = 5278, - LayerPerViewNV = 5279, - MeshViewCountNV = 5280, - MeshViewIndicesNV = 5281, - BaryCoordNV = 5286, - BaryCoordNoPerspNV = 5287, - FragSizeEXT = 5292, - FragmentSizeNV = 5292, - FragInvocationCountEXT = 5293, - InvocationsPerPixelNV = 5293, - LaunchIdNV = 5319, - LaunchSizeNV = 5320, - WorldRayOriginNV = 5321, - WorldRayDirectionNV = 5322, - ObjectRayOriginNV = 5323, - ObjectRayDirectionNV = 5324, - RayTminNV = 5325, - RayTmaxNV = 5326, - InstanceCustomIndexNV = 5327, - ObjectToWorldNV = 5330, - WorldToObjectNV = 5331, - HitTNV = 5332, - HitKindNV = 5333, - IncomingRayFlagsNV = 5351, - WarpsPerSMNV = 5374, - SMCountNV = 5375, - WarpIDNV = 5376, - SMIDNV = 5377, - }, - - SelectionControlShift = { - Flatten = 0, - DontFlatten = 1, - }, - - SelectionControlMask = { - MaskNone = 0, - Flatten = 0x00000001, - DontFlatten = 0x00000002, - }, - - LoopControlShift = { - Unroll = 0, - DontUnroll = 1, - DependencyInfinite = 2, - DependencyLength = 3, - MinIterations = 4, - MaxIterations = 5, - IterationMultiple = 6, - PeelCount = 7, - PartialCount = 8, - }, - - LoopControlMask = { - MaskNone = 0, - Unroll = 0x00000001, - DontUnroll = 0x00000002, - DependencyInfinite = 0x00000004, - DependencyLength = 0x00000008, - MinIterations = 0x00000010, - MaxIterations = 0x00000020, - IterationMultiple = 0x00000040, - PeelCount = 0x00000080, - PartialCount = 0x00000100, - }, - - FunctionControlShift = { - Inline = 0, - DontInline = 1, - Pure = 2, - Const = 3, - }, - - FunctionControlMask = { - MaskNone = 0, - Inline = 0x00000001, - DontInline = 0x00000002, - Pure = 0x00000004, - Const = 0x00000008, - }, - - MemorySemanticsShift = { - Acquire = 1, - Release = 2, - AcquireRelease = 3, - SequentiallyConsistent = 4, - UniformMemory = 6, - SubgroupMemory = 7, - WorkgroupMemory = 8, - CrossWorkgroupMemory = 9, - AtomicCounterMemory = 10, - ImageMemory = 11, - OutputMemory = 12, - OutputMemoryKHR = 12, - MakeAvailable = 13, - MakeAvailableKHR = 13, - MakeVisible = 14, - MakeVisibleKHR = 14, - Volatile = 15, - }, - - MemorySemanticsMask = { - MaskNone = 0, - Acquire = 0x00000002, - Release = 0x00000004, - AcquireRelease = 0x00000008, - SequentiallyConsistent = 0x00000010, - UniformMemory = 0x00000040, - SubgroupMemory = 0x00000080, - WorkgroupMemory = 0x00000100, - CrossWorkgroupMemory = 0x00000200, - AtomicCounterMemory = 0x00000400, - ImageMemory = 0x00000800, - OutputMemory = 0x00001000, - OutputMemoryKHR = 0x00001000, - MakeAvailable = 0x00002000, - MakeAvailableKHR = 0x00002000, - MakeVisible = 0x00004000, - MakeVisibleKHR = 0x00004000, - Volatile = 0x00008000, - }, - - MemoryAccessShift = { - Volatile = 0, - Aligned = 1, - Nontemporal = 2, - MakePointerAvailable = 3, - MakePointerAvailableKHR = 3, - MakePointerVisible = 4, - MakePointerVisibleKHR = 4, - NonPrivatePointer = 5, - NonPrivatePointerKHR = 5, - }, - - MemoryAccessMask = { - MaskNone = 0, - Volatile = 0x00000001, - Aligned = 0x00000002, - Nontemporal = 0x00000004, - MakePointerAvailable = 0x00000008, - MakePointerAvailableKHR = 0x00000008, - MakePointerVisible = 0x00000010, - MakePointerVisibleKHR = 0x00000010, - NonPrivatePointer = 0x00000020, - NonPrivatePointerKHR = 0x00000020, - }, - - Scope = { - CrossDevice = 0, - Device = 1, - Workgroup = 2, - Subgroup = 3, - Invocation = 4, - QueueFamily = 5, - QueueFamilyKHR = 5, - }, - - GroupOperation = { - Reduce = 0, - InclusiveScan = 1, - ExclusiveScan = 2, - ClusteredReduce = 3, - PartitionedReduceNV = 6, - PartitionedInclusiveScanNV = 7, - PartitionedExclusiveScanNV = 8, - }, - - KernelEnqueueFlags = { - NoWait = 0, - WaitKernel = 1, - WaitWorkGroup = 2, - }, - - KernelProfilingInfoShift = { - CmdExecTime = 0, - }, - - KernelProfilingInfoMask = { - MaskNone = 0, - CmdExecTime = 0x00000001, - }, - - Capability = { - Matrix = 0, - Shader = 1, - Geometry = 2, - Tessellation = 3, - Addresses = 4, - Linkage = 5, - Kernel = 6, - Vector16 = 7, - Float16Buffer = 8, - Float16 = 9, - Float64 = 10, - Int64 = 11, - Int64Atomics = 12, - ImageBasic = 13, - ImageReadWrite = 14, - ImageMipmap = 15, - Pipes = 17, - Groups = 18, - DeviceEnqueue = 19, - LiteralSampler = 20, - AtomicStorage = 21, - Int16 = 22, - TessellationPointSize = 23, - GeometryPointSize = 24, - ImageGatherExtended = 25, - StorageImageMultisample = 27, - UniformBufferArrayDynamicIndexing = 28, - SampledImageArrayDynamicIndexing = 29, - StorageBufferArrayDynamicIndexing = 30, - StorageImageArrayDynamicIndexing = 31, - ClipDistance = 32, - CullDistance = 33, - ImageCubeArray = 34, - SampleRateShading = 35, - ImageRect = 36, - SampledRect = 37, - GenericPointer = 38, - Int8 = 39, - InputAttachment = 40, - SparseResidency = 41, - MinLod = 42, - Sampled1D = 43, - Image1D = 44, - SampledCubeArray = 45, - SampledBuffer = 46, - ImageBuffer = 47, - ImageMSArray = 48, - StorageImageExtendedFormats = 49, - ImageQuery = 50, - DerivativeControl = 51, - InterpolationFunction = 52, - TransformFeedback = 53, - GeometryStreams = 54, - StorageImageReadWithoutFormat = 55, - StorageImageWriteWithoutFormat = 56, - MultiViewport = 57, - SubgroupDispatch = 58, - NamedBarrier = 59, - PipeStorage = 60, - GroupNonUniform = 61, - GroupNonUniformVote = 62, - GroupNonUniformArithmetic = 63, - GroupNonUniformBallot = 64, - GroupNonUniformShuffle = 65, - GroupNonUniformShuffleRelative = 66, - GroupNonUniformClustered = 67, - GroupNonUniformQuad = 68, - ShaderLayer = 69, - ShaderViewportIndex = 70, - SubgroupBallotKHR = 4423, - DrawParameters = 4427, - SubgroupVoteKHR = 4431, - StorageBuffer16BitAccess = 4433, - StorageUniformBufferBlock16 = 4433, - StorageUniform16 = 4434, - UniformAndStorageBuffer16BitAccess = 4434, - StoragePushConstant16 = 4435, - StorageInputOutput16 = 4436, - DeviceGroup = 4437, - MultiView = 4439, - VariablePointersStorageBuffer = 4441, - VariablePointers = 4442, - AtomicStorageOps = 4445, - SampleMaskPostDepthCoverage = 4447, - StorageBuffer8BitAccess = 4448, - UniformAndStorageBuffer8BitAccess = 4449, - StoragePushConstant8 = 4450, - DenormPreserve = 4464, - DenormFlushToZero = 4465, - SignedZeroInfNanPreserve = 4466, - RoundingModeRTE = 4467, - RoundingModeRTZ = 4468, - Float16ImageAMD = 5008, - ImageGatherBiasLodAMD = 5009, - FragmentMaskAMD = 5010, - StencilExportEXT = 5013, - ImageReadWriteLodAMD = 5015, - ShaderClockKHR = 5055, - SampleMaskOverrideCoverageNV = 5249, - GeometryShaderPassthroughNV = 5251, - ShaderViewportIndexLayerEXT = 5254, - ShaderViewportIndexLayerNV = 5254, - ShaderViewportMaskNV = 5255, - ShaderStereoViewNV = 5259, - PerViewAttributesNV = 5260, - FragmentFullyCoveredEXT = 5265, - MeshShadingNV = 5266, - ImageFootprintNV = 5282, - FragmentBarycentricNV = 5284, - ComputeDerivativeGroupQuadsNV = 5288, - FragmentDensityEXT = 5291, - ShadingRateNV = 5291, - GroupNonUniformPartitionedNV = 5297, - ShaderNonUniform = 5301, - ShaderNonUniformEXT = 5301, - RuntimeDescriptorArray = 5302, - RuntimeDescriptorArrayEXT = 5302, - InputAttachmentArrayDynamicIndexing = 5303, - InputAttachmentArrayDynamicIndexingEXT = 5303, - UniformTexelBufferArrayDynamicIndexing = 5304, - UniformTexelBufferArrayDynamicIndexingEXT = 5304, - StorageTexelBufferArrayDynamicIndexing = 5305, - StorageTexelBufferArrayDynamicIndexingEXT = 5305, - UniformBufferArrayNonUniformIndexing = 5306, - UniformBufferArrayNonUniformIndexingEXT = 5306, - SampledImageArrayNonUniformIndexing = 5307, - SampledImageArrayNonUniformIndexingEXT = 5307, - StorageBufferArrayNonUniformIndexing = 5308, - StorageBufferArrayNonUniformIndexingEXT = 5308, - StorageImageArrayNonUniformIndexing = 5309, - StorageImageArrayNonUniformIndexingEXT = 5309, - InputAttachmentArrayNonUniformIndexing = 5310, - InputAttachmentArrayNonUniformIndexingEXT = 5310, - UniformTexelBufferArrayNonUniformIndexing = 5311, - UniformTexelBufferArrayNonUniformIndexingEXT = 5311, - StorageTexelBufferArrayNonUniformIndexing = 5312, - StorageTexelBufferArrayNonUniformIndexingEXT = 5312, - RayTracingNV = 5340, - VulkanMemoryModel = 5345, - VulkanMemoryModelKHR = 5345, - VulkanMemoryModelDeviceScope = 5346, - VulkanMemoryModelDeviceScopeKHR = 5346, - PhysicalStorageBufferAddresses = 5347, - PhysicalStorageBufferAddressesEXT = 5347, - ComputeDerivativeGroupLinearNV = 5350, - CooperativeMatrixNV = 5357, - FragmentShaderSampleInterlockEXT = 5363, - FragmentShaderShadingRateInterlockEXT = 5372, - ShaderSMBuiltinsNV = 5373, - FragmentShaderPixelInterlockEXT = 5378, - DemoteToHelperInvocationEXT = 5379, - SubgroupShuffleINTEL = 5568, - SubgroupBufferBlockIOINTEL = 5569, - SubgroupImageBlockIOINTEL = 5570, - SubgroupImageMediaBlockIOINTEL = 5579, - IntegerFunctions2INTEL = 5584, - SubgroupAvcMotionEstimationINTEL = 5696, - SubgroupAvcMotionEstimationIntraINTEL = 5697, - SubgroupAvcMotionEstimationChromaINTEL = 5698, - }, - - Op = { - OpNop = 0, - OpUndef = 1, - OpSourceContinued = 2, - OpSource = 3, - OpSourceExtension = 4, - OpName = 5, - OpMemberName = 6, - OpString = 7, - OpLine = 8, - OpExtension = 10, - OpExtInstImport = 11, - OpExtInst = 12, - OpMemoryModel = 14, - OpEntryPoint = 15, - OpExecutionMode = 16, - OpCapability = 17, - OpTypeVoid = 19, - OpTypeBool = 20, - OpTypeInt = 21, - OpTypeFloat = 22, - OpTypeVector = 23, - OpTypeMatrix = 24, - OpTypeImage = 25, - OpTypeSampler = 26, - OpTypeSampledImage = 27, - OpTypeArray = 28, - OpTypeRuntimeArray = 29, - OpTypeStruct = 30, - OpTypeOpaque = 31, - OpTypePointer = 32, - OpTypeFunction = 33, - OpTypeEvent = 34, - OpTypeDeviceEvent = 35, - OpTypeReserveId = 36, - OpTypeQueue = 37, - OpTypePipe = 38, - OpTypeForwardPointer = 39, - OpConstantTrue = 41, - OpConstantFalse = 42, - OpConstant = 43, - OpConstantComposite = 44, - OpConstantSampler = 45, - OpConstantNull = 46, - OpSpecConstantTrue = 48, - OpSpecConstantFalse = 49, - OpSpecConstant = 50, - OpSpecConstantComposite = 51, - OpSpecConstantOp = 52, - OpFunction = 54, - OpFunctionParameter = 55, - OpFunctionEnd = 56, - OpFunctionCall = 57, - OpVariable = 59, - OpImageTexelPointer = 60, - OpLoad = 61, - OpStore = 62, - OpCopyMemory = 63, - OpCopyMemorySized = 64, - OpAccessChain = 65, - OpInBoundsAccessChain = 66, - OpPtrAccessChain = 67, - OpArrayLength = 68, - OpGenericPtrMemSemantics = 69, - OpInBoundsPtrAccessChain = 70, - OpDecorate = 71, - OpMemberDecorate = 72, - OpDecorationGroup = 73, - OpGroupDecorate = 74, - OpGroupMemberDecorate = 75, - OpVectorExtractDynamic = 77, - OpVectorInsertDynamic = 78, - OpVectorShuffle = 79, - OpCompositeConstruct = 80, - OpCompositeExtract = 81, - OpCompositeInsert = 82, - OpCopyObject = 83, - OpTranspose = 84, - OpSampledImage = 86, - OpImageSampleImplicitLod = 87, - OpImageSampleExplicitLod = 88, - OpImageSampleDrefImplicitLod = 89, - OpImageSampleDrefExplicitLod = 90, - OpImageSampleProjImplicitLod = 91, - OpImageSampleProjExplicitLod = 92, - OpImageSampleProjDrefImplicitLod = 93, - OpImageSampleProjDrefExplicitLod = 94, - OpImageFetch = 95, - OpImageGather = 96, - OpImageDrefGather = 97, - OpImageRead = 98, - OpImageWrite = 99, - OpImage = 100, - OpImageQueryFormat = 101, - OpImageQueryOrder = 102, - OpImageQuerySizeLod = 103, - OpImageQuerySize = 104, - OpImageQueryLod = 105, - OpImageQueryLevels = 106, - OpImageQuerySamples = 107, - OpConvertFToU = 109, - OpConvertFToS = 110, - OpConvertSToF = 111, - OpConvertUToF = 112, - OpUConvert = 113, - OpSConvert = 114, - OpFConvert = 115, - OpQuantizeToF16 = 116, - OpConvertPtrToU = 117, - OpSatConvertSToU = 118, - OpSatConvertUToS = 119, - OpConvertUToPtr = 120, - OpPtrCastToGeneric = 121, - OpGenericCastToPtr = 122, - OpGenericCastToPtrExplicit = 123, - OpBitcast = 124, - OpSNegate = 126, - OpFNegate = 127, - OpIAdd = 128, - OpFAdd = 129, - OpISub = 130, - OpFSub = 131, - OpIMul = 132, - OpFMul = 133, - OpUDiv = 134, - OpSDiv = 135, - OpFDiv = 136, - OpUMod = 137, - OpSRem = 138, - OpSMod = 139, - OpFRem = 140, - OpFMod = 141, - OpVectorTimesScalar = 142, - OpMatrixTimesScalar = 143, - OpVectorTimesMatrix = 144, - OpMatrixTimesVector = 145, - OpMatrixTimesMatrix = 146, - OpOuterProduct = 147, - OpDot = 148, - OpIAddCarry = 149, - OpISubBorrow = 150, - OpUMulExtended = 151, - OpSMulExtended = 152, - OpAny = 154, - OpAll = 155, - OpIsNan = 156, - OpIsInf = 157, - OpIsFinite = 158, - OpIsNormal = 159, - OpSignBitSet = 160, - OpLessOrGreater = 161, - OpOrdered = 162, - OpUnordered = 163, - OpLogicalEqual = 164, - OpLogicalNotEqual = 165, - OpLogicalOr = 166, - OpLogicalAnd = 167, - OpLogicalNot = 168, - OpSelect = 169, - OpIEqual = 170, - OpINotEqual = 171, - OpUGreaterThan = 172, - OpSGreaterThan = 173, - OpUGreaterThanEqual = 174, - OpSGreaterThanEqual = 175, - OpULessThan = 176, - OpSLessThan = 177, - OpULessThanEqual = 178, - OpSLessThanEqual = 179, - OpFOrdEqual = 180, - OpFUnordEqual = 181, - OpFOrdNotEqual = 182, - OpFUnordNotEqual = 183, - OpFOrdLessThan = 184, - OpFUnordLessThan = 185, - OpFOrdGreaterThan = 186, - OpFUnordGreaterThan = 187, - OpFOrdLessThanEqual = 188, - OpFUnordLessThanEqual = 189, - OpFOrdGreaterThanEqual = 190, - OpFUnordGreaterThanEqual = 191, - OpShiftRightLogical = 194, - OpShiftRightArithmetic = 195, - OpShiftLeftLogical = 196, - OpBitwiseOr = 197, - OpBitwiseXor = 198, - OpBitwiseAnd = 199, - OpNot = 200, - OpBitFieldInsert = 201, - OpBitFieldSExtract = 202, - OpBitFieldUExtract = 203, - OpBitReverse = 204, - OpBitCount = 205, - OpDPdx = 207, - OpDPdy = 208, - OpFwidth = 209, - OpDPdxFine = 210, - OpDPdyFine = 211, - OpFwidthFine = 212, - OpDPdxCoarse = 213, - OpDPdyCoarse = 214, - OpFwidthCoarse = 215, - OpEmitVertex = 218, - OpEndPrimitive = 219, - OpEmitStreamVertex = 220, - OpEndStreamPrimitive = 221, - OpControlBarrier = 224, - OpMemoryBarrier = 225, - OpAtomicLoad = 227, - OpAtomicStore = 228, - OpAtomicExchange = 229, - OpAtomicCompareExchange = 230, - OpAtomicCompareExchangeWeak = 231, - OpAtomicIIncrement = 232, - OpAtomicIDecrement = 233, - OpAtomicIAdd = 234, - OpAtomicISub = 235, - OpAtomicSMin = 236, - OpAtomicUMin = 237, - OpAtomicSMax = 238, - OpAtomicUMax = 239, - OpAtomicAnd = 240, - OpAtomicOr = 241, - OpAtomicXor = 242, - OpPhi = 245, - OpLoopMerge = 246, - OpSelectionMerge = 247, - OpLabel = 248, - OpBranch = 249, - OpBranchConditional = 250, - OpSwitch = 251, - OpKill = 252, - OpReturn = 253, - OpReturnValue = 254, - OpUnreachable = 255, - OpLifetimeStart = 256, - OpLifetimeStop = 257, - OpGroupAsyncCopy = 259, - OpGroupWaitEvents = 260, - OpGroupAll = 261, - OpGroupAny = 262, - OpGroupBroadcast = 263, - OpGroupIAdd = 264, - OpGroupFAdd = 265, - OpGroupFMin = 266, - OpGroupUMin = 267, - OpGroupSMin = 268, - OpGroupFMax = 269, - OpGroupUMax = 270, - OpGroupSMax = 271, - OpReadPipe = 274, - OpWritePipe = 275, - OpReservedReadPipe = 276, - OpReservedWritePipe = 277, - OpReserveReadPipePackets = 278, - OpReserveWritePipePackets = 279, - OpCommitReadPipe = 280, - OpCommitWritePipe = 281, - OpIsValidReserveId = 282, - OpGetNumPipePackets = 283, - OpGetMaxPipePackets = 284, - OpGroupReserveReadPipePackets = 285, - OpGroupReserveWritePipePackets = 286, - OpGroupCommitReadPipe = 287, - OpGroupCommitWritePipe = 288, - OpEnqueueMarker = 291, - OpEnqueueKernel = 292, - OpGetKernelNDrangeSubGroupCount = 293, - OpGetKernelNDrangeMaxSubGroupSize = 294, - OpGetKernelWorkGroupSize = 295, - OpGetKernelPreferredWorkGroupSizeMultiple = 296, - OpRetainEvent = 297, - OpReleaseEvent = 298, - OpCreateUserEvent = 299, - OpIsValidEvent = 300, - OpSetUserEventStatus = 301, - OpCaptureEventProfilingInfo = 302, - OpGetDefaultQueue = 303, - OpBuildNDRange = 304, - OpImageSparseSampleImplicitLod = 305, - OpImageSparseSampleExplicitLod = 306, - OpImageSparseSampleDrefImplicitLod = 307, - OpImageSparseSampleDrefExplicitLod = 308, - OpImageSparseSampleProjImplicitLod = 309, - OpImageSparseSampleProjExplicitLod = 310, - OpImageSparseSampleProjDrefImplicitLod = 311, - OpImageSparseSampleProjDrefExplicitLod = 312, - OpImageSparseFetch = 313, - OpImageSparseGather = 314, - OpImageSparseDrefGather = 315, - OpImageSparseTexelsResident = 316, - OpNoLine = 317, - OpAtomicFlagTestAndSet = 318, - OpAtomicFlagClear = 319, - OpImageSparseRead = 320, - OpSizeOf = 321, - OpTypePipeStorage = 322, - OpConstantPipeStorage = 323, - OpCreatePipeFromPipeStorage = 324, - OpGetKernelLocalSizeForSubgroupCount = 325, - OpGetKernelMaxNumSubgroups = 326, - OpTypeNamedBarrier = 327, - OpNamedBarrierInitialize = 328, - OpMemoryNamedBarrier = 329, - OpModuleProcessed = 330, - OpExecutionModeId = 331, - OpDecorateId = 332, - OpGroupNonUniformElect = 333, - OpGroupNonUniformAll = 334, - OpGroupNonUniformAny = 335, - OpGroupNonUniformAllEqual = 336, - OpGroupNonUniformBroadcast = 337, - OpGroupNonUniformBroadcastFirst = 338, - OpGroupNonUniformBallot = 339, - OpGroupNonUniformInverseBallot = 340, - OpGroupNonUniformBallotBitExtract = 341, - OpGroupNonUniformBallotBitCount = 342, - OpGroupNonUniformBallotFindLSB = 343, - OpGroupNonUniformBallotFindMSB = 344, - OpGroupNonUniformShuffle = 345, - OpGroupNonUniformShuffleXor = 346, - OpGroupNonUniformShuffleUp = 347, - OpGroupNonUniformShuffleDown = 348, - OpGroupNonUniformIAdd = 349, - OpGroupNonUniformFAdd = 350, - OpGroupNonUniformIMul = 351, - OpGroupNonUniformFMul = 352, - OpGroupNonUniformSMin = 353, - OpGroupNonUniformUMin = 354, - OpGroupNonUniformFMin = 355, - OpGroupNonUniformSMax = 356, - OpGroupNonUniformUMax = 357, - OpGroupNonUniformFMax = 358, - OpGroupNonUniformBitwiseAnd = 359, - OpGroupNonUniformBitwiseOr = 360, - OpGroupNonUniformBitwiseXor = 361, - OpGroupNonUniformLogicalAnd = 362, - OpGroupNonUniformLogicalOr = 363, - OpGroupNonUniformLogicalXor = 364, - OpGroupNonUniformQuadBroadcast = 365, - OpGroupNonUniformQuadSwap = 366, - OpCopyLogical = 400, - OpPtrEqual = 401, - OpPtrNotEqual = 402, - OpPtrDiff = 403, - OpSubgroupBallotKHR = 4421, - OpSubgroupFirstInvocationKHR = 4422, - OpSubgroupAllKHR = 4428, - OpSubgroupAnyKHR = 4429, - OpSubgroupAllEqualKHR = 4430, - OpSubgroupReadInvocationKHR = 4432, - OpGroupIAddNonUniformAMD = 5000, - OpGroupFAddNonUniformAMD = 5001, - OpGroupFMinNonUniformAMD = 5002, - OpGroupUMinNonUniformAMD = 5003, - OpGroupSMinNonUniformAMD = 5004, - OpGroupFMaxNonUniformAMD = 5005, - OpGroupUMaxNonUniformAMD = 5006, - OpGroupSMaxNonUniformAMD = 5007, - OpFragmentMaskFetchAMD = 5011, - OpFragmentFetchAMD = 5012, - OpReadClockKHR = 5056, - OpImageSampleFootprintNV = 5283, - OpGroupNonUniformPartitionNV = 5296, - OpWritePackedPrimitiveIndices4x8NV = 5299, - OpReportIntersectionNV = 5334, - OpIgnoreIntersectionNV = 5335, - OpTerminateRayNV = 5336, - OpTraceNV = 5337, - OpTypeAccelerationStructureNV = 5341, - OpExecuteCallableNV = 5344, - OpTypeCooperativeMatrixNV = 5358, - OpCooperativeMatrixLoadNV = 5359, - OpCooperativeMatrixStoreNV = 5360, - OpCooperativeMatrixMulAddNV = 5361, - OpCooperativeMatrixLengthNV = 5362, - OpBeginInvocationInterlockEXT = 5364, - OpEndInvocationInterlockEXT = 5365, - OpDemoteToHelperInvocationEXT = 5380, - OpIsHelperInvocationEXT = 5381, - OpSubgroupShuffleINTEL = 5571, - OpSubgroupShuffleDownINTEL = 5572, - OpSubgroupShuffleUpINTEL = 5573, - OpSubgroupShuffleXorINTEL = 5574, - OpSubgroupBlockReadINTEL = 5575, - OpSubgroupBlockWriteINTEL = 5576, - OpSubgroupImageBlockReadINTEL = 5577, - OpSubgroupImageBlockWriteINTEL = 5578, - OpSubgroupImageMediaBlockReadINTEL = 5580, - OpSubgroupImageMediaBlockWriteINTEL = 5581, - OpUCountLeadingZerosINTEL = 5585, - OpUCountTrailingZerosINTEL = 5586, - OpAbsISubINTEL = 5587, - OpAbsUSubINTEL = 5588, - OpIAddSatINTEL = 5589, - OpUAddSatINTEL = 5590, - OpIAverageINTEL = 5591, - OpUAverageINTEL = 5592, - OpIAverageRoundedINTEL = 5593, - OpUAverageRoundedINTEL = 5594, - OpISubSatINTEL = 5595, - OpUSubSatINTEL = 5596, - OpIMul32x16INTEL = 5597, - OpUMul32x16INTEL = 5598, - OpDecorateString = 5632, - OpDecorateStringGOOGLE = 5632, - OpMemberDecorateString = 5633, - OpMemberDecorateStringGOOGLE = 5633, - OpVmeImageINTEL = 5699, - OpTypeVmeImageINTEL = 5700, - OpTypeAvcImePayloadINTEL = 5701, - OpTypeAvcRefPayloadINTEL = 5702, - OpTypeAvcSicPayloadINTEL = 5703, - OpTypeAvcMcePayloadINTEL = 5704, - OpTypeAvcMceResultINTEL = 5705, - OpTypeAvcImeResultINTEL = 5706, - OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707, - OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708, - OpTypeAvcImeSingleReferenceStreaminINTEL = 5709, - OpTypeAvcImeDualReferenceStreaminINTEL = 5710, - OpTypeAvcRefResultINTEL = 5711, - OpTypeAvcSicResultINTEL = 5712, - OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713, - OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714, - OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715, - OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716, - OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717, - OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718, - OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719, - OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720, - OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721, - OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722, - OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723, - OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724, - OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725, - OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726, - OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727, - OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728, - OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729, - OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730, - OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731, - OpSubgroupAvcMceConvertToImePayloadINTEL = 5732, - OpSubgroupAvcMceConvertToImeResultINTEL = 5733, - OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734, - OpSubgroupAvcMceConvertToRefResultINTEL = 5735, - OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736, - OpSubgroupAvcMceConvertToSicResultINTEL = 5737, - OpSubgroupAvcMceGetMotionVectorsINTEL = 5738, - OpSubgroupAvcMceGetInterDistortionsINTEL = 5739, - OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740, - OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741, - OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742, - OpSubgroupAvcMceGetInterDirectionsINTEL = 5743, - OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744, - OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745, - OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746, - OpSubgroupAvcImeInitializeINTEL = 5747, - OpSubgroupAvcImeSetSingleReferenceINTEL = 5748, - OpSubgroupAvcImeSetDualReferenceINTEL = 5749, - OpSubgroupAvcImeRefWindowSizeINTEL = 5750, - OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751, - OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752, - OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753, - OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754, - OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755, - OpSubgroupAvcImeSetWeightedSadINTEL = 5756, - OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757, - OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758, - OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759, - OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760, - OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761, - OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762, - OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763, - OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764, - OpSubgroupAvcImeConvertToMceResultINTEL = 5765, - OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766, - OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767, - OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768, - OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769, - OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770, - OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771, - OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772, - OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773, - OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774, - OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775, - OpSubgroupAvcImeGetBorderReachedINTEL = 5776, - OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777, - OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778, - OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779, - OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780, - OpSubgroupAvcFmeInitializeINTEL = 5781, - OpSubgroupAvcBmeInitializeINTEL = 5782, - OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783, - OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784, - OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785, - OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786, - OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787, - OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788, - OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789, - OpSubgroupAvcRefConvertToMceResultINTEL = 5790, - OpSubgroupAvcSicInitializeINTEL = 5791, - OpSubgroupAvcSicConfigureSkcINTEL = 5792, - OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793, - OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794, - OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795, - OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796, - OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797, - OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798, - OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799, - OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800, - OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801, - OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802, - OpSubgroupAvcSicEvaluateIpeINTEL = 5803, - OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804, - OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805, - OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806, - OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807, - OpSubgroupAvcSicConvertToMceResultINTEL = 5808, - OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809, - OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810, - OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811, - OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812, - OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813, - OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814, - OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815, - OpSubgroupAvcSicGetInterRawSadsINTEL = 5816, - }, - -} - diff --git a/external/vulkan/windows/include/vulkan/spirv.py b/external/vulkan/windows/include/vulkan/spirv.py deleted file mode 100644 index 6968e7b3..00000000 --- a/external/vulkan/windows/include/vulkan/spirv.py +++ /dev/null @@ -1,1396 +0,0 @@ -# Copyright (c) 2014-2019 The Khronos Group Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and/or associated documentation files (the "Materials"), -# to deal in the Materials without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Materials, and to permit persons to whom the -# Materials are furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Materials. -# -# MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS -# STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND -# HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ -# -# THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS -# IN THE MATERIALS. - -# This header is automatically generated by the same tool that creates -# the Binary Section of the SPIR-V specification. - -# Enumeration tokens for SPIR-V, in various styles: -# C, C++, C++11, JSON, Lua, Python, C#, D -# -# - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL -# - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL -# - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL -# - Lua will use tables, e.g.: spv.SourceLanguage.GLSL -# - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] -# - C# will use enum classes in the Specification class located in the "Spv" namespace, -# e.g.: Spv.Specification.SourceLanguage.GLSL -# - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL -# -# Some tokens act like mask values, which can be OR'd together, -# while others are mutually exclusive. The mask-like ones have -# "Mask" in their name, and a parallel enum that has the shift -# amount (1 << x) for each corresponding enumerant. - -spv = { - 'MagicNumber' : 0x07230203, - 'Version' : 0x00010500, - 'Revision' : 1, - 'OpCodeMask' : 0xffff, - 'WordCountShift' : 16, - - 'SourceLanguage' : { - 'Unknown' : 0, - 'ESSL' : 1, - 'GLSL' : 2, - 'OpenCL_C' : 3, - 'OpenCL_CPP' : 4, - 'HLSL' : 5, - }, - - 'ExecutionModel' : { - 'Vertex' : 0, - 'TessellationControl' : 1, - 'TessellationEvaluation' : 2, - 'Geometry' : 3, - 'Fragment' : 4, - 'GLCompute' : 5, - 'Kernel' : 6, - 'TaskNV' : 5267, - 'MeshNV' : 5268, - 'RayGenerationNV' : 5313, - 'IntersectionNV' : 5314, - 'AnyHitNV' : 5315, - 'ClosestHitNV' : 5316, - 'MissNV' : 5317, - 'CallableNV' : 5318, - }, - - 'AddressingModel' : { - 'Logical' : 0, - 'Physical32' : 1, - 'Physical64' : 2, - 'PhysicalStorageBuffer64' : 5348, - 'PhysicalStorageBuffer64EXT' : 5348, - }, - - 'MemoryModel' : { - 'Simple' : 0, - 'GLSL450' : 1, - 'OpenCL' : 2, - 'Vulkan' : 3, - 'VulkanKHR' : 3, - }, - - 'ExecutionMode' : { - 'Invocations' : 0, - 'SpacingEqual' : 1, - 'SpacingFractionalEven' : 2, - 'SpacingFractionalOdd' : 3, - 'VertexOrderCw' : 4, - 'VertexOrderCcw' : 5, - 'PixelCenterInteger' : 6, - 'OriginUpperLeft' : 7, - 'OriginLowerLeft' : 8, - 'EarlyFragmentTests' : 9, - 'PointMode' : 10, - 'Xfb' : 11, - 'DepthReplacing' : 12, - 'DepthGreater' : 14, - 'DepthLess' : 15, - 'DepthUnchanged' : 16, - 'LocalSize' : 17, - 'LocalSizeHint' : 18, - 'InputPoints' : 19, - 'InputLines' : 20, - 'InputLinesAdjacency' : 21, - 'Triangles' : 22, - 'InputTrianglesAdjacency' : 23, - 'Quads' : 24, - 'Isolines' : 25, - 'OutputVertices' : 26, - 'OutputPoints' : 27, - 'OutputLineStrip' : 28, - 'OutputTriangleStrip' : 29, - 'VecTypeHint' : 30, - 'ContractionOff' : 31, - 'Initializer' : 33, - 'Finalizer' : 34, - 'SubgroupSize' : 35, - 'SubgroupsPerWorkgroup' : 36, - 'SubgroupsPerWorkgroupId' : 37, - 'LocalSizeId' : 38, - 'LocalSizeHintId' : 39, - 'PostDepthCoverage' : 4446, - 'DenormPreserve' : 4459, - 'DenormFlushToZero' : 4460, - 'SignedZeroInfNanPreserve' : 4461, - 'RoundingModeRTE' : 4462, - 'RoundingModeRTZ' : 4463, - 'StencilRefReplacingEXT' : 5027, - 'OutputLinesNV' : 5269, - 'OutputPrimitivesNV' : 5270, - 'DerivativeGroupQuadsNV' : 5289, - 'DerivativeGroupLinearNV' : 5290, - 'OutputTrianglesNV' : 5298, - 'PixelInterlockOrderedEXT' : 5366, - 'PixelInterlockUnorderedEXT' : 5367, - 'SampleInterlockOrderedEXT' : 5368, - 'SampleInterlockUnorderedEXT' : 5369, - 'ShadingRateInterlockOrderedEXT' : 5370, - 'ShadingRateInterlockUnorderedEXT' : 5371, - }, - - 'StorageClass' : { - 'UniformConstant' : 0, - 'Input' : 1, - 'Uniform' : 2, - 'Output' : 3, - 'Workgroup' : 4, - 'CrossWorkgroup' : 5, - 'Private' : 6, - 'Function' : 7, - 'Generic' : 8, - 'PushConstant' : 9, - 'AtomicCounter' : 10, - 'Image' : 11, - 'StorageBuffer' : 12, - 'CallableDataNV' : 5328, - 'IncomingCallableDataNV' : 5329, - 'RayPayloadNV' : 5338, - 'HitAttributeNV' : 5339, - 'IncomingRayPayloadNV' : 5342, - 'ShaderRecordBufferNV' : 5343, - 'PhysicalStorageBuffer' : 5349, - 'PhysicalStorageBufferEXT' : 5349, - }, - - 'Dim' : { - 'Dim1D' : 0, - 'Dim2D' : 1, - 'Dim3D' : 2, - 'Cube' : 3, - 'Rect' : 4, - 'Buffer' : 5, - 'SubpassData' : 6, - }, - - 'SamplerAddressingMode' : { - 'None' : 0, - 'ClampToEdge' : 1, - 'Clamp' : 2, - 'Repeat' : 3, - 'RepeatMirrored' : 4, - }, - - 'SamplerFilterMode' : { - 'Nearest' : 0, - 'Linear' : 1, - }, - - 'ImageFormat' : { - 'Unknown' : 0, - 'Rgba32f' : 1, - 'Rgba16f' : 2, - 'R32f' : 3, - 'Rgba8' : 4, - 'Rgba8Snorm' : 5, - 'Rg32f' : 6, - 'Rg16f' : 7, - 'R11fG11fB10f' : 8, - 'R16f' : 9, - 'Rgba16' : 10, - 'Rgb10A2' : 11, - 'Rg16' : 12, - 'Rg8' : 13, - 'R16' : 14, - 'R8' : 15, - 'Rgba16Snorm' : 16, - 'Rg16Snorm' : 17, - 'Rg8Snorm' : 18, - 'R16Snorm' : 19, - 'R8Snorm' : 20, - 'Rgba32i' : 21, - 'Rgba16i' : 22, - 'Rgba8i' : 23, - 'R32i' : 24, - 'Rg32i' : 25, - 'Rg16i' : 26, - 'Rg8i' : 27, - 'R16i' : 28, - 'R8i' : 29, - 'Rgba32ui' : 30, - 'Rgba16ui' : 31, - 'Rgba8ui' : 32, - 'R32ui' : 33, - 'Rgb10a2ui' : 34, - 'Rg32ui' : 35, - 'Rg16ui' : 36, - 'Rg8ui' : 37, - 'R16ui' : 38, - 'R8ui' : 39, - }, - - 'ImageChannelOrder' : { - 'R' : 0, - 'A' : 1, - 'RG' : 2, - 'RA' : 3, - 'RGB' : 4, - 'RGBA' : 5, - 'BGRA' : 6, - 'ARGB' : 7, - 'Intensity' : 8, - 'Luminance' : 9, - 'Rx' : 10, - 'RGx' : 11, - 'RGBx' : 12, - 'Depth' : 13, - 'DepthStencil' : 14, - 'sRGB' : 15, - 'sRGBx' : 16, - 'sRGBA' : 17, - 'sBGRA' : 18, - 'ABGR' : 19, - }, - - 'ImageChannelDataType' : { - 'SnormInt8' : 0, - 'SnormInt16' : 1, - 'UnormInt8' : 2, - 'UnormInt16' : 3, - 'UnormShort565' : 4, - 'UnormShort555' : 5, - 'UnormInt101010' : 6, - 'SignedInt8' : 7, - 'SignedInt16' : 8, - 'SignedInt32' : 9, - 'UnsignedInt8' : 10, - 'UnsignedInt16' : 11, - 'UnsignedInt32' : 12, - 'HalfFloat' : 13, - 'Float' : 14, - 'UnormInt24' : 15, - 'UnormInt101010_2' : 16, - }, - - 'ImageOperandsShift' : { - 'Bias' : 0, - 'Lod' : 1, - 'Grad' : 2, - 'ConstOffset' : 3, - 'Offset' : 4, - 'ConstOffsets' : 5, - 'Sample' : 6, - 'MinLod' : 7, - 'MakeTexelAvailable' : 8, - 'MakeTexelAvailableKHR' : 8, - 'MakeTexelVisible' : 9, - 'MakeTexelVisibleKHR' : 9, - 'NonPrivateTexel' : 10, - 'NonPrivateTexelKHR' : 10, - 'VolatileTexel' : 11, - 'VolatileTexelKHR' : 11, - 'SignExtend' : 12, - 'ZeroExtend' : 13, - }, - - 'ImageOperandsMask' : { - 'MaskNone' : 0, - 'Bias' : 0x00000001, - 'Lod' : 0x00000002, - 'Grad' : 0x00000004, - 'ConstOffset' : 0x00000008, - 'Offset' : 0x00000010, - 'ConstOffsets' : 0x00000020, - 'Sample' : 0x00000040, - 'MinLod' : 0x00000080, - 'MakeTexelAvailable' : 0x00000100, - 'MakeTexelAvailableKHR' : 0x00000100, - 'MakeTexelVisible' : 0x00000200, - 'MakeTexelVisibleKHR' : 0x00000200, - 'NonPrivateTexel' : 0x00000400, - 'NonPrivateTexelKHR' : 0x00000400, - 'VolatileTexel' : 0x00000800, - 'VolatileTexelKHR' : 0x00000800, - 'SignExtend' : 0x00001000, - 'ZeroExtend' : 0x00002000, - }, - - 'FPFastMathModeShift' : { - 'NotNaN' : 0, - 'NotInf' : 1, - 'NSZ' : 2, - 'AllowRecip' : 3, - 'Fast' : 4, - }, - - 'FPFastMathModeMask' : { - 'MaskNone' : 0, - 'NotNaN' : 0x00000001, - 'NotInf' : 0x00000002, - 'NSZ' : 0x00000004, - 'AllowRecip' : 0x00000008, - 'Fast' : 0x00000010, - }, - - 'FPRoundingMode' : { - 'RTE' : 0, - 'RTZ' : 1, - 'RTP' : 2, - 'RTN' : 3, - }, - - 'LinkageType' : { - 'Export' : 0, - 'Import' : 1, - }, - - 'AccessQualifier' : { - 'ReadOnly' : 0, - 'WriteOnly' : 1, - 'ReadWrite' : 2, - }, - - 'FunctionParameterAttribute' : { - 'Zext' : 0, - 'Sext' : 1, - 'ByVal' : 2, - 'Sret' : 3, - 'NoAlias' : 4, - 'NoCapture' : 5, - 'NoWrite' : 6, - 'NoReadWrite' : 7, - }, - - 'Decoration' : { - 'RelaxedPrecision' : 0, - 'SpecId' : 1, - 'Block' : 2, - 'BufferBlock' : 3, - 'RowMajor' : 4, - 'ColMajor' : 5, - 'ArrayStride' : 6, - 'MatrixStride' : 7, - 'GLSLShared' : 8, - 'GLSLPacked' : 9, - 'CPacked' : 10, - 'BuiltIn' : 11, - 'NoPerspective' : 13, - 'Flat' : 14, - 'Patch' : 15, - 'Centroid' : 16, - 'Sample' : 17, - 'Invariant' : 18, - 'Restrict' : 19, - 'Aliased' : 20, - 'Volatile' : 21, - 'Constant' : 22, - 'Coherent' : 23, - 'NonWritable' : 24, - 'NonReadable' : 25, - 'Uniform' : 26, - 'UniformId' : 27, - 'SaturatedConversion' : 28, - 'Stream' : 29, - 'Location' : 30, - 'Component' : 31, - 'Index' : 32, - 'Binding' : 33, - 'DescriptorSet' : 34, - 'Offset' : 35, - 'XfbBuffer' : 36, - 'XfbStride' : 37, - 'FuncParamAttr' : 38, - 'FPRoundingMode' : 39, - 'FPFastMathMode' : 40, - 'LinkageAttributes' : 41, - 'NoContraction' : 42, - 'InputAttachmentIndex' : 43, - 'Alignment' : 44, - 'MaxByteOffset' : 45, - 'AlignmentId' : 46, - 'MaxByteOffsetId' : 47, - 'NoSignedWrap' : 4469, - 'NoUnsignedWrap' : 4470, - 'ExplicitInterpAMD' : 4999, - 'OverrideCoverageNV' : 5248, - 'PassthroughNV' : 5250, - 'ViewportRelativeNV' : 5252, - 'SecondaryViewportRelativeNV' : 5256, - 'PerPrimitiveNV' : 5271, - 'PerViewNV' : 5272, - 'PerTaskNV' : 5273, - 'PerVertexNV' : 5285, - 'NonUniform' : 5300, - 'NonUniformEXT' : 5300, - 'RestrictPointer' : 5355, - 'RestrictPointerEXT' : 5355, - 'AliasedPointer' : 5356, - 'AliasedPointerEXT' : 5356, - 'CounterBuffer' : 5634, - 'HlslCounterBufferGOOGLE' : 5634, - 'HlslSemanticGOOGLE' : 5635, - 'UserSemantic' : 5635, - 'UserTypeGOOGLE' : 5636, - }, - - 'BuiltIn' : { - 'Position' : 0, - 'PointSize' : 1, - 'ClipDistance' : 3, - 'CullDistance' : 4, - 'VertexId' : 5, - 'InstanceId' : 6, - 'PrimitiveId' : 7, - 'InvocationId' : 8, - 'Layer' : 9, - 'ViewportIndex' : 10, - 'TessLevelOuter' : 11, - 'TessLevelInner' : 12, - 'TessCoord' : 13, - 'PatchVertices' : 14, - 'FragCoord' : 15, - 'PointCoord' : 16, - 'FrontFacing' : 17, - 'SampleId' : 18, - 'SamplePosition' : 19, - 'SampleMask' : 20, - 'FragDepth' : 22, - 'HelperInvocation' : 23, - 'NumWorkgroups' : 24, - 'WorkgroupSize' : 25, - 'WorkgroupId' : 26, - 'LocalInvocationId' : 27, - 'GlobalInvocationId' : 28, - 'LocalInvocationIndex' : 29, - 'WorkDim' : 30, - 'GlobalSize' : 31, - 'EnqueuedWorkgroupSize' : 32, - 'GlobalOffset' : 33, - 'GlobalLinearId' : 34, - 'SubgroupSize' : 36, - 'SubgroupMaxSize' : 37, - 'NumSubgroups' : 38, - 'NumEnqueuedSubgroups' : 39, - 'SubgroupId' : 40, - 'SubgroupLocalInvocationId' : 41, - 'VertexIndex' : 42, - 'InstanceIndex' : 43, - 'SubgroupEqMask' : 4416, - 'SubgroupEqMaskKHR' : 4416, - 'SubgroupGeMask' : 4417, - 'SubgroupGeMaskKHR' : 4417, - 'SubgroupGtMask' : 4418, - 'SubgroupGtMaskKHR' : 4418, - 'SubgroupLeMask' : 4419, - 'SubgroupLeMaskKHR' : 4419, - 'SubgroupLtMask' : 4420, - 'SubgroupLtMaskKHR' : 4420, - 'BaseVertex' : 4424, - 'BaseInstance' : 4425, - 'DrawIndex' : 4426, - 'DeviceIndex' : 4438, - 'ViewIndex' : 4440, - 'BaryCoordNoPerspAMD' : 4992, - 'BaryCoordNoPerspCentroidAMD' : 4993, - 'BaryCoordNoPerspSampleAMD' : 4994, - 'BaryCoordSmoothAMD' : 4995, - 'BaryCoordSmoothCentroidAMD' : 4996, - 'BaryCoordSmoothSampleAMD' : 4997, - 'BaryCoordPullModelAMD' : 4998, - 'FragStencilRefEXT' : 5014, - 'ViewportMaskNV' : 5253, - 'SecondaryPositionNV' : 5257, - 'SecondaryViewportMaskNV' : 5258, - 'PositionPerViewNV' : 5261, - 'ViewportMaskPerViewNV' : 5262, - 'FullyCoveredEXT' : 5264, - 'TaskCountNV' : 5274, - 'PrimitiveCountNV' : 5275, - 'PrimitiveIndicesNV' : 5276, - 'ClipDistancePerViewNV' : 5277, - 'CullDistancePerViewNV' : 5278, - 'LayerPerViewNV' : 5279, - 'MeshViewCountNV' : 5280, - 'MeshViewIndicesNV' : 5281, - 'BaryCoordNV' : 5286, - 'BaryCoordNoPerspNV' : 5287, - 'FragSizeEXT' : 5292, - 'FragmentSizeNV' : 5292, - 'FragInvocationCountEXT' : 5293, - 'InvocationsPerPixelNV' : 5293, - 'LaunchIdNV' : 5319, - 'LaunchSizeNV' : 5320, - 'WorldRayOriginNV' : 5321, - 'WorldRayDirectionNV' : 5322, - 'ObjectRayOriginNV' : 5323, - 'ObjectRayDirectionNV' : 5324, - 'RayTminNV' : 5325, - 'RayTmaxNV' : 5326, - 'InstanceCustomIndexNV' : 5327, - 'ObjectToWorldNV' : 5330, - 'WorldToObjectNV' : 5331, - 'HitTNV' : 5332, - 'HitKindNV' : 5333, - 'IncomingRayFlagsNV' : 5351, - 'WarpsPerSMNV' : 5374, - 'SMCountNV' : 5375, - 'WarpIDNV' : 5376, - 'SMIDNV' : 5377, - }, - - 'SelectionControlShift' : { - 'Flatten' : 0, - 'DontFlatten' : 1, - }, - - 'SelectionControlMask' : { - 'MaskNone' : 0, - 'Flatten' : 0x00000001, - 'DontFlatten' : 0x00000002, - }, - - 'LoopControlShift' : { - 'Unroll' : 0, - 'DontUnroll' : 1, - 'DependencyInfinite' : 2, - 'DependencyLength' : 3, - 'MinIterations' : 4, - 'MaxIterations' : 5, - 'IterationMultiple' : 6, - 'PeelCount' : 7, - 'PartialCount' : 8, - }, - - 'LoopControlMask' : { - 'MaskNone' : 0, - 'Unroll' : 0x00000001, - 'DontUnroll' : 0x00000002, - 'DependencyInfinite' : 0x00000004, - 'DependencyLength' : 0x00000008, - 'MinIterations' : 0x00000010, - 'MaxIterations' : 0x00000020, - 'IterationMultiple' : 0x00000040, - 'PeelCount' : 0x00000080, - 'PartialCount' : 0x00000100, - }, - - 'FunctionControlShift' : { - 'Inline' : 0, - 'DontInline' : 1, - 'Pure' : 2, - 'Const' : 3, - }, - - 'FunctionControlMask' : { - 'MaskNone' : 0, - 'Inline' : 0x00000001, - 'DontInline' : 0x00000002, - 'Pure' : 0x00000004, - 'Const' : 0x00000008, - }, - - 'MemorySemanticsShift' : { - 'Acquire' : 1, - 'Release' : 2, - 'AcquireRelease' : 3, - 'SequentiallyConsistent' : 4, - 'UniformMemory' : 6, - 'SubgroupMemory' : 7, - 'WorkgroupMemory' : 8, - 'CrossWorkgroupMemory' : 9, - 'AtomicCounterMemory' : 10, - 'ImageMemory' : 11, - 'OutputMemory' : 12, - 'OutputMemoryKHR' : 12, - 'MakeAvailable' : 13, - 'MakeAvailableKHR' : 13, - 'MakeVisible' : 14, - 'MakeVisibleKHR' : 14, - 'Volatile' : 15, - }, - - 'MemorySemanticsMask' : { - 'MaskNone' : 0, - 'Acquire' : 0x00000002, - 'Release' : 0x00000004, - 'AcquireRelease' : 0x00000008, - 'SequentiallyConsistent' : 0x00000010, - 'UniformMemory' : 0x00000040, - 'SubgroupMemory' : 0x00000080, - 'WorkgroupMemory' : 0x00000100, - 'CrossWorkgroupMemory' : 0x00000200, - 'AtomicCounterMemory' : 0x00000400, - 'ImageMemory' : 0x00000800, - 'OutputMemory' : 0x00001000, - 'OutputMemoryKHR' : 0x00001000, - 'MakeAvailable' : 0x00002000, - 'MakeAvailableKHR' : 0x00002000, - 'MakeVisible' : 0x00004000, - 'MakeVisibleKHR' : 0x00004000, - 'Volatile' : 0x00008000, - }, - - 'MemoryAccessShift' : { - 'Volatile' : 0, - 'Aligned' : 1, - 'Nontemporal' : 2, - 'MakePointerAvailable' : 3, - 'MakePointerAvailableKHR' : 3, - 'MakePointerVisible' : 4, - 'MakePointerVisibleKHR' : 4, - 'NonPrivatePointer' : 5, - 'NonPrivatePointerKHR' : 5, - }, - - 'MemoryAccessMask' : { - 'MaskNone' : 0, - 'Volatile' : 0x00000001, - 'Aligned' : 0x00000002, - 'Nontemporal' : 0x00000004, - 'MakePointerAvailable' : 0x00000008, - 'MakePointerAvailableKHR' : 0x00000008, - 'MakePointerVisible' : 0x00000010, - 'MakePointerVisibleKHR' : 0x00000010, - 'NonPrivatePointer' : 0x00000020, - 'NonPrivatePointerKHR' : 0x00000020, - }, - - 'Scope' : { - 'CrossDevice' : 0, - 'Device' : 1, - 'Workgroup' : 2, - 'Subgroup' : 3, - 'Invocation' : 4, - 'QueueFamily' : 5, - 'QueueFamilyKHR' : 5, - }, - - 'GroupOperation' : { - 'Reduce' : 0, - 'InclusiveScan' : 1, - 'ExclusiveScan' : 2, - 'ClusteredReduce' : 3, - 'PartitionedReduceNV' : 6, - 'PartitionedInclusiveScanNV' : 7, - 'PartitionedExclusiveScanNV' : 8, - }, - - 'KernelEnqueueFlags' : { - 'NoWait' : 0, - 'WaitKernel' : 1, - 'WaitWorkGroup' : 2, - }, - - 'KernelProfilingInfoShift' : { - 'CmdExecTime' : 0, - }, - - 'KernelProfilingInfoMask' : { - 'MaskNone' : 0, - 'CmdExecTime' : 0x00000001, - }, - - 'Capability' : { - 'Matrix' : 0, - 'Shader' : 1, - 'Geometry' : 2, - 'Tessellation' : 3, - 'Addresses' : 4, - 'Linkage' : 5, - 'Kernel' : 6, - 'Vector16' : 7, - 'Float16Buffer' : 8, - 'Float16' : 9, - 'Float64' : 10, - 'Int64' : 11, - 'Int64Atomics' : 12, - 'ImageBasic' : 13, - 'ImageReadWrite' : 14, - 'ImageMipmap' : 15, - 'Pipes' : 17, - 'Groups' : 18, - 'DeviceEnqueue' : 19, - 'LiteralSampler' : 20, - 'AtomicStorage' : 21, - 'Int16' : 22, - 'TessellationPointSize' : 23, - 'GeometryPointSize' : 24, - 'ImageGatherExtended' : 25, - 'StorageImageMultisample' : 27, - 'UniformBufferArrayDynamicIndexing' : 28, - 'SampledImageArrayDynamicIndexing' : 29, - 'StorageBufferArrayDynamicIndexing' : 30, - 'StorageImageArrayDynamicIndexing' : 31, - 'ClipDistance' : 32, - 'CullDistance' : 33, - 'ImageCubeArray' : 34, - 'SampleRateShading' : 35, - 'ImageRect' : 36, - 'SampledRect' : 37, - 'GenericPointer' : 38, - 'Int8' : 39, - 'InputAttachment' : 40, - 'SparseResidency' : 41, - 'MinLod' : 42, - 'Sampled1D' : 43, - 'Image1D' : 44, - 'SampledCubeArray' : 45, - 'SampledBuffer' : 46, - 'ImageBuffer' : 47, - 'ImageMSArray' : 48, - 'StorageImageExtendedFormats' : 49, - 'ImageQuery' : 50, - 'DerivativeControl' : 51, - 'InterpolationFunction' : 52, - 'TransformFeedback' : 53, - 'GeometryStreams' : 54, - 'StorageImageReadWithoutFormat' : 55, - 'StorageImageWriteWithoutFormat' : 56, - 'MultiViewport' : 57, - 'SubgroupDispatch' : 58, - 'NamedBarrier' : 59, - 'PipeStorage' : 60, - 'GroupNonUniform' : 61, - 'GroupNonUniformVote' : 62, - 'GroupNonUniformArithmetic' : 63, - 'GroupNonUniformBallot' : 64, - 'GroupNonUniformShuffle' : 65, - 'GroupNonUniformShuffleRelative' : 66, - 'GroupNonUniformClustered' : 67, - 'GroupNonUniformQuad' : 68, - 'ShaderLayer' : 69, - 'ShaderViewportIndex' : 70, - 'SubgroupBallotKHR' : 4423, - 'DrawParameters' : 4427, - 'SubgroupVoteKHR' : 4431, - 'StorageBuffer16BitAccess' : 4433, - 'StorageUniformBufferBlock16' : 4433, - 'StorageUniform16' : 4434, - 'UniformAndStorageBuffer16BitAccess' : 4434, - 'StoragePushConstant16' : 4435, - 'StorageInputOutput16' : 4436, - 'DeviceGroup' : 4437, - 'MultiView' : 4439, - 'VariablePointersStorageBuffer' : 4441, - 'VariablePointers' : 4442, - 'AtomicStorageOps' : 4445, - 'SampleMaskPostDepthCoverage' : 4447, - 'StorageBuffer8BitAccess' : 4448, - 'UniformAndStorageBuffer8BitAccess' : 4449, - 'StoragePushConstant8' : 4450, - 'DenormPreserve' : 4464, - 'DenormFlushToZero' : 4465, - 'SignedZeroInfNanPreserve' : 4466, - 'RoundingModeRTE' : 4467, - 'RoundingModeRTZ' : 4468, - 'Float16ImageAMD' : 5008, - 'ImageGatherBiasLodAMD' : 5009, - 'FragmentMaskAMD' : 5010, - 'StencilExportEXT' : 5013, - 'ImageReadWriteLodAMD' : 5015, - 'ShaderClockKHR' : 5055, - 'SampleMaskOverrideCoverageNV' : 5249, - 'GeometryShaderPassthroughNV' : 5251, - 'ShaderViewportIndexLayerEXT' : 5254, - 'ShaderViewportIndexLayerNV' : 5254, - 'ShaderViewportMaskNV' : 5255, - 'ShaderStereoViewNV' : 5259, - 'PerViewAttributesNV' : 5260, - 'FragmentFullyCoveredEXT' : 5265, - 'MeshShadingNV' : 5266, - 'ImageFootprintNV' : 5282, - 'FragmentBarycentricNV' : 5284, - 'ComputeDerivativeGroupQuadsNV' : 5288, - 'FragmentDensityEXT' : 5291, - 'ShadingRateNV' : 5291, - 'GroupNonUniformPartitionedNV' : 5297, - 'ShaderNonUniform' : 5301, - 'ShaderNonUniformEXT' : 5301, - 'RuntimeDescriptorArray' : 5302, - 'RuntimeDescriptorArrayEXT' : 5302, - 'InputAttachmentArrayDynamicIndexing' : 5303, - 'InputAttachmentArrayDynamicIndexingEXT' : 5303, - 'UniformTexelBufferArrayDynamicIndexing' : 5304, - 'UniformTexelBufferArrayDynamicIndexingEXT' : 5304, - 'StorageTexelBufferArrayDynamicIndexing' : 5305, - 'StorageTexelBufferArrayDynamicIndexingEXT' : 5305, - 'UniformBufferArrayNonUniformIndexing' : 5306, - 'UniformBufferArrayNonUniformIndexingEXT' : 5306, - 'SampledImageArrayNonUniformIndexing' : 5307, - 'SampledImageArrayNonUniformIndexingEXT' : 5307, - 'StorageBufferArrayNonUniformIndexing' : 5308, - 'StorageBufferArrayNonUniformIndexingEXT' : 5308, - 'StorageImageArrayNonUniformIndexing' : 5309, - 'StorageImageArrayNonUniformIndexingEXT' : 5309, - 'InputAttachmentArrayNonUniformIndexing' : 5310, - 'InputAttachmentArrayNonUniformIndexingEXT' : 5310, - 'UniformTexelBufferArrayNonUniformIndexing' : 5311, - 'UniformTexelBufferArrayNonUniformIndexingEXT' : 5311, - 'StorageTexelBufferArrayNonUniformIndexing' : 5312, - 'StorageTexelBufferArrayNonUniformIndexingEXT' : 5312, - 'RayTracingNV' : 5340, - 'VulkanMemoryModel' : 5345, - 'VulkanMemoryModelKHR' : 5345, - 'VulkanMemoryModelDeviceScope' : 5346, - 'VulkanMemoryModelDeviceScopeKHR' : 5346, - 'PhysicalStorageBufferAddresses' : 5347, - 'PhysicalStorageBufferAddressesEXT' : 5347, - 'ComputeDerivativeGroupLinearNV' : 5350, - 'CooperativeMatrixNV' : 5357, - 'FragmentShaderSampleInterlockEXT' : 5363, - 'FragmentShaderShadingRateInterlockEXT' : 5372, - 'ShaderSMBuiltinsNV' : 5373, - 'FragmentShaderPixelInterlockEXT' : 5378, - 'DemoteToHelperInvocationEXT' : 5379, - 'SubgroupShuffleINTEL' : 5568, - 'SubgroupBufferBlockIOINTEL' : 5569, - 'SubgroupImageBlockIOINTEL' : 5570, - 'SubgroupImageMediaBlockIOINTEL' : 5579, - 'IntegerFunctions2INTEL' : 5584, - 'SubgroupAvcMotionEstimationINTEL' : 5696, - 'SubgroupAvcMotionEstimationIntraINTEL' : 5697, - 'SubgroupAvcMotionEstimationChromaINTEL' : 5698, - }, - - 'Op' : { - 'OpNop' : 0, - 'OpUndef' : 1, - 'OpSourceContinued' : 2, - 'OpSource' : 3, - 'OpSourceExtension' : 4, - 'OpName' : 5, - 'OpMemberName' : 6, - 'OpString' : 7, - 'OpLine' : 8, - 'OpExtension' : 10, - 'OpExtInstImport' : 11, - 'OpExtInst' : 12, - 'OpMemoryModel' : 14, - 'OpEntryPoint' : 15, - 'OpExecutionMode' : 16, - 'OpCapability' : 17, - 'OpTypeVoid' : 19, - 'OpTypeBool' : 20, - 'OpTypeInt' : 21, - 'OpTypeFloat' : 22, - 'OpTypeVector' : 23, - 'OpTypeMatrix' : 24, - 'OpTypeImage' : 25, - 'OpTypeSampler' : 26, - 'OpTypeSampledImage' : 27, - 'OpTypeArray' : 28, - 'OpTypeRuntimeArray' : 29, - 'OpTypeStruct' : 30, - 'OpTypeOpaque' : 31, - 'OpTypePointer' : 32, - 'OpTypeFunction' : 33, - 'OpTypeEvent' : 34, - 'OpTypeDeviceEvent' : 35, - 'OpTypeReserveId' : 36, - 'OpTypeQueue' : 37, - 'OpTypePipe' : 38, - 'OpTypeForwardPointer' : 39, - 'OpConstantTrue' : 41, - 'OpConstantFalse' : 42, - 'OpConstant' : 43, - 'OpConstantComposite' : 44, - 'OpConstantSampler' : 45, - 'OpConstantNull' : 46, - 'OpSpecConstantTrue' : 48, - 'OpSpecConstantFalse' : 49, - 'OpSpecConstant' : 50, - 'OpSpecConstantComposite' : 51, - 'OpSpecConstantOp' : 52, - 'OpFunction' : 54, - 'OpFunctionParameter' : 55, - 'OpFunctionEnd' : 56, - 'OpFunctionCall' : 57, - 'OpVariable' : 59, - 'OpImageTexelPointer' : 60, - 'OpLoad' : 61, - 'OpStore' : 62, - 'OpCopyMemory' : 63, - 'OpCopyMemorySized' : 64, - 'OpAccessChain' : 65, - 'OpInBoundsAccessChain' : 66, - 'OpPtrAccessChain' : 67, - 'OpArrayLength' : 68, - 'OpGenericPtrMemSemantics' : 69, - 'OpInBoundsPtrAccessChain' : 70, - 'OpDecorate' : 71, - 'OpMemberDecorate' : 72, - 'OpDecorationGroup' : 73, - 'OpGroupDecorate' : 74, - 'OpGroupMemberDecorate' : 75, - 'OpVectorExtractDynamic' : 77, - 'OpVectorInsertDynamic' : 78, - 'OpVectorShuffle' : 79, - 'OpCompositeConstruct' : 80, - 'OpCompositeExtract' : 81, - 'OpCompositeInsert' : 82, - 'OpCopyObject' : 83, - 'OpTranspose' : 84, - 'OpSampledImage' : 86, - 'OpImageSampleImplicitLod' : 87, - 'OpImageSampleExplicitLod' : 88, - 'OpImageSampleDrefImplicitLod' : 89, - 'OpImageSampleDrefExplicitLod' : 90, - 'OpImageSampleProjImplicitLod' : 91, - 'OpImageSampleProjExplicitLod' : 92, - 'OpImageSampleProjDrefImplicitLod' : 93, - 'OpImageSampleProjDrefExplicitLod' : 94, - 'OpImageFetch' : 95, - 'OpImageGather' : 96, - 'OpImageDrefGather' : 97, - 'OpImageRead' : 98, - 'OpImageWrite' : 99, - 'OpImage' : 100, - 'OpImageQueryFormat' : 101, - 'OpImageQueryOrder' : 102, - 'OpImageQuerySizeLod' : 103, - 'OpImageQuerySize' : 104, - 'OpImageQueryLod' : 105, - 'OpImageQueryLevels' : 106, - 'OpImageQuerySamples' : 107, - 'OpConvertFToU' : 109, - 'OpConvertFToS' : 110, - 'OpConvertSToF' : 111, - 'OpConvertUToF' : 112, - 'OpUConvert' : 113, - 'OpSConvert' : 114, - 'OpFConvert' : 115, - 'OpQuantizeToF16' : 116, - 'OpConvertPtrToU' : 117, - 'OpSatConvertSToU' : 118, - 'OpSatConvertUToS' : 119, - 'OpConvertUToPtr' : 120, - 'OpPtrCastToGeneric' : 121, - 'OpGenericCastToPtr' : 122, - 'OpGenericCastToPtrExplicit' : 123, - 'OpBitcast' : 124, - 'OpSNegate' : 126, - 'OpFNegate' : 127, - 'OpIAdd' : 128, - 'OpFAdd' : 129, - 'OpISub' : 130, - 'OpFSub' : 131, - 'OpIMul' : 132, - 'OpFMul' : 133, - 'OpUDiv' : 134, - 'OpSDiv' : 135, - 'OpFDiv' : 136, - 'OpUMod' : 137, - 'OpSRem' : 138, - 'OpSMod' : 139, - 'OpFRem' : 140, - 'OpFMod' : 141, - 'OpVectorTimesScalar' : 142, - 'OpMatrixTimesScalar' : 143, - 'OpVectorTimesMatrix' : 144, - 'OpMatrixTimesVector' : 145, - 'OpMatrixTimesMatrix' : 146, - 'OpOuterProduct' : 147, - 'OpDot' : 148, - 'OpIAddCarry' : 149, - 'OpISubBorrow' : 150, - 'OpUMulExtended' : 151, - 'OpSMulExtended' : 152, - 'OpAny' : 154, - 'OpAll' : 155, - 'OpIsNan' : 156, - 'OpIsInf' : 157, - 'OpIsFinite' : 158, - 'OpIsNormal' : 159, - 'OpSignBitSet' : 160, - 'OpLessOrGreater' : 161, - 'OpOrdered' : 162, - 'OpUnordered' : 163, - 'OpLogicalEqual' : 164, - 'OpLogicalNotEqual' : 165, - 'OpLogicalOr' : 166, - 'OpLogicalAnd' : 167, - 'OpLogicalNot' : 168, - 'OpSelect' : 169, - 'OpIEqual' : 170, - 'OpINotEqual' : 171, - 'OpUGreaterThan' : 172, - 'OpSGreaterThan' : 173, - 'OpUGreaterThanEqual' : 174, - 'OpSGreaterThanEqual' : 175, - 'OpULessThan' : 176, - 'OpSLessThan' : 177, - 'OpULessThanEqual' : 178, - 'OpSLessThanEqual' : 179, - 'OpFOrdEqual' : 180, - 'OpFUnordEqual' : 181, - 'OpFOrdNotEqual' : 182, - 'OpFUnordNotEqual' : 183, - 'OpFOrdLessThan' : 184, - 'OpFUnordLessThan' : 185, - 'OpFOrdGreaterThan' : 186, - 'OpFUnordGreaterThan' : 187, - 'OpFOrdLessThanEqual' : 188, - 'OpFUnordLessThanEqual' : 189, - 'OpFOrdGreaterThanEqual' : 190, - 'OpFUnordGreaterThanEqual' : 191, - 'OpShiftRightLogical' : 194, - 'OpShiftRightArithmetic' : 195, - 'OpShiftLeftLogical' : 196, - 'OpBitwiseOr' : 197, - 'OpBitwiseXor' : 198, - 'OpBitwiseAnd' : 199, - 'OpNot' : 200, - 'OpBitFieldInsert' : 201, - 'OpBitFieldSExtract' : 202, - 'OpBitFieldUExtract' : 203, - 'OpBitReverse' : 204, - 'OpBitCount' : 205, - 'OpDPdx' : 207, - 'OpDPdy' : 208, - 'OpFwidth' : 209, - 'OpDPdxFine' : 210, - 'OpDPdyFine' : 211, - 'OpFwidthFine' : 212, - 'OpDPdxCoarse' : 213, - 'OpDPdyCoarse' : 214, - 'OpFwidthCoarse' : 215, - 'OpEmitVertex' : 218, - 'OpEndPrimitive' : 219, - 'OpEmitStreamVertex' : 220, - 'OpEndStreamPrimitive' : 221, - 'OpControlBarrier' : 224, - 'OpMemoryBarrier' : 225, - 'OpAtomicLoad' : 227, - 'OpAtomicStore' : 228, - 'OpAtomicExchange' : 229, - 'OpAtomicCompareExchange' : 230, - 'OpAtomicCompareExchangeWeak' : 231, - 'OpAtomicIIncrement' : 232, - 'OpAtomicIDecrement' : 233, - 'OpAtomicIAdd' : 234, - 'OpAtomicISub' : 235, - 'OpAtomicSMin' : 236, - 'OpAtomicUMin' : 237, - 'OpAtomicSMax' : 238, - 'OpAtomicUMax' : 239, - 'OpAtomicAnd' : 240, - 'OpAtomicOr' : 241, - 'OpAtomicXor' : 242, - 'OpPhi' : 245, - 'OpLoopMerge' : 246, - 'OpSelectionMerge' : 247, - 'OpLabel' : 248, - 'OpBranch' : 249, - 'OpBranchConditional' : 250, - 'OpSwitch' : 251, - 'OpKill' : 252, - 'OpReturn' : 253, - 'OpReturnValue' : 254, - 'OpUnreachable' : 255, - 'OpLifetimeStart' : 256, - 'OpLifetimeStop' : 257, - 'OpGroupAsyncCopy' : 259, - 'OpGroupWaitEvents' : 260, - 'OpGroupAll' : 261, - 'OpGroupAny' : 262, - 'OpGroupBroadcast' : 263, - 'OpGroupIAdd' : 264, - 'OpGroupFAdd' : 265, - 'OpGroupFMin' : 266, - 'OpGroupUMin' : 267, - 'OpGroupSMin' : 268, - 'OpGroupFMax' : 269, - 'OpGroupUMax' : 270, - 'OpGroupSMax' : 271, - 'OpReadPipe' : 274, - 'OpWritePipe' : 275, - 'OpReservedReadPipe' : 276, - 'OpReservedWritePipe' : 277, - 'OpReserveReadPipePackets' : 278, - 'OpReserveWritePipePackets' : 279, - 'OpCommitReadPipe' : 280, - 'OpCommitWritePipe' : 281, - 'OpIsValidReserveId' : 282, - 'OpGetNumPipePackets' : 283, - 'OpGetMaxPipePackets' : 284, - 'OpGroupReserveReadPipePackets' : 285, - 'OpGroupReserveWritePipePackets' : 286, - 'OpGroupCommitReadPipe' : 287, - 'OpGroupCommitWritePipe' : 288, - 'OpEnqueueMarker' : 291, - 'OpEnqueueKernel' : 292, - 'OpGetKernelNDrangeSubGroupCount' : 293, - 'OpGetKernelNDrangeMaxSubGroupSize' : 294, - 'OpGetKernelWorkGroupSize' : 295, - 'OpGetKernelPreferredWorkGroupSizeMultiple' : 296, - 'OpRetainEvent' : 297, - 'OpReleaseEvent' : 298, - 'OpCreateUserEvent' : 299, - 'OpIsValidEvent' : 300, - 'OpSetUserEventStatus' : 301, - 'OpCaptureEventProfilingInfo' : 302, - 'OpGetDefaultQueue' : 303, - 'OpBuildNDRange' : 304, - 'OpImageSparseSampleImplicitLod' : 305, - 'OpImageSparseSampleExplicitLod' : 306, - 'OpImageSparseSampleDrefImplicitLod' : 307, - 'OpImageSparseSampleDrefExplicitLod' : 308, - 'OpImageSparseSampleProjImplicitLod' : 309, - 'OpImageSparseSampleProjExplicitLod' : 310, - 'OpImageSparseSampleProjDrefImplicitLod' : 311, - 'OpImageSparseSampleProjDrefExplicitLod' : 312, - 'OpImageSparseFetch' : 313, - 'OpImageSparseGather' : 314, - 'OpImageSparseDrefGather' : 315, - 'OpImageSparseTexelsResident' : 316, - 'OpNoLine' : 317, - 'OpAtomicFlagTestAndSet' : 318, - 'OpAtomicFlagClear' : 319, - 'OpImageSparseRead' : 320, - 'OpSizeOf' : 321, - 'OpTypePipeStorage' : 322, - 'OpConstantPipeStorage' : 323, - 'OpCreatePipeFromPipeStorage' : 324, - 'OpGetKernelLocalSizeForSubgroupCount' : 325, - 'OpGetKernelMaxNumSubgroups' : 326, - 'OpTypeNamedBarrier' : 327, - 'OpNamedBarrierInitialize' : 328, - 'OpMemoryNamedBarrier' : 329, - 'OpModuleProcessed' : 330, - 'OpExecutionModeId' : 331, - 'OpDecorateId' : 332, - 'OpGroupNonUniformElect' : 333, - 'OpGroupNonUniformAll' : 334, - 'OpGroupNonUniformAny' : 335, - 'OpGroupNonUniformAllEqual' : 336, - 'OpGroupNonUniformBroadcast' : 337, - 'OpGroupNonUniformBroadcastFirst' : 338, - 'OpGroupNonUniformBallot' : 339, - 'OpGroupNonUniformInverseBallot' : 340, - 'OpGroupNonUniformBallotBitExtract' : 341, - 'OpGroupNonUniformBallotBitCount' : 342, - 'OpGroupNonUniformBallotFindLSB' : 343, - 'OpGroupNonUniformBallotFindMSB' : 344, - 'OpGroupNonUniformShuffle' : 345, - 'OpGroupNonUniformShuffleXor' : 346, - 'OpGroupNonUniformShuffleUp' : 347, - 'OpGroupNonUniformShuffleDown' : 348, - 'OpGroupNonUniformIAdd' : 349, - 'OpGroupNonUniformFAdd' : 350, - 'OpGroupNonUniformIMul' : 351, - 'OpGroupNonUniformFMul' : 352, - 'OpGroupNonUniformSMin' : 353, - 'OpGroupNonUniformUMin' : 354, - 'OpGroupNonUniformFMin' : 355, - 'OpGroupNonUniformSMax' : 356, - 'OpGroupNonUniformUMax' : 357, - 'OpGroupNonUniformFMax' : 358, - 'OpGroupNonUniformBitwiseAnd' : 359, - 'OpGroupNonUniformBitwiseOr' : 360, - 'OpGroupNonUniformBitwiseXor' : 361, - 'OpGroupNonUniformLogicalAnd' : 362, - 'OpGroupNonUniformLogicalOr' : 363, - 'OpGroupNonUniformLogicalXor' : 364, - 'OpGroupNonUniformQuadBroadcast' : 365, - 'OpGroupNonUniformQuadSwap' : 366, - 'OpCopyLogical' : 400, - 'OpPtrEqual' : 401, - 'OpPtrNotEqual' : 402, - 'OpPtrDiff' : 403, - 'OpSubgroupBallotKHR' : 4421, - 'OpSubgroupFirstInvocationKHR' : 4422, - 'OpSubgroupAllKHR' : 4428, - 'OpSubgroupAnyKHR' : 4429, - 'OpSubgroupAllEqualKHR' : 4430, - 'OpSubgroupReadInvocationKHR' : 4432, - 'OpGroupIAddNonUniformAMD' : 5000, - 'OpGroupFAddNonUniformAMD' : 5001, - 'OpGroupFMinNonUniformAMD' : 5002, - 'OpGroupUMinNonUniformAMD' : 5003, - 'OpGroupSMinNonUniformAMD' : 5004, - 'OpGroupFMaxNonUniformAMD' : 5005, - 'OpGroupUMaxNonUniformAMD' : 5006, - 'OpGroupSMaxNonUniformAMD' : 5007, - 'OpFragmentMaskFetchAMD' : 5011, - 'OpFragmentFetchAMD' : 5012, - 'OpReadClockKHR' : 5056, - 'OpImageSampleFootprintNV' : 5283, - 'OpGroupNonUniformPartitionNV' : 5296, - 'OpWritePackedPrimitiveIndices4x8NV' : 5299, - 'OpReportIntersectionNV' : 5334, - 'OpIgnoreIntersectionNV' : 5335, - 'OpTerminateRayNV' : 5336, - 'OpTraceNV' : 5337, - 'OpTypeAccelerationStructureNV' : 5341, - 'OpExecuteCallableNV' : 5344, - 'OpTypeCooperativeMatrixNV' : 5358, - 'OpCooperativeMatrixLoadNV' : 5359, - 'OpCooperativeMatrixStoreNV' : 5360, - 'OpCooperativeMatrixMulAddNV' : 5361, - 'OpCooperativeMatrixLengthNV' : 5362, - 'OpBeginInvocationInterlockEXT' : 5364, - 'OpEndInvocationInterlockEXT' : 5365, - 'OpDemoteToHelperInvocationEXT' : 5380, - 'OpIsHelperInvocationEXT' : 5381, - 'OpSubgroupShuffleINTEL' : 5571, - 'OpSubgroupShuffleDownINTEL' : 5572, - 'OpSubgroupShuffleUpINTEL' : 5573, - 'OpSubgroupShuffleXorINTEL' : 5574, - 'OpSubgroupBlockReadINTEL' : 5575, - 'OpSubgroupBlockWriteINTEL' : 5576, - 'OpSubgroupImageBlockReadINTEL' : 5577, - 'OpSubgroupImageBlockWriteINTEL' : 5578, - 'OpSubgroupImageMediaBlockReadINTEL' : 5580, - 'OpSubgroupImageMediaBlockWriteINTEL' : 5581, - 'OpUCountLeadingZerosINTEL' : 5585, - 'OpUCountTrailingZerosINTEL' : 5586, - 'OpAbsISubINTEL' : 5587, - 'OpAbsUSubINTEL' : 5588, - 'OpIAddSatINTEL' : 5589, - 'OpUAddSatINTEL' : 5590, - 'OpIAverageINTEL' : 5591, - 'OpUAverageINTEL' : 5592, - 'OpIAverageRoundedINTEL' : 5593, - 'OpUAverageRoundedINTEL' : 5594, - 'OpISubSatINTEL' : 5595, - 'OpUSubSatINTEL' : 5596, - 'OpIMul32x16INTEL' : 5597, - 'OpUMul32x16INTEL' : 5598, - 'OpDecorateString' : 5632, - 'OpDecorateStringGOOGLE' : 5632, - 'OpMemberDecorateString' : 5633, - 'OpMemberDecorateStringGOOGLE' : 5633, - 'OpVmeImageINTEL' : 5699, - 'OpTypeVmeImageINTEL' : 5700, - 'OpTypeAvcImePayloadINTEL' : 5701, - 'OpTypeAvcRefPayloadINTEL' : 5702, - 'OpTypeAvcSicPayloadINTEL' : 5703, - 'OpTypeAvcMcePayloadINTEL' : 5704, - 'OpTypeAvcMceResultINTEL' : 5705, - 'OpTypeAvcImeResultINTEL' : 5706, - 'OpTypeAvcImeResultSingleReferenceStreamoutINTEL' : 5707, - 'OpTypeAvcImeResultDualReferenceStreamoutINTEL' : 5708, - 'OpTypeAvcImeSingleReferenceStreaminINTEL' : 5709, - 'OpTypeAvcImeDualReferenceStreaminINTEL' : 5710, - 'OpTypeAvcRefResultINTEL' : 5711, - 'OpTypeAvcSicResultINTEL' : 5712, - 'OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL' : 5713, - 'OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL' : 5714, - 'OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL' : 5715, - 'OpSubgroupAvcMceSetInterShapePenaltyINTEL' : 5716, - 'OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL' : 5717, - 'OpSubgroupAvcMceSetInterDirectionPenaltyINTEL' : 5718, - 'OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL' : 5719, - 'OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL' : 5720, - 'OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL' : 5721, - 'OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL' : 5722, - 'OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL' : 5723, - 'OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL' : 5724, - 'OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL' : 5725, - 'OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL' : 5726, - 'OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL' : 5727, - 'OpSubgroupAvcMceSetAcOnlyHaarINTEL' : 5728, - 'OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL' : 5729, - 'OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL' : 5730, - 'OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL' : 5731, - 'OpSubgroupAvcMceConvertToImePayloadINTEL' : 5732, - 'OpSubgroupAvcMceConvertToImeResultINTEL' : 5733, - 'OpSubgroupAvcMceConvertToRefPayloadINTEL' : 5734, - 'OpSubgroupAvcMceConvertToRefResultINTEL' : 5735, - 'OpSubgroupAvcMceConvertToSicPayloadINTEL' : 5736, - 'OpSubgroupAvcMceConvertToSicResultINTEL' : 5737, - 'OpSubgroupAvcMceGetMotionVectorsINTEL' : 5738, - 'OpSubgroupAvcMceGetInterDistortionsINTEL' : 5739, - 'OpSubgroupAvcMceGetBestInterDistortionsINTEL' : 5740, - 'OpSubgroupAvcMceGetInterMajorShapeINTEL' : 5741, - 'OpSubgroupAvcMceGetInterMinorShapeINTEL' : 5742, - 'OpSubgroupAvcMceGetInterDirectionsINTEL' : 5743, - 'OpSubgroupAvcMceGetInterMotionVectorCountINTEL' : 5744, - 'OpSubgroupAvcMceGetInterReferenceIdsINTEL' : 5745, - 'OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL' : 5746, - 'OpSubgroupAvcImeInitializeINTEL' : 5747, - 'OpSubgroupAvcImeSetSingleReferenceINTEL' : 5748, - 'OpSubgroupAvcImeSetDualReferenceINTEL' : 5749, - 'OpSubgroupAvcImeRefWindowSizeINTEL' : 5750, - 'OpSubgroupAvcImeAdjustRefOffsetINTEL' : 5751, - 'OpSubgroupAvcImeConvertToMcePayloadINTEL' : 5752, - 'OpSubgroupAvcImeSetMaxMotionVectorCountINTEL' : 5753, - 'OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL' : 5754, - 'OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL' : 5755, - 'OpSubgroupAvcImeSetWeightedSadINTEL' : 5756, - 'OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL' : 5757, - 'OpSubgroupAvcImeEvaluateWithDualReferenceINTEL' : 5758, - 'OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL' : 5759, - 'OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL' : 5760, - 'OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL' : 5761, - 'OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL' : 5762, - 'OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL' : 5763, - 'OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL' : 5764, - 'OpSubgroupAvcImeConvertToMceResultINTEL' : 5765, - 'OpSubgroupAvcImeGetSingleReferenceStreaminINTEL' : 5766, - 'OpSubgroupAvcImeGetDualReferenceStreaminINTEL' : 5767, - 'OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL' : 5768, - 'OpSubgroupAvcImeStripDualReferenceStreamoutINTEL' : 5769, - 'OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL' : 5770, - 'OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL' : 5771, - 'OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL' : 5772, - 'OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL' : 5773, - 'OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL' : 5774, - 'OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL' : 5775, - 'OpSubgroupAvcImeGetBorderReachedINTEL' : 5776, - 'OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL' : 5777, - 'OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL' : 5778, - 'OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL' : 5779, - 'OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL' : 5780, - 'OpSubgroupAvcFmeInitializeINTEL' : 5781, - 'OpSubgroupAvcBmeInitializeINTEL' : 5782, - 'OpSubgroupAvcRefConvertToMcePayloadINTEL' : 5783, - 'OpSubgroupAvcRefSetBidirectionalMixDisableINTEL' : 5784, - 'OpSubgroupAvcRefSetBilinearFilterEnableINTEL' : 5785, - 'OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL' : 5786, - 'OpSubgroupAvcRefEvaluateWithDualReferenceINTEL' : 5787, - 'OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL' : 5788, - 'OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL' : 5789, - 'OpSubgroupAvcRefConvertToMceResultINTEL' : 5790, - 'OpSubgroupAvcSicInitializeINTEL' : 5791, - 'OpSubgroupAvcSicConfigureSkcINTEL' : 5792, - 'OpSubgroupAvcSicConfigureIpeLumaINTEL' : 5793, - 'OpSubgroupAvcSicConfigureIpeLumaChromaINTEL' : 5794, - 'OpSubgroupAvcSicGetMotionVectorMaskINTEL' : 5795, - 'OpSubgroupAvcSicConvertToMcePayloadINTEL' : 5796, - 'OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL' : 5797, - 'OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL' : 5798, - 'OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL' : 5799, - 'OpSubgroupAvcSicSetBilinearFilterEnableINTEL' : 5800, - 'OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL' : 5801, - 'OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL' : 5802, - 'OpSubgroupAvcSicEvaluateIpeINTEL' : 5803, - 'OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL' : 5804, - 'OpSubgroupAvcSicEvaluateWithDualReferenceINTEL' : 5805, - 'OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL' : 5806, - 'OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL' : 5807, - 'OpSubgroupAvcSicConvertToMceResultINTEL' : 5808, - 'OpSubgroupAvcSicGetIpeLumaShapeINTEL' : 5809, - 'OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL' : 5810, - 'OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL' : 5811, - 'OpSubgroupAvcSicGetPackedIpeLumaModesINTEL' : 5812, - 'OpSubgroupAvcSicGetIpeChromaModeINTEL' : 5813, - 'OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL' : 5814, - 'OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL' : 5815, - 'OpSubgroupAvcSicGetInterRawSadsINTEL' : 5816, - }, - -} - diff --git a/external/vulkan/windows/include/vulkan/vk_enum_string_helper.h b/external/vulkan/windows/include/vulkan/vk_enum_string_helper.h new file mode 100644 index 00000000..9c16911f --- /dev/null +++ b/external/vulkan/windows/include/vulkan/vk_enum_string_helper.h @@ -0,0 +1,8324 @@ +// *** THIS FILE IS GENERATED - DO NOT EDIT *** +// See helper_file_generator.py for modifications + + +/*************************************************************************** + * + * Copyright (c) 2015-2021 The Khronos Group Inc. + * Copyright (c) 2015-2021 Valve Corporation + * Copyright (c) 2015-2021 LunarG, Inc. + * Copyright (c) 2015-2021 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Author: Mark Lobodzinski + * Author: Courtney Goeltzenleuchter + * Author: Tobin Ehlis + * Author: Chris Forbes + * Author: John Zulauf + * + ****************************************************************************/ + + +#pragma once +#ifdef _MSC_VER +#pragma warning( disable : 4065 ) +#endif + +#include +#include + + +static inline const char* string_VkResult(VkResult input_value) +{ + switch (input_value) + { + case VK_ERROR_DEVICE_LOST: + return "VK_ERROR_DEVICE_LOST"; + case VK_ERROR_EXTENSION_NOT_PRESENT: + return "VK_ERROR_EXTENSION_NOT_PRESENT"; + case VK_ERROR_FEATURE_NOT_PRESENT: + return "VK_ERROR_FEATURE_NOT_PRESENT"; + case VK_ERROR_FORMAT_NOT_SUPPORTED: + return "VK_ERROR_FORMAT_NOT_SUPPORTED"; + case VK_ERROR_FRAGMENTATION: + return "VK_ERROR_FRAGMENTATION"; + case VK_ERROR_FRAGMENTED_POOL: + return "VK_ERROR_FRAGMENTED_POOL"; + case VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT: + return "VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT"; + case VK_ERROR_INCOMPATIBLE_DISPLAY_KHR: + return "VK_ERROR_INCOMPATIBLE_DISPLAY_KHR"; + case VK_ERROR_INCOMPATIBLE_DRIVER: + return "VK_ERROR_INCOMPATIBLE_DRIVER"; + case VK_ERROR_INITIALIZATION_FAILED: + return "VK_ERROR_INITIALIZATION_FAILED"; + case VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT: + return "VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT"; + case VK_ERROR_INVALID_EXTERNAL_HANDLE: + return "VK_ERROR_INVALID_EXTERNAL_HANDLE"; + case VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS: + return "VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS"; + case VK_ERROR_INVALID_SHADER_NV: + return "VK_ERROR_INVALID_SHADER_NV"; + case VK_ERROR_LAYER_NOT_PRESENT: + return "VK_ERROR_LAYER_NOT_PRESENT"; + case VK_ERROR_MEMORY_MAP_FAILED: + return "VK_ERROR_MEMORY_MAP_FAILED"; + case VK_ERROR_NATIVE_WINDOW_IN_USE_KHR: + return "VK_ERROR_NATIVE_WINDOW_IN_USE_KHR"; + case VK_ERROR_NOT_PERMITTED_EXT: + return "VK_ERROR_NOT_PERMITTED_EXT"; + case VK_ERROR_OUT_OF_DATE_KHR: + return "VK_ERROR_OUT_OF_DATE_KHR"; + case VK_ERROR_OUT_OF_DEVICE_MEMORY: + return "VK_ERROR_OUT_OF_DEVICE_MEMORY"; + case VK_ERROR_OUT_OF_HOST_MEMORY: + return "VK_ERROR_OUT_OF_HOST_MEMORY"; + case VK_ERROR_OUT_OF_POOL_MEMORY: + return "VK_ERROR_OUT_OF_POOL_MEMORY"; + case VK_ERROR_SURFACE_LOST_KHR: + return "VK_ERROR_SURFACE_LOST_KHR"; + case VK_ERROR_TOO_MANY_OBJECTS: + return "VK_ERROR_TOO_MANY_OBJECTS"; + case VK_ERROR_UNKNOWN: + return "VK_ERROR_UNKNOWN"; + case VK_ERROR_VALIDATION_FAILED_EXT: + return "VK_ERROR_VALIDATION_FAILED_EXT"; + case VK_EVENT_RESET: + return "VK_EVENT_RESET"; + case VK_EVENT_SET: + return "VK_EVENT_SET"; + case VK_INCOMPLETE: + return "VK_INCOMPLETE"; + case VK_NOT_READY: + return "VK_NOT_READY"; + case VK_OPERATION_DEFERRED_KHR: + return "VK_OPERATION_DEFERRED_KHR"; + case VK_OPERATION_NOT_DEFERRED_KHR: + return "VK_OPERATION_NOT_DEFERRED_KHR"; + case VK_PIPELINE_COMPILE_REQUIRED_EXT: + return "VK_PIPELINE_COMPILE_REQUIRED_EXT"; + case VK_SUBOPTIMAL_KHR: + return "VK_SUBOPTIMAL_KHR"; + case VK_SUCCESS: + return "VK_SUCCESS"; + case VK_THREAD_DONE_KHR: + return "VK_THREAD_DONE_KHR"; + case VK_THREAD_IDLE_KHR: + return "VK_THREAD_IDLE_KHR"; + case VK_TIMEOUT: + return "VK_TIMEOUT"; + default: + return "Unhandled VkResult"; + } +} + +static inline const char* string_VkStructureType(VkStructureType input_value) +{ + switch (input_value) + { + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV"; + case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR: + return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR"; + case VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR: + return "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR"; + case VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR: + return "VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR"; + case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID: + return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID"; + case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID: + return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID"; + case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID: + return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID"; + case VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_APPLICATION_INFO: + return "VK_STRUCTURE_TYPE_APPLICATION_INFO"; + case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2: + return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2"; + case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: + return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT"; + case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2: + return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2"; + case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: + return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT"; + case VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV: + return "VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV"; + case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: + return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO"; + case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO: + return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO"; + case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: + return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO"; + case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO: + return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO"; + case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: + return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR"; + case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: + return "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO"; + case VK_STRUCTURE_TYPE_BIND_SPARSE_INFO: + return "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO"; + case VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR: + return "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR"; + case VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR: + return "VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR"; + case VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO: + return "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO"; + case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO: + return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO"; + case VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR: + return "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR"; + case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER: + return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER"; + case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR: + return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR"; + case VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2: + return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2"; + case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: + return "VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO"; + case VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO: + return "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO"; + case VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT: + return "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT"; + case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV: + return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV"; + case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV: + return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV"; + case VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO: + return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO"; + case VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO: + return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO"; + case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT: + return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT"; + case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO: + return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO"; + case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM: + return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM"; + case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV: + return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV"; + case VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR: + return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR"; + case VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO: + return "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO"; + case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT: + return "VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT"; + case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV: + return "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV"; + case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR: + return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR"; + case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR: + return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR"; + case VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR: + return "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR"; + case VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR: + return "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR"; + case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM: + return "VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM"; + case VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET: + return "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET"; + case VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR: + return "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR"; + case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR: + return "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR"; + case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR: + return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR"; + case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR: + return "VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR"; + case VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT: + return "VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT"; + case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT: + return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT"; + case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT: + return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT"; + case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT: + return "VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT"; + case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT: + return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT"; + case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT: + return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT"; + case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT: + return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT"; + case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV: + return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV"; + case VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR: + return "VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT"; + case VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT: + return "VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT"; + case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: + return "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO"; + case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: + return "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO"; + case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR: + return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR"; + case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: + return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR"; + case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: + return "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO"; + case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: + return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO"; + case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO: + return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO"; + case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD: + return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD"; + case VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT: + return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT"; + case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2: + return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2"; + case VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT: + return "VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT"; + case VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR: + return "VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR"; + case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD: + return "VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD"; + case VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR: + return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR"; + case VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR: + return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR"; + case VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR: + return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR"; + case VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT: + return "VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT"; + case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR: + return "VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR"; + case VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR: + return "VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR"; + case VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: + return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT"; + case VK_STRUCTURE_TYPE_EVENT_CREATE_INFO: + return "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO"; + case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR: + return "VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR"; + case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: + return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO"; + case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV: + return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV"; + case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR: + return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR"; + case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV: + return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV"; + case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR: + return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"; + case VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES: + return "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES"; + case VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES: + return "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES"; + case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID: + return "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID"; + case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: + return "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES"; + case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: + return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO"; + case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES: + return "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES"; + case VK_STRUCTURE_TYPE_FENCE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR: + return "VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR"; + case VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR: + return "VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR"; + case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2: + return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2"; + case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: + return "VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"; + case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: + return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO"; + case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO: + return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO"; + case VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO: + return "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO"; + case VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV: + return "VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV"; + case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV: + return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV"; + case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV: + return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV"; + case VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV: + return "VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV"; + case VK_STRUCTURE_TYPE_GEOMETRY_NV: + return "VK_STRUCTURE_TYPE_GEOMETRY_NV"; + case VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV: + return "VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV"; + case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_HDR_METADATA_EXT: + return "VK_STRUCTURE_TYPE_HDR_METADATA_EXT"; + case VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA: + return "VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA"; + case VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR: + return "VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR"; + case VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR: + return "VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR"; + case VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: + return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO"; + case VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2: + return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2"; + case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER: + return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER"; + case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR: + return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR"; + case VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2: + return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2"; + case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: + return "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO"; + case VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR: + return "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR"; + case VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2: + return "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2"; + case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX: + return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX"; + case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT: + return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT"; + case VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO: + return "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO"; + case VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX: + return "VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX"; + case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID: + return "VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"; + case VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR: + return "VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR"; + case VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR: + return "VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR"; + case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR: + return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR"; + case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT: + return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT"; + case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR: + return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR"; + case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV: + return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV"; + case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA: + return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA"; + case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR: + return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR"; + case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR: + return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"; + case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA: + return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA"; + case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV: + return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV"; + case VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL: + return "VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL"; + case VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK: + return "VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK"; + case VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK: + return "VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK"; + case VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE: + return "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE"; + case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: + return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO"; + case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: + return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO"; + case VK_STRUCTURE_TYPE_MEMORY_BARRIER: + return "VK_STRUCTURE_TYPE_MEMORY_BARRIER"; + case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR: + return "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR"; + case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: + return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO"; + case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: + return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS"; + case VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR"; + case VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID: + return "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"; + case VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR: + return "VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR"; + case VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR: + return "VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR"; + case VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA: + return "VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA"; + case VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: + return "VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO"; + case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2: + return "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2"; + case VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR"; + case VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA: + return "VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA"; + case VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE: + return "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE"; + case VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL: + return "VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL"; + case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR: + return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR"; + case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR: + return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR"; + case VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL: + return "VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL"; + case VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL: + return "VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL"; + case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR: + return "VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR"; + case VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL: + return "VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR: + return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR"; + case VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD: + return "VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD"; + case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR: + return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR"; + case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR: + return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR"; + case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR"; + case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR: + return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR"; + case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR: + return "VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR"; + case VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD: + return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD"; + case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP: + return "VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP"; + case VK_STRUCTURE_TYPE_PRESENT_INFO_KHR: + return "VK_STRUCTURE_TYPE_PRESENT_INFO_KHR"; + case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: + return "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR"; + case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE: + return "VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE"; + case VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: + return "VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO"; + case VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO: + return "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO"; + case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL: + return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL"; + case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: + return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV"; + case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV: + return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV"; + case VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2: + return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2"; + case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV: + return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV"; + case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: + return "VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO"; + case VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO: + return "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO"; + case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: + return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO"; + case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: + return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2"; + case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: + return "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO"; + case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: + return "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO"; + case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT: + return "VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT"; + case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM: + return "VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM"; + case VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR: + return "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR"; + case VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO: + return "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO"; + case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO: + return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO"; + case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: + return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES"; + case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: + return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO"; + case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT: + return "VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT"; + case VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX: + return "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX"; + case VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR: + return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR"; + case VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR: + return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR"; + case VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA: + return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA"; + case VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO: + return "VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO"; + case VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR: + return "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR"; + case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO: + return "VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO"; + case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: + return "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO"; + case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR: + return "VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR"; + case VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2: + return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2"; + case VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2: + return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2"; + case VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP: + return "VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP"; + case VK_STRUCTURE_TYPE_SUBMIT_INFO: + return "VK_STRUCTURE_TYPE_SUBMIT_INFO"; + case VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR: + return "VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR"; + case VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO: + return "VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO"; + case VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2: + return "VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2"; + case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2: + return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2"; + case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: + return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE"; + case VK_STRUCTURE_TYPE_SUBPASS_END_INFO: + return "VK_STRUCTURE_TYPE_SUBPASS_END_INFO"; + case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT: + return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT"; + case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR: + return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR"; + case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT: + return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT"; + case VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR: + return "VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR"; + case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT: + return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT"; + case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT: + return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT"; + case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR: + return "VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR"; + case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD: + return "VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD"; + case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD: + return "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD"; + case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: + return "VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO"; + case VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT"; + case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT: + return "VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT"; + case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT: + return "VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT"; + case VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT: + return "VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT"; + case VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT: + return "VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + case VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN: + return "VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN"; + case VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR: + return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR"; + case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV: + return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV"; + case VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET: + return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET"; + case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR: + return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR"; + case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV: + return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV"; + case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT: + return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT"; + case VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR"; + case VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR: + return "VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR"; + default: + return "Unhandled VkStructureType"; + } +} + +static inline const char* string_VkAccessFlagBits(VkAccessFlagBits input_value) +{ + switch (input_value) + { + case VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR: + return "VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR"; + case VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR: + return "VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"; + case VK_ACCESS_COLOR_ATTACHMENT_READ_BIT: + return "VK_ACCESS_COLOR_ATTACHMENT_READ_BIT"; + case VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT: + return "VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"; + case VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT: + return "VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT"; + case VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV: + return "VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV"; + case VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV: + return "VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV"; + case VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT: + return "VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT"; + case VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT: + return "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT"; + case VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT: + return "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"; + case VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT: + return "VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"; + case VK_ACCESS_HOST_READ_BIT: + return "VK_ACCESS_HOST_READ_BIT"; + case VK_ACCESS_HOST_WRITE_BIT: + return "VK_ACCESS_HOST_WRITE_BIT"; + case VK_ACCESS_INDEX_READ_BIT: + return "VK_ACCESS_INDEX_READ_BIT"; + case VK_ACCESS_INDIRECT_COMMAND_READ_BIT: + return "VK_ACCESS_INDIRECT_COMMAND_READ_BIT"; + case VK_ACCESS_INPUT_ATTACHMENT_READ_BIT: + return "VK_ACCESS_INPUT_ATTACHMENT_READ_BIT"; + case VK_ACCESS_MEMORY_READ_BIT: + return "VK_ACCESS_MEMORY_READ_BIT"; + case VK_ACCESS_MEMORY_WRITE_BIT: + return "VK_ACCESS_MEMORY_WRITE_BIT"; + case VK_ACCESS_NONE_KHR: + return "VK_ACCESS_NONE_KHR"; + case VK_ACCESS_SHADER_READ_BIT: + return "VK_ACCESS_SHADER_READ_BIT"; + case VK_ACCESS_SHADER_WRITE_BIT: + return "VK_ACCESS_SHADER_WRITE_BIT"; + case VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV: + return "VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV"; + case VK_ACCESS_TRANSFER_READ_BIT: + return "VK_ACCESS_TRANSFER_READ_BIT"; + case VK_ACCESS_TRANSFER_WRITE_BIT: + return "VK_ACCESS_TRANSFER_WRITE_BIT"; + case VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT: + return "VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"; + case VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT: + return "VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"; + case VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT: + return "VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"; + case VK_ACCESS_UNIFORM_READ_BIT: + return "VK_ACCESS_UNIFORM_READ_BIT"; + case VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT: + return "VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT"; + default: + return "Unhandled VkAccessFlagBits"; + } +} + +static inline std::string string_VkAccessFlags(VkAccessFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkAccessFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkAccessFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkImageLayout(VkImageLayout input_value) +{ + switch (input_value) + { + case VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR: + return "VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR"; + case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL: + return "VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL"; + case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL: + return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL"; + case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL: + return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL"; + case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL: + return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL"; + case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL: + return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL"; + case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL: + return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL"; + case VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL: + return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL"; + case VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT: + return "VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT"; + case VK_IMAGE_LAYOUT_GENERAL: + return "VK_IMAGE_LAYOUT_GENERAL"; + case VK_IMAGE_LAYOUT_PREINITIALIZED: + return "VK_IMAGE_LAYOUT_PREINITIALIZED"; + case VK_IMAGE_LAYOUT_PRESENT_SRC_KHR: + return "VK_IMAGE_LAYOUT_PRESENT_SRC_KHR"; + case VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR: + return "VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR"; + case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL: + return "VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL"; + case VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV: + return "VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV"; + case VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR: + return "VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR"; + case VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL: + return "VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL"; + case VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL: + return "VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL"; + case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL: + return "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL"; + case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL: + return "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL"; + case VK_IMAGE_LAYOUT_UNDEFINED: + return "VK_IMAGE_LAYOUT_UNDEFINED"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR: + return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR: + return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR: + return "VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR: + return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR: + return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR: + return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + default: + return "Unhandled VkImageLayout"; + } +} + +static inline const char* string_VkImageAspectFlagBits(VkImageAspectFlagBits input_value) +{ + switch (input_value) + { + case VK_IMAGE_ASPECT_COLOR_BIT: + return "VK_IMAGE_ASPECT_COLOR_BIT"; + case VK_IMAGE_ASPECT_DEPTH_BIT: + return "VK_IMAGE_ASPECT_DEPTH_BIT"; + case VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT: + return "VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT"; + case VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT: + return "VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT"; + case VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT: + return "VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT"; + case VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT: + return "VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT"; + case VK_IMAGE_ASPECT_METADATA_BIT: + return "VK_IMAGE_ASPECT_METADATA_BIT"; + case VK_IMAGE_ASPECT_PLANE_0_BIT: + return "VK_IMAGE_ASPECT_PLANE_0_BIT"; + case VK_IMAGE_ASPECT_PLANE_1_BIT: + return "VK_IMAGE_ASPECT_PLANE_1_BIT"; + case VK_IMAGE_ASPECT_PLANE_2_BIT: + return "VK_IMAGE_ASPECT_PLANE_2_BIT"; + case VK_IMAGE_ASPECT_STENCIL_BIT: + return "VK_IMAGE_ASPECT_STENCIL_BIT"; + default: + return "Unhandled VkImageAspectFlagBits"; + } +} + +static inline std::string string_VkImageAspectFlags(VkImageAspectFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkImageAspectFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkImageAspectFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkObjectType(VkObjectType input_value) +{ + switch (input_value) + { + case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR: + return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR"; + case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV: + return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV"; + case VK_OBJECT_TYPE_BUFFER: + return "VK_OBJECT_TYPE_BUFFER"; + case VK_OBJECT_TYPE_BUFFER_VIEW: + return "VK_OBJECT_TYPE_BUFFER_VIEW"; + case VK_OBJECT_TYPE_COMMAND_BUFFER: + return "VK_OBJECT_TYPE_COMMAND_BUFFER"; + case VK_OBJECT_TYPE_COMMAND_POOL: + return "VK_OBJECT_TYPE_COMMAND_POOL"; + case VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT: + return "VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT"; + case VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT: + return "VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT"; + case VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR: + return "VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR"; + case VK_OBJECT_TYPE_DESCRIPTOR_POOL: + return "VK_OBJECT_TYPE_DESCRIPTOR_POOL"; + case VK_OBJECT_TYPE_DESCRIPTOR_SET: + return "VK_OBJECT_TYPE_DESCRIPTOR_SET"; + case VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT: + return "VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT"; + case VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE: + return "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE"; + case VK_OBJECT_TYPE_DEVICE: + return "VK_OBJECT_TYPE_DEVICE"; + case VK_OBJECT_TYPE_DEVICE_MEMORY: + return "VK_OBJECT_TYPE_DEVICE_MEMORY"; + case VK_OBJECT_TYPE_DISPLAY_KHR: + return "VK_OBJECT_TYPE_DISPLAY_KHR"; + case VK_OBJECT_TYPE_DISPLAY_MODE_KHR: + return "VK_OBJECT_TYPE_DISPLAY_MODE_KHR"; + case VK_OBJECT_TYPE_EVENT: + return "VK_OBJECT_TYPE_EVENT"; + case VK_OBJECT_TYPE_FENCE: + return "VK_OBJECT_TYPE_FENCE"; + case VK_OBJECT_TYPE_FRAMEBUFFER: + return "VK_OBJECT_TYPE_FRAMEBUFFER"; + case VK_OBJECT_TYPE_IMAGE: + return "VK_OBJECT_TYPE_IMAGE"; + case VK_OBJECT_TYPE_IMAGE_VIEW: + return "VK_OBJECT_TYPE_IMAGE_VIEW"; + case VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV: + return "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV"; + case VK_OBJECT_TYPE_INSTANCE: + return "VK_OBJECT_TYPE_INSTANCE"; + case VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL: + return "VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL"; + case VK_OBJECT_TYPE_PHYSICAL_DEVICE: + return "VK_OBJECT_TYPE_PHYSICAL_DEVICE"; + case VK_OBJECT_TYPE_PIPELINE: + return "VK_OBJECT_TYPE_PIPELINE"; + case VK_OBJECT_TYPE_PIPELINE_CACHE: + return "VK_OBJECT_TYPE_PIPELINE_CACHE"; + case VK_OBJECT_TYPE_PIPELINE_LAYOUT: + return "VK_OBJECT_TYPE_PIPELINE_LAYOUT"; + case VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT: + return "VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT"; + case VK_OBJECT_TYPE_QUERY_POOL: + return "VK_OBJECT_TYPE_QUERY_POOL"; + case VK_OBJECT_TYPE_QUEUE: + return "VK_OBJECT_TYPE_QUEUE"; + case VK_OBJECT_TYPE_RENDER_PASS: + return "VK_OBJECT_TYPE_RENDER_PASS"; + case VK_OBJECT_TYPE_SAMPLER: + return "VK_OBJECT_TYPE_SAMPLER"; + case VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION: + return "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION"; + case VK_OBJECT_TYPE_SEMAPHORE: + return "VK_OBJECT_TYPE_SEMAPHORE"; + case VK_OBJECT_TYPE_SHADER_MODULE: + return "VK_OBJECT_TYPE_SHADER_MODULE"; + case VK_OBJECT_TYPE_SURFACE_KHR: + return "VK_OBJECT_TYPE_SURFACE_KHR"; + case VK_OBJECT_TYPE_SWAPCHAIN_KHR: + return "VK_OBJECT_TYPE_SWAPCHAIN_KHR"; + case VK_OBJECT_TYPE_UNKNOWN: + return "VK_OBJECT_TYPE_UNKNOWN"; + case VK_OBJECT_TYPE_VALIDATION_CACHE_EXT: + return "VK_OBJECT_TYPE_VALIDATION_CACHE_EXT"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_OBJECT_TYPE_VIDEO_SESSION_KHR: + return "VK_OBJECT_TYPE_VIDEO_SESSION_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR: + return "VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + default: + return "Unhandled VkObjectType"; + } +} + +static inline const char* string_VkVendorId(VkVendorId input_value) +{ + switch (input_value) + { + case VK_VENDOR_ID_CODEPLAY: + return "VK_VENDOR_ID_CODEPLAY"; + case VK_VENDOR_ID_KAZAN: + return "VK_VENDOR_ID_KAZAN"; + case VK_VENDOR_ID_MESA: + return "VK_VENDOR_ID_MESA"; + case VK_VENDOR_ID_POCL: + return "VK_VENDOR_ID_POCL"; + case VK_VENDOR_ID_VIV: + return "VK_VENDOR_ID_VIV"; + case VK_VENDOR_ID_VSI: + return "VK_VENDOR_ID_VSI"; + default: + return "Unhandled VkVendorId"; + } +} + +static inline const char* string_VkPipelineCacheHeaderVersion(VkPipelineCacheHeaderVersion input_value) +{ + switch (input_value) + { + case VK_PIPELINE_CACHE_HEADER_VERSION_ONE: + return "VK_PIPELINE_CACHE_HEADER_VERSION_ONE"; + default: + return "Unhandled VkPipelineCacheHeaderVersion"; + } +} + +static inline const char* string_VkSystemAllocationScope(VkSystemAllocationScope input_value) +{ + switch (input_value) + { + case VK_SYSTEM_ALLOCATION_SCOPE_CACHE: + return "VK_SYSTEM_ALLOCATION_SCOPE_CACHE"; + case VK_SYSTEM_ALLOCATION_SCOPE_COMMAND: + return "VK_SYSTEM_ALLOCATION_SCOPE_COMMAND"; + case VK_SYSTEM_ALLOCATION_SCOPE_DEVICE: + return "VK_SYSTEM_ALLOCATION_SCOPE_DEVICE"; + case VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE: + return "VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE"; + case VK_SYSTEM_ALLOCATION_SCOPE_OBJECT: + return "VK_SYSTEM_ALLOCATION_SCOPE_OBJECT"; + default: + return "Unhandled VkSystemAllocationScope"; + } +} + +static inline const char* string_VkInternalAllocationType(VkInternalAllocationType input_value) +{ + switch (input_value) + { + case VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE: + return "VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE"; + default: + return "Unhandled VkInternalAllocationType"; + } +} + +static inline const char* string_VkFormat(VkFormat input_value) +{ + switch (input_value) + { + case VK_FORMAT_A1R5G5B5_UNORM_PACK16: + return "VK_FORMAT_A1R5G5B5_UNORM_PACK16"; + case VK_FORMAT_A2B10G10R10_SINT_PACK32: + return "VK_FORMAT_A2B10G10R10_SINT_PACK32"; + case VK_FORMAT_A2B10G10R10_SNORM_PACK32: + return "VK_FORMAT_A2B10G10R10_SNORM_PACK32"; + case VK_FORMAT_A2B10G10R10_SSCALED_PACK32: + return "VK_FORMAT_A2B10G10R10_SSCALED_PACK32"; + case VK_FORMAT_A2B10G10R10_UINT_PACK32: + return "VK_FORMAT_A2B10G10R10_UINT_PACK32"; + case VK_FORMAT_A2B10G10R10_UNORM_PACK32: + return "VK_FORMAT_A2B10G10R10_UNORM_PACK32"; + case VK_FORMAT_A2B10G10R10_USCALED_PACK32: + return "VK_FORMAT_A2B10G10R10_USCALED_PACK32"; + case VK_FORMAT_A2R10G10B10_SINT_PACK32: + return "VK_FORMAT_A2R10G10B10_SINT_PACK32"; + case VK_FORMAT_A2R10G10B10_SNORM_PACK32: + return "VK_FORMAT_A2R10G10B10_SNORM_PACK32"; + case VK_FORMAT_A2R10G10B10_SSCALED_PACK32: + return "VK_FORMAT_A2R10G10B10_SSCALED_PACK32"; + case VK_FORMAT_A2R10G10B10_UINT_PACK32: + return "VK_FORMAT_A2R10G10B10_UINT_PACK32"; + case VK_FORMAT_A2R10G10B10_UNORM_PACK32: + return "VK_FORMAT_A2R10G10B10_UNORM_PACK32"; + case VK_FORMAT_A2R10G10B10_USCALED_PACK32: + return "VK_FORMAT_A2R10G10B10_USCALED_PACK32"; + case VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT: + return "VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT"; + case VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT: + return "VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT"; + case VK_FORMAT_A8B8G8R8_SINT_PACK32: + return "VK_FORMAT_A8B8G8R8_SINT_PACK32"; + case VK_FORMAT_A8B8G8R8_SNORM_PACK32: + return "VK_FORMAT_A8B8G8R8_SNORM_PACK32"; + case VK_FORMAT_A8B8G8R8_SRGB_PACK32: + return "VK_FORMAT_A8B8G8R8_SRGB_PACK32"; + case VK_FORMAT_A8B8G8R8_SSCALED_PACK32: + return "VK_FORMAT_A8B8G8R8_SSCALED_PACK32"; + case VK_FORMAT_A8B8G8R8_UINT_PACK32: + return "VK_FORMAT_A8B8G8R8_UINT_PACK32"; + case VK_FORMAT_A8B8G8R8_UNORM_PACK32: + return "VK_FORMAT_A8B8G8R8_UNORM_PACK32"; + case VK_FORMAT_A8B8G8R8_USCALED_PACK32: + return "VK_FORMAT_A8B8G8R8_USCALED_PACK32"; + case VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT: + return "VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT"; + case VK_FORMAT_ASTC_10x10_SRGB_BLOCK: + return "VK_FORMAT_ASTC_10x10_SRGB_BLOCK"; + case VK_FORMAT_ASTC_10x10_UNORM_BLOCK: + return "VK_FORMAT_ASTC_10x10_UNORM_BLOCK"; + case VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT: + return "VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT"; + case VK_FORMAT_ASTC_10x5_SRGB_BLOCK: + return "VK_FORMAT_ASTC_10x5_SRGB_BLOCK"; + case VK_FORMAT_ASTC_10x5_UNORM_BLOCK: + return "VK_FORMAT_ASTC_10x5_UNORM_BLOCK"; + case VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT: + return "VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT"; + case VK_FORMAT_ASTC_10x6_SRGB_BLOCK: + return "VK_FORMAT_ASTC_10x6_SRGB_BLOCK"; + case VK_FORMAT_ASTC_10x6_UNORM_BLOCK: + return "VK_FORMAT_ASTC_10x6_UNORM_BLOCK"; + case VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT: + return "VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT"; + case VK_FORMAT_ASTC_10x8_SRGB_BLOCK: + return "VK_FORMAT_ASTC_10x8_SRGB_BLOCK"; + case VK_FORMAT_ASTC_10x8_UNORM_BLOCK: + return "VK_FORMAT_ASTC_10x8_UNORM_BLOCK"; + case VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT: + return "VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT"; + case VK_FORMAT_ASTC_12x10_SRGB_BLOCK: + return "VK_FORMAT_ASTC_12x10_SRGB_BLOCK"; + case VK_FORMAT_ASTC_12x10_UNORM_BLOCK: + return "VK_FORMAT_ASTC_12x10_UNORM_BLOCK"; + case VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT: + return "VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT"; + case VK_FORMAT_ASTC_12x12_SRGB_BLOCK: + return "VK_FORMAT_ASTC_12x12_SRGB_BLOCK"; + case VK_FORMAT_ASTC_12x12_UNORM_BLOCK: + return "VK_FORMAT_ASTC_12x12_UNORM_BLOCK"; + case VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT: + return "VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT"; + case VK_FORMAT_ASTC_4x4_SRGB_BLOCK: + return "VK_FORMAT_ASTC_4x4_SRGB_BLOCK"; + case VK_FORMAT_ASTC_4x4_UNORM_BLOCK: + return "VK_FORMAT_ASTC_4x4_UNORM_BLOCK"; + case VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT: + return "VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT"; + case VK_FORMAT_ASTC_5x4_SRGB_BLOCK: + return "VK_FORMAT_ASTC_5x4_SRGB_BLOCK"; + case VK_FORMAT_ASTC_5x4_UNORM_BLOCK: + return "VK_FORMAT_ASTC_5x4_UNORM_BLOCK"; + case VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT: + return "VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT"; + case VK_FORMAT_ASTC_5x5_SRGB_BLOCK: + return "VK_FORMAT_ASTC_5x5_SRGB_BLOCK"; + case VK_FORMAT_ASTC_5x5_UNORM_BLOCK: + return "VK_FORMAT_ASTC_5x5_UNORM_BLOCK"; + case VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT: + return "VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT"; + case VK_FORMAT_ASTC_6x5_SRGB_BLOCK: + return "VK_FORMAT_ASTC_6x5_SRGB_BLOCK"; + case VK_FORMAT_ASTC_6x5_UNORM_BLOCK: + return "VK_FORMAT_ASTC_6x5_UNORM_BLOCK"; + case VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT: + return "VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT"; + case VK_FORMAT_ASTC_6x6_SRGB_BLOCK: + return "VK_FORMAT_ASTC_6x6_SRGB_BLOCK"; + case VK_FORMAT_ASTC_6x6_UNORM_BLOCK: + return "VK_FORMAT_ASTC_6x6_UNORM_BLOCK"; + case VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT: + return "VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT"; + case VK_FORMAT_ASTC_8x5_SRGB_BLOCK: + return "VK_FORMAT_ASTC_8x5_SRGB_BLOCK"; + case VK_FORMAT_ASTC_8x5_UNORM_BLOCK: + return "VK_FORMAT_ASTC_8x5_UNORM_BLOCK"; + case VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT: + return "VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT"; + case VK_FORMAT_ASTC_8x6_SRGB_BLOCK: + return "VK_FORMAT_ASTC_8x6_SRGB_BLOCK"; + case VK_FORMAT_ASTC_8x6_UNORM_BLOCK: + return "VK_FORMAT_ASTC_8x6_UNORM_BLOCK"; + case VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT: + return "VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT"; + case VK_FORMAT_ASTC_8x8_SRGB_BLOCK: + return "VK_FORMAT_ASTC_8x8_SRGB_BLOCK"; + case VK_FORMAT_ASTC_8x8_UNORM_BLOCK: + return "VK_FORMAT_ASTC_8x8_UNORM_BLOCK"; + case VK_FORMAT_B10G11R11_UFLOAT_PACK32: + return "VK_FORMAT_B10G11R11_UFLOAT_PACK32"; + case VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16: + return "VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16"; + case VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16: + return "VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16"; + case VK_FORMAT_B16G16R16G16_422_UNORM: + return "VK_FORMAT_B16G16R16G16_422_UNORM"; + case VK_FORMAT_B4G4R4A4_UNORM_PACK16: + return "VK_FORMAT_B4G4R4A4_UNORM_PACK16"; + case VK_FORMAT_B5G5R5A1_UNORM_PACK16: + return "VK_FORMAT_B5G5R5A1_UNORM_PACK16"; + case VK_FORMAT_B5G6R5_UNORM_PACK16: + return "VK_FORMAT_B5G6R5_UNORM_PACK16"; + case VK_FORMAT_B8G8R8A8_SINT: + return "VK_FORMAT_B8G8R8A8_SINT"; + case VK_FORMAT_B8G8R8A8_SNORM: + return "VK_FORMAT_B8G8R8A8_SNORM"; + case VK_FORMAT_B8G8R8A8_SRGB: + return "VK_FORMAT_B8G8R8A8_SRGB"; + case VK_FORMAT_B8G8R8A8_SSCALED: + return "VK_FORMAT_B8G8R8A8_SSCALED"; + case VK_FORMAT_B8G8R8A8_UINT: + return "VK_FORMAT_B8G8R8A8_UINT"; + case VK_FORMAT_B8G8R8A8_UNORM: + return "VK_FORMAT_B8G8R8A8_UNORM"; + case VK_FORMAT_B8G8R8A8_USCALED: + return "VK_FORMAT_B8G8R8A8_USCALED"; + case VK_FORMAT_B8G8R8G8_422_UNORM: + return "VK_FORMAT_B8G8R8G8_422_UNORM"; + case VK_FORMAT_B8G8R8_SINT: + return "VK_FORMAT_B8G8R8_SINT"; + case VK_FORMAT_B8G8R8_SNORM: + return "VK_FORMAT_B8G8R8_SNORM"; + case VK_FORMAT_B8G8R8_SRGB: + return "VK_FORMAT_B8G8R8_SRGB"; + case VK_FORMAT_B8G8R8_SSCALED: + return "VK_FORMAT_B8G8R8_SSCALED"; + case VK_FORMAT_B8G8R8_UINT: + return "VK_FORMAT_B8G8R8_UINT"; + case VK_FORMAT_B8G8R8_UNORM: + return "VK_FORMAT_B8G8R8_UNORM"; + case VK_FORMAT_B8G8R8_USCALED: + return "VK_FORMAT_B8G8R8_USCALED"; + case VK_FORMAT_BC1_RGBA_SRGB_BLOCK: + return "VK_FORMAT_BC1_RGBA_SRGB_BLOCK"; + case VK_FORMAT_BC1_RGBA_UNORM_BLOCK: + return "VK_FORMAT_BC1_RGBA_UNORM_BLOCK"; + case VK_FORMAT_BC1_RGB_SRGB_BLOCK: + return "VK_FORMAT_BC1_RGB_SRGB_BLOCK"; + case VK_FORMAT_BC1_RGB_UNORM_BLOCK: + return "VK_FORMAT_BC1_RGB_UNORM_BLOCK"; + case VK_FORMAT_BC2_SRGB_BLOCK: + return "VK_FORMAT_BC2_SRGB_BLOCK"; + case VK_FORMAT_BC2_UNORM_BLOCK: + return "VK_FORMAT_BC2_UNORM_BLOCK"; + case VK_FORMAT_BC3_SRGB_BLOCK: + return "VK_FORMAT_BC3_SRGB_BLOCK"; + case VK_FORMAT_BC3_UNORM_BLOCK: + return "VK_FORMAT_BC3_UNORM_BLOCK"; + case VK_FORMAT_BC4_SNORM_BLOCK: + return "VK_FORMAT_BC4_SNORM_BLOCK"; + case VK_FORMAT_BC4_UNORM_BLOCK: + return "VK_FORMAT_BC4_UNORM_BLOCK"; + case VK_FORMAT_BC5_SNORM_BLOCK: + return "VK_FORMAT_BC5_SNORM_BLOCK"; + case VK_FORMAT_BC5_UNORM_BLOCK: + return "VK_FORMAT_BC5_UNORM_BLOCK"; + case VK_FORMAT_BC6H_SFLOAT_BLOCK: + return "VK_FORMAT_BC6H_SFLOAT_BLOCK"; + case VK_FORMAT_BC6H_UFLOAT_BLOCK: + return "VK_FORMAT_BC6H_UFLOAT_BLOCK"; + case VK_FORMAT_BC7_SRGB_BLOCK: + return "VK_FORMAT_BC7_SRGB_BLOCK"; + case VK_FORMAT_BC7_UNORM_BLOCK: + return "VK_FORMAT_BC7_UNORM_BLOCK"; + case VK_FORMAT_D16_UNORM: + return "VK_FORMAT_D16_UNORM"; + case VK_FORMAT_D16_UNORM_S8_UINT: + return "VK_FORMAT_D16_UNORM_S8_UINT"; + case VK_FORMAT_D24_UNORM_S8_UINT: + return "VK_FORMAT_D24_UNORM_S8_UINT"; + case VK_FORMAT_D32_SFLOAT: + return "VK_FORMAT_D32_SFLOAT"; + case VK_FORMAT_D32_SFLOAT_S8_UINT: + return "VK_FORMAT_D32_SFLOAT_S8_UINT"; + case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32: + return "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32"; + case VK_FORMAT_EAC_R11G11_SNORM_BLOCK: + return "VK_FORMAT_EAC_R11G11_SNORM_BLOCK"; + case VK_FORMAT_EAC_R11G11_UNORM_BLOCK: + return "VK_FORMAT_EAC_R11G11_UNORM_BLOCK"; + case VK_FORMAT_EAC_R11_SNORM_BLOCK: + return "VK_FORMAT_EAC_R11_SNORM_BLOCK"; + case VK_FORMAT_EAC_R11_UNORM_BLOCK: + return "VK_FORMAT_EAC_R11_UNORM_BLOCK"; + case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK: + return "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK"; + case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK: + return "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK"; + case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK: + return "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK"; + case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK: + return "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK"; + case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK: + return "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK"; + case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK: + return "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK"; + case VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16: + return "VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16"; + case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16: + return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16"; + case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16: + return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16"; + case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT: + return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT"; + case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16: + return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16"; + case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16: + return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16"; + case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16: + return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16"; + case VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16: + return "VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16"; + case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16: + return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16"; + case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16: + return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16"; + case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT: + return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT"; + case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16: + return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16"; + case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16: + return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16"; + case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16: + return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16"; + case VK_FORMAT_G16B16G16R16_422_UNORM: + return "VK_FORMAT_G16B16G16R16_422_UNORM"; + case VK_FORMAT_G16_B16R16_2PLANE_420_UNORM: + return "VK_FORMAT_G16_B16R16_2PLANE_420_UNORM"; + case VK_FORMAT_G16_B16R16_2PLANE_422_UNORM: + return "VK_FORMAT_G16_B16R16_2PLANE_422_UNORM"; + case VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT: + return "VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT"; + case VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM: + return "VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM"; + case VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM: + return "VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM"; + case VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM: + return "VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM"; + case VK_FORMAT_G8B8G8R8_422_UNORM: + return "VK_FORMAT_G8B8G8R8_422_UNORM"; + case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM: + return "VK_FORMAT_G8_B8R8_2PLANE_420_UNORM"; + case VK_FORMAT_G8_B8R8_2PLANE_422_UNORM: + return "VK_FORMAT_G8_B8R8_2PLANE_422_UNORM"; + case VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT: + return "VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT"; + case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM: + return "VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM"; + case VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM: + return "VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM"; + case VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM: + return "VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM"; + case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG: + return "VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG"; + case VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG: + return "VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG"; + case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG: + return "VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG"; + case VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG: + return "VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG"; + case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG: + return "VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG"; + case VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG: + return "VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG"; + case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG: + return "VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG"; + case VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG: + return "VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG"; + case VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16: + return "VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16"; + case VK_FORMAT_R10X6G10X6_UNORM_2PACK16: + return "VK_FORMAT_R10X6G10X6_UNORM_2PACK16"; + case VK_FORMAT_R10X6_UNORM_PACK16: + return "VK_FORMAT_R10X6_UNORM_PACK16"; + case VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16: + return "VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16"; + case VK_FORMAT_R12X4G12X4_UNORM_2PACK16: + return "VK_FORMAT_R12X4G12X4_UNORM_2PACK16"; + case VK_FORMAT_R12X4_UNORM_PACK16: + return "VK_FORMAT_R12X4_UNORM_PACK16"; + case VK_FORMAT_R16G16B16A16_SFLOAT: + return "VK_FORMAT_R16G16B16A16_SFLOAT"; + case VK_FORMAT_R16G16B16A16_SINT: + return "VK_FORMAT_R16G16B16A16_SINT"; + case VK_FORMAT_R16G16B16A16_SNORM: + return "VK_FORMAT_R16G16B16A16_SNORM"; + case VK_FORMAT_R16G16B16A16_SSCALED: + return "VK_FORMAT_R16G16B16A16_SSCALED"; + case VK_FORMAT_R16G16B16A16_UINT: + return "VK_FORMAT_R16G16B16A16_UINT"; + case VK_FORMAT_R16G16B16A16_UNORM: + return "VK_FORMAT_R16G16B16A16_UNORM"; + case VK_FORMAT_R16G16B16A16_USCALED: + return "VK_FORMAT_R16G16B16A16_USCALED"; + case VK_FORMAT_R16G16B16_SFLOAT: + return "VK_FORMAT_R16G16B16_SFLOAT"; + case VK_FORMAT_R16G16B16_SINT: + return "VK_FORMAT_R16G16B16_SINT"; + case VK_FORMAT_R16G16B16_SNORM: + return "VK_FORMAT_R16G16B16_SNORM"; + case VK_FORMAT_R16G16B16_SSCALED: + return "VK_FORMAT_R16G16B16_SSCALED"; + case VK_FORMAT_R16G16B16_UINT: + return "VK_FORMAT_R16G16B16_UINT"; + case VK_FORMAT_R16G16B16_UNORM: + return "VK_FORMAT_R16G16B16_UNORM"; + case VK_FORMAT_R16G16B16_USCALED: + return "VK_FORMAT_R16G16B16_USCALED"; + case VK_FORMAT_R16G16_SFLOAT: + return "VK_FORMAT_R16G16_SFLOAT"; + case VK_FORMAT_R16G16_SINT: + return "VK_FORMAT_R16G16_SINT"; + case VK_FORMAT_R16G16_SNORM: + return "VK_FORMAT_R16G16_SNORM"; + case VK_FORMAT_R16G16_SSCALED: + return "VK_FORMAT_R16G16_SSCALED"; + case VK_FORMAT_R16G16_UINT: + return "VK_FORMAT_R16G16_UINT"; + case VK_FORMAT_R16G16_UNORM: + return "VK_FORMAT_R16G16_UNORM"; + case VK_FORMAT_R16G16_USCALED: + return "VK_FORMAT_R16G16_USCALED"; + case VK_FORMAT_R16_SFLOAT: + return "VK_FORMAT_R16_SFLOAT"; + case VK_FORMAT_R16_SINT: + return "VK_FORMAT_R16_SINT"; + case VK_FORMAT_R16_SNORM: + return "VK_FORMAT_R16_SNORM"; + case VK_FORMAT_R16_SSCALED: + return "VK_FORMAT_R16_SSCALED"; + case VK_FORMAT_R16_UINT: + return "VK_FORMAT_R16_UINT"; + case VK_FORMAT_R16_UNORM: + return "VK_FORMAT_R16_UNORM"; + case VK_FORMAT_R16_USCALED: + return "VK_FORMAT_R16_USCALED"; + case VK_FORMAT_R32G32B32A32_SFLOAT: + return "VK_FORMAT_R32G32B32A32_SFLOAT"; + case VK_FORMAT_R32G32B32A32_SINT: + return "VK_FORMAT_R32G32B32A32_SINT"; + case VK_FORMAT_R32G32B32A32_UINT: + return "VK_FORMAT_R32G32B32A32_UINT"; + case VK_FORMAT_R32G32B32_SFLOAT: + return "VK_FORMAT_R32G32B32_SFLOAT"; + case VK_FORMAT_R32G32B32_SINT: + return "VK_FORMAT_R32G32B32_SINT"; + case VK_FORMAT_R32G32B32_UINT: + return "VK_FORMAT_R32G32B32_UINT"; + case VK_FORMAT_R32G32_SFLOAT: + return "VK_FORMAT_R32G32_SFLOAT"; + case VK_FORMAT_R32G32_SINT: + return "VK_FORMAT_R32G32_SINT"; + case VK_FORMAT_R32G32_UINT: + return "VK_FORMAT_R32G32_UINT"; + case VK_FORMAT_R32_SFLOAT: + return "VK_FORMAT_R32_SFLOAT"; + case VK_FORMAT_R32_SINT: + return "VK_FORMAT_R32_SINT"; + case VK_FORMAT_R32_UINT: + return "VK_FORMAT_R32_UINT"; + case VK_FORMAT_R4G4B4A4_UNORM_PACK16: + return "VK_FORMAT_R4G4B4A4_UNORM_PACK16"; + case VK_FORMAT_R4G4_UNORM_PACK8: + return "VK_FORMAT_R4G4_UNORM_PACK8"; + case VK_FORMAT_R5G5B5A1_UNORM_PACK16: + return "VK_FORMAT_R5G5B5A1_UNORM_PACK16"; + case VK_FORMAT_R5G6B5_UNORM_PACK16: + return "VK_FORMAT_R5G6B5_UNORM_PACK16"; + case VK_FORMAT_R64G64B64A64_SFLOAT: + return "VK_FORMAT_R64G64B64A64_SFLOAT"; + case VK_FORMAT_R64G64B64A64_SINT: + return "VK_FORMAT_R64G64B64A64_SINT"; + case VK_FORMAT_R64G64B64A64_UINT: + return "VK_FORMAT_R64G64B64A64_UINT"; + case VK_FORMAT_R64G64B64_SFLOAT: + return "VK_FORMAT_R64G64B64_SFLOAT"; + case VK_FORMAT_R64G64B64_SINT: + return "VK_FORMAT_R64G64B64_SINT"; + case VK_FORMAT_R64G64B64_UINT: + return "VK_FORMAT_R64G64B64_UINT"; + case VK_FORMAT_R64G64_SFLOAT: + return "VK_FORMAT_R64G64_SFLOAT"; + case VK_FORMAT_R64G64_SINT: + return "VK_FORMAT_R64G64_SINT"; + case VK_FORMAT_R64G64_UINT: + return "VK_FORMAT_R64G64_UINT"; + case VK_FORMAT_R64_SFLOAT: + return "VK_FORMAT_R64_SFLOAT"; + case VK_FORMAT_R64_SINT: + return "VK_FORMAT_R64_SINT"; + case VK_FORMAT_R64_UINT: + return "VK_FORMAT_R64_UINT"; + case VK_FORMAT_R8G8B8A8_SINT: + return "VK_FORMAT_R8G8B8A8_SINT"; + case VK_FORMAT_R8G8B8A8_SNORM: + return "VK_FORMAT_R8G8B8A8_SNORM"; + case VK_FORMAT_R8G8B8A8_SRGB: + return "VK_FORMAT_R8G8B8A8_SRGB"; + case VK_FORMAT_R8G8B8A8_SSCALED: + return "VK_FORMAT_R8G8B8A8_SSCALED"; + case VK_FORMAT_R8G8B8A8_UINT: + return "VK_FORMAT_R8G8B8A8_UINT"; + case VK_FORMAT_R8G8B8A8_UNORM: + return "VK_FORMAT_R8G8B8A8_UNORM"; + case VK_FORMAT_R8G8B8A8_USCALED: + return "VK_FORMAT_R8G8B8A8_USCALED"; + case VK_FORMAT_R8G8B8_SINT: + return "VK_FORMAT_R8G8B8_SINT"; + case VK_FORMAT_R8G8B8_SNORM: + return "VK_FORMAT_R8G8B8_SNORM"; + case VK_FORMAT_R8G8B8_SRGB: + return "VK_FORMAT_R8G8B8_SRGB"; + case VK_FORMAT_R8G8B8_SSCALED: + return "VK_FORMAT_R8G8B8_SSCALED"; + case VK_FORMAT_R8G8B8_UINT: + return "VK_FORMAT_R8G8B8_UINT"; + case VK_FORMAT_R8G8B8_UNORM: + return "VK_FORMAT_R8G8B8_UNORM"; + case VK_FORMAT_R8G8B8_USCALED: + return "VK_FORMAT_R8G8B8_USCALED"; + case VK_FORMAT_R8G8_SINT: + return "VK_FORMAT_R8G8_SINT"; + case VK_FORMAT_R8G8_SNORM: + return "VK_FORMAT_R8G8_SNORM"; + case VK_FORMAT_R8G8_SRGB: + return "VK_FORMAT_R8G8_SRGB"; + case VK_FORMAT_R8G8_SSCALED: + return "VK_FORMAT_R8G8_SSCALED"; + case VK_FORMAT_R8G8_UINT: + return "VK_FORMAT_R8G8_UINT"; + case VK_FORMAT_R8G8_UNORM: + return "VK_FORMAT_R8G8_UNORM"; + case VK_FORMAT_R8G8_USCALED: + return "VK_FORMAT_R8G8_USCALED"; + case VK_FORMAT_R8_SINT: + return "VK_FORMAT_R8_SINT"; + case VK_FORMAT_R8_SNORM: + return "VK_FORMAT_R8_SNORM"; + case VK_FORMAT_R8_SRGB: + return "VK_FORMAT_R8_SRGB"; + case VK_FORMAT_R8_SSCALED: + return "VK_FORMAT_R8_SSCALED"; + case VK_FORMAT_R8_UINT: + return "VK_FORMAT_R8_UINT"; + case VK_FORMAT_R8_UNORM: + return "VK_FORMAT_R8_UNORM"; + case VK_FORMAT_R8_USCALED: + return "VK_FORMAT_R8_USCALED"; + case VK_FORMAT_S8_UINT: + return "VK_FORMAT_S8_UINT"; + case VK_FORMAT_UNDEFINED: + return "VK_FORMAT_UNDEFINED"; + case VK_FORMAT_X8_D24_UNORM_PACK32: + return "VK_FORMAT_X8_D24_UNORM_PACK32"; + default: + return "Unhandled VkFormat"; + } +} + +static inline const char* string_VkFormatFeatureFlagBits(VkFormatFeatureFlagBits input_value) +{ + switch (input_value) + { + case VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR: + return "VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"; + case VK_FORMAT_FEATURE_BLIT_DST_BIT: + return "VK_FORMAT_FEATURE_BLIT_DST_BIT"; + case VK_FORMAT_FEATURE_BLIT_SRC_BIT: + return "VK_FORMAT_FEATURE_BLIT_SRC_BIT"; + case VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT: + return "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT"; + case VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT: + return "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT"; + case VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT: + return "VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT"; + case VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT: + return "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT"; + case VK_FORMAT_FEATURE_DISJOINT_BIT: + return "VK_FORMAT_FEATURE_DISJOINT_BIT"; + case VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT: + return "VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT"; + case VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR: + return "VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"; + case VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT: + return "VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT"; + case VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT: + return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT"; + case VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG: + return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG"; + case VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT: + return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT"; + case VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT: + return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT"; + case VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT: + return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT"; + case VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT: + return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT"; + case VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT: + return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"; + case VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT: + return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT"; + case VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT: + return "VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT"; + case VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT: + return "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT"; + case VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT: + return "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"; + case VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT: + return "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT"; + case VK_FORMAT_FEATURE_TRANSFER_DST_BIT: + return "VK_FORMAT_FEATURE_TRANSFER_DST_BIT"; + case VK_FORMAT_FEATURE_TRANSFER_SRC_BIT: + return "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT"; + case VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT: + return "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT"; + case VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT: + return "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR: + return "VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR: + return "VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR: + return "VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR: + return "VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + default: + return "Unhandled VkFormatFeatureFlagBits"; + } +} + +static inline std::string string_VkFormatFeatureFlags(VkFormatFeatureFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkFormatFeatureFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkFormatFeatureFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkImageCreateFlagBits(VkImageCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT: + return "VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT"; + case VK_IMAGE_CREATE_ALIAS_BIT: + return "VK_IMAGE_CREATE_ALIAS_BIT"; + case VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT: + return "VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT"; + case VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV: + return "VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV"; + case VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT: + return "VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT"; + case VK_IMAGE_CREATE_DISJOINT_BIT: + return "VK_IMAGE_CREATE_DISJOINT_BIT"; + case VK_IMAGE_CREATE_EXTENDED_USAGE_BIT: + return "VK_IMAGE_CREATE_EXTENDED_USAGE_BIT"; + case VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT: + return "VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT"; + case VK_IMAGE_CREATE_PROTECTED_BIT: + return "VK_IMAGE_CREATE_PROTECTED_BIT"; + case VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT: + return "VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT"; + case VK_IMAGE_CREATE_SPARSE_ALIASED_BIT: + return "VK_IMAGE_CREATE_SPARSE_ALIASED_BIT"; + case VK_IMAGE_CREATE_SPARSE_BINDING_BIT: + return "VK_IMAGE_CREATE_SPARSE_BINDING_BIT"; + case VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT: + return "VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT"; + case VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT: + return "VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT"; + case VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT: + return "VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT"; + default: + return "Unhandled VkImageCreateFlagBits"; + } +} + +static inline std::string string_VkImageCreateFlags(VkImageCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkImageCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkImageCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkSampleCountFlagBits(VkSampleCountFlagBits input_value) +{ + switch (input_value) + { + case VK_SAMPLE_COUNT_16_BIT: + return "VK_SAMPLE_COUNT_16_BIT"; + case VK_SAMPLE_COUNT_1_BIT: + return "VK_SAMPLE_COUNT_1_BIT"; + case VK_SAMPLE_COUNT_2_BIT: + return "VK_SAMPLE_COUNT_2_BIT"; + case VK_SAMPLE_COUNT_32_BIT: + return "VK_SAMPLE_COUNT_32_BIT"; + case VK_SAMPLE_COUNT_4_BIT: + return "VK_SAMPLE_COUNT_4_BIT"; + case VK_SAMPLE_COUNT_64_BIT: + return "VK_SAMPLE_COUNT_64_BIT"; + case VK_SAMPLE_COUNT_8_BIT: + return "VK_SAMPLE_COUNT_8_BIT"; + default: + return "Unhandled VkSampleCountFlagBits"; + } +} + +static inline std::string string_VkSampleCountFlags(VkSampleCountFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSampleCountFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSampleCountFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkImageTiling(VkImageTiling input_value) +{ + switch (input_value) + { + case VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT: + return "VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT"; + case VK_IMAGE_TILING_LINEAR: + return "VK_IMAGE_TILING_LINEAR"; + case VK_IMAGE_TILING_OPTIMAL: + return "VK_IMAGE_TILING_OPTIMAL"; + default: + return "Unhandled VkImageTiling"; + } +} + +static inline const char* string_VkImageType(VkImageType input_value) +{ + switch (input_value) + { + case VK_IMAGE_TYPE_1D: + return "VK_IMAGE_TYPE_1D"; + case VK_IMAGE_TYPE_2D: + return "VK_IMAGE_TYPE_2D"; + case VK_IMAGE_TYPE_3D: + return "VK_IMAGE_TYPE_3D"; + default: + return "Unhandled VkImageType"; + } +} + +static inline const char* string_VkImageUsageFlagBits(VkImageUsageFlagBits input_value) +{ + switch (input_value) + { + case VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT: + return "VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT"; + case VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT: + return "VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT"; + case VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT: + return "VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT"; + case VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT: + return "VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT"; + case VK_IMAGE_USAGE_SAMPLED_BIT: + return "VK_IMAGE_USAGE_SAMPLED_BIT"; + case VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV: + return "VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV"; + case VK_IMAGE_USAGE_STORAGE_BIT: + return "VK_IMAGE_USAGE_STORAGE_BIT"; + case VK_IMAGE_USAGE_TRANSFER_DST_BIT: + return "VK_IMAGE_USAGE_TRANSFER_DST_BIT"; + case VK_IMAGE_USAGE_TRANSFER_SRC_BIT: + return "VK_IMAGE_USAGE_TRANSFER_SRC_BIT"; + case VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT: + return "VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR: + return "VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR: + return "VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR: + return "VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR: + return "VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR: + return "VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR: + return "VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + default: + return "Unhandled VkImageUsageFlagBits"; + } +} + +static inline std::string string_VkImageUsageFlags(VkImageUsageFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkImageUsageFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkImageUsageFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkMemoryHeapFlagBits(VkMemoryHeapFlagBits input_value) +{ + switch (input_value) + { + case VK_MEMORY_HEAP_DEVICE_LOCAL_BIT: + return "VK_MEMORY_HEAP_DEVICE_LOCAL_BIT"; + case VK_MEMORY_HEAP_MULTI_INSTANCE_BIT: + return "VK_MEMORY_HEAP_MULTI_INSTANCE_BIT"; + default: + return "Unhandled VkMemoryHeapFlagBits"; + } +} + +static inline std::string string_VkMemoryHeapFlags(VkMemoryHeapFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkMemoryHeapFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkMemoryHeapFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkMemoryPropertyFlagBits(VkMemoryPropertyFlagBits input_value) +{ + switch (input_value) + { + case VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD: + return "VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD"; + case VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT: + return "VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT"; + case VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD: + return "VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD"; + case VK_MEMORY_PROPERTY_HOST_CACHED_BIT: + return "VK_MEMORY_PROPERTY_HOST_CACHED_BIT"; + case VK_MEMORY_PROPERTY_HOST_COHERENT_BIT: + return "VK_MEMORY_PROPERTY_HOST_COHERENT_BIT"; + case VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT: + return "VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT"; + case VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT: + return "VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT"; + case VK_MEMORY_PROPERTY_PROTECTED_BIT: + return "VK_MEMORY_PROPERTY_PROTECTED_BIT"; + default: + return "Unhandled VkMemoryPropertyFlagBits"; + } +} + +static inline std::string string_VkMemoryPropertyFlags(VkMemoryPropertyFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkMemoryPropertyFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkMemoryPropertyFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkPhysicalDeviceType(VkPhysicalDeviceType input_value) +{ + switch (input_value) + { + case VK_PHYSICAL_DEVICE_TYPE_CPU: + return "VK_PHYSICAL_DEVICE_TYPE_CPU"; + case VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU: + return "VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU"; + case VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU: + return "VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU"; + case VK_PHYSICAL_DEVICE_TYPE_OTHER: + return "VK_PHYSICAL_DEVICE_TYPE_OTHER"; + case VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU: + return "VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU"; + default: + return "Unhandled VkPhysicalDeviceType"; + } +} + +static inline const char* string_VkQueueFlagBits(VkQueueFlagBits input_value) +{ + switch (input_value) + { + case VK_QUEUE_COMPUTE_BIT: + return "VK_QUEUE_COMPUTE_BIT"; + case VK_QUEUE_GRAPHICS_BIT: + return "VK_QUEUE_GRAPHICS_BIT"; + case VK_QUEUE_PROTECTED_BIT: + return "VK_QUEUE_PROTECTED_BIT"; + case VK_QUEUE_SPARSE_BINDING_BIT: + return "VK_QUEUE_SPARSE_BINDING_BIT"; + case VK_QUEUE_TRANSFER_BIT: + return "VK_QUEUE_TRANSFER_BIT"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_QUEUE_VIDEO_DECODE_BIT_KHR: + return "VK_QUEUE_VIDEO_DECODE_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_QUEUE_VIDEO_ENCODE_BIT_KHR: + return "VK_QUEUE_VIDEO_ENCODE_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + default: + return "Unhandled VkQueueFlagBits"; + } +} + +static inline std::string string_VkQueueFlags(VkQueueFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkQueueFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkQueueFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkDeviceQueueCreateFlagBits(VkDeviceQueueCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT: + return "VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT"; + default: + return "Unhandled VkDeviceQueueCreateFlagBits"; + } +} + +static inline std::string string_VkDeviceQueueCreateFlags(VkDeviceQueueCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDeviceQueueCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDeviceQueueCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkPipelineStageFlagBits(VkPipelineStageFlagBits input_value) +{ + switch (input_value) + { + case VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR: + return "VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"; + case VK_PIPELINE_STAGE_ALL_COMMANDS_BIT: + return "VK_PIPELINE_STAGE_ALL_COMMANDS_BIT"; + case VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT: + return "VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT"; + case VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT: + return "VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT"; + case VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT: + return "VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT"; + case VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV: + return "VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV"; + case VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT: + return "VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT"; + case VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT: + return "VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT"; + case VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT: + return "VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT"; + case VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT: + return "VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT"; + case VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT: + return "VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT"; + case VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT: + return "VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT"; + case VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT: + return "VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT"; + case VK_PIPELINE_STAGE_HOST_BIT: + return "VK_PIPELINE_STAGE_HOST_BIT"; + case VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT: + return "VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT"; + case VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV: + return "VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV"; + case VK_PIPELINE_STAGE_NONE_KHR: + return "VK_PIPELINE_STAGE_NONE_KHR"; + case VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR: + return "VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR"; + case VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV: + return "VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV"; + case VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV: + return "VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV"; + case VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT: + return "VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT"; + case VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT: + return "VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT"; + case VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT: + return "VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT"; + case VK_PIPELINE_STAGE_TRANSFER_BIT: + return "VK_PIPELINE_STAGE_TRANSFER_BIT"; + case VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT: + return "VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT"; + case VK_PIPELINE_STAGE_VERTEX_INPUT_BIT: + return "VK_PIPELINE_STAGE_VERTEX_INPUT_BIT"; + case VK_PIPELINE_STAGE_VERTEX_SHADER_BIT: + return "VK_PIPELINE_STAGE_VERTEX_SHADER_BIT"; + default: + return "Unhandled VkPipelineStageFlagBits"; + } +} + +static inline std::string string_VkPipelineStageFlags(VkPipelineStageFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPipelineStageFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPipelineStageFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkSparseMemoryBindFlagBits(VkSparseMemoryBindFlagBits input_value) +{ + switch (input_value) + { + case VK_SPARSE_MEMORY_BIND_METADATA_BIT: + return "VK_SPARSE_MEMORY_BIND_METADATA_BIT"; + default: + return "Unhandled VkSparseMemoryBindFlagBits"; + } +} + +static inline std::string string_VkSparseMemoryBindFlags(VkSparseMemoryBindFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSparseMemoryBindFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSparseMemoryBindFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkSparseImageFormatFlagBits(VkSparseImageFormatFlagBits input_value) +{ + switch (input_value) + { + case VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT: + return "VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT"; + case VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT: + return "VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT"; + case VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT: + return "VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT"; + default: + return "Unhandled VkSparseImageFormatFlagBits"; + } +} + +static inline std::string string_VkSparseImageFormatFlags(VkSparseImageFormatFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSparseImageFormatFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSparseImageFormatFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkFenceCreateFlagBits(VkFenceCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_FENCE_CREATE_SIGNALED_BIT: + return "VK_FENCE_CREATE_SIGNALED_BIT"; + default: + return "Unhandled VkFenceCreateFlagBits"; + } +} + +static inline std::string string_VkFenceCreateFlags(VkFenceCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkFenceCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkFenceCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkEventCreateFlagBits(VkEventCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR: + return "VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR"; + default: + return "Unhandled VkEventCreateFlagBits"; + } +} + +static inline std::string string_VkEventCreateFlags(VkEventCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkEventCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkEventCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkQueryPipelineStatisticFlagBits(VkQueryPipelineStatisticFlagBits input_value) +{ + switch (input_value) + { + case VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT: + return "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT"; + case VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT: + return "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT"; + case VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT: + return "VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT"; + case VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT: + return "VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT"; + case VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT: + return "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT"; + case VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT: + return "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT"; + case VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT: + return "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT"; + case VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT: + return "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT"; + case VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT: + return "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT"; + case VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT: + return "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT"; + case VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT: + return "VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT"; + default: + return "Unhandled VkQueryPipelineStatisticFlagBits"; + } +} + +static inline std::string string_VkQueryPipelineStatisticFlags(VkQueryPipelineStatisticFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkQueryPipelineStatisticFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkQueryPipelineStatisticFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkQueryType(VkQueryType input_value) +{ + switch (input_value) + { + case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR: + return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR"; + case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV: + return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV"; + case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR: + return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR"; + case VK_QUERY_TYPE_OCCLUSION: + return "VK_QUERY_TYPE_OCCLUSION"; + case VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL: + return "VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL"; + case VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR: + return "VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR"; + case VK_QUERY_TYPE_PIPELINE_STATISTICS: + return "VK_QUERY_TYPE_PIPELINE_STATISTICS"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR: + return "VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + case VK_QUERY_TYPE_TIMESTAMP: + return "VK_QUERY_TYPE_TIMESTAMP"; + case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT: + return "VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR: + return "VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + default: + return "Unhandled VkQueryType"; + } +} + +static inline const char* string_VkQueryResultFlagBits(VkQueryResultFlagBits input_value) +{ + switch (input_value) + { + case VK_QUERY_RESULT_64_BIT: + return "VK_QUERY_RESULT_64_BIT"; + case VK_QUERY_RESULT_PARTIAL_BIT: + return "VK_QUERY_RESULT_PARTIAL_BIT"; + case VK_QUERY_RESULT_WAIT_BIT: + return "VK_QUERY_RESULT_WAIT_BIT"; + case VK_QUERY_RESULT_WITH_AVAILABILITY_BIT: + return "VK_QUERY_RESULT_WITH_AVAILABILITY_BIT"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_QUERY_RESULT_WITH_STATUS_BIT_KHR: + return "VK_QUERY_RESULT_WITH_STATUS_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + default: + return "Unhandled VkQueryResultFlagBits"; + } +} + +static inline std::string string_VkQueryResultFlags(VkQueryResultFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkQueryResultFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkQueryResultFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkBufferCreateFlagBits(VkBufferCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT: + return "VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"; + case VK_BUFFER_CREATE_PROTECTED_BIT: + return "VK_BUFFER_CREATE_PROTECTED_BIT"; + case VK_BUFFER_CREATE_SPARSE_ALIASED_BIT: + return "VK_BUFFER_CREATE_SPARSE_ALIASED_BIT"; + case VK_BUFFER_CREATE_SPARSE_BINDING_BIT: + return "VK_BUFFER_CREATE_SPARSE_BINDING_BIT"; + case VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT: + return "VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT"; + default: + return "Unhandled VkBufferCreateFlagBits"; + } +} + +static inline std::string string_VkBufferCreateFlags(VkBufferCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkBufferCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkBufferCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkBufferUsageFlagBits(VkBufferUsageFlagBits input_value) +{ + switch (input_value) + { + case VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR: + return "VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR"; + case VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR: + return "VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"; + case VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT: + return "VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT"; + case VK_BUFFER_USAGE_INDEX_BUFFER_BIT: + return "VK_BUFFER_USAGE_INDEX_BUFFER_BIT"; + case VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT: + return "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT"; + case VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR: + return "VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR"; + case VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT: + return "VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT"; + case VK_BUFFER_USAGE_STORAGE_BUFFER_BIT: + return "VK_BUFFER_USAGE_STORAGE_BUFFER_BIT"; + case VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT: + return "VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT"; + case VK_BUFFER_USAGE_TRANSFER_DST_BIT: + return "VK_BUFFER_USAGE_TRANSFER_DST_BIT"; + case VK_BUFFER_USAGE_TRANSFER_SRC_BIT: + return "VK_BUFFER_USAGE_TRANSFER_SRC_BIT"; + case VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT: + return "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"; + case VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT: + return "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"; + case VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT: + return "VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT"; + case VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT: + return "VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT"; + case VK_BUFFER_USAGE_VERTEX_BUFFER_BIT: + return "VK_BUFFER_USAGE_VERTEX_BUFFER_BIT"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR: + return "VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR: + return "VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR: + return "VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR: + return "VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + default: + return "Unhandled VkBufferUsageFlagBits"; + } +} + +static inline std::string string_VkBufferUsageFlags(VkBufferUsageFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkBufferUsageFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkBufferUsageFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkSharingMode(VkSharingMode input_value) +{ + switch (input_value) + { + case VK_SHARING_MODE_CONCURRENT: + return "VK_SHARING_MODE_CONCURRENT"; + case VK_SHARING_MODE_EXCLUSIVE: + return "VK_SHARING_MODE_EXCLUSIVE"; + default: + return "Unhandled VkSharingMode"; + } +} + +static inline const char* string_VkComponentSwizzle(VkComponentSwizzle input_value) +{ + switch (input_value) + { + case VK_COMPONENT_SWIZZLE_A: + return "VK_COMPONENT_SWIZZLE_A"; + case VK_COMPONENT_SWIZZLE_B: + return "VK_COMPONENT_SWIZZLE_B"; + case VK_COMPONENT_SWIZZLE_G: + return "VK_COMPONENT_SWIZZLE_G"; + case VK_COMPONENT_SWIZZLE_IDENTITY: + return "VK_COMPONENT_SWIZZLE_IDENTITY"; + case VK_COMPONENT_SWIZZLE_ONE: + return "VK_COMPONENT_SWIZZLE_ONE"; + case VK_COMPONENT_SWIZZLE_R: + return "VK_COMPONENT_SWIZZLE_R"; + case VK_COMPONENT_SWIZZLE_ZERO: + return "VK_COMPONENT_SWIZZLE_ZERO"; + default: + return "Unhandled VkComponentSwizzle"; + } +} + +static inline const char* string_VkImageViewCreateFlagBits(VkImageViewCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT: + return "VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT"; + case VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT: + return "VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT"; + default: + return "Unhandled VkImageViewCreateFlagBits"; + } +} + +static inline std::string string_VkImageViewCreateFlags(VkImageViewCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkImageViewCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkImageViewCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkImageViewType(VkImageViewType input_value) +{ + switch (input_value) + { + case VK_IMAGE_VIEW_TYPE_1D: + return "VK_IMAGE_VIEW_TYPE_1D"; + case VK_IMAGE_VIEW_TYPE_1D_ARRAY: + return "VK_IMAGE_VIEW_TYPE_1D_ARRAY"; + case VK_IMAGE_VIEW_TYPE_2D: + return "VK_IMAGE_VIEW_TYPE_2D"; + case VK_IMAGE_VIEW_TYPE_2D_ARRAY: + return "VK_IMAGE_VIEW_TYPE_2D_ARRAY"; + case VK_IMAGE_VIEW_TYPE_3D: + return "VK_IMAGE_VIEW_TYPE_3D"; + case VK_IMAGE_VIEW_TYPE_CUBE: + return "VK_IMAGE_VIEW_TYPE_CUBE"; + case VK_IMAGE_VIEW_TYPE_CUBE_ARRAY: + return "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY"; + default: + return "Unhandled VkImageViewType"; + } +} + +static inline const char* string_VkPipelineCacheCreateFlagBits(VkPipelineCacheCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT: + return "VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT"; + default: + return "Unhandled VkPipelineCacheCreateFlagBits"; + } +} + +static inline std::string string_VkPipelineCacheCreateFlags(VkPipelineCacheCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPipelineCacheCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPipelineCacheCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkBlendFactor(VkBlendFactor input_value) +{ + switch (input_value) + { + case VK_BLEND_FACTOR_CONSTANT_ALPHA: + return "VK_BLEND_FACTOR_CONSTANT_ALPHA"; + case VK_BLEND_FACTOR_CONSTANT_COLOR: + return "VK_BLEND_FACTOR_CONSTANT_COLOR"; + case VK_BLEND_FACTOR_DST_ALPHA: + return "VK_BLEND_FACTOR_DST_ALPHA"; + case VK_BLEND_FACTOR_DST_COLOR: + return "VK_BLEND_FACTOR_DST_COLOR"; + case VK_BLEND_FACTOR_ONE: + return "VK_BLEND_FACTOR_ONE"; + case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA: + return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA"; + case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR: + return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR"; + case VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA: + return "VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA"; + case VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR: + return "VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR"; + case VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA: + return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA"; + case VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR: + return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR"; + case VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA: + return "VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA"; + case VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR: + return "VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR"; + case VK_BLEND_FACTOR_SRC1_ALPHA: + return "VK_BLEND_FACTOR_SRC1_ALPHA"; + case VK_BLEND_FACTOR_SRC1_COLOR: + return "VK_BLEND_FACTOR_SRC1_COLOR"; + case VK_BLEND_FACTOR_SRC_ALPHA: + return "VK_BLEND_FACTOR_SRC_ALPHA"; + case VK_BLEND_FACTOR_SRC_ALPHA_SATURATE: + return "VK_BLEND_FACTOR_SRC_ALPHA_SATURATE"; + case VK_BLEND_FACTOR_SRC_COLOR: + return "VK_BLEND_FACTOR_SRC_COLOR"; + case VK_BLEND_FACTOR_ZERO: + return "VK_BLEND_FACTOR_ZERO"; + default: + return "Unhandled VkBlendFactor"; + } +} + +static inline const char* string_VkBlendOp(VkBlendOp input_value) +{ + switch (input_value) + { + case VK_BLEND_OP_ADD: + return "VK_BLEND_OP_ADD"; + case VK_BLEND_OP_BLUE_EXT: + return "VK_BLEND_OP_BLUE_EXT"; + case VK_BLEND_OP_COLORBURN_EXT: + return "VK_BLEND_OP_COLORBURN_EXT"; + case VK_BLEND_OP_COLORDODGE_EXT: + return "VK_BLEND_OP_COLORDODGE_EXT"; + case VK_BLEND_OP_CONTRAST_EXT: + return "VK_BLEND_OP_CONTRAST_EXT"; + case VK_BLEND_OP_DARKEN_EXT: + return "VK_BLEND_OP_DARKEN_EXT"; + case VK_BLEND_OP_DIFFERENCE_EXT: + return "VK_BLEND_OP_DIFFERENCE_EXT"; + case VK_BLEND_OP_DST_ATOP_EXT: + return "VK_BLEND_OP_DST_ATOP_EXT"; + case VK_BLEND_OP_DST_EXT: + return "VK_BLEND_OP_DST_EXT"; + case VK_BLEND_OP_DST_IN_EXT: + return "VK_BLEND_OP_DST_IN_EXT"; + case VK_BLEND_OP_DST_OUT_EXT: + return "VK_BLEND_OP_DST_OUT_EXT"; + case VK_BLEND_OP_DST_OVER_EXT: + return "VK_BLEND_OP_DST_OVER_EXT"; + case VK_BLEND_OP_EXCLUSION_EXT: + return "VK_BLEND_OP_EXCLUSION_EXT"; + case VK_BLEND_OP_GREEN_EXT: + return "VK_BLEND_OP_GREEN_EXT"; + case VK_BLEND_OP_HARDLIGHT_EXT: + return "VK_BLEND_OP_HARDLIGHT_EXT"; + case VK_BLEND_OP_HARDMIX_EXT: + return "VK_BLEND_OP_HARDMIX_EXT"; + case VK_BLEND_OP_HSL_COLOR_EXT: + return "VK_BLEND_OP_HSL_COLOR_EXT"; + case VK_BLEND_OP_HSL_HUE_EXT: + return "VK_BLEND_OP_HSL_HUE_EXT"; + case VK_BLEND_OP_HSL_LUMINOSITY_EXT: + return "VK_BLEND_OP_HSL_LUMINOSITY_EXT"; + case VK_BLEND_OP_HSL_SATURATION_EXT: + return "VK_BLEND_OP_HSL_SATURATION_EXT"; + case VK_BLEND_OP_INVERT_EXT: + return "VK_BLEND_OP_INVERT_EXT"; + case VK_BLEND_OP_INVERT_OVG_EXT: + return "VK_BLEND_OP_INVERT_OVG_EXT"; + case VK_BLEND_OP_INVERT_RGB_EXT: + return "VK_BLEND_OP_INVERT_RGB_EXT"; + case VK_BLEND_OP_LIGHTEN_EXT: + return "VK_BLEND_OP_LIGHTEN_EXT"; + case VK_BLEND_OP_LINEARBURN_EXT: + return "VK_BLEND_OP_LINEARBURN_EXT"; + case VK_BLEND_OP_LINEARDODGE_EXT: + return "VK_BLEND_OP_LINEARDODGE_EXT"; + case VK_BLEND_OP_LINEARLIGHT_EXT: + return "VK_BLEND_OP_LINEARLIGHT_EXT"; + case VK_BLEND_OP_MAX: + return "VK_BLEND_OP_MAX"; + case VK_BLEND_OP_MIN: + return "VK_BLEND_OP_MIN"; + case VK_BLEND_OP_MINUS_CLAMPED_EXT: + return "VK_BLEND_OP_MINUS_CLAMPED_EXT"; + case VK_BLEND_OP_MINUS_EXT: + return "VK_BLEND_OP_MINUS_EXT"; + case VK_BLEND_OP_MULTIPLY_EXT: + return "VK_BLEND_OP_MULTIPLY_EXT"; + case VK_BLEND_OP_OVERLAY_EXT: + return "VK_BLEND_OP_OVERLAY_EXT"; + case VK_BLEND_OP_PINLIGHT_EXT: + return "VK_BLEND_OP_PINLIGHT_EXT"; + case VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT: + return "VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT"; + case VK_BLEND_OP_PLUS_CLAMPED_EXT: + return "VK_BLEND_OP_PLUS_CLAMPED_EXT"; + case VK_BLEND_OP_PLUS_DARKER_EXT: + return "VK_BLEND_OP_PLUS_DARKER_EXT"; + case VK_BLEND_OP_PLUS_EXT: + return "VK_BLEND_OP_PLUS_EXT"; + case VK_BLEND_OP_RED_EXT: + return "VK_BLEND_OP_RED_EXT"; + case VK_BLEND_OP_REVERSE_SUBTRACT: + return "VK_BLEND_OP_REVERSE_SUBTRACT"; + case VK_BLEND_OP_SCREEN_EXT: + return "VK_BLEND_OP_SCREEN_EXT"; + case VK_BLEND_OP_SOFTLIGHT_EXT: + return "VK_BLEND_OP_SOFTLIGHT_EXT"; + case VK_BLEND_OP_SRC_ATOP_EXT: + return "VK_BLEND_OP_SRC_ATOP_EXT"; + case VK_BLEND_OP_SRC_EXT: + return "VK_BLEND_OP_SRC_EXT"; + case VK_BLEND_OP_SRC_IN_EXT: + return "VK_BLEND_OP_SRC_IN_EXT"; + case VK_BLEND_OP_SRC_OUT_EXT: + return "VK_BLEND_OP_SRC_OUT_EXT"; + case VK_BLEND_OP_SRC_OVER_EXT: + return "VK_BLEND_OP_SRC_OVER_EXT"; + case VK_BLEND_OP_SUBTRACT: + return "VK_BLEND_OP_SUBTRACT"; + case VK_BLEND_OP_VIVIDLIGHT_EXT: + return "VK_BLEND_OP_VIVIDLIGHT_EXT"; + case VK_BLEND_OP_XOR_EXT: + return "VK_BLEND_OP_XOR_EXT"; + case VK_BLEND_OP_ZERO_EXT: + return "VK_BLEND_OP_ZERO_EXT"; + default: + return "Unhandled VkBlendOp"; + } +} + +static inline const char* string_VkColorComponentFlagBits(VkColorComponentFlagBits input_value) +{ + switch (input_value) + { + case VK_COLOR_COMPONENT_A_BIT: + return "VK_COLOR_COMPONENT_A_BIT"; + case VK_COLOR_COMPONENT_B_BIT: + return "VK_COLOR_COMPONENT_B_BIT"; + case VK_COLOR_COMPONENT_G_BIT: + return "VK_COLOR_COMPONENT_G_BIT"; + case VK_COLOR_COMPONENT_R_BIT: + return "VK_COLOR_COMPONENT_R_BIT"; + default: + return "Unhandled VkColorComponentFlagBits"; + } +} + +static inline std::string string_VkColorComponentFlags(VkColorComponentFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkColorComponentFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkColorComponentFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkCompareOp(VkCompareOp input_value) +{ + switch (input_value) + { + case VK_COMPARE_OP_ALWAYS: + return "VK_COMPARE_OP_ALWAYS"; + case VK_COMPARE_OP_EQUAL: + return "VK_COMPARE_OP_EQUAL"; + case VK_COMPARE_OP_GREATER: + return "VK_COMPARE_OP_GREATER"; + case VK_COMPARE_OP_GREATER_OR_EQUAL: + return "VK_COMPARE_OP_GREATER_OR_EQUAL"; + case VK_COMPARE_OP_LESS: + return "VK_COMPARE_OP_LESS"; + case VK_COMPARE_OP_LESS_OR_EQUAL: + return "VK_COMPARE_OP_LESS_OR_EQUAL"; + case VK_COMPARE_OP_NEVER: + return "VK_COMPARE_OP_NEVER"; + case VK_COMPARE_OP_NOT_EQUAL: + return "VK_COMPARE_OP_NOT_EQUAL"; + default: + return "Unhandled VkCompareOp"; + } +} + +static inline const char* string_VkPipelineCreateFlagBits(VkPipelineCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT: + return "VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT"; + case VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR: + return "VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR"; + case VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR: + return "VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR"; + case VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV: + return "VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV"; + case VK_PIPELINE_CREATE_DERIVATIVE_BIT: + return "VK_PIPELINE_CREATE_DERIVATIVE_BIT"; + case VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT: + return "VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT"; + case VK_PIPELINE_CREATE_DISPATCH_BASE_BIT: + return "VK_PIPELINE_CREATE_DISPATCH_BASE_BIT"; + case VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT: + return "VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT"; + case VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT: + return "VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT"; + case VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV: + return "VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV"; + case VK_PIPELINE_CREATE_LIBRARY_BIT_KHR: + return "VK_PIPELINE_CREATE_LIBRARY_BIT_KHR"; + case VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR: + return "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR"; + case VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR: + return "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR"; + case VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR: + return "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR"; + case VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR: + return "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR"; + case VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR: + return "VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR"; + case VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR: + return "VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR"; + case VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR: + return "VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR"; + case VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT: + return "VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT"; + default: + return "Unhandled VkPipelineCreateFlagBits"; + } +} + +static inline std::string string_VkPipelineCreateFlags(VkPipelineCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPipelineCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPipelineCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkPipelineShaderStageCreateFlagBits(VkPipelineShaderStageCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT: + return "VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT"; + case VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT: + return "VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT"; + default: + return "Unhandled VkPipelineShaderStageCreateFlagBits"; + } +} + +static inline std::string string_VkPipelineShaderStageCreateFlags(VkPipelineShaderStageCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPipelineShaderStageCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPipelineShaderStageCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkShaderStageFlagBits(VkShaderStageFlagBits input_value) +{ + switch (input_value) + { + case VK_SHADER_STAGE_ALL: + return "VK_SHADER_STAGE_ALL"; + case VK_SHADER_STAGE_ALL_GRAPHICS: + return "VK_SHADER_STAGE_ALL_GRAPHICS"; + case VK_SHADER_STAGE_ANY_HIT_BIT_KHR: + return "VK_SHADER_STAGE_ANY_HIT_BIT_KHR"; + case VK_SHADER_STAGE_CALLABLE_BIT_KHR: + return "VK_SHADER_STAGE_CALLABLE_BIT_KHR"; + case VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR: + return "VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR"; + case VK_SHADER_STAGE_COMPUTE_BIT: + return "VK_SHADER_STAGE_COMPUTE_BIT"; + case VK_SHADER_STAGE_FRAGMENT_BIT: + return "VK_SHADER_STAGE_FRAGMENT_BIT"; + case VK_SHADER_STAGE_GEOMETRY_BIT: + return "VK_SHADER_STAGE_GEOMETRY_BIT"; + case VK_SHADER_STAGE_INTERSECTION_BIT_KHR: + return "VK_SHADER_STAGE_INTERSECTION_BIT_KHR"; + case VK_SHADER_STAGE_MESH_BIT_NV: + return "VK_SHADER_STAGE_MESH_BIT_NV"; + case VK_SHADER_STAGE_MISS_BIT_KHR: + return "VK_SHADER_STAGE_MISS_BIT_KHR"; + case VK_SHADER_STAGE_RAYGEN_BIT_KHR: + return "VK_SHADER_STAGE_RAYGEN_BIT_KHR"; + case VK_SHADER_STAGE_TASK_BIT_NV: + return "VK_SHADER_STAGE_TASK_BIT_NV"; + case VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT: + return "VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT"; + case VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT: + return "VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT"; + case VK_SHADER_STAGE_VERTEX_BIT: + return "VK_SHADER_STAGE_VERTEX_BIT"; + default: + return "Unhandled VkShaderStageFlagBits"; + } +} + +static inline std::string string_VkShaderStageFlags(VkShaderStageFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkShaderStageFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkShaderStageFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkCullModeFlagBits(VkCullModeFlagBits input_value) +{ + switch (input_value) + { + case VK_CULL_MODE_BACK_BIT: + return "VK_CULL_MODE_BACK_BIT"; + case VK_CULL_MODE_FRONT_AND_BACK: + return "VK_CULL_MODE_FRONT_AND_BACK"; + case VK_CULL_MODE_FRONT_BIT: + return "VK_CULL_MODE_FRONT_BIT"; + case VK_CULL_MODE_NONE: + return "VK_CULL_MODE_NONE"; + default: + return "Unhandled VkCullModeFlagBits"; + } +} + +static inline std::string string_VkCullModeFlags(VkCullModeFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkCullModeFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkCullModeFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkDynamicState(VkDynamicState input_value) +{ + switch (input_value) + { + case VK_DYNAMIC_STATE_BLEND_CONSTANTS: + return "VK_DYNAMIC_STATE_BLEND_CONSTANTS"; + case VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT: + return "VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT"; + case VK_DYNAMIC_STATE_CULL_MODE_EXT: + return "VK_DYNAMIC_STATE_CULL_MODE_EXT"; + case VK_DYNAMIC_STATE_DEPTH_BIAS: + return "VK_DYNAMIC_STATE_DEPTH_BIAS"; + case VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT: + return "VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT"; + case VK_DYNAMIC_STATE_DEPTH_BOUNDS: + return "VK_DYNAMIC_STATE_DEPTH_BOUNDS"; + case VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT: + return "VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT"; + case VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT: + return "VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT"; + case VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT: + return "VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT"; + case VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT: + return "VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT"; + case VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT: + return "VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT"; + case VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV: + return "VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV"; + case VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR: + return "VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR"; + case VK_DYNAMIC_STATE_FRONT_FACE_EXT: + return "VK_DYNAMIC_STATE_FRONT_FACE_EXT"; + case VK_DYNAMIC_STATE_LINE_STIPPLE_EXT: + return "VK_DYNAMIC_STATE_LINE_STIPPLE_EXT"; + case VK_DYNAMIC_STATE_LINE_WIDTH: + return "VK_DYNAMIC_STATE_LINE_WIDTH"; + case VK_DYNAMIC_STATE_LOGIC_OP_EXT: + return "VK_DYNAMIC_STATE_LOGIC_OP_EXT"; + case VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT: + return "VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT"; + case VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT: + return "VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT"; + case VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT: + return "VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT"; + case VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT: + return "VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT"; + case VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR: + return "VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR"; + case VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT: + return "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT"; + case VK_DYNAMIC_STATE_SCISSOR: + return "VK_DYNAMIC_STATE_SCISSOR"; + case VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT: + return "VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT"; + case VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK: + return "VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK"; + case VK_DYNAMIC_STATE_STENCIL_OP_EXT: + return "VK_DYNAMIC_STATE_STENCIL_OP_EXT"; + case VK_DYNAMIC_STATE_STENCIL_REFERENCE: + return "VK_DYNAMIC_STATE_STENCIL_REFERENCE"; + case VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT: + return "VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT"; + case VK_DYNAMIC_STATE_STENCIL_WRITE_MASK: + return "VK_DYNAMIC_STATE_STENCIL_WRITE_MASK"; + case VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT: + return "VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT"; + case VK_DYNAMIC_STATE_VERTEX_INPUT_EXT: + return "VK_DYNAMIC_STATE_VERTEX_INPUT_EXT"; + case VK_DYNAMIC_STATE_VIEWPORT: + return "VK_DYNAMIC_STATE_VIEWPORT"; + case VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV: + return "VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV"; + case VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV: + return "VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV"; + case VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT: + return "VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT"; + case VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV: + return "VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV"; + default: + return "Unhandled VkDynamicState"; + } +} + +static inline const char* string_VkFrontFace(VkFrontFace input_value) +{ + switch (input_value) + { + case VK_FRONT_FACE_CLOCKWISE: + return "VK_FRONT_FACE_CLOCKWISE"; + case VK_FRONT_FACE_COUNTER_CLOCKWISE: + return "VK_FRONT_FACE_COUNTER_CLOCKWISE"; + default: + return "Unhandled VkFrontFace"; + } +} + +static inline const char* string_VkVertexInputRate(VkVertexInputRate input_value) +{ + switch (input_value) + { + case VK_VERTEX_INPUT_RATE_INSTANCE: + return "VK_VERTEX_INPUT_RATE_INSTANCE"; + case VK_VERTEX_INPUT_RATE_VERTEX: + return "VK_VERTEX_INPUT_RATE_VERTEX"; + default: + return "Unhandled VkVertexInputRate"; + } +} + +static inline const char* string_VkPrimitiveTopology(VkPrimitiveTopology input_value) +{ + switch (input_value) + { + case VK_PRIMITIVE_TOPOLOGY_LINE_LIST: + return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST"; + case VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY: + return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY"; + case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP: + return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP"; + case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY: + return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY"; + case VK_PRIMITIVE_TOPOLOGY_PATCH_LIST: + return "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST"; + case VK_PRIMITIVE_TOPOLOGY_POINT_LIST: + return "VK_PRIMITIVE_TOPOLOGY_POINT_LIST"; + case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN: + return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN"; + case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST: + return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST"; + case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY: + return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY"; + case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP: + return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP"; + case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY: + return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY"; + default: + return "Unhandled VkPrimitiveTopology"; + } +} + +static inline const char* string_VkPolygonMode(VkPolygonMode input_value) +{ + switch (input_value) + { + case VK_POLYGON_MODE_FILL: + return "VK_POLYGON_MODE_FILL"; + case VK_POLYGON_MODE_FILL_RECTANGLE_NV: + return "VK_POLYGON_MODE_FILL_RECTANGLE_NV"; + case VK_POLYGON_MODE_LINE: + return "VK_POLYGON_MODE_LINE"; + case VK_POLYGON_MODE_POINT: + return "VK_POLYGON_MODE_POINT"; + default: + return "Unhandled VkPolygonMode"; + } +} + +static inline const char* string_VkStencilOp(VkStencilOp input_value) +{ + switch (input_value) + { + case VK_STENCIL_OP_DECREMENT_AND_CLAMP: + return "VK_STENCIL_OP_DECREMENT_AND_CLAMP"; + case VK_STENCIL_OP_DECREMENT_AND_WRAP: + return "VK_STENCIL_OP_DECREMENT_AND_WRAP"; + case VK_STENCIL_OP_INCREMENT_AND_CLAMP: + return "VK_STENCIL_OP_INCREMENT_AND_CLAMP"; + case VK_STENCIL_OP_INCREMENT_AND_WRAP: + return "VK_STENCIL_OP_INCREMENT_AND_WRAP"; + case VK_STENCIL_OP_INVERT: + return "VK_STENCIL_OP_INVERT"; + case VK_STENCIL_OP_KEEP: + return "VK_STENCIL_OP_KEEP"; + case VK_STENCIL_OP_REPLACE: + return "VK_STENCIL_OP_REPLACE"; + case VK_STENCIL_OP_ZERO: + return "VK_STENCIL_OP_ZERO"; + default: + return "Unhandled VkStencilOp"; + } +} + +static inline const char* string_VkLogicOp(VkLogicOp input_value) +{ + switch (input_value) + { + case VK_LOGIC_OP_AND: + return "VK_LOGIC_OP_AND"; + case VK_LOGIC_OP_AND_INVERTED: + return "VK_LOGIC_OP_AND_INVERTED"; + case VK_LOGIC_OP_AND_REVERSE: + return "VK_LOGIC_OP_AND_REVERSE"; + case VK_LOGIC_OP_CLEAR: + return "VK_LOGIC_OP_CLEAR"; + case VK_LOGIC_OP_COPY: + return "VK_LOGIC_OP_COPY"; + case VK_LOGIC_OP_COPY_INVERTED: + return "VK_LOGIC_OP_COPY_INVERTED"; + case VK_LOGIC_OP_EQUIVALENT: + return "VK_LOGIC_OP_EQUIVALENT"; + case VK_LOGIC_OP_INVERT: + return "VK_LOGIC_OP_INVERT"; + case VK_LOGIC_OP_NAND: + return "VK_LOGIC_OP_NAND"; + case VK_LOGIC_OP_NOR: + return "VK_LOGIC_OP_NOR"; + case VK_LOGIC_OP_NO_OP: + return "VK_LOGIC_OP_NO_OP"; + case VK_LOGIC_OP_OR: + return "VK_LOGIC_OP_OR"; + case VK_LOGIC_OP_OR_INVERTED: + return "VK_LOGIC_OP_OR_INVERTED"; + case VK_LOGIC_OP_OR_REVERSE: + return "VK_LOGIC_OP_OR_REVERSE"; + case VK_LOGIC_OP_SET: + return "VK_LOGIC_OP_SET"; + case VK_LOGIC_OP_XOR: + return "VK_LOGIC_OP_XOR"; + default: + return "Unhandled VkLogicOp"; + } +} + +static inline const char* string_VkBorderColor(VkBorderColor input_value) +{ + switch (input_value) + { + case VK_BORDER_COLOR_FLOAT_CUSTOM_EXT: + return "VK_BORDER_COLOR_FLOAT_CUSTOM_EXT"; + case VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK: + return "VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK"; + case VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE: + return "VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE"; + case VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK: + return "VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK"; + case VK_BORDER_COLOR_INT_CUSTOM_EXT: + return "VK_BORDER_COLOR_INT_CUSTOM_EXT"; + case VK_BORDER_COLOR_INT_OPAQUE_BLACK: + return "VK_BORDER_COLOR_INT_OPAQUE_BLACK"; + case VK_BORDER_COLOR_INT_OPAQUE_WHITE: + return "VK_BORDER_COLOR_INT_OPAQUE_WHITE"; + case VK_BORDER_COLOR_INT_TRANSPARENT_BLACK: + return "VK_BORDER_COLOR_INT_TRANSPARENT_BLACK"; + default: + return "Unhandled VkBorderColor"; + } +} + +static inline const char* string_VkFilter(VkFilter input_value) +{ + switch (input_value) + { + case VK_FILTER_CUBIC_IMG: + return "VK_FILTER_CUBIC_IMG"; + case VK_FILTER_LINEAR: + return "VK_FILTER_LINEAR"; + case VK_FILTER_NEAREST: + return "VK_FILTER_NEAREST"; + default: + return "Unhandled VkFilter"; + } +} + +static inline const char* string_VkSamplerAddressMode(VkSamplerAddressMode input_value) +{ + switch (input_value) + { + case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER: + return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER"; + case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE: + return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE"; + case VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT: + return "VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT"; + case VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE: + return "VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE"; + case VK_SAMPLER_ADDRESS_MODE_REPEAT: + return "VK_SAMPLER_ADDRESS_MODE_REPEAT"; + default: + return "Unhandled VkSamplerAddressMode"; + } +} + +static inline const char* string_VkSamplerCreateFlagBits(VkSamplerCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT: + return "VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT"; + case VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT: + return "VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT"; + default: + return "Unhandled VkSamplerCreateFlagBits"; + } +} + +static inline std::string string_VkSamplerCreateFlags(VkSamplerCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSamplerCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSamplerCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkSamplerMipmapMode(VkSamplerMipmapMode input_value) +{ + switch (input_value) + { + case VK_SAMPLER_MIPMAP_MODE_LINEAR: + return "VK_SAMPLER_MIPMAP_MODE_LINEAR"; + case VK_SAMPLER_MIPMAP_MODE_NEAREST: + return "VK_SAMPLER_MIPMAP_MODE_NEAREST"; + default: + return "Unhandled VkSamplerMipmapMode"; + } +} + +static inline const char* string_VkDescriptorPoolCreateFlagBits(VkDescriptorPoolCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT: + return "VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT"; + case VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE: + return "VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE"; + case VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT: + return "VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT"; + default: + return "Unhandled VkDescriptorPoolCreateFlagBits"; + } +} + +static inline std::string string_VkDescriptorPoolCreateFlags(VkDescriptorPoolCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDescriptorPoolCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDescriptorPoolCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkDescriptorType(VkDescriptorType input_value) +{ + switch (input_value) + { + case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR: + return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR"; + case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV: + return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV"; + case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER: + return "VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER"; + case VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT: + return "VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT"; + case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT: + return "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT"; + case VK_DESCRIPTOR_TYPE_MUTABLE_VALVE: + return "VK_DESCRIPTOR_TYPE_MUTABLE_VALVE"; + case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE: + return "VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE"; + case VK_DESCRIPTOR_TYPE_SAMPLER: + return "VK_DESCRIPTOR_TYPE_SAMPLER"; + case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER: + return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER"; + case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC: + return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC"; + case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE: + return "VK_DESCRIPTOR_TYPE_STORAGE_IMAGE"; + case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER: + return "VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER"; + case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER: + return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER"; + case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC: + return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC"; + case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER: + return "VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER"; + default: + return "Unhandled VkDescriptorType"; + } +} + +static inline const char* string_VkDescriptorSetLayoutCreateFlagBits(VkDescriptorSetLayoutCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE: + return "VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE"; + case VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR: + return "VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR"; + case VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT: + return "VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT"; + default: + return "Unhandled VkDescriptorSetLayoutCreateFlagBits"; + } +} + +static inline std::string string_VkDescriptorSetLayoutCreateFlags(VkDescriptorSetLayoutCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDescriptorSetLayoutCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDescriptorSetLayoutCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkAttachmentDescriptionFlagBits(VkAttachmentDescriptionFlagBits input_value) +{ + switch (input_value) + { + case VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT: + return "VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT"; + default: + return "Unhandled VkAttachmentDescriptionFlagBits"; + } +} + +static inline std::string string_VkAttachmentDescriptionFlags(VkAttachmentDescriptionFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkAttachmentDescriptionFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkAttachmentDescriptionFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkAttachmentLoadOp(VkAttachmentLoadOp input_value) +{ + switch (input_value) + { + case VK_ATTACHMENT_LOAD_OP_CLEAR: + return "VK_ATTACHMENT_LOAD_OP_CLEAR"; + case VK_ATTACHMENT_LOAD_OP_DONT_CARE: + return "VK_ATTACHMENT_LOAD_OP_DONT_CARE"; + case VK_ATTACHMENT_LOAD_OP_LOAD: + return "VK_ATTACHMENT_LOAD_OP_LOAD"; + default: + return "Unhandled VkAttachmentLoadOp"; + } +} + +static inline const char* string_VkAttachmentStoreOp(VkAttachmentStoreOp input_value) +{ + switch (input_value) + { + case VK_ATTACHMENT_STORE_OP_DONT_CARE: + return "VK_ATTACHMENT_STORE_OP_DONT_CARE"; + case VK_ATTACHMENT_STORE_OP_NONE_QCOM: + return "VK_ATTACHMENT_STORE_OP_NONE_QCOM"; + case VK_ATTACHMENT_STORE_OP_STORE: + return "VK_ATTACHMENT_STORE_OP_STORE"; + default: + return "Unhandled VkAttachmentStoreOp"; + } +} + +static inline const char* string_VkDependencyFlagBits(VkDependencyFlagBits input_value) +{ + switch (input_value) + { + case VK_DEPENDENCY_BY_REGION_BIT: + return "VK_DEPENDENCY_BY_REGION_BIT"; + case VK_DEPENDENCY_DEVICE_GROUP_BIT: + return "VK_DEPENDENCY_DEVICE_GROUP_BIT"; + case VK_DEPENDENCY_VIEW_LOCAL_BIT: + return "VK_DEPENDENCY_VIEW_LOCAL_BIT"; + default: + return "Unhandled VkDependencyFlagBits"; + } +} + +static inline std::string string_VkDependencyFlags(VkDependencyFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDependencyFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDependencyFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkFramebufferCreateFlagBits(VkFramebufferCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT: + return "VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT"; + default: + return "Unhandled VkFramebufferCreateFlagBits"; + } +} + +static inline std::string string_VkFramebufferCreateFlags(VkFramebufferCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkFramebufferCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkFramebufferCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkPipelineBindPoint(VkPipelineBindPoint input_value) +{ + switch (input_value) + { + case VK_PIPELINE_BIND_POINT_COMPUTE: + return "VK_PIPELINE_BIND_POINT_COMPUTE"; + case VK_PIPELINE_BIND_POINT_GRAPHICS: + return "VK_PIPELINE_BIND_POINT_GRAPHICS"; + case VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR: + return "VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR"; + default: + return "Unhandled VkPipelineBindPoint"; + } +} + +static inline const char* string_VkRenderPassCreateFlagBits(VkRenderPassCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM: + return "VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM"; + default: + return "Unhandled VkRenderPassCreateFlagBits"; + } +} + +static inline std::string string_VkRenderPassCreateFlags(VkRenderPassCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkRenderPassCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkRenderPassCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkSubpassDescriptionFlagBits(VkSubpassDescriptionFlagBits input_value) +{ + switch (input_value) + { + case VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM: + return "VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM"; + case VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX: + return "VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX"; + case VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX: + return "VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX"; + case VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM: + return "VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM"; + default: + return "Unhandled VkSubpassDescriptionFlagBits"; + } +} + +static inline std::string string_VkSubpassDescriptionFlags(VkSubpassDescriptionFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSubpassDescriptionFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSubpassDescriptionFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkCommandPoolCreateFlagBits(VkCommandPoolCreateFlagBits input_value) +{ + switch (input_value) + { + case VK_COMMAND_POOL_CREATE_PROTECTED_BIT: + return "VK_COMMAND_POOL_CREATE_PROTECTED_BIT"; + case VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT: + return "VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT"; + case VK_COMMAND_POOL_CREATE_TRANSIENT_BIT: + return "VK_COMMAND_POOL_CREATE_TRANSIENT_BIT"; + default: + return "Unhandled VkCommandPoolCreateFlagBits"; + } +} + +static inline std::string string_VkCommandPoolCreateFlags(VkCommandPoolCreateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkCommandPoolCreateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkCommandPoolCreateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkCommandPoolResetFlagBits(VkCommandPoolResetFlagBits input_value) +{ + switch (input_value) + { + case VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT: + return "VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT"; + default: + return "Unhandled VkCommandPoolResetFlagBits"; + } +} + +static inline std::string string_VkCommandPoolResetFlags(VkCommandPoolResetFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkCommandPoolResetFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkCommandPoolResetFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkCommandBufferLevel(VkCommandBufferLevel input_value) +{ + switch (input_value) + { + case VK_COMMAND_BUFFER_LEVEL_PRIMARY: + return "VK_COMMAND_BUFFER_LEVEL_PRIMARY"; + case VK_COMMAND_BUFFER_LEVEL_SECONDARY: + return "VK_COMMAND_BUFFER_LEVEL_SECONDARY"; + default: + return "Unhandled VkCommandBufferLevel"; + } +} + +static inline const char* string_VkCommandBufferUsageFlagBits(VkCommandBufferUsageFlagBits input_value) +{ + switch (input_value) + { + case VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT: + return "VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT"; + case VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT: + return "VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT"; + case VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT: + return "VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT"; + default: + return "Unhandled VkCommandBufferUsageFlagBits"; + } +} + +static inline std::string string_VkCommandBufferUsageFlags(VkCommandBufferUsageFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkCommandBufferUsageFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkCommandBufferUsageFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkQueryControlFlagBits(VkQueryControlFlagBits input_value) +{ + switch (input_value) + { + case VK_QUERY_CONTROL_PRECISE_BIT: + return "VK_QUERY_CONTROL_PRECISE_BIT"; + default: + return "Unhandled VkQueryControlFlagBits"; + } +} + +static inline std::string string_VkQueryControlFlags(VkQueryControlFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkQueryControlFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkQueryControlFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkCommandBufferResetFlagBits(VkCommandBufferResetFlagBits input_value) +{ + switch (input_value) + { + case VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT: + return "VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT"; + default: + return "Unhandled VkCommandBufferResetFlagBits"; + } +} + +static inline std::string string_VkCommandBufferResetFlags(VkCommandBufferResetFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkCommandBufferResetFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkCommandBufferResetFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkIndexType(VkIndexType input_value) +{ + switch (input_value) + { + case VK_INDEX_TYPE_NONE_KHR: + return "VK_INDEX_TYPE_NONE_KHR"; + case VK_INDEX_TYPE_UINT16: + return "VK_INDEX_TYPE_UINT16"; + case VK_INDEX_TYPE_UINT32: + return "VK_INDEX_TYPE_UINT32"; + case VK_INDEX_TYPE_UINT8_EXT: + return "VK_INDEX_TYPE_UINT8_EXT"; + default: + return "Unhandled VkIndexType"; + } +} + +static inline const char* string_VkStencilFaceFlagBits(VkStencilFaceFlagBits input_value) +{ + switch (input_value) + { + case VK_STENCIL_FACE_BACK_BIT: + return "VK_STENCIL_FACE_BACK_BIT"; + case VK_STENCIL_FACE_FRONT_AND_BACK: + return "VK_STENCIL_FACE_FRONT_AND_BACK"; + case VK_STENCIL_FACE_FRONT_BIT: + return "VK_STENCIL_FACE_FRONT_BIT"; + default: + return "Unhandled VkStencilFaceFlagBits"; + } +} + +static inline std::string string_VkStencilFaceFlags(VkStencilFaceFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkStencilFaceFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkStencilFaceFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkSubpassContents(VkSubpassContents input_value) +{ + switch (input_value) + { + case VK_SUBPASS_CONTENTS_INLINE: + return "VK_SUBPASS_CONTENTS_INLINE"; + case VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS: + return "VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS"; + default: + return "Unhandled VkSubpassContents"; + } +} + +static inline const char* string_VkSubgroupFeatureFlagBits(VkSubgroupFeatureFlagBits input_value) +{ + switch (input_value) + { + case VK_SUBGROUP_FEATURE_ARITHMETIC_BIT: + return "VK_SUBGROUP_FEATURE_ARITHMETIC_BIT"; + case VK_SUBGROUP_FEATURE_BALLOT_BIT: + return "VK_SUBGROUP_FEATURE_BALLOT_BIT"; + case VK_SUBGROUP_FEATURE_BASIC_BIT: + return "VK_SUBGROUP_FEATURE_BASIC_BIT"; + case VK_SUBGROUP_FEATURE_CLUSTERED_BIT: + return "VK_SUBGROUP_FEATURE_CLUSTERED_BIT"; + case VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV: + return "VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV"; + case VK_SUBGROUP_FEATURE_QUAD_BIT: + return "VK_SUBGROUP_FEATURE_QUAD_BIT"; + case VK_SUBGROUP_FEATURE_SHUFFLE_BIT: + return "VK_SUBGROUP_FEATURE_SHUFFLE_BIT"; + case VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT: + return "VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT"; + case VK_SUBGROUP_FEATURE_VOTE_BIT: + return "VK_SUBGROUP_FEATURE_VOTE_BIT"; + default: + return "Unhandled VkSubgroupFeatureFlagBits"; + } +} + +static inline std::string string_VkSubgroupFeatureFlags(VkSubgroupFeatureFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSubgroupFeatureFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSubgroupFeatureFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkPeerMemoryFeatureFlagBits(VkPeerMemoryFeatureFlagBits input_value) +{ + switch (input_value) + { + case VK_PEER_MEMORY_FEATURE_COPY_DST_BIT: + return "VK_PEER_MEMORY_FEATURE_COPY_DST_BIT"; + case VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT: + return "VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT"; + case VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT: + return "VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT"; + case VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT: + return "VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT"; + default: + return "Unhandled VkPeerMemoryFeatureFlagBits"; + } +} + +static inline std::string string_VkPeerMemoryFeatureFlags(VkPeerMemoryFeatureFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPeerMemoryFeatureFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPeerMemoryFeatureFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkMemoryAllocateFlagBits(VkMemoryAllocateFlagBits input_value) +{ + switch (input_value) + { + case VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT: + return "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT"; + case VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT: + return "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"; + case VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT: + return "VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT"; + default: + return "Unhandled VkMemoryAllocateFlagBits"; + } +} + +static inline std::string string_VkMemoryAllocateFlags(VkMemoryAllocateFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkMemoryAllocateFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkMemoryAllocateFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkPointClippingBehavior(VkPointClippingBehavior input_value) +{ + switch (input_value) + { + case VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES: + return "VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES"; + case VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY: + return "VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY"; + default: + return "Unhandled VkPointClippingBehavior"; + } +} + +static inline const char* string_VkTessellationDomainOrigin(VkTessellationDomainOrigin input_value) +{ + switch (input_value) + { + case VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT: + return "VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT"; + case VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT: + return "VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT"; + default: + return "Unhandled VkTessellationDomainOrigin"; + } +} + +static inline const char* string_VkSamplerYcbcrModelConversion(VkSamplerYcbcrModelConversion input_value) +{ + switch (input_value) + { + case VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY: + return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY"; + case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020: + return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020"; + case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601: + return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601"; + case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709: + return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709"; + case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY: + return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY"; + default: + return "Unhandled VkSamplerYcbcrModelConversion"; + } +} + +static inline const char* string_VkSamplerYcbcrRange(VkSamplerYcbcrRange input_value) +{ + switch (input_value) + { + case VK_SAMPLER_YCBCR_RANGE_ITU_FULL: + return "VK_SAMPLER_YCBCR_RANGE_ITU_FULL"; + case VK_SAMPLER_YCBCR_RANGE_ITU_NARROW: + return "VK_SAMPLER_YCBCR_RANGE_ITU_NARROW"; + default: + return "Unhandled VkSamplerYcbcrRange"; + } +} + +static inline const char* string_VkChromaLocation(VkChromaLocation input_value) +{ + switch (input_value) + { + case VK_CHROMA_LOCATION_COSITED_EVEN: + return "VK_CHROMA_LOCATION_COSITED_EVEN"; + case VK_CHROMA_LOCATION_MIDPOINT: + return "VK_CHROMA_LOCATION_MIDPOINT"; + default: + return "Unhandled VkChromaLocation"; + } +} + +static inline const char* string_VkDescriptorUpdateTemplateType(VkDescriptorUpdateTemplateType input_value) +{ + switch (input_value) + { + case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET: + return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET"; + case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR: + return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR"; + default: + return "Unhandled VkDescriptorUpdateTemplateType"; + } +} + +static inline const char* string_VkExternalMemoryHandleTypeFlagBits(VkExternalMemoryHandleTypeFlagBits input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA"; + default: + return "Unhandled VkExternalMemoryHandleTypeFlagBits"; + } +} + +static inline std::string string_VkExternalMemoryHandleTypeFlags(VkExternalMemoryHandleTypeFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalMemoryHandleTypeFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalMemoryHandleTypeFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkExternalMemoryFeatureFlagBits(VkExternalMemoryFeatureFlagBits input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT: + return "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT"; + case VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT: + return "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT"; + case VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT: + return "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT"; + default: + return "Unhandled VkExternalMemoryFeatureFlagBits"; + } +} + +static inline std::string string_VkExternalMemoryFeatureFlags(VkExternalMemoryFeatureFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalMemoryFeatureFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalMemoryFeatureFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkExternalFenceHandleTypeFlagBits(VkExternalFenceHandleTypeFlagBits input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT: + return "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT"; + case VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT: + return "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT"; + case VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT: + return "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"; + case VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT: + return "VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT"; + default: + return "Unhandled VkExternalFenceHandleTypeFlagBits"; + } +} + +static inline std::string string_VkExternalFenceHandleTypeFlags(VkExternalFenceHandleTypeFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalFenceHandleTypeFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalFenceHandleTypeFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkExternalFenceFeatureFlagBits(VkExternalFenceFeatureFlagBits input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT: + return "VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT"; + case VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT: + return "VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT"; + default: + return "Unhandled VkExternalFenceFeatureFlagBits"; + } +} + +static inline std::string string_VkExternalFenceFeatureFlags(VkExternalFenceFeatureFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalFenceFeatureFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalFenceFeatureFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkFenceImportFlagBits(VkFenceImportFlagBits input_value) +{ + switch (input_value) + { + case VK_FENCE_IMPORT_TEMPORARY_BIT: + return "VK_FENCE_IMPORT_TEMPORARY_BIT"; + default: + return "Unhandled VkFenceImportFlagBits"; + } +} + +static inline std::string string_VkFenceImportFlags(VkFenceImportFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkFenceImportFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkFenceImportFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkSemaphoreImportFlagBits(VkSemaphoreImportFlagBits input_value) +{ + switch (input_value) + { + case VK_SEMAPHORE_IMPORT_TEMPORARY_BIT: + return "VK_SEMAPHORE_IMPORT_TEMPORARY_BIT"; + default: + return "Unhandled VkSemaphoreImportFlagBits"; + } +} + +static inline std::string string_VkSemaphoreImportFlags(VkSemaphoreImportFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSemaphoreImportFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSemaphoreImportFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkExternalSemaphoreHandleTypeFlagBits(VkExternalSemaphoreHandleTypeFlagBits input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT"; + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT"; + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT"; + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"; + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT"; + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA"; + default: + return "Unhandled VkExternalSemaphoreHandleTypeFlagBits"; + } +} + +static inline std::string string_VkExternalSemaphoreHandleTypeFlags(VkExternalSemaphoreHandleTypeFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalSemaphoreHandleTypeFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalSemaphoreHandleTypeFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkExternalSemaphoreFeatureFlagBits(VkExternalSemaphoreFeatureFlagBits input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT: + return "VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT"; + case VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT: + return "VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT"; + default: + return "Unhandled VkExternalSemaphoreFeatureFlagBits"; + } +} + +static inline std::string string_VkExternalSemaphoreFeatureFlags(VkExternalSemaphoreFeatureFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalSemaphoreFeatureFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalSemaphoreFeatureFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkDriverId(VkDriverId input_value) +{ + switch (input_value) + { + case VK_DRIVER_ID_AMD_OPEN_SOURCE: + return "VK_DRIVER_ID_AMD_OPEN_SOURCE"; + case VK_DRIVER_ID_AMD_PROPRIETARY: + return "VK_DRIVER_ID_AMD_PROPRIETARY"; + case VK_DRIVER_ID_ARM_PROPRIETARY: + return "VK_DRIVER_ID_ARM_PROPRIETARY"; + case VK_DRIVER_ID_BROADCOM_PROPRIETARY: + return "VK_DRIVER_ID_BROADCOM_PROPRIETARY"; + case VK_DRIVER_ID_COREAVI_PROPRIETARY: + return "VK_DRIVER_ID_COREAVI_PROPRIETARY"; + case VK_DRIVER_ID_GGP_PROPRIETARY: + return "VK_DRIVER_ID_GGP_PROPRIETARY"; + case VK_DRIVER_ID_GOOGLE_SWIFTSHADER: + return "VK_DRIVER_ID_GOOGLE_SWIFTSHADER"; + case VK_DRIVER_ID_IMAGINATION_PROPRIETARY: + return "VK_DRIVER_ID_IMAGINATION_PROPRIETARY"; + case VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA: + return "VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA"; + case VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS: + return "VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS"; + case VK_DRIVER_ID_MESA_LLVMPIPE: + return "VK_DRIVER_ID_MESA_LLVMPIPE"; + case VK_DRIVER_ID_MESA_RADV: + return "VK_DRIVER_ID_MESA_RADV"; + case VK_DRIVER_ID_MOLTENVK: + return "VK_DRIVER_ID_MOLTENVK"; + case VK_DRIVER_ID_NVIDIA_PROPRIETARY: + return "VK_DRIVER_ID_NVIDIA_PROPRIETARY"; + case VK_DRIVER_ID_QUALCOMM_PROPRIETARY: + return "VK_DRIVER_ID_QUALCOMM_PROPRIETARY"; + default: + return "Unhandled VkDriverId"; + } +} + +static inline const char* string_VkShaderFloatControlsIndependence(VkShaderFloatControlsIndependence input_value) +{ + switch (input_value) + { + case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY: + return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY"; + case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL: + return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL"; + case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE: + return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE"; + default: + return "Unhandled VkShaderFloatControlsIndependence"; + } +} + +static inline const char* string_VkResolveModeFlagBits(VkResolveModeFlagBits input_value) +{ + switch (input_value) + { + case VK_RESOLVE_MODE_AVERAGE_BIT: + return "VK_RESOLVE_MODE_AVERAGE_BIT"; + case VK_RESOLVE_MODE_MAX_BIT: + return "VK_RESOLVE_MODE_MAX_BIT"; + case VK_RESOLVE_MODE_MIN_BIT: + return "VK_RESOLVE_MODE_MIN_BIT"; + case VK_RESOLVE_MODE_NONE: + return "VK_RESOLVE_MODE_NONE"; + case VK_RESOLVE_MODE_SAMPLE_ZERO_BIT: + return "VK_RESOLVE_MODE_SAMPLE_ZERO_BIT"; + default: + return "Unhandled VkResolveModeFlagBits"; + } +} + +static inline std::string string_VkResolveModeFlags(VkResolveModeFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkResolveModeFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkResolveModeFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkDescriptorBindingFlagBits(VkDescriptorBindingFlagBits input_value) +{ + switch (input_value) + { + case VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT: + return "VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT"; + case VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT: + return "VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT"; + case VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT: + return "VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT"; + case VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT: + return "VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT"; + default: + return "Unhandled VkDescriptorBindingFlagBits"; + } +} + +static inline std::string string_VkDescriptorBindingFlags(VkDescriptorBindingFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDescriptorBindingFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDescriptorBindingFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkSamplerReductionMode(VkSamplerReductionMode input_value) +{ + switch (input_value) + { + case VK_SAMPLER_REDUCTION_MODE_MAX: + return "VK_SAMPLER_REDUCTION_MODE_MAX"; + case VK_SAMPLER_REDUCTION_MODE_MIN: + return "VK_SAMPLER_REDUCTION_MODE_MIN"; + case VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE: + return "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE"; + default: + return "Unhandled VkSamplerReductionMode"; + } +} + +static inline const char* string_VkSemaphoreType(VkSemaphoreType input_value) +{ + switch (input_value) + { + case VK_SEMAPHORE_TYPE_BINARY: + return "VK_SEMAPHORE_TYPE_BINARY"; + case VK_SEMAPHORE_TYPE_TIMELINE: + return "VK_SEMAPHORE_TYPE_TIMELINE"; + default: + return "Unhandled VkSemaphoreType"; + } +} + +static inline const char* string_VkSemaphoreWaitFlagBits(VkSemaphoreWaitFlagBits input_value) +{ + switch (input_value) + { + case VK_SEMAPHORE_WAIT_ANY_BIT: + return "VK_SEMAPHORE_WAIT_ANY_BIT"; + default: + return "Unhandled VkSemaphoreWaitFlagBits"; + } +} + +static inline std::string string_VkSemaphoreWaitFlags(VkSemaphoreWaitFlags input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSemaphoreWaitFlagBits(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSemaphoreWaitFlagBits(static_cast(0))); + return ret; +} + +static inline const char* string_VkSurfaceTransformFlagBitsKHR(VkSurfaceTransformFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR: + return "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR"; + case VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR: + return "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR"; + case VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR: + return "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"; + case VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR: + return "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR"; + case VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR: + return "VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR"; + case VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR: + return "VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"; + case VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR: + return "VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR"; + case VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR: + return "VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR"; + case VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR: + return "VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR"; + default: + return "Unhandled VkSurfaceTransformFlagBitsKHR"; + } +} + +static inline std::string string_VkSurfaceTransformFlagsKHR(VkSurfaceTransformFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSurfaceTransformFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSurfaceTransformFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkPresentModeKHR(VkPresentModeKHR input_value) +{ + switch (input_value) + { + case VK_PRESENT_MODE_FIFO_KHR: + return "VK_PRESENT_MODE_FIFO_KHR"; + case VK_PRESENT_MODE_FIFO_RELAXED_KHR: + return "VK_PRESENT_MODE_FIFO_RELAXED_KHR"; + case VK_PRESENT_MODE_IMMEDIATE_KHR: + return "VK_PRESENT_MODE_IMMEDIATE_KHR"; + case VK_PRESENT_MODE_MAILBOX_KHR: + return "VK_PRESENT_MODE_MAILBOX_KHR"; + case VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR: + return "VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR"; + case VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR: + return "VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR"; + default: + return "Unhandled VkPresentModeKHR"; + } +} + +static inline const char* string_VkColorSpaceKHR(VkColorSpaceKHR input_value) +{ + switch (input_value) + { + case VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT: + return "VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT"; + case VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT: + return "VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT"; + case VK_COLOR_SPACE_BT2020_LINEAR_EXT: + return "VK_COLOR_SPACE_BT2020_LINEAR_EXT"; + case VK_COLOR_SPACE_BT709_LINEAR_EXT: + return "VK_COLOR_SPACE_BT709_LINEAR_EXT"; + case VK_COLOR_SPACE_BT709_NONLINEAR_EXT: + return "VK_COLOR_SPACE_BT709_NONLINEAR_EXT"; + case VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT: + return "VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT"; + case VK_COLOR_SPACE_DISPLAY_NATIVE_AMD: + return "VK_COLOR_SPACE_DISPLAY_NATIVE_AMD"; + case VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT: + return "VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT"; + case VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT: + return "VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT"; + case VK_COLOR_SPACE_DOLBYVISION_EXT: + return "VK_COLOR_SPACE_DOLBYVISION_EXT"; + case VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT: + return "VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT"; + case VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT: + return "VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT"; + case VK_COLOR_SPACE_HDR10_HLG_EXT: + return "VK_COLOR_SPACE_HDR10_HLG_EXT"; + case VK_COLOR_SPACE_HDR10_ST2084_EXT: + return "VK_COLOR_SPACE_HDR10_ST2084_EXT"; + case VK_COLOR_SPACE_PASS_THROUGH_EXT: + return "VK_COLOR_SPACE_PASS_THROUGH_EXT"; + case VK_COLOR_SPACE_SRGB_NONLINEAR_KHR: + return "VK_COLOR_SPACE_SRGB_NONLINEAR_KHR"; + default: + return "Unhandled VkColorSpaceKHR"; + } +} + +static inline const char* string_VkCompositeAlphaFlagBitsKHR(VkCompositeAlphaFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR: + return "VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR"; + case VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR: + return "VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR"; + case VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR: + return "VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR"; + case VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR: + return "VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR"; + default: + return "Unhandled VkCompositeAlphaFlagBitsKHR"; + } +} + +static inline std::string string_VkCompositeAlphaFlagsKHR(VkCompositeAlphaFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkCompositeAlphaFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkCompositeAlphaFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkSwapchainCreateFlagBitsKHR(VkSwapchainCreateFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR: + return "VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR"; + case VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR: + return "VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR"; + case VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR: + return "VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR"; + default: + return "Unhandled VkSwapchainCreateFlagBitsKHR"; + } +} + +static inline std::string string_VkSwapchainCreateFlagsKHR(VkSwapchainCreateFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSwapchainCreateFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSwapchainCreateFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkDeviceGroupPresentModeFlagBitsKHR(VkDeviceGroupPresentModeFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR: + return "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR"; + case VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR: + return "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR"; + case VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR: + return "VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR"; + case VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR: + return "VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR"; + default: + return "Unhandled VkDeviceGroupPresentModeFlagBitsKHR"; + } +} + +static inline std::string string_VkDeviceGroupPresentModeFlagsKHR(VkDeviceGroupPresentModeFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDeviceGroupPresentModeFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDeviceGroupPresentModeFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkDisplayPlaneAlphaFlagBitsKHR(VkDisplayPlaneAlphaFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR: + return "VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR"; + case VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR: + return "VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR"; + case VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR: + return "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR"; + case VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR: + return "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR"; + default: + return "Unhandled VkDisplayPlaneAlphaFlagBitsKHR"; + } +} + +static inline std::string string_VkDisplayPlaneAlphaFlagsKHR(VkDisplayPlaneAlphaFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDisplayPlaneAlphaFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDisplayPlaneAlphaFlagBitsKHR(static_cast(0))); + return ret; +} + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoCodecOperationFlagBitsKHR(VkVideoCodecOperationFlagBitsKHR input_value) +{ + switch (input_value) + { +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT: + return "VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT: + return "VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT: + return "VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT"; +#endif // VK_ENABLE_BETA_EXTENSIONS + case VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR: + return "VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR"; + default: + return "Unhandled VkVideoCodecOperationFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoCodecOperationFlagsKHR(VkVideoCodecOperationFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoCodecOperationFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoCodecOperationFlagBitsKHR(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoChromaSubsamplingFlagBitsKHR(VkVideoChromaSubsamplingFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR: + return "VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR"; + case VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR: + return "VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR"; + case VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR: + return "VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR"; + case VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR: + return "VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR"; + case VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR: + return "VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR"; + default: + return "Unhandled VkVideoChromaSubsamplingFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoChromaSubsamplingFlagsKHR(VkVideoChromaSubsamplingFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoChromaSubsamplingFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoChromaSubsamplingFlagBitsKHR(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoComponentBitDepthFlagBitsKHR(VkVideoComponentBitDepthFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR: + return "VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR"; + case VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR: + return "VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR"; + case VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR: + return "VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR"; + case VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR: + return "VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR"; + default: + return "Unhandled VkVideoComponentBitDepthFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoComponentBitDepthFlagsKHR(VkVideoComponentBitDepthFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoComponentBitDepthFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoComponentBitDepthFlagBitsKHR(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoCapabilitiesFlagBitsKHR(VkVideoCapabilitiesFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_CAPABILITIES_PROTECTED_CONTENT_BIT_KHR: + return "VK_VIDEO_CAPABILITIES_PROTECTED_CONTENT_BIT_KHR"; + case VK_VIDEO_CAPABILITIES_SEPARATE_REFERENCE_IMAGES_BIT_KHR: + return "VK_VIDEO_CAPABILITIES_SEPARATE_REFERENCE_IMAGES_BIT_KHR"; + default: + return "Unhandled VkVideoCapabilitiesFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoCapabilitiesFlagsKHR(VkVideoCapabilitiesFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoCapabilitiesFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoCapabilitiesFlagBitsKHR(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoSessionCreateFlagBitsKHR(VkVideoSessionCreateFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_SESSION_CREATE_DEFAULT_KHR: + return "VK_VIDEO_SESSION_CREATE_DEFAULT_KHR"; + case VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR: + return "VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR"; + default: + return "Unhandled VkVideoSessionCreateFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoSessionCreateFlagsKHR(VkVideoSessionCreateFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoSessionCreateFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoSessionCreateFlagBitsKHR(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoCodingControlFlagBitsKHR(VkVideoCodingControlFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_CODING_CONTROL_DEFAULT_KHR: + return "VK_VIDEO_CODING_CONTROL_DEFAULT_KHR"; + case VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR: + return "VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR"; + default: + return "Unhandled VkVideoCodingControlFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoCodingControlFlagsKHR(VkVideoCodingControlFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoCodingControlFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoCodingControlFlagBitsKHR(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoCodingQualityPresetFlagBitsKHR(VkVideoCodingQualityPresetFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_CODING_QUALITY_PRESET_DEFAULT_BIT_KHR: + return "VK_VIDEO_CODING_QUALITY_PRESET_DEFAULT_BIT_KHR"; + case VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR: + return "VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR"; + case VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR: + return "VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR"; + case VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR: + return "VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR"; + default: + return "Unhandled VkVideoCodingQualityPresetFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoCodingQualityPresetFlagsKHR(VkVideoCodingQualityPresetFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoCodingQualityPresetFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoCodingQualityPresetFlagBitsKHR(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkQueryResultStatusKHR(VkQueryResultStatusKHR input_value) +{ + switch (input_value) + { + case VK_QUERY_RESULT_STATUS_COMPLETE_KHR: + return "VK_QUERY_RESULT_STATUS_COMPLETE_KHR"; + case VK_QUERY_RESULT_STATUS_ERROR_KHR: + return "VK_QUERY_RESULT_STATUS_ERROR_KHR"; + case VK_QUERY_RESULT_STATUS_NOT_READY_KHR: + return "VK_QUERY_RESULT_STATUS_NOT_READY_KHR"; + default: + return "Unhandled VkQueryResultStatusKHR"; + } +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoDecodeFlagBitsKHR(VkVideoDecodeFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_DECODE_DEFAULT_KHR: + return "VK_VIDEO_DECODE_DEFAULT_KHR"; + case VK_VIDEO_DECODE_RESERVED_0_BIT_KHR: + return "VK_VIDEO_DECODE_RESERVED_0_BIT_KHR"; + default: + return "Unhandled VkVideoDecodeFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoDecodeFlagsKHR(VkVideoDecodeFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoDecodeFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoDecodeFlagBitsKHR(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkPeerMemoryFeatureFlagBitsKHR(VkPeerMemoryFeatureFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_PEER_MEMORY_FEATURE_COPY_DST_BIT: + return "VK_PEER_MEMORY_FEATURE_COPY_DST_BIT"; + case VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT: + return "VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT"; + case VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT: + return "VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT"; + case VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT: + return "VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT"; + default: + return "Unhandled VkPeerMemoryFeatureFlagBitsKHR"; + } +} + +static inline std::string string_VkPeerMemoryFeatureFlagsKHR(VkPeerMemoryFeatureFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPeerMemoryFeatureFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPeerMemoryFeatureFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkMemoryAllocateFlagBitsKHR(VkMemoryAllocateFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT: + return "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT"; + case VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT: + return "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"; + case VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT: + return "VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT"; + default: + return "Unhandled VkMemoryAllocateFlagBitsKHR"; + } +} + +static inline std::string string_VkMemoryAllocateFlagsKHR(VkMemoryAllocateFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkMemoryAllocateFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkMemoryAllocateFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkExternalMemoryHandleTypeFlagBitsKHR(VkExternalMemoryHandleTypeFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA"; + default: + return "Unhandled VkExternalMemoryHandleTypeFlagBitsKHR"; + } +} + +static inline std::string string_VkExternalMemoryHandleTypeFlagsKHR(VkExternalMemoryHandleTypeFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalMemoryHandleTypeFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalMemoryHandleTypeFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkExternalMemoryFeatureFlagBitsKHR(VkExternalMemoryFeatureFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT: + return "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT"; + case VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT: + return "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT"; + case VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT: + return "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT"; + default: + return "Unhandled VkExternalMemoryFeatureFlagBitsKHR"; + } +} + +static inline std::string string_VkExternalMemoryFeatureFlagsKHR(VkExternalMemoryFeatureFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalMemoryFeatureFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalMemoryFeatureFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkExternalSemaphoreHandleTypeFlagBitsKHR(VkExternalSemaphoreHandleTypeFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT"; + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT"; + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT"; + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"; + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT"; + case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA: + return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA"; + default: + return "Unhandled VkExternalSemaphoreHandleTypeFlagBitsKHR"; + } +} + +static inline std::string string_VkExternalSemaphoreHandleTypeFlagsKHR(VkExternalSemaphoreHandleTypeFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalSemaphoreHandleTypeFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalSemaphoreHandleTypeFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkExternalSemaphoreFeatureFlagBitsKHR(VkExternalSemaphoreFeatureFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT: + return "VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT"; + case VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT: + return "VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT"; + default: + return "Unhandled VkExternalSemaphoreFeatureFlagBitsKHR"; + } +} + +static inline std::string string_VkExternalSemaphoreFeatureFlagsKHR(VkExternalSemaphoreFeatureFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalSemaphoreFeatureFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalSemaphoreFeatureFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkSemaphoreImportFlagBitsKHR(VkSemaphoreImportFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_SEMAPHORE_IMPORT_TEMPORARY_BIT: + return "VK_SEMAPHORE_IMPORT_TEMPORARY_BIT"; + default: + return "Unhandled VkSemaphoreImportFlagBitsKHR"; + } +} + +static inline std::string string_VkSemaphoreImportFlagsKHR(VkSemaphoreImportFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSemaphoreImportFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSemaphoreImportFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkDescriptorUpdateTemplateTypeKHR(VkDescriptorUpdateTemplateTypeKHR input_value) +{ + switch (input_value) + { + case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET: + return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET"; + case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR: + return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR"; + default: + return "Unhandled VkDescriptorUpdateTemplateTypeKHR"; + } +} + +static inline const char* string_VkExternalFenceHandleTypeFlagBitsKHR(VkExternalFenceHandleTypeFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT: + return "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT"; + case VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT: + return "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT"; + case VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT: + return "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"; + case VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT: + return "VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT"; + default: + return "Unhandled VkExternalFenceHandleTypeFlagBitsKHR"; + } +} + +static inline std::string string_VkExternalFenceHandleTypeFlagsKHR(VkExternalFenceHandleTypeFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalFenceHandleTypeFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalFenceHandleTypeFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkExternalFenceFeatureFlagBitsKHR(VkExternalFenceFeatureFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT: + return "VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT"; + case VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT: + return "VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT"; + default: + return "Unhandled VkExternalFenceFeatureFlagBitsKHR"; + } +} + +static inline std::string string_VkExternalFenceFeatureFlagsKHR(VkExternalFenceFeatureFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalFenceFeatureFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalFenceFeatureFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkFenceImportFlagBitsKHR(VkFenceImportFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_FENCE_IMPORT_TEMPORARY_BIT: + return "VK_FENCE_IMPORT_TEMPORARY_BIT"; + default: + return "Unhandled VkFenceImportFlagBitsKHR"; + } +} + +static inline std::string string_VkFenceImportFlagsKHR(VkFenceImportFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkFenceImportFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkFenceImportFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkPerformanceCounterUnitKHR(VkPerformanceCounterUnitKHR input_value) +{ + switch (input_value) + { + case VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR: + return "VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR: + return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR: + return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR: + return "VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR: + return "VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR: + return "VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR: + return "VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR: + return "VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR: + return "VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR: + return "VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR"; + case VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR: + return "VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR"; + default: + return "Unhandled VkPerformanceCounterUnitKHR"; + } +} + +static inline const char* string_VkPerformanceCounterScopeKHR(VkPerformanceCounterScopeKHR input_value) +{ + switch (input_value) + { + case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR: + return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR"; + case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR: + return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR"; + case VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR: + return "VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR"; + default: + return "Unhandled VkPerformanceCounterScopeKHR"; + } +} + +static inline const char* string_VkPerformanceCounterStorageKHR(VkPerformanceCounterStorageKHR input_value) +{ + switch (input_value) + { + case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR: + return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR"; + case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR: + return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR"; + case VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR: + return "VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR"; + case VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR: + return "VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR"; + case VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR: + return "VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR"; + case VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR: + return "VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR"; + default: + return "Unhandled VkPerformanceCounterStorageKHR"; + } +} + +static inline const char* string_VkPerformanceCounterDescriptionFlagBitsKHR(VkPerformanceCounterDescriptionFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR: + return "VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR"; + case VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR: + return "VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR"; + default: + return "Unhandled VkPerformanceCounterDescriptionFlagBitsKHR"; + } +} + +static inline std::string string_VkPerformanceCounterDescriptionFlagsKHR(VkPerformanceCounterDescriptionFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPerformanceCounterDescriptionFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPerformanceCounterDescriptionFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkPointClippingBehaviorKHR(VkPointClippingBehaviorKHR input_value) +{ + switch (input_value) + { + case VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES: + return "VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES"; + case VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY: + return "VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY"; + default: + return "Unhandled VkPointClippingBehaviorKHR"; + } +} + +static inline const char* string_VkTessellationDomainOriginKHR(VkTessellationDomainOriginKHR input_value) +{ + switch (input_value) + { + case VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT: + return "VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT"; + case VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT: + return "VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT"; + default: + return "Unhandled VkTessellationDomainOriginKHR"; + } +} + +static inline const char* string_VkSamplerYcbcrModelConversionKHR(VkSamplerYcbcrModelConversionKHR input_value) +{ + switch (input_value) + { + case VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY: + return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY"; + case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020: + return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020"; + case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601: + return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601"; + case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709: + return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709"; + case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY: + return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY"; + default: + return "Unhandled VkSamplerYcbcrModelConversionKHR"; + } +} + +static inline const char* string_VkSamplerYcbcrRangeKHR(VkSamplerYcbcrRangeKHR input_value) +{ + switch (input_value) + { + case VK_SAMPLER_YCBCR_RANGE_ITU_FULL: + return "VK_SAMPLER_YCBCR_RANGE_ITU_FULL"; + case VK_SAMPLER_YCBCR_RANGE_ITU_NARROW: + return "VK_SAMPLER_YCBCR_RANGE_ITU_NARROW"; + default: + return "Unhandled VkSamplerYcbcrRangeKHR"; + } +} + +static inline const char* string_VkChromaLocationKHR(VkChromaLocationKHR input_value) +{ + switch (input_value) + { + case VK_CHROMA_LOCATION_COSITED_EVEN: + return "VK_CHROMA_LOCATION_COSITED_EVEN"; + case VK_CHROMA_LOCATION_MIDPOINT: + return "VK_CHROMA_LOCATION_MIDPOINT"; + default: + return "Unhandled VkChromaLocationKHR"; + } +} + +static inline const char* string_VkDriverIdKHR(VkDriverIdKHR input_value) +{ + switch (input_value) + { + case VK_DRIVER_ID_AMD_OPEN_SOURCE: + return "VK_DRIVER_ID_AMD_OPEN_SOURCE"; + case VK_DRIVER_ID_AMD_PROPRIETARY: + return "VK_DRIVER_ID_AMD_PROPRIETARY"; + case VK_DRIVER_ID_ARM_PROPRIETARY: + return "VK_DRIVER_ID_ARM_PROPRIETARY"; + case VK_DRIVER_ID_BROADCOM_PROPRIETARY: + return "VK_DRIVER_ID_BROADCOM_PROPRIETARY"; + case VK_DRIVER_ID_COREAVI_PROPRIETARY: + return "VK_DRIVER_ID_COREAVI_PROPRIETARY"; + case VK_DRIVER_ID_GGP_PROPRIETARY: + return "VK_DRIVER_ID_GGP_PROPRIETARY"; + case VK_DRIVER_ID_GOOGLE_SWIFTSHADER: + return "VK_DRIVER_ID_GOOGLE_SWIFTSHADER"; + case VK_DRIVER_ID_IMAGINATION_PROPRIETARY: + return "VK_DRIVER_ID_IMAGINATION_PROPRIETARY"; + case VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA: + return "VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA"; + case VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS: + return "VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS"; + case VK_DRIVER_ID_MESA_LLVMPIPE: + return "VK_DRIVER_ID_MESA_LLVMPIPE"; + case VK_DRIVER_ID_MESA_RADV: + return "VK_DRIVER_ID_MESA_RADV"; + case VK_DRIVER_ID_MOLTENVK: + return "VK_DRIVER_ID_MOLTENVK"; + case VK_DRIVER_ID_NVIDIA_PROPRIETARY: + return "VK_DRIVER_ID_NVIDIA_PROPRIETARY"; + case VK_DRIVER_ID_QUALCOMM_PROPRIETARY: + return "VK_DRIVER_ID_QUALCOMM_PROPRIETARY"; + default: + return "Unhandled VkDriverIdKHR"; + } +} + +static inline const char* string_VkShaderFloatControlsIndependenceKHR(VkShaderFloatControlsIndependenceKHR input_value) +{ + switch (input_value) + { + case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY: + return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY"; + case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL: + return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL"; + case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE: + return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE"; + default: + return "Unhandled VkShaderFloatControlsIndependenceKHR"; + } +} + +static inline const char* string_VkResolveModeFlagBitsKHR(VkResolveModeFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_RESOLVE_MODE_AVERAGE_BIT: + return "VK_RESOLVE_MODE_AVERAGE_BIT"; + case VK_RESOLVE_MODE_MAX_BIT: + return "VK_RESOLVE_MODE_MAX_BIT"; + case VK_RESOLVE_MODE_MIN_BIT: + return "VK_RESOLVE_MODE_MIN_BIT"; + case VK_RESOLVE_MODE_NONE: + return "VK_RESOLVE_MODE_NONE"; + case VK_RESOLVE_MODE_SAMPLE_ZERO_BIT: + return "VK_RESOLVE_MODE_SAMPLE_ZERO_BIT"; + default: + return "Unhandled VkResolveModeFlagBitsKHR"; + } +} + +static inline std::string string_VkResolveModeFlagsKHR(VkResolveModeFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkResolveModeFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkResolveModeFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkSemaphoreTypeKHR(VkSemaphoreTypeKHR input_value) +{ + switch (input_value) + { + case VK_SEMAPHORE_TYPE_BINARY: + return "VK_SEMAPHORE_TYPE_BINARY"; + case VK_SEMAPHORE_TYPE_TIMELINE: + return "VK_SEMAPHORE_TYPE_TIMELINE"; + default: + return "Unhandled VkSemaphoreTypeKHR"; + } +} + +static inline const char* string_VkSemaphoreWaitFlagBitsKHR(VkSemaphoreWaitFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_SEMAPHORE_WAIT_ANY_BIT: + return "VK_SEMAPHORE_WAIT_ANY_BIT"; + default: + return "Unhandled VkSemaphoreWaitFlagBitsKHR"; + } +} + +static inline std::string string_VkSemaphoreWaitFlagsKHR(VkSemaphoreWaitFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSemaphoreWaitFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSemaphoreWaitFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkFragmentShadingRateCombinerOpKHR(VkFragmentShadingRateCombinerOpKHR input_value) +{ + switch (input_value) + { + case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR: + return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR"; + case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR: + return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR"; + case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR: + return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR"; + case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR: + return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR"; + case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR: + return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR"; + default: + return "Unhandled VkFragmentShadingRateCombinerOpKHR"; + } +} + +static inline const char* string_VkPipelineExecutableStatisticFormatKHR(VkPipelineExecutableStatisticFormatKHR input_value) +{ + switch (input_value) + { + case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR: + return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR"; + case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR: + return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR"; + case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR: + return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR"; + case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR: + return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR"; + default: + return "Unhandled VkPipelineExecutableStatisticFormatKHR"; + } +} + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeFlagBitsKHR(VkVideoEncodeFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_DEFAULT_KHR: + return "VK_VIDEO_ENCODE_DEFAULT_KHR"; + case VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR: + return "VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR"; + default: + return "Unhandled VkVideoEncodeFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoEncodeFlagsKHR(VkVideoEncodeFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoEncodeFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoEncodeFlagBitsKHR(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeRateControlFlagBitsKHR(VkVideoEncodeRateControlFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR: + return "VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR"; + case VK_VIDEO_ENCODE_RATE_CONTROL_RESET_BIT_KHR: + return "VK_VIDEO_ENCODE_RATE_CONTROL_RESET_BIT_KHR"; + default: + return "Unhandled VkVideoEncodeRateControlFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoEncodeRateControlFlagsKHR(VkVideoEncodeRateControlFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoEncodeRateControlFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoEncodeRateControlFlagBitsKHR(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeRateControlModeFlagBitsKHR(VkVideoEncodeRateControlModeFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR: + return "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR"; + case VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR: + return "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR"; + case VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR: + return "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR"; + default: + return "Unhandled VkVideoEncodeRateControlModeFlagBitsKHR"; + } +} + +static inline std::string string_VkVideoEncodeRateControlModeFlagsKHR(VkVideoEncodeRateControlModeFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoEncodeRateControlModeFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoEncodeRateControlModeFlagBitsKHR(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkPipelineStageFlagBits2KHR(uint64_t input_value) +{ + switch (input_value) + { + case VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR: + return "VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"; + case VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR: + return "VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR"; + case VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR: + return "VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR"; + case VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR: + return "VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR"; + case VK_PIPELINE_STAGE_2_BLIT_BIT_KHR: + return "VK_PIPELINE_STAGE_2_BLIT_BIT_KHR"; + case VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR: + return "VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR"; + case VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR: + return "VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR"; + case VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR: + return "VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR"; + case VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV: + return "VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV"; + case VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR: + return "VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR"; + case VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT: + return "VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT"; + case VK_PIPELINE_STAGE_2_COPY_BIT_KHR: + return "VK_PIPELINE_STAGE_2_COPY_BIT_KHR"; + case VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR: + return "VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR"; + case VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR: + return "VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR"; + case VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT: + return "VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT"; + case VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR: + return "VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR"; + case VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR: + return "VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"; + case VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR: + return "VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR"; + case VK_PIPELINE_STAGE_2_HOST_BIT_KHR: + return "VK_PIPELINE_STAGE_2_HOST_BIT_KHR"; + case VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR: + return "VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR"; + case VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR: + return "VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR"; + case VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV: + return "VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV"; + case VK_PIPELINE_STAGE_2_NONE_KHR: + return "VK_PIPELINE_STAGE_2_NONE_KHR"; + case VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR: + return "VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR"; + case VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR: + return "VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR"; + case VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR: + return "VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR"; + case VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV: + return "VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV"; + case VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR: + return "VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR"; + case VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR: + return "VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR"; + case VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR: + return "VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR"; + case VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT: + return "VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT"; + case VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR: + return "VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR"; + case VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR: + return "VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR"; + case VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR: + return "VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR: + return "VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR: + return "VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + default: + return "Unhandled VkPipelineStageFlagBits2KHR"; + } +} + +static inline std::string string_VkPipelineStageFlags2KHR(VkPipelineStageFlags2KHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPipelineStageFlagBits2KHR(static_cast(1ULL << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPipelineStageFlagBits2KHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkAccessFlagBits2KHR(uint64_t input_value) +{ + switch (input_value) + { + case VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR: + return "VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR"; + case VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR: + return "VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"; + case VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR: + return "VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR"; + case VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT: + return "VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"; + case VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR: + return "VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR"; + case VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV: + return "VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV"; + case VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV: + return "VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV"; + case VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT: + return "VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT"; + case VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR: + return "VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR"; + case VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR: + return "VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR"; + case VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT: + return "VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"; + case VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR: + return "VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"; + case VK_ACCESS_2_HOST_READ_BIT_KHR: + return "VK_ACCESS_2_HOST_READ_BIT_KHR"; + case VK_ACCESS_2_HOST_WRITE_BIT_KHR: + return "VK_ACCESS_2_HOST_WRITE_BIT_KHR"; + case VK_ACCESS_2_INDEX_READ_BIT_KHR: + return "VK_ACCESS_2_INDEX_READ_BIT_KHR"; + case VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR: + return "VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR"; + case VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR: + return "VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR"; + case VK_ACCESS_2_MEMORY_READ_BIT_KHR: + return "VK_ACCESS_2_MEMORY_READ_BIT_KHR"; + case VK_ACCESS_2_MEMORY_WRITE_BIT_KHR: + return "VK_ACCESS_2_MEMORY_WRITE_BIT_KHR"; + case VK_ACCESS_2_NONE_KHR: + return "VK_ACCESS_2_NONE_KHR"; + case VK_ACCESS_2_SHADER_READ_BIT_KHR: + return "VK_ACCESS_2_SHADER_READ_BIT_KHR"; + case VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR: + return "VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR"; + case VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR: + return "VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR"; + case VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR: + return "VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR"; + case VK_ACCESS_2_SHADER_WRITE_BIT_KHR: + return "VK_ACCESS_2_SHADER_WRITE_BIT_KHR"; + case VK_ACCESS_2_TRANSFER_READ_BIT_KHR: + return "VK_ACCESS_2_TRANSFER_READ_BIT_KHR"; + case VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR: + return "VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR"; + case VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT: + return "VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"; + case VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT: + return "VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"; + case VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT: + return "VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"; + case VK_ACCESS_2_UNIFORM_READ_BIT_KHR: + return "VK_ACCESS_2_UNIFORM_READ_BIT_KHR"; + case VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR: + return "VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR"; +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR: + return "VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR: + return "VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR: + return "VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS +#ifdef VK_ENABLE_BETA_EXTENSIONS + case VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR: + return "VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR"; +#endif // VK_ENABLE_BETA_EXTENSIONS + default: + return "Unhandled VkAccessFlagBits2KHR"; + } +} + +static inline std::string string_VkAccessFlags2KHR(VkAccessFlags2KHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkAccessFlagBits2KHR(static_cast(1ULL << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkAccessFlagBits2KHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkSubmitFlagBitsKHR(VkSubmitFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_SUBMIT_PROTECTED_BIT_KHR: + return "VK_SUBMIT_PROTECTED_BIT_KHR"; + default: + return "Unhandled VkSubmitFlagBitsKHR"; + } +} + +static inline std::string string_VkSubmitFlagsKHR(VkSubmitFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSubmitFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSubmitFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkDebugReportFlagBitsEXT(VkDebugReportFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_DEBUG_REPORT_DEBUG_BIT_EXT: + return "VK_DEBUG_REPORT_DEBUG_BIT_EXT"; + case VK_DEBUG_REPORT_ERROR_BIT_EXT: + return "VK_DEBUG_REPORT_ERROR_BIT_EXT"; + case VK_DEBUG_REPORT_INFORMATION_BIT_EXT: + return "VK_DEBUG_REPORT_INFORMATION_BIT_EXT"; + case VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT: + return "VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT"; + case VK_DEBUG_REPORT_WARNING_BIT_EXT: + return "VK_DEBUG_REPORT_WARNING_BIT_EXT"; + default: + return "Unhandled VkDebugReportFlagBitsEXT"; + } +} + +static inline std::string string_VkDebugReportFlagsEXT(VkDebugReportFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDebugReportFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDebugReportFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkDebugReportObjectTypeEXT(VkDebugReportObjectTypeEXT input_value) +{ + switch (input_value) + { + case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT"; + case VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT: + return "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT"; + default: + return "Unhandled VkDebugReportObjectTypeEXT"; + } +} + +static inline const char* string_VkRasterizationOrderAMD(VkRasterizationOrderAMD input_value) +{ + switch (input_value) + { + case VK_RASTERIZATION_ORDER_RELAXED_AMD: + return "VK_RASTERIZATION_ORDER_RELAXED_AMD"; + case VK_RASTERIZATION_ORDER_STRICT_AMD: + return "VK_RASTERIZATION_ORDER_STRICT_AMD"; + default: + return "Unhandled VkRasterizationOrderAMD"; + } +} + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeH264CapabilitiesFlagBitsEXT(VkVideoEncodeH264CapabilitiesFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT"; + default: + return "Unhandled VkVideoEncodeH264CapabilitiesFlagBitsEXT"; + } +} + +static inline std::string string_VkVideoEncodeH264CapabilitiesFlagsEXT(VkVideoEncodeH264CapabilitiesFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoEncodeH264CapabilitiesFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoEncodeH264CapabilitiesFlagBitsEXT(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeH264InputModeFlagBitsEXT(VkVideoEncodeH264InputModeFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT"; + default: + return "Unhandled VkVideoEncodeH264InputModeFlagBitsEXT"; + } +} + +static inline std::string string_VkVideoEncodeH264InputModeFlagsEXT(VkVideoEncodeH264InputModeFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoEncodeH264InputModeFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoEncodeH264InputModeFlagBitsEXT(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeH264OutputModeFlagBitsEXT(VkVideoEncodeH264OutputModeFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT"; + case VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT"; + default: + return "Unhandled VkVideoEncodeH264OutputModeFlagBitsEXT"; + } +} + +static inline std::string string_VkVideoEncodeH264OutputModeFlagsEXT(VkVideoEncodeH264OutputModeFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoEncodeH264OutputModeFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoEncodeH264OutputModeFlagBitsEXT(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoEncodeH264CreateFlagBitsEXT(VkVideoEncodeH264CreateFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_VIDEO_ENCODE_H264_CREATE_DEFAULT_EXT: + return "VK_VIDEO_ENCODE_H264_CREATE_DEFAULT_EXT"; + case VK_VIDEO_ENCODE_H264_CREATE_RESERVED_0_BIT_EXT: + return "VK_VIDEO_ENCODE_H264_CREATE_RESERVED_0_BIT_EXT"; + default: + return "Unhandled VkVideoEncodeH264CreateFlagBitsEXT"; + } +} + +static inline std::string string_VkVideoEncodeH264CreateFlagsEXT(VkVideoEncodeH264CreateFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoEncodeH264CreateFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoEncodeH264CreateFlagBitsEXT(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + + +#ifdef VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkVideoDecodeH264FieldLayoutFlagBitsEXT(VkVideoDecodeH264FieldLayoutFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_VIDEO_DECODE_H264_FIELD_LAYOUT_LINE_INTERLACED_PLANE_BIT_EXT: + return "VK_VIDEO_DECODE_H264_FIELD_LAYOUT_LINE_INTERLACED_PLANE_BIT_EXT"; + case VK_VIDEO_DECODE_H264_FIELD_LAYOUT_SEPARATE_INTERLACED_PLANE_BIT_EXT: + return "VK_VIDEO_DECODE_H264_FIELD_LAYOUT_SEPARATE_INTERLACED_PLANE_BIT_EXT"; + case VK_VIDEO_DECODE_H264_PROGRESSIVE_PICTURES_ONLY_EXT: + return "VK_VIDEO_DECODE_H264_PROGRESSIVE_PICTURES_ONLY_EXT"; + default: + return "Unhandled VkVideoDecodeH264FieldLayoutFlagBitsEXT"; + } +} + +static inline std::string string_VkVideoDecodeH264FieldLayoutFlagsEXT(VkVideoDecodeH264FieldLayoutFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkVideoDecodeH264FieldLayoutFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkVideoDecodeH264FieldLayoutFlagBitsEXT(static_cast(0))); + return ret; +} +#endif // VK_ENABLE_BETA_EXTENSIONS + +static inline const char* string_VkShaderInfoTypeAMD(VkShaderInfoTypeAMD input_value) +{ + switch (input_value) + { + case VK_SHADER_INFO_TYPE_BINARY_AMD: + return "VK_SHADER_INFO_TYPE_BINARY_AMD"; + case VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD: + return "VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD"; + case VK_SHADER_INFO_TYPE_STATISTICS_AMD: + return "VK_SHADER_INFO_TYPE_STATISTICS_AMD"; + default: + return "Unhandled VkShaderInfoTypeAMD"; + } +} + +static inline const char* string_VkExternalMemoryHandleTypeFlagBitsNV(VkExternalMemoryHandleTypeFlagBitsNV input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV"; + case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV: + return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV"; + default: + return "Unhandled VkExternalMemoryHandleTypeFlagBitsNV"; + } +} + +static inline std::string string_VkExternalMemoryHandleTypeFlagsNV(VkExternalMemoryHandleTypeFlagsNV input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalMemoryHandleTypeFlagBitsNV(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalMemoryHandleTypeFlagBitsNV(static_cast(0))); + return ret; +} + +static inline const char* string_VkExternalMemoryFeatureFlagBitsNV(VkExternalMemoryFeatureFlagBitsNV input_value) +{ + switch (input_value) + { + case VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV: + return "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV"; + case VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV: + return "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV"; + case VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV: + return "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV"; + default: + return "Unhandled VkExternalMemoryFeatureFlagBitsNV"; + } +} + +static inline std::string string_VkExternalMemoryFeatureFlagsNV(VkExternalMemoryFeatureFlagsNV input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkExternalMemoryFeatureFlagBitsNV(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkExternalMemoryFeatureFlagBitsNV(static_cast(0))); + return ret; +} + +static inline const char* string_VkValidationCheckEXT(VkValidationCheckEXT input_value) +{ + switch (input_value) + { + case VK_VALIDATION_CHECK_ALL_EXT: + return "VK_VALIDATION_CHECK_ALL_EXT"; + case VK_VALIDATION_CHECK_SHADERS_EXT: + return "VK_VALIDATION_CHECK_SHADERS_EXT"; + default: + return "Unhandled VkValidationCheckEXT"; + } +} + +static inline const char* string_VkConditionalRenderingFlagBitsEXT(VkConditionalRenderingFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT: + return "VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT"; + default: + return "Unhandled VkConditionalRenderingFlagBitsEXT"; + } +} + +static inline std::string string_VkConditionalRenderingFlagsEXT(VkConditionalRenderingFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkConditionalRenderingFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkConditionalRenderingFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkSurfaceCounterFlagBitsEXT(VkSurfaceCounterFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_SURFACE_COUNTER_VBLANK_BIT_EXT: + return "VK_SURFACE_COUNTER_VBLANK_BIT_EXT"; + default: + return "Unhandled VkSurfaceCounterFlagBitsEXT"; + } +} + +static inline std::string string_VkSurfaceCounterFlagsEXT(VkSurfaceCounterFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkSurfaceCounterFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkSurfaceCounterFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkDisplayPowerStateEXT(VkDisplayPowerStateEXT input_value) +{ + switch (input_value) + { + case VK_DISPLAY_POWER_STATE_OFF_EXT: + return "VK_DISPLAY_POWER_STATE_OFF_EXT"; + case VK_DISPLAY_POWER_STATE_ON_EXT: + return "VK_DISPLAY_POWER_STATE_ON_EXT"; + case VK_DISPLAY_POWER_STATE_SUSPEND_EXT: + return "VK_DISPLAY_POWER_STATE_SUSPEND_EXT"; + default: + return "Unhandled VkDisplayPowerStateEXT"; + } +} + +static inline const char* string_VkDeviceEventTypeEXT(VkDeviceEventTypeEXT input_value) +{ + switch (input_value) + { + case VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT: + return "VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT"; + default: + return "Unhandled VkDeviceEventTypeEXT"; + } +} + +static inline const char* string_VkDisplayEventTypeEXT(VkDisplayEventTypeEXT input_value) +{ + switch (input_value) + { + case VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT: + return "VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT"; + default: + return "Unhandled VkDisplayEventTypeEXT"; + } +} + +static inline const char* string_VkViewportCoordinateSwizzleNV(VkViewportCoordinateSwizzleNV input_value) +{ + switch (input_value) + { + case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV: + return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV"; + case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV: + return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV"; + case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV: + return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV"; + case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV: + return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV"; + case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV: + return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV"; + case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV: + return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV"; + case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV: + return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV"; + case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV: + return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV"; + default: + return "Unhandled VkViewportCoordinateSwizzleNV"; + } +} + +static inline const char* string_VkDiscardRectangleModeEXT(VkDiscardRectangleModeEXT input_value) +{ + switch (input_value) + { + case VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT: + return "VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT"; + case VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT: + return "VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT"; + default: + return "Unhandled VkDiscardRectangleModeEXT"; + } +} + +static inline const char* string_VkConservativeRasterizationModeEXT(VkConservativeRasterizationModeEXT input_value) +{ + switch (input_value) + { + case VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT: + return "VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT"; + case VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT: + return "VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT"; + case VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT: + return "VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT"; + default: + return "Unhandled VkConservativeRasterizationModeEXT"; + } +} + +static inline const char* string_VkDebugUtilsMessageSeverityFlagBitsEXT(VkDebugUtilsMessageSeverityFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT: + return "VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT"; + case VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT: + return "VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT"; + case VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT: + return "VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT"; + case VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT: + return "VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT"; + default: + return "Unhandled VkDebugUtilsMessageSeverityFlagBitsEXT"; + } +} + +static inline std::string string_VkDebugUtilsMessageSeverityFlagsEXT(VkDebugUtilsMessageSeverityFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDebugUtilsMessageSeverityFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDebugUtilsMessageSeverityFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkDebugUtilsMessageTypeFlagBitsEXT(VkDebugUtilsMessageTypeFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT: + return "VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT"; + case VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT: + return "VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT"; + case VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT: + return "VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT"; + default: + return "Unhandled VkDebugUtilsMessageTypeFlagBitsEXT"; + } +} + +static inline std::string string_VkDebugUtilsMessageTypeFlagsEXT(VkDebugUtilsMessageTypeFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDebugUtilsMessageTypeFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDebugUtilsMessageTypeFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkSamplerReductionModeEXT(VkSamplerReductionModeEXT input_value) +{ + switch (input_value) + { + case VK_SAMPLER_REDUCTION_MODE_MAX: + return "VK_SAMPLER_REDUCTION_MODE_MAX"; + case VK_SAMPLER_REDUCTION_MODE_MIN: + return "VK_SAMPLER_REDUCTION_MODE_MIN"; + case VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE: + return "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE"; + default: + return "Unhandled VkSamplerReductionModeEXT"; + } +} + +static inline const char* string_VkBlendOverlapEXT(VkBlendOverlapEXT input_value) +{ + switch (input_value) + { + case VK_BLEND_OVERLAP_CONJOINT_EXT: + return "VK_BLEND_OVERLAP_CONJOINT_EXT"; + case VK_BLEND_OVERLAP_DISJOINT_EXT: + return "VK_BLEND_OVERLAP_DISJOINT_EXT"; + case VK_BLEND_OVERLAP_UNCORRELATED_EXT: + return "VK_BLEND_OVERLAP_UNCORRELATED_EXT"; + default: + return "Unhandled VkBlendOverlapEXT"; + } +} + +static inline const char* string_VkCoverageModulationModeNV(VkCoverageModulationModeNV input_value) +{ + switch (input_value) + { + case VK_COVERAGE_MODULATION_MODE_ALPHA_NV: + return "VK_COVERAGE_MODULATION_MODE_ALPHA_NV"; + case VK_COVERAGE_MODULATION_MODE_NONE_NV: + return "VK_COVERAGE_MODULATION_MODE_NONE_NV"; + case VK_COVERAGE_MODULATION_MODE_RGBA_NV: + return "VK_COVERAGE_MODULATION_MODE_RGBA_NV"; + case VK_COVERAGE_MODULATION_MODE_RGB_NV: + return "VK_COVERAGE_MODULATION_MODE_RGB_NV"; + default: + return "Unhandled VkCoverageModulationModeNV"; + } +} + +static inline const char* string_VkValidationCacheHeaderVersionEXT(VkValidationCacheHeaderVersionEXT input_value) +{ + switch (input_value) + { + case VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT: + return "VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT"; + default: + return "Unhandled VkValidationCacheHeaderVersionEXT"; + } +} + +static inline const char* string_VkDescriptorBindingFlagBitsEXT(VkDescriptorBindingFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT: + return "VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT"; + case VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT: + return "VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT"; + case VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT: + return "VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT"; + case VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT: + return "VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT"; + default: + return "Unhandled VkDescriptorBindingFlagBitsEXT"; + } +} + +static inline std::string string_VkDescriptorBindingFlagsEXT(VkDescriptorBindingFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDescriptorBindingFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDescriptorBindingFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkShadingRatePaletteEntryNV(VkShadingRatePaletteEntryNV input_value) +{ + switch (input_value) + { + case VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV"; + case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV"; + case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV"; + case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV"; + case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV"; + case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV"; + case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV"; + case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV"; + case VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV"; + case VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV"; + case VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV"; + case VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV: + return "VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV"; + default: + return "Unhandled VkShadingRatePaletteEntryNV"; + } +} + +static inline const char* string_VkCoarseSampleOrderTypeNV(VkCoarseSampleOrderTypeNV input_value) +{ + switch (input_value) + { + case VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV: + return "VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV"; + case VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV: + return "VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV"; + case VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV: + return "VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV"; + case VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV: + return "VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV"; + default: + return "Unhandled VkCoarseSampleOrderTypeNV"; + } +} + +static inline const char* string_VkRayTracingShaderGroupTypeKHR(VkRayTracingShaderGroupTypeKHR input_value) +{ + switch (input_value) + { + case VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR: + return "VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR"; + case VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR: + return "VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR"; + case VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR: + return "VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR"; + default: + return "Unhandled VkRayTracingShaderGroupTypeKHR"; + } +} + +static inline const char* string_VkRayTracingShaderGroupTypeNV(VkRayTracingShaderGroupTypeNV input_value) +{ + switch (input_value) + { + case VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR: + return "VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR"; + case VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR: + return "VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR"; + case VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR: + return "VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR"; + default: + return "Unhandled VkRayTracingShaderGroupTypeNV"; + } +} + +static inline const char* string_VkGeometryTypeKHR(VkGeometryTypeKHR input_value) +{ + switch (input_value) + { + case VK_GEOMETRY_TYPE_AABBS_KHR: + return "VK_GEOMETRY_TYPE_AABBS_KHR"; + case VK_GEOMETRY_TYPE_INSTANCES_KHR: + return "VK_GEOMETRY_TYPE_INSTANCES_KHR"; + case VK_GEOMETRY_TYPE_TRIANGLES_KHR: + return "VK_GEOMETRY_TYPE_TRIANGLES_KHR"; + default: + return "Unhandled VkGeometryTypeKHR"; + } +} + +static inline const char* string_VkGeometryTypeNV(VkGeometryTypeNV input_value) +{ + switch (input_value) + { + case VK_GEOMETRY_TYPE_AABBS_KHR: + return "VK_GEOMETRY_TYPE_AABBS_KHR"; + case VK_GEOMETRY_TYPE_INSTANCES_KHR: + return "VK_GEOMETRY_TYPE_INSTANCES_KHR"; + case VK_GEOMETRY_TYPE_TRIANGLES_KHR: + return "VK_GEOMETRY_TYPE_TRIANGLES_KHR"; + default: + return "Unhandled VkGeometryTypeNV"; + } +} + +static inline const char* string_VkAccelerationStructureTypeKHR(VkAccelerationStructureTypeKHR input_value) +{ + switch (input_value) + { + case VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR: + return "VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR"; + case VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR: + return "VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR"; + case VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR: + return "VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR"; + default: + return "Unhandled VkAccelerationStructureTypeKHR"; + } +} + +static inline const char* string_VkAccelerationStructureTypeNV(VkAccelerationStructureTypeNV input_value) +{ + switch (input_value) + { + case VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR: + return "VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR"; + case VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR: + return "VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR"; + case VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR: + return "VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR"; + default: + return "Unhandled VkAccelerationStructureTypeNV"; + } +} + +static inline const char* string_VkGeometryFlagBitsKHR(VkGeometryFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR: + return "VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR"; + case VK_GEOMETRY_OPAQUE_BIT_KHR: + return "VK_GEOMETRY_OPAQUE_BIT_KHR"; + default: + return "Unhandled VkGeometryFlagBitsKHR"; + } +} + +static inline std::string string_VkGeometryFlagsKHR(VkGeometryFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkGeometryFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkGeometryFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkGeometryFlagBitsNV(VkGeometryFlagBitsNV input_value) +{ + switch (input_value) + { + case VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR: + return "VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR"; + case VK_GEOMETRY_OPAQUE_BIT_KHR: + return "VK_GEOMETRY_OPAQUE_BIT_KHR"; + default: + return "Unhandled VkGeometryFlagBitsNV"; + } +} + +static inline std::string string_VkGeometryFlagsNV(VkGeometryFlagsNV input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkGeometryFlagBitsNV(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkGeometryFlagBitsNV(static_cast(0))); + return ret; +} + +static inline const char* string_VkGeometryInstanceFlagBitsKHR(VkGeometryInstanceFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR: + return "VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR"; + case VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR: + return "VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR"; + case VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR: + return "VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR"; + case VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR: + return "VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR"; + default: + return "Unhandled VkGeometryInstanceFlagBitsKHR"; + } +} + +static inline std::string string_VkGeometryInstanceFlagsKHR(VkGeometryInstanceFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkGeometryInstanceFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkGeometryInstanceFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkGeometryInstanceFlagBitsNV(VkGeometryInstanceFlagBitsNV input_value) +{ + switch (input_value) + { + case VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR: + return "VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR"; + case VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR: + return "VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR"; + case VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR: + return "VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR"; + case VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR: + return "VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR"; + default: + return "Unhandled VkGeometryInstanceFlagBitsNV"; + } +} + +static inline std::string string_VkGeometryInstanceFlagsNV(VkGeometryInstanceFlagsNV input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkGeometryInstanceFlagBitsNV(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkGeometryInstanceFlagBitsNV(static_cast(0))); + return ret; +} + +static inline const char* string_VkBuildAccelerationStructureFlagBitsKHR(VkBuildAccelerationStructureFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"; + case VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"; + case VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"; + case VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"; + case VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"; + default: + return "Unhandled VkBuildAccelerationStructureFlagBitsKHR"; + } +} + +static inline std::string string_VkBuildAccelerationStructureFlagsKHR(VkBuildAccelerationStructureFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkBuildAccelerationStructureFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkBuildAccelerationStructureFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkBuildAccelerationStructureFlagBitsNV(VkBuildAccelerationStructureFlagBitsNV input_value) +{ + switch (input_value) + { + case VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"; + case VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"; + case VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"; + case VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"; + case VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"; + default: + return "Unhandled VkBuildAccelerationStructureFlagBitsNV"; + } +} + +static inline std::string string_VkBuildAccelerationStructureFlagsNV(VkBuildAccelerationStructureFlagsNV input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkBuildAccelerationStructureFlagBitsNV(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkBuildAccelerationStructureFlagBitsNV(static_cast(0))); + return ret; +} + +static inline const char* string_VkCopyAccelerationStructureModeKHR(VkCopyAccelerationStructureModeKHR input_value) +{ + switch (input_value) + { + case VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR: + return "VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR"; + case VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR: + return "VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR"; + case VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR: + return "VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR"; + case VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR: + return "VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR"; + default: + return "Unhandled VkCopyAccelerationStructureModeKHR"; + } +} + +static inline const char* string_VkCopyAccelerationStructureModeNV(VkCopyAccelerationStructureModeNV input_value) +{ + switch (input_value) + { + case VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR: + return "VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR"; + case VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR: + return "VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR"; + case VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR: + return "VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR"; + case VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR: + return "VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR"; + default: + return "Unhandled VkCopyAccelerationStructureModeNV"; + } +} + +static inline const char* string_VkAccelerationStructureMemoryRequirementsTypeNV(VkAccelerationStructureMemoryRequirementsTypeNV input_value) +{ + switch (input_value) + { + case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV: + return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV"; + case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV: + return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV"; + case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV: + return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV"; + default: + return "Unhandled VkAccelerationStructureMemoryRequirementsTypeNV"; + } +} + +static inline const char* string_VkQueueGlobalPriorityEXT(VkQueueGlobalPriorityEXT input_value) +{ + switch (input_value) + { + case VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT: + return "VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT"; + case VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT: + return "VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT"; + case VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT: + return "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT"; + case VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT: + return "VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT"; + default: + return "Unhandled VkQueueGlobalPriorityEXT"; + } +} + +static inline const char* string_VkTimeDomainEXT(VkTimeDomainEXT input_value) +{ + switch (input_value) + { + case VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT: + return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT"; + case VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT: + return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT"; + case VK_TIME_DOMAIN_DEVICE_EXT: + return "VK_TIME_DOMAIN_DEVICE_EXT"; + case VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT: + return "VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT"; + default: + return "Unhandled VkTimeDomainEXT"; + } +} + +static inline const char* string_VkMemoryOverallocationBehaviorAMD(VkMemoryOverallocationBehaviorAMD input_value) +{ + switch (input_value) + { + case VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD: + return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD"; + case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD: + return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD"; + case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD: + return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD"; + default: + return "Unhandled VkMemoryOverallocationBehaviorAMD"; + } +} + +static inline const char* string_VkPipelineCreationFeedbackFlagBitsEXT(VkPipelineCreationFeedbackFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT: + return "VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT"; + case VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT: + return "VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT"; + case VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT: + return "VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT"; + default: + return "Unhandled VkPipelineCreationFeedbackFlagBitsEXT"; + } +} + +static inline std::string string_VkPipelineCreationFeedbackFlagsEXT(VkPipelineCreationFeedbackFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkPipelineCreationFeedbackFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkPipelineCreationFeedbackFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkPerformanceConfigurationTypeINTEL(VkPerformanceConfigurationTypeINTEL input_value) +{ + switch (input_value) + { + case VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL: + return "VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL"; + default: + return "Unhandled VkPerformanceConfigurationTypeINTEL"; + } +} + +static inline const char* string_VkQueryPoolSamplingModeINTEL(VkQueryPoolSamplingModeINTEL input_value) +{ + switch (input_value) + { + case VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL: + return "VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL"; + default: + return "Unhandled VkQueryPoolSamplingModeINTEL"; + } +} + +static inline const char* string_VkPerformanceOverrideTypeINTEL(VkPerformanceOverrideTypeINTEL input_value) +{ + switch (input_value) + { + case VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL: + return "VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL"; + case VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL: + return "VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL"; + default: + return "Unhandled VkPerformanceOverrideTypeINTEL"; + } +} + +static inline const char* string_VkPerformanceParameterTypeINTEL(VkPerformanceParameterTypeINTEL input_value) +{ + switch (input_value) + { + case VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL: + return "VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL"; + case VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL: + return "VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL"; + default: + return "Unhandled VkPerformanceParameterTypeINTEL"; + } +} + +static inline const char* string_VkPerformanceValueTypeINTEL(VkPerformanceValueTypeINTEL input_value) +{ + switch (input_value) + { + case VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL: + return "VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL"; + case VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL: + return "VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL"; + case VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL: + return "VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL"; + case VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL: + return "VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL"; + case VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL: + return "VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL"; + default: + return "Unhandled VkPerformanceValueTypeINTEL"; + } +} + +static inline const char* string_VkToolPurposeFlagBitsEXT(VkToolPurposeFlagBitsEXT input_value) +{ + switch (input_value) + { + case VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT: + return "VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT"; + case VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT: + return "VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT"; + case VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT: + return "VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT"; + case VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT: + return "VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT"; + case VK_TOOL_PURPOSE_PROFILING_BIT_EXT: + return "VK_TOOL_PURPOSE_PROFILING_BIT_EXT"; + case VK_TOOL_PURPOSE_TRACING_BIT_EXT: + return "VK_TOOL_PURPOSE_TRACING_BIT_EXT"; + case VK_TOOL_PURPOSE_VALIDATION_BIT_EXT: + return "VK_TOOL_PURPOSE_VALIDATION_BIT_EXT"; + default: + return "Unhandled VkToolPurposeFlagBitsEXT"; + } +} + +static inline std::string string_VkToolPurposeFlagsEXT(VkToolPurposeFlagsEXT input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkToolPurposeFlagBitsEXT(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkToolPurposeFlagBitsEXT(static_cast(0))); + return ret; +} + +static inline const char* string_VkValidationFeatureEnableEXT(VkValidationFeatureEnableEXT input_value) +{ + switch (input_value) + { + case VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT: + return "VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT"; + case VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT: + return "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT"; + case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT: + return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT"; + case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT: + return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT"; + case VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT: + return "VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT"; + default: + return "Unhandled VkValidationFeatureEnableEXT"; + } +} + +static inline const char* string_VkValidationFeatureDisableEXT(VkValidationFeatureDisableEXT input_value) +{ + switch (input_value) + { + case VK_VALIDATION_FEATURE_DISABLE_ALL_EXT: + return "VK_VALIDATION_FEATURE_DISABLE_ALL_EXT"; + case VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT: + return "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT"; + case VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT: + return "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT"; + case VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT: + return "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT"; + case VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT: + return "VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT"; + case VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT: + return "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT"; + case VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT: + return "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT"; + default: + return "Unhandled VkValidationFeatureDisableEXT"; + } +} + +static inline const char* string_VkComponentTypeNV(VkComponentTypeNV input_value) +{ + switch (input_value) + { + case VK_COMPONENT_TYPE_FLOAT16_NV: + return "VK_COMPONENT_TYPE_FLOAT16_NV"; + case VK_COMPONENT_TYPE_FLOAT32_NV: + return "VK_COMPONENT_TYPE_FLOAT32_NV"; + case VK_COMPONENT_TYPE_FLOAT64_NV: + return "VK_COMPONENT_TYPE_FLOAT64_NV"; + case VK_COMPONENT_TYPE_SINT16_NV: + return "VK_COMPONENT_TYPE_SINT16_NV"; + case VK_COMPONENT_TYPE_SINT32_NV: + return "VK_COMPONENT_TYPE_SINT32_NV"; + case VK_COMPONENT_TYPE_SINT64_NV: + return "VK_COMPONENT_TYPE_SINT64_NV"; + case VK_COMPONENT_TYPE_SINT8_NV: + return "VK_COMPONENT_TYPE_SINT8_NV"; + case VK_COMPONENT_TYPE_UINT16_NV: + return "VK_COMPONENT_TYPE_UINT16_NV"; + case VK_COMPONENT_TYPE_UINT32_NV: + return "VK_COMPONENT_TYPE_UINT32_NV"; + case VK_COMPONENT_TYPE_UINT64_NV: + return "VK_COMPONENT_TYPE_UINT64_NV"; + case VK_COMPONENT_TYPE_UINT8_NV: + return "VK_COMPONENT_TYPE_UINT8_NV"; + default: + return "Unhandled VkComponentTypeNV"; + } +} + +static inline const char* string_VkScopeNV(VkScopeNV input_value) +{ + switch (input_value) + { + case VK_SCOPE_DEVICE_NV: + return "VK_SCOPE_DEVICE_NV"; + case VK_SCOPE_QUEUE_FAMILY_NV: + return "VK_SCOPE_QUEUE_FAMILY_NV"; + case VK_SCOPE_SUBGROUP_NV: + return "VK_SCOPE_SUBGROUP_NV"; + case VK_SCOPE_WORKGROUP_NV: + return "VK_SCOPE_WORKGROUP_NV"; + default: + return "Unhandled VkScopeNV"; + } +} + +static inline const char* string_VkCoverageReductionModeNV(VkCoverageReductionModeNV input_value) +{ + switch (input_value) + { + case VK_COVERAGE_REDUCTION_MODE_MERGE_NV: + return "VK_COVERAGE_REDUCTION_MODE_MERGE_NV"; + case VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV: + return "VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV"; + default: + return "Unhandled VkCoverageReductionModeNV"; + } +} + + +#ifdef VK_USE_PLATFORM_WIN32_KHR + +static inline const char* string_VkFullScreenExclusiveEXT(VkFullScreenExclusiveEXT input_value) +{ + switch (input_value) + { + case VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT: + return "VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT"; + case VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT: + return "VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT"; + case VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT: + return "VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT"; + case VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT: + return "VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT"; + default: + return "Unhandled VkFullScreenExclusiveEXT"; + } +} +#endif // VK_USE_PLATFORM_WIN32_KHR + +static inline const char* string_VkLineRasterizationModeEXT(VkLineRasterizationModeEXT input_value) +{ + switch (input_value) + { + case VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT: + return "VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT"; + case VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT: + return "VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT"; + case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT: + return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT"; + case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT: + return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT"; + default: + return "Unhandled VkLineRasterizationModeEXT"; + } +} + +static inline const char* string_VkIndirectStateFlagBitsNV(VkIndirectStateFlagBitsNV input_value) +{ + switch (input_value) + { + case VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV: + return "VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV"; + default: + return "Unhandled VkIndirectStateFlagBitsNV"; + } +} + +static inline std::string string_VkIndirectStateFlagsNV(VkIndirectStateFlagsNV input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkIndirectStateFlagBitsNV(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkIndirectStateFlagBitsNV(static_cast(0))); + return ret; +} + +static inline const char* string_VkIndirectCommandsTokenTypeNV(VkIndirectCommandsTokenTypeNV input_value) +{ + switch (input_value) + { + case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV: + return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV"; + case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV: + return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV"; + case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV: + return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV"; + case VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV: + return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV"; + case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV: + return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV"; + case VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV: + return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV"; + case VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV: + return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV"; + case VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV: + return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV"; + default: + return "Unhandled VkIndirectCommandsTokenTypeNV"; + } +} + +static inline const char* string_VkIndirectCommandsLayoutUsageFlagBitsNV(VkIndirectCommandsLayoutUsageFlagBitsNV input_value) +{ + switch (input_value) + { + case VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV: + return "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV"; + case VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV: + return "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV"; + case VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV: + return "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV"; + default: + return "Unhandled VkIndirectCommandsLayoutUsageFlagBitsNV"; + } +} + +static inline std::string string_VkIndirectCommandsLayoutUsageFlagsNV(VkIndirectCommandsLayoutUsageFlagsNV input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkIndirectCommandsLayoutUsageFlagBitsNV(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkIndirectCommandsLayoutUsageFlagBitsNV(static_cast(0))); + return ret; +} + +static inline const char* string_VkDeviceMemoryReportEventTypeEXT(VkDeviceMemoryReportEventTypeEXT input_value) +{ + switch (input_value) + { + case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT: + return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT"; + case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT: + return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT"; + case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT: + return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT"; + case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT: + return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT"; + case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT: + return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT"; + default: + return "Unhandled VkDeviceMemoryReportEventTypeEXT"; + } +} + +static inline const char* string_VkDeviceDiagnosticsConfigFlagBitsNV(VkDeviceDiagnosticsConfigFlagBitsNV input_value) +{ + switch (input_value) + { + case VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV: + return "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV"; + case VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV: + return "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV"; + case VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV: + return "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV"; + default: + return "Unhandled VkDeviceDiagnosticsConfigFlagBitsNV"; + } +} + +static inline std::string string_VkDeviceDiagnosticsConfigFlagsNV(VkDeviceDiagnosticsConfigFlagsNV input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkDeviceDiagnosticsConfigFlagBitsNV(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkDeviceDiagnosticsConfigFlagBitsNV(static_cast(0))); + return ret; +} + +static inline const char* string_VkFragmentShadingRateTypeNV(VkFragmentShadingRateTypeNV input_value) +{ + switch (input_value) + { + case VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV: + return "VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV"; + case VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV: + return "VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV"; + default: + return "Unhandled VkFragmentShadingRateTypeNV"; + } +} + +static inline const char* string_VkFragmentShadingRateNV(VkFragmentShadingRateNV input_value) +{ + switch (input_value) + { + case VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV: + return "VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV"; + case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV: + return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV"; + case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV: + return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV"; + case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV: + return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV"; + case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV: + return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV"; + case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV: + return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV"; + case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV: + return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV"; + case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV: + return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV"; + case VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV: + return "VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV"; + case VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV: + return "VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV"; + case VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV: + return "VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV"; + case VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV: + return "VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV"; + default: + return "Unhandled VkFragmentShadingRateNV"; + } +} + +static inline const char* string_VkBuildAccelerationStructureModeKHR(VkBuildAccelerationStructureModeKHR input_value) +{ + switch (input_value) + { + case VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR"; + case VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR: + return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR"; + default: + return "Unhandled VkBuildAccelerationStructureModeKHR"; + } +} + +static inline const char* string_VkAccelerationStructureBuildTypeKHR(VkAccelerationStructureBuildTypeKHR input_value) +{ + switch (input_value) + { + case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR: + return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR"; + case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR: + return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR"; + case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR: + return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR"; + default: + return "Unhandled VkAccelerationStructureBuildTypeKHR"; + } +} + +static inline const char* string_VkAccelerationStructureCreateFlagBitsKHR(VkAccelerationStructureCreateFlagBitsKHR input_value) +{ + switch (input_value) + { + case VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR: + return "VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"; + default: + return "Unhandled VkAccelerationStructureCreateFlagBitsKHR"; + } +} + +static inline std::string string_VkAccelerationStructureCreateFlagsKHR(VkAccelerationStructureCreateFlagsKHR input_value) +{ + std::string ret; + int index = 0; + while(input_value) { + if (input_value & 1) { + if( !ret.empty()) ret.append("|"); + ret.append(string_VkAccelerationStructureCreateFlagBitsKHR(static_cast(1U << index))); + } + ++index; + input_value >>= 1; + } + if( ret.empty()) ret.append(string_VkAccelerationStructureCreateFlagBitsKHR(static_cast(0))); + return ret; +} + +static inline const char* string_VkAccelerationStructureCompatibilityKHR(VkAccelerationStructureCompatibilityKHR input_value) +{ + switch (input_value) + { + case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR: + return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR"; + case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR: + return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR"; + default: + return "Unhandled VkAccelerationStructureCompatibilityKHR"; + } +} + +static inline const char* string_VkShaderGroupShaderKHR(VkShaderGroupShaderKHR input_value) +{ + switch (input_value) + { + case VK_SHADER_GROUP_SHADER_ANY_HIT_KHR: + return "VK_SHADER_GROUP_SHADER_ANY_HIT_KHR"; + case VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR: + return "VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR"; + case VK_SHADER_GROUP_SHADER_GENERAL_KHR: + return "VK_SHADER_GROUP_SHADER_GENERAL_KHR"; + case VK_SHADER_GROUP_SHADER_INTERSECTION_KHR: + return "VK_SHADER_GROUP_SHADER_INTERSECTION_KHR"; + default: + return "Unhandled VkShaderGroupShaderKHR"; + } +} + +static inline const char * GetPhysDevFeatureString(uint32_t index) { + const char * IndexToPhysDevFeatureString[] = { + "robustBufferAccess", + "fullDrawIndexUint32", + "imageCubeArray", + "independentBlend", + "geometryShader", + "tessellationShader", + "sampleRateShading", + "dualSrcBlend", + "logicOp", + "multiDrawIndirect", + "drawIndirectFirstInstance", + "depthClamp", + "depthBiasClamp", + "fillModeNonSolid", + "depthBounds", + "wideLines", + "largePoints", + "alphaToOne", + "multiViewport", + "samplerAnisotropy", + "textureCompressionETC2", + "textureCompressionASTC_LDR", + "textureCompressionBC", + "occlusionQueryPrecise", + "pipelineStatisticsQuery", + "vertexPipelineStoresAndAtomics", + "fragmentStoresAndAtomics", + "shaderTessellationAndGeometryPointSize", + "shaderImageGatherExtended", + "shaderStorageImageExtendedFormats", + "shaderStorageImageMultisample", + "shaderStorageImageReadWithoutFormat", + "shaderStorageImageWriteWithoutFormat", + "shaderUniformBufferArrayDynamicIndexing", + "shaderSampledImageArrayDynamicIndexing", + "shaderStorageBufferArrayDynamicIndexing", + "shaderStorageImageArrayDynamicIndexing", + "shaderClipDistance", + "shaderCullDistance", + "shaderFloat64", + "shaderInt64", + "shaderInt16", + "shaderResourceResidency", + "shaderResourceMinLod", + "sparseBinding", + "sparseResidencyBuffer", + "sparseResidencyImage2D", + "sparseResidencyImage3D", + "sparseResidency2Samples", + "sparseResidency4Samples", + "sparseResidency8Samples", + "sparseResidency16Samples", + "sparseResidencyAliased", + "variableMultisampleRate", + "inheritedQueries", + }; + + return IndexToPhysDevFeatureString[index]; +} + +static inline bool IsDuplicatePnext(VkStructureType input_value) +{ + switch (input_value) + { + case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT: + case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: + case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT: + return true; + default: + return false; + } +} diff --git a/external/vulkan/windows/include/vulkan/vk_icd.h b/external/vulkan/windows/include/vulkan/vk_icd.h index 5dff59a1..ae006d06 100644 --- a/external/vulkan/windows/include/vulkan/vk_icd.h +++ b/external/vulkan/windows/include/vulkan/vk_icd.h @@ -41,17 +41,45 @@ // that if the loader is older, it should automatically fail a // call for any API version > 1.0. Otherwise, the loader will // manually determine if it can support the expected version. -#define CURRENT_LOADER_ICD_INTERFACE_VERSION 5 +// Version 6 - Add support for vk_icdEnumerateAdapterPhysicalDevices. +#define CURRENT_LOADER_ICD_INTERFACE_VERSION 6 #define MIN_SUPPORTED_LOADER_ICD_INTERFACE_VERSION 0 #define MIN_PHYS_DEV_EXTENSION_ICD_INTERFACE_VERSION 4 -typedef VkResult(VKAPI_PTR *PFN_vkNegotiateLoaderICDInterfaceVersion)(uint32_t *pVersion); +// Old typedefs that don't follow a proper naming convention but are preserved for compatibility +typedef VkResult(VKAPI_PTR *PFN_vkNegotiateLoaderICDInterfaceVersion)(uint32_t *pVersion); // This is defined in vk_layer.h which will be found by the loader, but if an ICD is building against this // file directly, it won't be found. #ifndef PFN_GetPhysicalDeviceProcAddr typedef PFN_vkVoidFunction(VKAPI_PTR *PFN_GetPhysicalDeviceProcAddr)(VkInstance instance, const char *pName); #endif +// Typedefs for loader/ICD interface +typedef VkResult (VKAPI_PTR *PFN_vk_icdNegotiateLoaderICDInterfaceVersion)(uint32_t* pVersion); +typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vk_icdGetInstanceProcAddr)(VkInstance instance, const char* pName); +typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vk_icdGetPhysicalDeviceProcAddr)(VkInstance instance, const char* pName); +#if defined(VK_USE_PLATFORM_WIN32_KHR) +typedef VkResult (VKAPI_PTR *PFN_vk_icdEnumerateAdapterPhysicalDevices)(VkInstance instance, LUID adapterLUID, + uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices); +#endif + +// Prototypes for loader/ICD interface +#if !defined(VK_NO_PROTOTYPES) +#ifdef __cplusplus +extern "C" { +#endif + VKAPI_ATTR VkResult VKAPI_CALL vk_icdNegotiateLoaderICDInterfaceVersion(uint32_t* pVersion); + VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetInstanceProcAddr(VkInstance instance, const char* pName); + VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetPhysicalDeviceProcAddr(VkInstance isntance, const char* pName); +#if defined(VK_USE_PLATFORM_WIN32_KHR) + VKAPI_ATTR VkResult VKAPI_CALL vk_icdEnumerateAdapterPhysicalDevices(VkInstance instance, LUID adapterLUID, + uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices); +#endif +#ifdef __cplusplus +} +#endif +#endif + /* * The ICD must reserve space for a pointer for the loader's dispatch * table, at the start of . @@ -91,6 +119,10 @@ typedef enum { VK_ICD_WSI_PLATFORM_DISPLAY, VK_ICD_WSI_PLATFORM_HEADLESS, VK_ICD_WSI_PLATFORM_METAL, + VK_ICD_WSI_PLATFORM_DIRECTFB, + VK_ICD_WSI_PLATFORM_VI, + VK_ICD_WSI_PLATFORM_GGP, + VK_ICD_WSI_PLATFORM_SCREEN, } VkIcdWsiPlatform; typedef struct { @@ -137,6 +169,14 @@ typedef struct { } VkIcdSurfaceXlib; #endif // VK_USE_PLATFORM_XLIB_KHR +#ifdef VK_USE_PLATFORM_DIRECTFB_EXT +typedef struct { + VkIcdSurfaceBase base; + IDirectFB *dfb; + IDirectFBSurface *surface; +} VkIcdSurfaceDirectFB; +#endif // VK_USE_PLATFORM_DIRECTFB_EXT + #ifdef VK_USE_PLATFORM_ANDROID_KHR typedef struct { VkIcdSurfaceBase base; @@ -158,6 +198,13 @@ typedef struct { } VkIcdSurfaceIOS; #endif // VK_USE_PLATFORM_IOS_MVK +#ifdef VK_USE_PLATFORM_GGP +typedef struct { + VkIcdSurfaceBase base; + GgpStreamDescriptor streamDescriptor; +} VkIcdSurfaceGgp; +#endif // VK_USE_PLATFORM_GGP + typedef struct { VkIcdSurfaceBase base; VkDisplayModeKHR displayMode; @@ -180,4 +227,19 @@ typedef struct { } VkIcdSurfaceMetal; #endif // VK_USE_PLATFORM_METAL_EXT +#ifdef VK_USE_PLATFORM_VI_NN +typedef struct { + VkIcdSurfaceBase base; + void *window; +} VkIcdSurfaceVi; +#endif // VK_USE_PLATFORM_VI_NN + +#ifdef VK_USE_PLATFORM_SCREEN_QNX +typedef struct { + VkIcdSurfaceBase base; + struct _screen_context *context; + struct _screen_window *window; +} VkIcdSurfaceScreen; +#endif // VK_USE_PLATFORM_SCREEN_QNX + #endif // VKICD_H diff --git a/external/vulkan/windows/include/vulkan/vk_layer.h b/external/vulkan/windows/include/vulkan/vk_layer.h index fa765200..0651870c 100644 --- a/external/vulkan/windows/include/vulkan/vk_layer.h +++ b/external/vulkan/windows/include/vulkan/vk_layer.h @@ -83,7 +83,8 @@ typedef VkResult(VKAPI_PTR *PFN_PhysDevExt)(VkPhysicalDevice phys_device); typedef enum VkLayerFunction_ { VK_LAYER_LINK_INFO = 0, VK_LOADER_DATA_CALLBACK = 1, - VK_LOADER_LAYER_CREATE_DEVICE_CALLBACK = 2 + VK_LOADER_LAYER_CREATE_DEVICE_CALLBACK = 2, + VK_LOADER_FEATURES = 3, } VkLayerFunction; typedef struct VkLayerInstanceLink_ { @@ -111,6 +112,12 @@ typedef VkResult (VKAPI_PTR *PFN_vkSetDeviceLoaderData)(VkDevice device, typedef VkResult (VKAPI_PTR *PFN_vkLayerCreateDevice)(VkInstance instance, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkDevice *pDevice, PFN_vkGetInstanceProcAddr layerGIPA, PFN_vkGetDeviceProcAddr *nextGDPA); typedef void (VKAPI_PTR *PFN_vkLayerDestroyDevice)(VkDevice physicalDevice, const VkAllocationCallbacks *pAllocator, PFN_vkDestroyDevice destroyFunction); + +typedef enum VkLoaderFeastureFlagBits { + VK_LOADER_FEATURE_PHYSICAL_DEVICE_SORTING = 0x00000001, +} VkLoaderFlagBits; +typedef VkFlags VkLoaderFeatureFlags; + typedef struct { VkStructureType sType; // VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO const void *pNext; @@ -119,9 +126,10 @@ typedef struct { VkLayerInstanceLink *pLayerInfo; PFN_vkSetInstanceLoaderData pfnSetInstanceLoaderData; struct { - PFN_vkLayerCreateDevice pfnLayerCreateDevice; - PFN_vkLayerDestroyDevice pfnLayerDestroyDevice; - } layerDevice; + PFN_vkLayerCreateDevice pfnLayerCreateDevice; + PFN_vkLayerDestroyDevice pfnLayerDestroyDevice; + } layerDevice; + VkLoaderFeatureFlags loaderFeatures; } u; } VkLayerInstanceCreateInfo; diff --git a/external/vulkan/windows/include/vulkan/vk_platform.h b/external/vulkan/windows/include/vulkan/vk_platform.h index 72892992..18b913ab 100644 --- a/external/vulkan/windows/include/vulkan/vk_platform.h +++ b/external/vulkan/windows/include/vulkan/vk_platform.h @@ -2,19 +2,9 @@ // File: vk_platform.h // /* -** Copyright (c) 2014-2017 The Khronos Group Inc. +** Copyright 2014-2021 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ @@ -68,7 +58,9 @@ extern "C" #define VKAPI_PTR #endif -#include +#if !defined(VK_NO_STDDEF_H) + #include +#endif // !defined(VK_NO_STDDEF_H) #if !defined(VK_NO_STDINT_H) #if defined(_MSC_VER) && (_MSC_VER < 1600) diff --git a/external/vulkan/windows/include/vulkan/vulkan.h b/external/vulkan/windows/include/vulkan/vulkan.h index 5f853f9f..b187c9c1 100644 --- a/external/vulkan/windows/include/vulkan/vulkan.h +++ b/external/vulkan/windows/include/vulkan/vulkan.h @@ -2,19 +2,9 @@ #define VULKAN_H_ 1 /* -** Copyright (c) 2015-2019 The Khronos Group Inc. +** Copyright 2015-2021 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ #include "vk_platform.h" @@ -71,6 +61,12 @@ #endif +#ifdef VK_USE_PLATFORM_DIRECTFB_EXT +#include +#include "vulkan_directfb.h" +#endif + + #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT #include #include @@ -83,4 +79,15 @@ #include "vulkan_ggp.h" #endif + +#ifdef VK_USE_PLATFORM_SCREEN_QNX +#include +#include "vulkan_screen.h" +#endif + + +#ifdef VK_ENABLE_BETA_EXTENSIONS +#include "vulkan_beta.h" +#endif + #endif // VULKAN_H_ diff --git a/external/vulkan/windows/include/vulkan/vulkan.hpp b/external/vulkan/windows/include/vulkan/vulkan.hpp index 44186989..64aa2265 100644 --- a/external/vulkan/windows/include/vulkan/vulkan.hpp +++ b/external/vulkan/windows/include/vulkan/vulkan.hpp @@ -1,222 +1,536 @@ -// Copyright (c) 2015-2020 The Khronos Group Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// ---- Exceptions to the Apache 2.0 License: ---- -// -// As an exception, if you use this Software to generate code and portions of -// this Software are embedded into the generated code as a result, you may -// redistribute such product without providing attribution as would otherwise -// be required by Sections 4(a), 4(b) and 4(d) of the License. -// -// In addition, if you combine or link code generated by this Software with -// software that is licensed under the GPLv2 or the LGPL v2.0 or 2.1 -// ("`Combined Software`") and if a court of competent jurisdiction determines -// that the patent provision (Section 3), the indemnity provision (Section 9) -// or other Section of the License conflicts with the conditions of the -// applicable GPL or LGPL license, you may retroactively and prospectively -// choose to deem waived or otherwise exclude such Section(s) of the License, -// but only in their entirety and only with respect to the Combined Software. -// +// Copyright 2015-2021 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_HPP #define VULKAN_HPP +#if defined( _MSVC_LANG ) +# define VULKAN_HPP_CPLUSPLUS _MSVC_LANG +#else +# define VULKAN_HPP_CPLUSPLUS __cplusplus +#endif + +#if 201703L < VULKAN_HPP_CPLUSPLUS +# define VULKAN_HPP_CPP_VERSION 20 +#elif 201402L < VULKAN_HPP_CPLUSPLUS +# define VULKAN_HPP_CPP_VERSION 17 +#elif 201103L < VULKAN_HPP_CPLUSPLUS +# define VULKAN_HPP_CPP_VERSION 14 +#elif 199711L < VULKAN_HPP_CPLUSPLUS +# define VULKAN_HPP_CPP_VERSION 11 +#else +# error "vulkan.hpp needs at least c++ standard version 11" +#endif + #include #include #include #include #include +#include #include +#include #include #include #include #include #include -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -# include -# include +#if 17 <= VULKAN_HPP_CPP_VERSION +# include +#endif + +#if defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) +# if !defined( VULKAN_HPP_NO_SMART_HANDLE ) +# define VULKAN_HPP_NO_SMART_HANDLE +# endif +#else +# include +# include +#endif + +#if !defined( VULKAN_HPP_ASSERT ) +# include +# define VULKAN_HPP_ASSERT assert #endif -#if !defined(VULKAN_HPP_ASSERT) -# include -# define VULKAN_HPP_ASSERT assert +#if !defined( VULKAN_HPP_ASSERT_ON_RESULT ) +# define VULKAN_HPP_ASSERT_ON_RESULT VULKAN_HPP_ASSERT #endif -#if !defined(VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL) -# define VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 1 +#if !defined( VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL ) +# define VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 1 #endif #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL == 1 -# if defined(__linux__) || defined(__APPLE__) -# include +# if defined( __linux__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ ) +# include +# elif defined( _WIN32 ) +typedef struct HINSTANCE__ * HINSTANCE; +# if defined( _WIN64 ) +typedef int64_t( __stdcall * FARPROC )(); +# else +typedef int( __stdcall * FARPROC )(); +# endif +extern "C" __declspec( dllimport ) HINSTANCE __stdcall LoadLibraryA( char const * lpLibFileName ); +extern "C" __declspec( dllimport ) int __stdcall FreeLibrary( HINSTANCE hLibModule ); +extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE hModule, const char * lpProcName ); # endif +#endif -# if defined(_WIN32) -# include -# endif +#if !defined( __has_include ) +# define __has_include( x ) false +#endif + +#if ( 201711 <= __cpp_impl_three_way_comparison ) && __has_include( ) && !defined( VULKAN_HPP_NO_SPACESHIP_OPERATOR ) +# define VULKAN_HPP_HAS_SPACESHIP_OPERATOR +#endif +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) +# include #endif -static_assert( VK_HEADER_VERSION == 131 , "Wrong VK_HEADER_VERSION!" ); +static_assert( VK_HEADER_VERSION == 176, "Wrong VK_HEADER_VERSION!" ); // 32-bit vulkan is not typesafe for handles, so don't allow copy constructors on this platform by default. // To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION -#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) -# if !defined( VULKAN_HPP_TYPESAFE_CONVERSION ) -# define VULKAN_HPP_TYPESAFE_CONVERSION -# endif +#if ( VK_USE_64_BIT_PTR_DEFINES == 1 ) +# if !defined( VULKAN_HPP_TYPESAFE_CONVERSION ) +# define VULKAN_HPP_TYPESAFE_CONVERSION +# endif #endif // includes through some other header // this results in major(x) being resolved to gnu_dev_major(x) // which is an expression in a constructor initializer list. -#if defined(major) - #undef major +#if defined( major ) +# undef major #endif -#if defined(minor) - #undef minor +#if defined( minor ) +# undef minor #endif // Windows defines MemoryBarrier which is deprecated and collides // with the VULKAN_HPP_NAMESPACE::MemoryBarrier struct. -#if defined(MemoryBarrier) - #undef MemoryBarrier +#if defined( MemoryBarrier ) +# undef MemoryBarrier #endif -#if !defined(VULKAN_HPP_HAS_UNRESTRICTED_UNIONS) -# if defined(__clang__) -# if __has_feature(cxx_unrestricted_unions) -# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS -# endif -# elif defined(__GNUC__) -# define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) -# if 40600 <= GCC_VERSION -# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS -# endif -# elif defined(_MSC_VER) -# if 1900 <= _MSC_VER -# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS +#if !defined( VULKAN_HPP_HAS_UNRESTRICTED_UNIONS ) +# if defined( __clang__ ) +# if __has_feature( cxx_unrestricted_unions ) +# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS +# endif +# elif defined( __GNUC__ ) +# define GCC_VERSION ( __GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ ) +# if 40600 <= GCC_VERSION +# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS +# endif +# elif defined( _MSC_VER ) +# if 1900 <= _MSC_VER +# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS +# endif # endif -# endif #endif -#if !defined(VULKAN_HPP_INLINE) -# if defined(__clang__) -# if __has_attribute(always_inline) -# define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__ +#if !defined( VULKAN_HPP_INLINE ) +# if defined( __clang__ ) +# if __has_attribute( always_inline ) +# define VULKAN_HPP_INLINE __attribute__( ( always_inline ) ) __inline__ +# else +# define VULKAN_HPP_INLINE inline +# endif +# elif defined( __GNUC__ ) +# define VULKAN_HPP_INLINE __attribute__( ( always_inline ) ) __inline__ +# elif defined( _MSC_VER ) +# define VULKAN_HPP_INLINE inline # else -# define VULKAN_HPP_INLINE inline +# define VULKAN_HPP_INLINE inline # endif -# elif defined(__GNUC__) -# define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__ -# elif defined(_MSC_VER) -# define VULKAN_HPP_INLINE inline -# else -# define VULKAN_HPP_INLINE inline -# endif #endif -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) -# define VULKAN_HPP_TYPESAFE_EXPLICIT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) +# define VULKAN_HPP_TYPESAFE_EXPLICIT #else -# define VULKAN_HPP_TYPESAFE_EXPLICIT explicit +# define VULKAN_HPP_TYPESAFE_EXPLICIT explicit #endif -#if defined(__cpp_constexpr) -# define VULKAN_HPP_CONSTEXPR constexpr -# if __cpp_constexpr >= 201304 -# define VULKAN_HPP_CONSTEXPR_14 constexpr -# else +#if defined( __cpp_constexpr ) +# define VULKAN_HPP_CONSTEXPR constexpr +# if __cpp_constexpr >= 201304 +# define VULKAN_HPP_CONSTEXPR_14 constexpr +# else +# define VULKAN_HPP_CONSTEXPR_14 +# endif +# define VULKAN_HPP_CONST_OR_CONSTEXPR constexpr +#else +# define VULKAN_HPP_CONSTEXPR # define VULKAN_HPP_CONSTEXPR_14 -# endif -# define VULKAN_HPP_CONST_OR_CONSTEXPR constexpr +# define VULKAN_HPP_CONST_OR_CONSTEXPR const +#endif + +#if !defined( VULKAN_HPP_NOEXCEPT ) +# if defined( _MSC_VER ) && ( _MSC_VER <= 1800 ) +# define VULKAN_HPP_NOEXCEPT +# else +# define VULKAN_HPP_NOEXCEPT noexcept +# define VULKAN_HPP_HAS_NOEXCEPT 1 +# if defined( VULKAN_HPP_NO_EXCEPTIONS ) +# define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS noexcept +# else +# define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS +# endif +# endif +#endif + +#if 14 <= VULKAN_HPP_CPP_VERSION +# define VULKAN_HPP_DEPRECATED( msg ) [[deprecated( msg )]] #else -# define VULKAN_HPP_CONSTEXPR -# define VULKAN_HPP_CONSTEXPR_14 -# define VULKAN_HPP_CONST_OR_CONSTEXPR const +# define VULKAN_HPP_DEPRECATED( msg ) #endif -#if !defined(VULKAN_HPP_NOEXCEPT) -# if defined(_MSC_VER) && (_MSC_VER <= 1800) -# define VULKAN_HPP_NOEXCEPT -# else -# define VULKAN_HPP_NOEXCEPT noexcept -# define VULKAN_HPP_HAS_NOEXCEPT 1 -# endif +#if ( 17 <= VULKAN_HPP_CPP_VERSION ) && !defined( VULKAN_HPP_NO_NODISCARD_WARNINGS ) +# define VULKAN_HPP_NODISCARD [[nodiscard]] +# if defined( VULKAN_HPP_NO_EXCEPTIONS ) +# define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS [[nodiscard]] +# else +# define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS +# endif +#else +# define VULKAN_HPP_NODISCARD +# define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS #endif -#if !defined(VULKAN_HPP_NAMESPACE) -#define VULKAN_HPP_NAMESPACE vk +#if !defined( VULKAN_HPP_NAMESPACE ) +# define VULKAN_HPP_NAMESPACE vk #endif -#define VULKAN_HPP_STRINGIFY2(text) #text -#define VULKAN_HPP_STRINGIFY(text) VULKAN_HPP_STRINGIFY2(text) -#define VULKAN_HPP_NAMESPACE_STRING VULKAN_HPP_STRINGIFY(VULKAN_HPP_NAMESPACE) +#define VULKAN_HPP_STRINGIFY2( text ) #text +#define VULKAN_HPP_STRINGIFY( text ) VULKAN_HPP_STRINGIFY2( text ) +#define VULKAN_HPP_NAMESPACE_STRING VULKAN_HPP_STRINGIFY( VULKAN_HPP_NAMESPACE ) namespace VULKAN_HPP_NAMESPACE { -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) template class ArrayProxy { public: - VULKAN_HPP_CONSTEXPR ArrayProxy(std::nullptr_t) VULKAN_HPP_NOEXCEPT - : m_count(0) - , m_ptr(nullptr) + VULKAN_HPP_CONSTEXPR ArrayProxy() VULKAN_HPP_NOEXCEPT + : m_count( 0 ) + , m_ptr( nullptr ) + {} + + VULKAN_HPP_CONSTEXPR ArrayProxy( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + : m_count( 0 ) + , m_ptr( nullptr ) + {} + + ArrayProxy( T & value ) VULKAN_HPP_NOEXCEPT + : m_count( 1 ) + , m_ptr( &value ) + {} + + template ::value, int>::type = 0> + ArrayProxy( typename std::remove_const::type & value ) VULKAN_HPP_NOEXCEPT + : m_count( 1 ) + , m_ptr( &value ) + {} + + ArrayProxy( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT + : m_count( count ) + , m_ptr( ptr ) + {} + + template ::value, int>::type = 0> + ArrayProxy( uint32_t count, typename std::remove_const::type * ptr ) VULKAN_HPP_NOEXCEPT + : m_count( count ) + , m_ptr( ptr ) + {} + +# if __GNUC__ >= 9 +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Winit-list-lifetime" +# endif + + ArrayProxy( std::initializer_list const & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) + {} + + template ::value, int>::type = 0> + ArrayProxy( std::initializer_list::type> const & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) + {} + + ArrayProxy( std::initializer_list & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) + {} + + template ::value, int>::type = 0> + ArrayProxy( std::initializer_list::type> & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) + {} + +# if __GNUC__ >= 9 +# pragma GCC diagnostic pop +# endif + + template + ArrayProxy( std::array const & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) + {} + + template ::value, int>::type = 0> + ArrayProxy( std::array::type, N> const & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) + {} + + template + ArrayProxy( std::array & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) + {} + + template ::value, int>::type = 0> + ArrayProxy( std::array::type, N> & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) + {} + + template ::type>> + ArrayProxy( std::vector const & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + template ::type>, + typename B = T, + typename std::enable_if::value, int>::type = 0> + ArrayProxy( std::vector::type, Allocator> const & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + template ::type>> + ArrayProxy( std::vector & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + template ::type>, + typename B = T, + typename std::enable_if::value, int>::type = 0> + ArrayProxy( std::vector::type, Allocator> & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + const T * begin() const VULKAN_HPP_NOEXCEPT + { + return m_ptr; + } + + const T * end() const VULKAN_HPP_NOEXCEPT + { + return m_ptr + m_count; + } + + const T & front() const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( m_count && m_ptr ); + return *m_ptr; + } + + const T & back() const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( m_count && m_ptr ); + return *( m_ptr + m_count - 1 ); + } + + bool empty() const VULKAN_HPP_NOEXCEPT + { + return ( m_count == 0 ); + } + + uint32_t size() const VULKAN_HPP_NOEXCEPT + { + return m_count; + } + + T * data() const VULKAN_HPP_NOEXCEPT + { + return m_ptr; + } + + private: + uint32_t m_count; + T * m_ptr; + }; + + template + class ArrayProxyNoTemporaries + { + public: + VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries() VULKAN_HPP_NOEXCEPT + : m_count( 0 ) + , m_ptr( nullptr ) + {} + + VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + : m_count( 0 ) + , m_ptr( nullptr ) + {} + + ArrayProxyNoTemporaries( T & value ) VULKAN_HPP_NOEXCEPT + : m_count( 1 ) + , m_ptr( &value ) + {} + + ArrayProxyNoTemporaries( T && value ) = delete; + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( typename std::remove_const::type & value ) VULKAN_HPP_NOEXCEPT + : m_count( 1 ) + , m_ptr( &value ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( typename std::remove_const::type && value ) = delete; + + ArrayProxyNoTemporaries( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT + : m_count( count ) + , m_ptr( ptr ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( uint32_t count, typename std::remove_const::type * ptr ) VULKAN_HPP_NOEXCEPT + : m_count( count ) + , m_ptr( ptr ) + {} + + ArrayProxyNoTemporaries( std::initializer_list const & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) + {} + + ArrayProxyNoTemporaries( std::initializer_list const && list ) = delete; + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::initializer_list::type> const & list ) + VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::initializer_list::type> const && list ) = delete; + + ArrayProxyNoTemporaries( std::initializer_list & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) + {} + + ArrayProxyNoTemporaries( std::initializer_list && list ) = delete; + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::initializer_list::type> & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) {} - ArrayProxy(typename std::remove_reference::type & ptr) VULKAN_HPP_NOEXCEPT - : m_count(1) - , m_ptr(&ptr) + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::initializer_list::type> && list ) = delete; + + template + ArrayProxyNoTemporaries( std::array const & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) {} - ArrayProxy(uint32_t count, T * ptr) VULKAN_HPP_NOEXCEPT - : m_count(count) - , m_ptr(ptr) + template + ArrayProxyNoTemporaries( std::array const && data ) = delete; + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::array::type, N> const & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) {} + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::array::type, N> const && data ) = delete; + template - ArrayProxy(std::array::type, N> & data) VULKAN_HPP_NOEXCEPT - : m_count(N) - , m_ptr(data.data()) + ArrayProxyNoTemporaries( std::array & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) {} template - ArrayProxy(std::array::type, N> const& data) VULKAN_HPP_NOEXCEPT - : m_count(N) - , m_ptr(data.data()) + ArrayProxyNoTemporaries( std::array && data ) = delete; + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::array::type, N> & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::array::type, N> && data ) = delete; + + template ::type>> + ArrayProxyNoTemporaries( std::vector const & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) {} template ::type>> - ArrayProxy(std::vector::type, Allocator> & data) VULKAN_HPP_NOEXCEPT - : m_count(static_cast(data.size())) - , m_ptr(data.data()) + ArrayProxyNoTemporaries( std::vector const && data ) = delete; + + template ::type>, + typename B = T, + typename std::enable_if::value, int>::type = 0> + ArrayProxyNoTemporaries( std::vector::type, Allocator> const & data ) + VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) {} + template ::type>, + typename B = T, + typename std::enable_if::value, int>::type = 0> + ArrayProxyNoTemporaries( std::vector::type, Allocator> const && data ) = delete; + template ::type>> - ArrayProxy(std::vector::type, Allocator> const& data) VULKAN_HPP_NOEXCEPT - : m_count(static_cast(data.size())) - , m_ptr(data.data()) + ArrayProxyNoTemporaries( std::vector & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) {} - ArrayProxy(std::initializer_list::type> const& data) VULKAN_HPP_NOEXCEPT - : m_count(static_cast(data.end() - data.begin())) - , m_ptr(data.begin()) + template ::type>> + ArrayProxyNoTemporaries( std::vector && data ) = delete; + + template ::type>, + typename B = T, + typename std::enable_if::value, int>::type = 0> + ArrayProxyNoTemporaries( std::vector::type, Allocator> & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) {} + template ::type>, + typename B = T, + typename std::enable_if::value, int>::type = 0> + ArrayProxyNoTemporaries( std::vector::type, Allocator> && data ) = delete; + const T * begin() const VULKAN_HPP_NOEXCEPT { return m_ptr; @@ -229,19 +543,19 @@ namespace VULKAN_HPP_NAMESPACE const T & front() const VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT(m_count && m_ptr); + VULKAN_HPP_ASSERT( m_count && m_ptr ); return *m_ptr; } const T & back() const VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT(m_count && m_ptr); - return *(m_ptr + m_count - 1); + VULKAN_HPP_ASSERT( m_count && m_ptr ); + return *( m_ptr + m_count - 1 ); } bool empty() const VULKAN_HPP_NOEXCEPT { - return (m_count == 0); + return ( m_count == 0 ); } uint32_t size() const VULKAN_HPP_NOEXCEPT @@ -255,67 +569,199 @@ namespace VULKAN_HPP_NAMESPACE } private: - uint32_t m_count; - T * m_ptr; + uint32_t m_count; + T * m_ptr; }; #endif - template struct FlagTraits + template + class ArrayWrapper1D : public std::array + { + public: + VULKAN_HPP_CONSTEXPR ArrayWrapper1D() VULKAN_HPP_NOEXCEPT : std::array() {} + + VULKAN_HPP_CONSTEXPR ArrayWrapper1D( std::array const & data ) VULKAN_HPP_NOEXCEPT : std::array( data ) + {} + +#if defined( _WIN32 ) && !defined( _WIN64 ) + VULKAN_HPP_CONSTEXPR T const & operator[]( int index ) const VULKAN_HPP_NOEXCEPT + { + return std::array::operator[]( index ); + } + + T & operator[]( int index ) VULKAN_HPP_NOEXCEPT + { + return std::array::operator[]( index ); + } +#endif + + operator T const *() const VULKAN_HPP_NOEXCEPT + { + return this->data(); + } + + operator T *() VULKAN_HPP_NOEXCEPT + { + return this->data(); + } + + template ::value, int>::type = 0> + operator std::string() const + { + return std::string( this->data() ); + } + +#if 17 <= VULKAN_HPP_CPP_VERSION + template ::value, int>::type = 0> + operator std::string_view() const + { + return std::string_view( this->data() ); + } +#endif + + template ::value, int>::type = 0> + bool operator<( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return *static_cast const *>( this ) < *static_cast const *>( &rhs ); + } + + template ::value, int>::type = 0> + bool operator<=( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return *static_cast const *>( this ) <= *static_cast const *>( &rhs ); + } + + template ::value, int>::type = 0> + bool operator>( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return *static_cast const *>( this ) > *static_cast const *>( &rhs ); + } + + template ::value, int>::type = 0> + bool operator>=( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return *static_cast const *>( this ) >= *static_cast const *>( &rhs ); + } + + template ::value, int>::type = 0> + bool operator==( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return *static_cast const *>( this ) == *static_cast const *>( &rhs ); + } + + template ::value, int>::type = 0> + bool operator!=( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return *static_cast const *>( this ) != *static_cast const *>( &rhs ); + } + }; + + // specialization of relational operators between std::string and arrays of chars + template + bool operator<( std::string const & lhs, ArrayWrapper1D const & rhs ) VULKAN_HPP_NOEXCEPT + { + return lhs < rhs.data(); + } + + template + bool operator<=( std::string const & lhs, ArrayWrapper1D const & rhs ) VULKAN_HPP_NOEXCEPT + { + return lhs <= rhs.data(); + } + + template + bool operator>( std::string const & lhs, ArrayWrapper1D const & rhs ) VULKAN_HPP_NOEXCEPT + { + return lhs > rhs.data(); + } + + template + bool operator>=( std::string const & lhs, ArrayWrapper1D const & rhs ) VULKAN_HPP_NOEXCEPT + { + return lhs >= rhs.data(); + } + + template + bool operator==( std::string const & lhs, ArrayWrapper1D const & rhs ) VULKAN_HPP_NOEXCEPT + { + return lhs == rhs.data(); + } + + template + bool operator!=( std::string const & lhs, ArrayWrapper1D const & rhs ) VULKAN_HPP_NOEXCEPT + { + return lhs != rhs.data(); + } + + template + class ArrayWrapper2D : public std::array, N> + { + public: + VULKAN_HPP_CONSTEXPR ArrayWrapper2D() VULKAN_HPP_NOEXCEPT : std::array, N>() {} + + VULKAN_HPP_CONSTEXPR ArrayWrapper2D( std::array, N> const & data ) VULKAN_HPP_NOEXCEPT + : std::array, N>( *reinterpret_cast, N> const *>( &data ) ) + {} + }; + + template + struct FlagTraits { - enum { allFlags = 0 }; + enum + { + allFlags = 0 + }; }; - template + template class Flags { public: + using MaskType = typename std::underlying_type::type; + // constructors - VULKAN_HPP_CONSTEXPR Flags() VULKAN_HPP_NOEXCEPT - : m_mask(0) - {} + VULKAN_HPP_CONSTEXPR Flags() VULKAN_HPP_NOEXCEPT : m_mask( 0 ) {} - VULKAN_HPP_CONSTEXPR Flags(BitType bit) VULKAN_HPP_NOEXCEPT - : m_mask(static_cast(bit)) - {} + VULKAN_HPP_CONSTEXPR Flags( BitType bit ) VULKAN_HPP_NOEXCEPT : m_mask( static_cast( bit ) ) {} - VULKAN_HPP_CONSTEXPR Flags(Flags const& rhs) VULKAN_HPP_NOEXCEPT - : m_mask(rhs.m_mask) - {} + VULKAN_HPP_CONSTEXPR Flags( Flags const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_CONSTEXPR explicit Flags(MaskType flags) VULKAN_HPP_NOEXCEPT - : m_mask(flags) - {} + VULKAN_HPP_CONSTEXPR explicit Flags( MaskType flags ) VULKAN_HPP_NOEXCEPT : m_mask( flags ) {} // relational operators - VULKAN_HPP_CONSTEXPR bool operator<(Flags const& rhs) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( Flags const & ) const = default; +#else + VULKAN_HPP_CONSTEXPR bool operator<( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT { return m_mask < rhs.m_mask; } - VULKAN_HPP_CONSTEXPR bool operator<=(Flags const& rhs) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR bool operator<=( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT { return m_mask <= rhs.m_mask; } - VULKAN_HPP_CONSTEXPR bool operator>(Flags const& rhs) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR bool operator>( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT { return m_mask > rhs.m_mask; } - VULKAN_HPP_CONSTEXPR bool operator>=(Flags const& rhs) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR bool operator>=( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT { return m_mask >= rhs.m_mask; } - VULKAN_HPP_CONSTEXPR bool operator==(Flags const& rhs) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR bool operator==( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT { return m_mask == rhs.m_mask; } - VULKAN_HPP_CONSTEXPR bool operator!=(Flags const& rhs) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR bool operator!=( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT { return m_mask != rhs.m_mask; } +#endif // logical operator VULKAN_HPP_CONSTEXPR bool operator!() const VULKAN_HPP_NOEXCEPT @@ -324,46 +770,42 @@ namespace VULKAN_HPP_NAMESPACE } // bitwise operators - VULKAN_HPP_CONSTEXPR Flags operator&(Flags const& rhs) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR Flags operator&( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT { - return Flags(m_mask & rhs.m_mask); + return Flags( m_mask & rhs.m_mask ); } - VULKAN_HPP_CONSTEXPR Flags operator|(Flags const& rhs) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR Flags operator|( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT { - return Flags(m_mask | rhs.m_mask); + return Flags( m_mask | rhs.m_mask ); } - VULKAN_HPP_CONSTEXPR Flags operator^(Flags const& rhs) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR Flags operator^( Flags const & rhs ) const VULKAN_HPP_NOEXCEPT { - return Flags(m_mask ^ rhs.m_mask); + return Flags( m_mask ^ rhs.m_mask ); } - VULKAN_HPP_CONSTEXPR Flags operator~() const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR Flags operator~() const VULKAN_HPP_NOEXCEPT { - return Flags(m_mask ^ FlagTraits::allFlags); + return Flags( m_mask ^ FlagTraits::allFlags ); } // assignment operators - Flags & operator=(Flags const& rhs) VULKAN_HPP_NOEXCEPT - { - m_mask = rhs.m_mask; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 Flags & operator=( Flags const & rhs ) VULKAN_HPP_NOEXCEPT = default; - Flags & operator|=(Flags const& rhs) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 Flags & operator|=( Flags const & rhs ) VULKAN_HPP_NOEXCEPT { m_mask |= rhs.m_mask; return *this; } - Flags & operator&=(Flags const& rhs) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 Flags & operator&=( Flags const & rhs ) VULKAN_HPP_NOEXCEPT { m_mask &= rhs.m_mask; return *this; } - Flags & operator^=(Flags const& rhs) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 Flags & operator^=( Flags const & rhs ) VULKAN_HPP_NOEXCEPT { m_mask ^= rhs.m_mask; return *this; @@ -377,303 +819,398 @@ namespace VULKAN_HPP_NAMESPACE explicit VULKAN_HPP_CONSTEXPR operator MaskType() const VULKAN_HPP_NOEXCEPT { - return m_mask; + return m_mask; } +#if defined( VULKAN_HPP_FLAGS_MASK_TYPE_AS_PUBLIC ) + public: +#else private: - MaskType m_mask; +#endif + MaskType m_mask; }; - // relational operators - template - VULKAN_HPP_CONSTEXPR bool operator<(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + // relational operators only needed for pre C++20 + template + VULKAN_HPP_CONSTEXPR bool operator<( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT { - return flags > bit; + return flags.operator>( bit ); } - template - VULKAN_HPP_CONSTEXPR bool operator<=(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT + template + VULKAN_HPP_CONSTEXPR bool operator<=( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT { - return flags >= bit; + return flags.operator>=( bit ); } - template - VULKAN_HPP_CONSTEXPR bool operator>(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT + template + VULKAN_HPP_CONSTEXPR bool operator>( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT { - return flags < bit; + return flags.operator<( bit ); } - template - VULKAN_HPP_CONSTEXPR bool operator>=(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT + template + VULKAN_HPP_CONSTEXPR bool operator>=( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT { - return flags <= bit; + return flags.operator<=( bit ); } - template - VULKAN_HPP_CONSTEXPR bool operator==(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT + template + VULKAN_HPP_CONSTEXPR bool operator==( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT { - return flags == bit; + return flags.operator==( bit ); } - template - VULKAN_HPP_CONSTEXPR bool operator!=(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT + template + VULKAN_HPP_CONSTEXPR bool operator!=( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT { - return flags != bit; + return flags.operator!=( bit ); } +#endif // bitwise operators - template - VULKAN_HPP_CONSTEXPR Flags operator&(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT + template + VULKAN_HPP_CONSTEXPR Flags operator&(BitType bit, Flags const & flags)VULKAN_HPP_NOEXCEPT { - return flags & bit; + return flags.operator&( bit ); } - template - VULKAN_HPP_CONSTEXPR Flags operator|(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT + template + VULKAN_HPP_CONSTEXPR Flags operator|( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT { - return flags | bit; + return flags.operator|( bit ); } - template - VULKAN_HPP_CONSTEXPR Flags operator^(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT + template + VULKAN_HPP_CONSTEXPR Flags operator^( BitType bit, Flags const & flags ) VULKAN_HPP_NOEXCEPT { - return flags ^ bit; + return flags.operator^( bit ); } template class Optional { public: - Optional(RefType & reference) VULKAN_HPP_NOEXCEPT { m_ptr = &reference; } - Optional(RefType * ptr) VULKAN_HPP_NOEXCEPT { m_ptr = ptr; } - Optional(std::nullptr_t) VULKAN_HPP_NOEXCEPT { m_ptr = nullptr; } + Optional( RefType & reference ) VULKAN_HPP_NOEXCEPT + { + m_ptr = &reference; + } + Optional( RefType * ptr ) VULKAN_HPP_NOEXCEPT + { + m_ptr = ptr; + } + Optional( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + { + m_ptr = nullptr; + } - operator RefType*() const VULKAN_HPP_NOEXCEPT { return m_ptr; } - RefType const* operator->() const VULKAN_HPP_NOEXCEPT { return m_ptr; } - explicit operator bool() const VULKAN_HPP_NOEXCEPT { return !!m_ptr; } + operator RefType *() const VULKAN_HPP_NOEXCEPT + { + return m_ptr; + } + RefType const * operator->() const VULKAN_HPP_NOEXCEPT + { + return m_ptr; + } + explicit operator bool() const VULKAN_HPP_NOEXCEPT + { + return !!m_ptr; + } private: - RefType *m_ptr; + RefType * m_ptr; }; - template struct isStructureChainValid { enum { value = false }; }; - - template - struct TypeList + template + struct StructExtends { - using list = P; - using last = T; + enum + { + value = false + }; }; - template - struct extendCheck + template + struct IsPartOfStructureChain { - static const bool valid = isStructureChainValid::value || extendCheck::valid; + static const bool valid = false; }; - template - struct extendCheck,X> + template + struct IsPartOfStructureChain { - static const bool valid = isStructureChainValid::value; + static const bool valid = std::is_same::value || IsPartOfStructureChain::valid; }; - template - struct extendCheck + template + struct StructureChainContains { - static const bool valid = true; + static const bool value = + std::is_same>::type>::value || + StructureChainContains::value; }; - template - struct isPartOfStructureChain + template + struct StructureChainContains<0, T, ChainElements...> { - static const bool valid = false; + static const bool value = + std::is_same>::type>::value; }; - template - struct isPartOfStructureChain + template + struct StructureChainValidation { - static const bool valid = std::is_same::value || isPartOfStructureChain::valid; + using TestType = typename std::tuple_element>::type; + static const bool valid = + StructExtends>::type>::value && + ( TestType::allowDuplicate || !StructureChainContains::value ) && + StructureChainValidation::valid; }; - template - class StructureChainElement + template + struct StructureChainValidation<0, ChainElements...> { - public: - explicit operator Element&() VULKAN_HPP_NOEXCEPT { return value; } - explicit operator const Element&() const VULKAN_HPP_NOEXCEPT { return value; } - private: - Element value; + static const bool valid = true; }; - template - class StructureChain : private StructureChainElement... + template + class StructureChain : public std::tuple { public: StructureChain() VULKAN_HPP_NOEXCEPT { - link(); + static_assert( StructureChainValidation::valid, + "The structure chain is not valid!" ); + link(); + } + + StructureChain( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT : std::tuple( rhs ) + { + static_assert( StructureChainValidation::valid, + "The structure chain is not valid!" ); + link(); } - StructureChain(StructureChain const &rhs) VULKAN_HPP_NOEXCEPT + StructureChain( StructureChain && rhs ) VULKAN_HPP_NOEXCEPT + : std::tuple( std::forward>( rhs ) ) { - linkAndCopy(rhs); + static_assert( StructureChainValidation::valid, + "The structure chain is not valid!" ); + link(); } - StructureChain(StructureElements const &... elems) VULKAN_HPP_NOEXCEPT + StructureChain( ChainElements const &... elems ) VULKAN_HPP_NOEXCEPT : std::tuple( elems... ) { - linkAndCopyElements(elems...); + static_assert( StructureChainValidation::valid, + "The structure chain is not valid!" ); + link(); } - StructureChain& operator=(StructureChain const &rhs) VULKAN_HPP_NOEXCEPT + StructureChain & operator=( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT { - linkAndCopy(rhs); + std::tuple::operator=( rhs ); + link(); return *this; } - template ClassType& get() VULKAN_HPP_NOEXCEPT { return static_cast(*this);} + StructureChain & operator=( StructureChain && rhs ) = delete; - template - std::tuple get() + template >::type, size_t Which = 0> + T & get() VULKAN_HPP_NOEXCEPT { - return std::tuple_cat( - std::make_tuple(get(),get()), - std::make_tuple(get()...) - ); + return std::get::value>( + static_cast &>( *this ) ); } - template - void unlink() VULKAN_HPP_NOEXCEPT + template >::type, size_t Which = 0> + T const & get() const VULKAN_HPP_NOEXCEPT { - static_assert(isPartOfStructureChain::valid, "Can't unlink Structure that's not part of this StructureChain!"); - static_assert(!std::is_same>::type>::value, "It's not allowed to unlink the first element!"); - VkBaseOutStructure * ptr = reinterpret_cast(&get()); - assert(ptr != nullptr); - VkBaseOutStructure ** ppNext = &(reinterpret_cast(this)->pNext); - assert(*ppNext != nullptr); - while (*ppNext != ptr) - { - ppNext = &(*ppNext)->pNext; - assert(*ppNext != nullptr); // fires, if the ClassType member has already been unlinked ! - } - assert(*ppNext == ptr); - *ppNext = (*ppNext)->pNext; + return std::get::value>( + static_cast const &>( *this ) ); } - template - void relink() VULKAN_HPP_NOEXCEPT + template + std::tuple get() VULKAN_HPP_NOEXCEPT { - static_assert(isPartOfStructureChain::valid, "Can't relink Structure that's not part of this StructureChain!"); - static_assert(!std::is_same>::type>::value, "It's not allowed to have the first element unlinked!"); - VkBaseOutStructure * ptr = reinterpret_cast(&get()); - assert(ptr != nullptr); - VkBaseOutStructure ** ppNext = &(reinterpret_cast(this)->pNext); - assert(*ppNext != nullptr); -#if !defined(NDEBUG) - while (*ppNext) - { - assert(*ppNext != ptr); // fires, if the ClassType member has not been unlinked before - ppNext = &(*ppNext)->pNext; - } - ppNext = &(reinterpret_cast(this)->pNext); -#endif - ptr->pNext = *ppNext; - *ppNext = ptr; + return std::tie( get(), get(), get()... ); } - private: - template - void link() VULKAN_HPP_NOEXCEPT + template + std::tuple get() const VULKAN_HPP_NOEXCEPT + { + return std::tie( get(), get(), get()... ); + } + + template + typename std::enable_if< + std::is_same>::type>::value && + ( Which == 0 ), + bool>::type + isLinked() const VULKAN_HPP_NOEXCEPT { - static_assert(extendCheck::valid, "The structure chain is not valid!"); + return true; } - template - void link() VULKAN_HPP_NOEXCEPT + template + typename std::enable_if< + !std::is_same>::type>::value || + ( Which != 0 ), + bool>::type + isLinked() const VULKAN_HPP_NOEXCEPT { - static_assert(extendCheck::valid, "The structure chain is not valid!"); - X& x = static_cast(*this); - Y& y = static_cast(*this); - x.pNext = &y; - link, Y, Z...>(); + static_assert( IsPartOfStructureChain::valid, + "Can't unlink Structure that's not part of this StructureChain!" ); + return isLinked( reinterpret_cast( &get() ) ); } - template - void linkAndCopy(StructureChain const &rhs) VULKAN_HPP_NOEXCEPT + template + typename std::enable_if< + !std::is_same>::type>::value || + ( Which != 0 ), + void>::type + relink() VULKAN_HPP_NOEXCEPT { - static_assert(extendCheck::valid, "The structure chain is not valid!"); - static_cast(*this) = static_cast(rhs); + static_assert( IsPartOfStructureChain::valid, + "Can't relink Structure that's not part of this StructureChain!" ); + auto pNext = reinterpret_cast( &get() ); + VULKAN_HPP_ASSERT( !isLinked( pNext ) ); + auto & headElement = std::get<0>( static_cast &>( *this ) ); + pNext->pNext = reinterpret_cast( headElement.pNext ); + headElement.pNext = pNext; } - template - void linkAndCopy(StructureChain const &rhs) VULKAN_HPP_NOEXCEPT + template + typename std::enable_if< + !std::is_same>::type>::value || + ( Which != 0 ), + void>::type + unlink() VULKAN_HPP_NOEXCEPT { - static_assert(extendCheck::valid, "The structure chain is not valid!"); - X& x = static_cast(*this); - Y& y = static_cast(*this); - x = static_cast(rhs); - x.pNext = &y; - linkAndCopy, Y, Z...>(rhs); + static_assert( IsPartOfStructureChain::valid, + "Can't unlink Structure that's not part of this StructureChain!" ); + unlink( reinterpret_cast( &get() ) ); + } + + private: + template + struct ChainElementIndex : ChainElementIndex + {}; + + template + struct ChainElementIndex::value, void>::type, + First, + Types...> : ChainElementIndex + {}; + + template + struct ChainElementIndex::value, void>::type, + First, + Types...> : ChainElementIndex + {}; + + template + struct ChainElementIndex::value, void>::type, + First, + Types...> : std::integral_constant + {}; + + bool isLinked( VkBaseInStructure const * pNext ) const VULKAN_HPP_NOEXCEPT + { + VkBaseInStructure const * elementPtr = reinterpret_cast( + &std::get<0>( static_cast const &>( *this ) ) ); + while ( elementPtr ) + { + if ( elementPtr->pNext == pNext ) + { + return true; + } + elementPtr = elementPtr->pNext; + } + return false; } - template - void linkAndCopyElements(X const &xelem) VULKAN_HPP_NOEXCEPT + template + typename std::enable_if::type link() VULKAN_HPP_NOEXCEPT { - static_assert(extendCheck::valid, "The structure chain is not valid!"); - static_cast(*this) = xelem; + auto & x = std::get( static_cast &>( *this ) ); + x.pNext = &std::get( static_cast &>( *this ) ); + link(); } - template - void linkAndCopyElements(X const &xelem, Y const &yelem, Z const &... zelem) VULKAN_HPP_NOEXCEPT + template + typename std::enable_if::type link() VULKAN_HPP_NOEXCEPT + {} + + void unlink( VkBaseOutStructure const * pNext ) VULKAN_HPP_NOEXCEPT { - static_assert(extendCheck::valid, "The structure chain is not valid!"); - X& x = static_cast(*this); - Y& y = static_cast(*this); - x = xelem; - x.pNext = &y; - linkAndCopyElements, Y, Z...>(yelem, zelem...); + VkBaseOutStructure * elementPtr = + reinterpret_cast( &std::get<0>( static_cast &>( *this ) ) ); + while ( elementPtr && ( elementPtr->pNext != pNext ) ) + { + elementPtr = elementPtr->pNext; + } + if ( elementPtr ) + { + elementPtr->pNext = pNext->pNext; + } + else + { + VULKAN_HPP_ASSERT( false ); // fires, if the ClassType member has already been unlinked ! + } } }; -#if !defined(VULKAN_HPP_NO_SMART_HANDLE) - template class UniqueHandleTraits; +#if !defined( VULKAN_HPP_NO_SMART_HANDLE ) + template + class UniqueHandleTraits; template - class UniqueHandle : public UniqueHandleTraits::deleter + class UniqueHandle : public UniqueHandleTraits::deleter { private: - using Deleter = typename UniqueHandleTraits::deleter; + using Deleter = typename UniqueHandleTraits::deleter; public: using element_type = Type; - UniqueHandle() - : Deleter() - , m_value() - {} + UniqueHandle() : Deleter(), m_value() {} - explicit UniqueHandle( Type const& value, Deleter const& deleter = Deleter() ) VULKAN_HPP_NOEXCEPT - : Deleter( deleter) + explicit UniqueHandle( Type const & value, Deleter const & deleter = Deleter() ) VULKAN_HPP_NOEXCEPT + : Deleter( deleter ) , m_value( value ) {} - UniqueHandle( UniqueHandle const& ) = delete; + UniqueHandle( UniqueHandle const & ) = delete; UniqueHandle( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT - : Deleter( std::move( static_cast( other ) ) ) + : Deleter( std::move( static_cast( other ) ) ) , m_value( other.release() ) {} ~UniqueHandle() VULKAN_HPP_NOEXCEPT { - if ( m_value ) this->destroy( m_value ); + if ( m_value ) + { + this->destroy( m_value ); + } } - UniqueHandle & operator=( UniqueHandle const& ) = delete; + UniqueHandle & operator=( UniqueHandle const & ) = delete; UniqueHandle & operator=( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT { reset( other.release() ); - *static_cast(this) = std::move( static_cast(other) ); + *static_cast( this ) = std::move( static_cast( other ) ); return *this; } @@ -682,7 +1219,7 @@ namespace VULKAN_HPP_NAMESPACE return m_value.operator bool(); } - Type const* operator->() const VULKAN_HPP_NOEXCEPT + Type const * operator->() const VULKAN_HPP_NOEXCEPT { return &m_value; } @@ -692,7 +1229,7 @@ namespace VULKAN_HPP_NAMESPACE return &m_value; } - Type const& operator*() const VULKAN_HPP_NOEXCEPT + Type const & operator*() const VULKAN_HPP_NOEXCEPT { return m_value; } @@ -712,11 +1249,14 @@ namespace VULKAN_HPP_NAMESPACE return m_value; } - void reset( Type const& value = Type() ) VULKAN_HPP_NOEXCEPT + void reset( Type const & value = Type() ) VULKAN_HPP_NOEXCEPT { if ( m_value != value ) { - if ( m_value ) this->destroy( m_value ); + if ( m_value ) + { + this->destroy( m_value ); + } m_value = value; } } @@ -724,190 +1264,549 @@ namespace VULKAN_HPP_NAMESPACE Type release() VULKAN_HPP_NOEXCEPT { Type value = m_value; - m_value = nullptr; + m_value = nullptr; return value; } - void swap( UniqueHandle & rhs ) VULKAN_HPP_NOEXCEPT + void swap( UniqueHandle & rhs ) VULKAN_HPP_NOEXCEPT { - std::swap(m_value, rhs.m_value); - std::swap(static_cast(*this), static_cast(rhs)); + std::swap( m_value, rhs.m_value ); + std::swap( static_cast( *this ), static_cast( rhs ) ); } private: - Type m_value; + Type m_value; }; template - VULKAN_HPP_INLINE std::vector uniqueToRaw(std::vector const& handles) + VULKAN_HPP_INLINE std::vector + uniqueToRaw( std::vector const & handles ) { - std::vector newBuffer(handles.size()); - std::transform(handles.begin(), handles.end(), newBuffer.begin(), [](UniqueType const& handle) { return handle.get(); }); + std::vector newBuffer( handles.size() ); + std::transform( + handles.begin(), handles.end(), newBuffer.begin(), []( UniqueType const & handle ) { return handle.get(); } ); return newBuffer; } template - VULKAN_HPP_INLINE void swap( UniqueHandle & lhs, UniqueHandle & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE void swap( UniqueHandle & lhs, + UniqueHandle & rhs ) VULKAN_HPP_NOEXCEPT { lhs.swap( rhs ); } #endif -#if !defined(VK_NO_PROTOTYPES) +#if !defined( VK_NO_PROTOTYPES ) class DispatchLoaderStatic { public: - VkResult vkCreateInstance( const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + VkResult vkAcquireFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateInstance( pCreateInfo, pAllocator, pInstance ); + return ::vkAcquireFullScreenExclusiveModeEXT( device, swapchain ); } +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ - VkResult vkEnumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ) const VULKAN_HPP_NOEXCEPT + VkResult vkAcquireNextImage2KHR( VkDevice device, + const VkAcquireNextImageInfoKHR * pAcquireInfo, + uint32_t * pImageIndex ) const VULKAN_HPP_NOEXCEPT { - return ::vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, pProperties ); + return ::vkAcquireNextImage2KHR( device, pAcquireInfo, pImageIndex ); } - VkResult vkEnumerateInstanceLayerProperties( uint32_t* pPropertyCount, VkLayerProperties* pProperties ) const VULKAN_HPP_NOEXCEPT + VkResult vkAcquireNextImageKHR( VkDevice device, + VkSwapchainKHR swapchain, + uint64_t timeout, + VkSemaphore semaphore, + VkFence fence, + uint32_t * pImageIndex ) const VULKAN_HPP_NOEXCEPT { - return ::vkEnumerateInstanceLayerProperties( pPropertyCount, pProperties ); + return ::vkAcquireNextImageKHR( device, swapchain, timeout, semaphore, fence, pImageIndex ); } - VkResult vkEnumerateInstanceVersion( uint32_t* pApiVersion ) const VULKAN_HPP_NOEXCEPT + VkResult vkAcquirePerformanceConfigurationINTEL( VkDevice device, + const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo, + VkPerformanceConfigurationINTEL * pConfiguration ) const + VULKAN_HPP_NOEXCEPT { - return ::vkEnumerateInstanceVersion( pApiVersion ); + return ::vkAcquirePerformanceConfigurationINTEL( device, pAcquireInfo, pConfiguration ); + } + + VkResult vkAcquireProfilingLockKHR( VkDevice device, + const VkAcquireProfilingLockInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkAcquireProfilingLockKHR( device, pInfo ); + } + +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + VkResult vkAcquireWinrtDisplayNV( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT + { + return ::vkAcquireWinrtDisplayNV( physicalDevice, display ); + } +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +# if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) + VkResult vkAcquireXlibDisplayEXT( VkPhysicalDevice physicalDevice, + Display * dpy, + VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT + { + return ::vkAcquireXlibDisplayEXT( physicalDevice, dpy, display ); + } +# endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ + + VkResult vkAllocateCommandBuffers( VkDevice device, + const VkCommandBufferAllocateInfo * pAllocateInfo, + VkCommandBuffer * pCommandBuffers ) const VULKAN_HPP_NOEXCEPT + { + return ::vkAllocateCommandBuffers( device, pAllocateInfo, pCommandBuffers ); + } + + VkResult vkAllocateDescriptorSets( VkDevice device, + const VkDescriptorSetAllocateInfo * pAllocateInfo, + VkDescriptorSet * pDescriptorSets ) const VULKAN_HPP_NOEXCEPT + { + return ::vkAllocateDescriptorSets( device, pAllocateInfo, pDescriptorSets ); + } + + VkResult vkAllocateMemory( VkDevice device, + const VkMemoryAllocateInfo * pAllocateInfo, + const VkAllocationCallbacks * pAllocator, + VkDeviceMemory * pMemory ) const VULKAN_HPP_NOEXCEPT + { + return ::vkAllocateMemory( device, pAllocateInfo, pAllocator, pMemory ); } - VkResult vkBeginCommandBuffer( VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo ) const VULKAN_HPP_NOEXCEPT + VkResult vkBeginCommandBuffer( VkCommandBuffer commandBuffer, + const VkCommandBufferBeginInfo * pBeginInfo ) const VULKAN_HPP_NOEXCEPT { return ::vkBeginCommandBuffer( commandBuffer, pBeginInfo ); } - void vkCmdBeginConditionalRenderingEXT( VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin ) const VULKAN_HPP_NOEXCEPT + VkResult vkBindAccelerationStructureMemoryNV( VkDevice device, + uint32_t bindInfoCount, + const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkBindAccelerationStructureMemoryNV( device, bindInfoCount, pBindInfos ); + } + + VkResult vkBindBufferMemory( VkDevice device, + VkBuffer buffer, + VkDeviceMemory memory, + VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT + { + return ::vkBindBufferMemory( device, buffer, memory, memoryOffset ); + } + + VkResult vkBindBufferMemory2( VkDevice device, + uint32_t bindInfoCount, + const VkBindBufferMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT + { + return ::vkBindBufferMemory2( device, bindInfoCount, pBindInfos ); + } + + VkResult vkBindBufferMemory2KHR( VkDevice device, + uint32_t bindInfoCount, + const VkBindBufferMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT + { + return ::vkBindBufferMemory2KHR( device, bindInfoCount, pBindInfos ); + } + + VkResult vkBindImageMemory( VkDevice device, + VkImage image, + VkDeviceMemory memory, + VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT + { + return ::vkBindImageMemory( device, image, memory, memoryOffset ); + } + + VkResult vkBindImageMemory2( VkDevice device, + uint32_t bindInfoCount, + const VkBindImageMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT + { + return ::vkBindImageMemory2( device, bindInfoCount, pBindInfos ); + } + + VkResult vkBindImageMemory2KHR( VkDevice device, + uint32_t bindInfoCount, + const VkBindImageMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT + { + return ::vkBindImageMemory2KHR( device, bindInfoCount, pBindInfos ); + } + +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + VkResult + vkBindVideoSessionMemoryKHR( VkDevice device, + VkVideoSessionKHR videoSession, + uint32_t videoSessionBindMemoryCount, + const VkVideoBindMemoryKHR * pVideoSessionBindMemories ) const VULKAN_HPP_NOEXCEPT + { + return ::vkBindVideoSessionMemoryKHR( + device, videoSession, videoSessionBindMemoryCount, pVideoSessionBindMemories ); + } +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + VkResult vkBuildAccelerationStructuresKHR( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + uint32_t infoCount, + const VkAccelerationStructureBuildGeometryInfoKHR * pInfos, + const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos ) const VULKAN_HPP_NOEXCEPT + { + return ::vkBuildAccelerationStructuresKHR( device, deferredOperation, infoCount, pInfos, ppBuildRangeInfos ); + } + + void vkCmdBeginConditionalRenderingEXT( + VkCommandBuffer commandBuffer, + const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdBeginConditionalRenderingEXT( commandBuffer, pConditionalRenderingBegin ); } - void vkCmdBeginDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT + void vkCmdBeginDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, + const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdBeginDebugUtilsLabelEXT( commandBuffer, pLabelInfo ); } - void vkCmdBeginQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags ) const VULKAN_HPP_NOEXCEPT + void vkCmdBeginQuery( VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t query, + VkQueryControlFlags flags ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdBeginQuery( commandBuffer, queryPool, query, flags ); } - void vkCmdBeginQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index ) const VULKAN_HPP_NOEXCEPT + void vkCmdBeginQueryIndexedEXT( VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t query, + VkQueryControlFlags flags, + uint32_t index ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdBeginQueryIndexedEXT( commandBuffer, queryPool, query, flags, index ); } - void vkCmdBeginRenderPass( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents ) const VULKAN_HPP_NOEXCEPT + void vkCmdBeginRenderPass( VkCommandBuffer commandBuffer, + const VkRenderPassBeginInfo * pRenderPassBegin, + VkSubpassContents contents ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdBeginRenderPass( commandBuffer, pRenderPassBegin, contents ); } - void vkCmdBeginRenderPass2( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT + void vkCmdBeginRenderPass2( VkCommandBuffer commandBuffer, + const VkRenderPassBeginInfo * pRenderPassBegin, + const VkSubpassBeginInfo * pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdBeginRenderPass2( commandBuffer, pRenderPassBegin, pSubpassBeginInfo ); } - void vkCmdBeginRenderPass2KHR( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT + void vkCmdBeginRenderPass2KHR( VkCommandBuffer commandBuffer, + const VkRenderPassBeginInfo * pRenderPassBegin, + const VkSubpassBeginInfo * pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdBeginRenderPass2KHR( commandBuffer, pRenderPassBegin, pSubpassBeginInfo ); } - void vkCmdBeginTransformFeedbackEXT( VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT + void vkCmdBeginTransformFeedbackEXT( VkCommandBuffer commandBuffer, + uint32_t firstCounterBuffer, + uint32_t counterBufferCount, + const VkBuffer * pCounterBuffers, + const VkDeviceSize * pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdBeginTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets ); + return ::vkCmdBeginTransformFeedbackEXT( + commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets ); } - void vkCmdBindDescriptorSets( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + void vkCmdBeginVideoCodingKHR( VkCommandBuffer commandBuffer, + const VkVideoBeginCodingInfoKHR * pBeginInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdBindDescriptorSets( commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets ); + return ::vkCmdBeginVideoCodingKHR( commandBuffer, pBeginInfo ); } +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ - void vkCmdBindIndexBuffer( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType ) const VULKAN_HPP_NOEXCEPT + void vkCmdBindDescriptorSets( VkCommandBuffer commandBuffer, + VkPipelineBindPoint pipelineBindPoint, + VkPipelineLayout layout, + uint32_t firstSet, + uint32_t descriptorSetCount, + const VkDescriptorSet * pDescriptorSets, + uint32_t dynamicOffsetCount, + const uint32_t * pDynamicOffsets ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBindDescriptorSets( commandBuffer, + pipelineBindPoint, + layout, + firstSet, + descriptorSetCount, + pDescriptorSets, + dynamicOffsetCount, + pDynamicOffsets ); + } + + void vkCmdBindIndexBuffer( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkIndexType indexType ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdBindIndexBuffer( commandBuffer, buffer, offset, indexType ); } - void vkCmdBindPipeline( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline ) const VULKAN_HPP_NOEXCEPT + void vkCmdBindPipeline( VkCommandBuffer commandBuffer, + VkPipelineBindPoint pipelineBindPoint, + VkPipeline pipeline ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdBindPipeline( commandBuffer, pipelineBindPoint, pipeline ); } - void vkCmdBindShadingRateImageNV( VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT + void vkCmdBindPipelineShaderGroupNV( VkCommandBuffer commandBuffer, + VkPipelineBindPoint pipelineBindPoint, + VkPipeline pipeline, + uint32_t groupIndex ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBindPipelineShaderGroupNV( commandBuffer, pipelineBindPoint, pipeline, groupIndex ); + } + + void vkCmdBindShadingRateImageNV( VkCommandBuffer commandBuffer, + VkImageView imageView, + VkImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdBindShadingRateImageNV( commandBuffer, imageView, imageLayout ); } - void vkCmdBindTransformFeedbackBuffersEXT( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes ) const VULKAN_HPP_NOEXCEPT + void vkCmdBindTransformFeedbackBuffersEXT( VkCommandBuffer commandBuffer, + uint32_t firstBinding, + uint32_t bindingCount, + const VkBuffer * pBuffers, + const VkDeviceSize * pOffsets, + const VkDeviceSize * pSizes ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdBindTransformFeedbackBuffersEXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes ); + return ::vkCmdBindTransformFeedbackBuffersEXT( + commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes ); } - void vkCmdBindVertexBuffers( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets ) const VULKAN_HPP_NOEXCEPT + void vkCmdBindVertexBuffers( VkCommandBuffer commandBuffer, + uint32_t firstBinding, + uint32_t bindingCount, + const VkBuffer * pBuffers, + const VkDeviceSize * pOffsets ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdBindVertexBuffers( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets ); } - void vkCmdBlitImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter ) const VULKAN_HPP_NOEXCEPT + void vkCmdBindVertexBuffers2EXT( VkCommandBuffer commandBuffer, + uint32_t firstBinding, + uint32_t bindingCount, + const VkBuffer * pBuffers, + const VkDeviceSize * pOffsets, + const VkDeviceSize * pSizes, + const VkDeviceSize * pStrides ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBindVertexBuffers2EXT( + commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides ); + } + + void vkCmdBlitImage( VkCommandBuffer commandBuffer, + VkImage srcImage, + VkImageLayout srcImageLayout, + VkImage dstImage, + VkImageLayout dstImageLayout, + uint32_t regionCount, + const VkImageBlit * pRegions, + VkFilter filter ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBlitImage( + commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter ); + } + + void vkCmdBlitImage2KHR( VkCommandBuffer commandBuffer, + const VkBlitImageInfo2KHR * pBlitImageInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBlitImage2KHR( commandBuffer, pBlitImageInfo ); + } + + void vkCmdBuildAccelerationStructureNV( VkCommandBuffer commandBuffer, + const VkAccelerationStructureInfoNV * pInfo, + VkBuffer instanceData, + VkDeviceSize instanceOffset, + VkBool32 update, + VkAccelerationStructureNV dst, + VkAccelerationStructureNV src, + VkBuffer scratch, + VkDeviceSize scratchOffset ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdBuildAccelerationStructureNV( + commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset ); + } + + void vkCmdBuildAccelerationStructuresIndirectKHR( VkCommandBuffer commandBuffer, + uint32_t infoCount, + const VkAccelerationStructureBuildGeometryInfoKHR * pInfos, + const VkDeviceAddress * pIndirectDeviceAddresses, + const uint32_t * pIndirectStrides, + const uint32_t * const * ppMaxPrimitiveCounts ) const + VULKAN_HPP_NOEXCEPT { - return ::vkCmdBlitImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter ); + return ::vkCmdBuildAccelerationStructuresIndirectKHR( + commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts ); } - void vkCmdBuildAccelerationStructureNV( VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset ) const VULKAN_HPP_NOEXCEPT + void vkCmdBuildAccelerationStructuresKHR( + VkCommandBuffer commandBuffer, + uint32_t infoCount, + const VkAccelerationStructureBuildGeometryInfoKHR * pInfos, + const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdBuildAccelerationStructureNV( commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset ); + return ::vkCmdBuildAccelerationStructuresKHR( commandBuffer, infoCount, pInfos, ppBuildRangeInfos ); } - void vkCmdClearAttachments( VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects ) const VULKAN_HPP_NOEXCEPT + void vkCmdClearAttachments( VkCommandBuffer commandBuffer, + uint32_t attachmentCount, + const VkClearAttachment * pAttachments, + uint32_t rectCount, + const VkClearRect * pRects ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdClearAttachments( commandBuffer, attachmentCount, pAttachments, rectCount, pRects ); } - void vkCmdClearColorImage( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges ) const VULKAN_HPP_NOEXCEPT + void vkCmdClearColorImage( VkCommandBuffer commandBuffer, + VkImage image, + VkImageLayout imageLayout, + const VkClearColorValue * pColor, + uint32_t rangeCount, + const VkImageSubresourceRange * pRanges ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdClearColorImage( commandBuffer, image, imageLayout, pColor, rangeCount, pRanges ); } - void vkCmdClearDepthStencilImage( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges ) const VULKAN_HPP_NOEXCEPT + void vkCmdClearDepthStencilImage( VkCommandBuffer commandBuffer, + VkImage image, + VkImageLayout imageLayout, + const VkClearDepthStencilValue * pDepthStencil, + uint32_t rangeCount, + const VkImageSubresourceRange * pRanges ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdClearDepthStencilImage( commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges ); } - void vkCmdCopyAccelerationStructureNV( VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeNV mode ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + void vkCmdControlVideoCodingKHR( VkCommandBuffer commandBuffer, + const VkVideoCodingControlInfoKHR * pCodingControlInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdControlVideoCodingKHR( commandBuffer, pCodingControlInfo ); + } +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + void vkCmdCopyAccelerationStructureKHR( VkCommandBuffer commandBuffer, + const VkCopyAccelerationStructureInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdCopyAccelerationStructureKHR( commandBuffer, pInfo ); + } + + void vkCmdCopyAccelerationStructureNV( VkCommandBuffer commandBuffer, + VkAccelerationStructureNV dst, + VkAccelerationStructureNV src, + VkCopyAccelerationStructureModeKHR mode ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdCopyAccelerationStructureNV( commandBuffer, dst, src, mode ); } - void vkCmdCopyBuffer( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions ) const VULKAN_HPP_NOEXCEPT + void vkCmdCopyAccelerationStructureToMemoryKHR( VkCommandBuffer commandBuffer, + const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkCmdCopyAccelerationStructureToMemoryKHR( commandBuffer, pInfo ); + } + + void vkCmdCopyBuffer( VkCommandBuffer commandBuffer, + VkBuffer srcBuffer, + VkBuffer dstBuffer, + uint32_t regionCount, + const VkBufferCopy * pRegions ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdCopyBuffer( commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions ); } - void vkCmdCopyBufferToImage( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT + void vkCmdCopyBuffer2KHR( VkCommandBuffer commandBuffer, + const VkCopyBufferInfo2KHR * pCopyBufferInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdCopyBuffer2KHR( commandBuffer, pCopyBufferInfo ); + } + + void vkCmdCopyBufferToImage( VkCommandBuffer commandBuffer, + VkBuffer srcBuffer, + VkImage dstImage, + VkImageLayout dstImageLayout, + uint32_t regionCount, + const VkBufferImageCopy * pRegions ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdCopyBufferToImage( commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions ); } - void vkCmdCopyImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT + void + vkCmdCopyBufferToImage2KHR( VkCommandBuffer commandBuffer, + const VkCopyBufferToImageInfo2KHR * pCopyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdCopyBufferToImage2KHR( commandBuffer, pCopyBufferToImageInfo ); + } + + void vkCmdCopyImage( VkCommandBuffer commandBuffer, + VkImage srcImage, + VkImageLayout srcImageLayout, + VkImage dstImage, + VkImageLayout dstImageLayout, + uint32_t regionCount, + const VkImageCopy * pRegions ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdCopyImage( + commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions ); + } + + void vkCmdCopyImage2KHR( VkCommandBuffer commandBuffer, + const VkCopyImageInfo2KHR * pCopyImageInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdCopyImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions ); + return ::vkCmdCopyImage2KHR( commandBuffer, pCopyImageInfo ); } - void vkCmdCopyImageToBuffer( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT + void vkCmdCopyImageToBuffer( VkCommandBuffer commandBuffer, + VkImage srcImage, + VkImageLayout srcImageLayout, + VkBuffer dstBuffer, + uint32_t regionCount, + const VkBufferImageCopy * pRegions ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdCopyImageToBuffer( commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions ); } - void vkCmdCopyQueryPoolResults( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT + void + vkCmdCopyImageToBuffer2KHR( VkCommandBuffer commandBuffer, + const VkCopyImageToBufferInfo2KHR * pCopyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdCopyImageToBuffer2KHR( commandBuffer, pCopyImageToBufferInfo ); + } + + void vkCmdCopyMemoryToAccelerationStructureKHR( VkCommandBuffer commandBuffer, + const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkCmdCopyMemoryToAccelerationStructureKHR( commandBuffer, pInfo ); + } + + void vkCmdCopyQueryPoolResults( VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount, + VkBuffer dstBuffer, + VkDeviceSize dstOffset, + VkDeviceSize stride, + VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdCopyQueryPoolResults( commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags ); + return ::vkCmdCopyQueryPoolResults( + commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags ); } - void vkCmdDebugMarkerBeginEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT + void vkCmdDebugMarkerBeginEXT( VkCommandBuffer commandBuffer, + const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdDebugMarkerBeginEXT( commandBuffer, pMarkerInfo ); } @@ -917,101 +1816,216 @@ namespace VULKAN_HPP_NAMESPACE return ::vkCmdDebugMarkerEndEXT( commandBuffer ); } - void vkCmdDebugMarkerInsertEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT + void vkCmdDebugMarkerInsertEXT( VkCommandBuffer commandBuffer, + const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdDebugMarkerInsertEXT( commandBuffer, pMarkerInfo ); } - void vkCmdDispatch( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + void vkCmdDecodeVideoKHR( VkCommandBuffer commandBuffer, + const VkVideoDecodeInfoKHR * pFrameInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdDecodeVideoKHR( commandBuffer, pFrameInfo ); + } +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + void vkCmdDispatch( VkCommandBuffer commandBuffer, + uint32_t groupCountX, + uint32_t groupCountY, + uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdDispatch( commandBuffer, groupCountX, groupCountY, groupCountZ ); } - void vkCmdDispatchBase( VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT + void vkCmdDispatchBase( VkCommandBuffer commandBuffer, + uint32_t baseGroupX, + uint32_t baseGroupY, + uint32_t baseGroupZ, + uint32_t groupCountX, + uint32_t groupCountY, + uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdDispatchBase( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); + return ::vkCmdDispatchBase( + commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); } - void vkCmdDispatchBaseKHR( VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT + void vkCmdDispatchBaseKHR( VkCommandBuffer commandBuffer, + uint32_t baseGroupX, + uint32_t baseGroupY, + uint32_t baseGroupZ, + uint32_t groupCountX, + uint32_t groupCountY, + uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdDispatchBaseKHR( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); + return ::vkCmdDispatchBaseKHR( + commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); } - void vkCmdDispatchIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset ) const VULKAN_HPP_NOEXCEPT + void vkCmdDispatchIndirect( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdDispatchIndirect( commandBuffer, buffer, offset ); } - void vkCmdDraw( VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT + void vkCmdDraw( VkCommandBuffer commandBuffer, + uint32_t vertexCount, + uint32_t instanceCount, + uint32_t firstVertex, + uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdDraw( commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance ); } - void vkCmdDrawIndexed( VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT + void vkCmdDrawIndexed( VkCommandBuffer commandBuffer, + uint32_t indexCount, + uint32_t instanceCount, + uint32_t firstIndex, + int32_t vertexOffset, + uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdDrawIndexed( commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance ); } - void vkCmdDrawIndexedIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT + void vkCmdDrawIndexedIndirect( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + uint32_t drawCount, + uint32_t stride ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdDrawIndexedIndirect( commandBuffer, buffer, offset, drawCount, stride ); } - void vkCmdDrawIndexedIndirectCount( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT + void vkCmdDrawIndexedIndirectCount( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdDrawIndexedIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); + return ::vkCmdDrawIndexedIndirectCount( + commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); } - void vkCmdDrawIndexedIndirectCountAMD( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT + void vkCmdDrawIndexedIndirectCountAMD( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdDrawIndexedIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); + return ::vkCmdDrawIndexedIndirectCountAMD( + commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); } - void vkCmdDrawIndexedIndirectCountKHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT + void vkCmdDrawIndexedIndirectCountKHR( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdDrawIndexedIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); + return ::vkCmdDrawIndexedIndirectCountKHR( + commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); } - void vkCmdDrawIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT + void vkCmdDrawIndirect( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + uint32_t drawCount, + uint32_t stride ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdDrawIndirect( commandBuffer, buffer, offset, drawCount, stride ); } - void vkCmdDrawIndirectByteCountEXT( VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride ) const VULKAN_HPP_NOEXCEPT + void vkCmdDrawIndirectByteCountEXT( VkCommandBuffer commandBuffer, + uint32_t instanceCount, + uint32_t firstInstance, + VkBuffer counterBuffer, + VkDeviceSize counterBufferOffset, + uint32_t counterOffset, + uint32_t vertexStride ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdDrawIndirectByteCountEXT( commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride ); + return ::vkCmdDrawIndirectByteCountEXT( + commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride ); } - void vkCmdDrawIndirectCount( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT + void vkCmdDrawIndirectCount( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdDrawIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); + return ::vkCmdDrawIndirectCount( + commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); } - void vkCmdDrawIndirectCountAMD( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT + void vkCmdDrawIndirectCountAMD( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdDrawIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); + return ::vkCmdDrawIndirectCountAMD( + commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); } - void vkCmdDrawIndirectCountKHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT + void vkCmdDrawIndirectCountKHR( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdDrawIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); + return ::vkCmdDrawIndirectCountKHR( + commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); } - void vkCmdDrawMeshTasksIndirectCountNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT + void vkCmdDrawMeshTasksIndirectCountNV( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdDrawMeshTasksIndirectCountNV( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); + return ::vkCmdDrawMeshTasksIndirectCountNV( + commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); } - void vkCmdDrawMeshTasksIndirectNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT + void vkCmdDrawMeshTasksIndirectNV( VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + uint32_t drawCount, + uint32_t stride ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdDrawMeshTasksIndirectNV( commandBuffer, buffer, offset, drawCount, stride ); } - void vkCmdDrawMeshTasksNV( VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask ) const VULKAN_HPP_NOEXCEPT + void vkCmdDrawMeshTasksNV( VkCommandBuffer commandBuffer, + uint32_t taskCount, + uint32_t firstTask ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdDrawMeshTasksNV( commandBuffer, taskCount, firstTask ); } +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + void vkCmdEncodeVideoKHR( VkCommandBuffer commandBuffer, + const VkVideoEncodeInfoKHR * pEncodeInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdEncodeVideoKHR( commandBuffer, pEncodeInfo ); + } +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ + void vkCmdEndConditionalRenderingEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdEndConditionalRenderingEXT( commandBuffer ); @@ -1027,7 +2041,10 @@ namespace VULKAN_HPP_NAMESPACE return ::vkCmdEndQuery( commandBuffer, queryPool, query ); } - void vkCmdEndQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index ) const VULKAN_HPP_NOEXCEPT + void vkCmdEndQueryIndexedEXT( VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t query, + uint32_t index ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdEndQueryIndexedEXT( commandBuffer, queryPool, query, index ); } @@ -1037,32 +2054,62 @@ namespace VULKAN_HPP_NAMESPACE return ::vkCmdEndRenderPass( commandBuffer ); } - void vkCmdEndRenderPass2( VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT + void vkCmdEndRenderPass2( VkCommandBuffer commandBuffer, + const VkSubpassEndInfo * pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdEndRenderPass2( commandBuffer, pSubpassEndInfo ); } - void vkCmdEndRenderPass2KHR( VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT + void vkCmdEndRenderPass2KHR( VkCommandBuffer commandBuffer, + const VkSubpassEndInfo * pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdEndRenderPass2KHR( commandBuffer, pSubpassEndInfo ); } - void vkCmdEndTransformFeedbackEXT( VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT + void vkCmdEndTransformFeedbackEXT( VkCommandBuffer commandBuffer, + uint32_t firstCounterBuffer, + uint32_t counterBufferCount, + const VkBuffer * pCounterBuffers, + const VkDeviceSize * pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdEndTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets ); + return ::vkCmdEndTransformFeedbackEXT( + commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets ); } - void vkCmdExecuteCommands( VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + void vkCmdEndVideoCodingKHR( VkCommandBuffer commandBuffer, + const VkVideoEndCodingInfoKHR * pEndCodingInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdEndVideoCodingKHR( commandBuffer, pEndCodingInfo ); + } +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + void vkCmdExecuteCommands( VkCommandBuffer commandBuffer, + uint32_t commandBufferCount, + const VkCommandBuffer * pCommandBuffers ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdExecuteCommands( commandBuffer, commandBufferCount, pCommandBuffers ); } - void vkCmdFillBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data ) const VULKAN_HPP_NOEXCEPT + void vkCmdExecuteGeneratedCommandsNV( VkCommandBuffer commandBuffer, + VkBool32 isPreprocessed, + const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkCmdExecuteGeneratedCommandsNV( commandBuffer, isPreprocessed, pGeneratedCommandsInfo ); + } + + void vkCmdFillBuffer( VkCommandBuffer commandBuffer, + VkBuffer dstBuffer, + VkDeviceSize dstOffset, + VkDeviceSize size, + uint32_t data ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdFillBuffer( commandBuffer, dstBuffer, dstOffset, size, data ); } - void vkCmdInsertDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT + void vkCmdInsertDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, + const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdInsertDebugUtilsLabelEXT( commandBuffer, pLabelInfo ); } @@ -1072,1672 +2119,2799 @@ namespace VULKAN_HPP_NAMESPACE return ::vkCmdNextSubpass( commandBuffer, contents ); } - void vkCmdNextSubpass2( VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT + void vkCmdNextSubpass2( VkCommandBuffer commandBuffer, + const VkSubpassBeginInfo * pSubpassBeginInfo, + const VkSubpassEndInfo * pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdNextSubpass2( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo ); } - void vkCmdNextSubpass2KHR( VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT + void vkCmdNextSubpass2KHR( VkCommandBuffer commandBuffer, + const VkSubpassBeginInfo * pSubpassBeginInfo, + const VkSubpassEndInfo * pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdNextSubpass2KHR( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo ); } - void vkCmdPipelineBarrier( VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT + void vkCmdPipelineBarrier( VkCommandBuffer commandBuffer, + VkPipelineStageFlags srcStageMask, + VkPipelineStageFlags dstStageMask, + VkDependencyFlags dependencyFlags, + uint32_t memoryBarrierCount, + const VkMemoryBarrier * pMemoryBarriers, + uint32_t bufferMemoryBarrierCount, + const VkBufferMemoryBarrier * pBufferMemoryBarriers, + uint32_t imageMemoryBarrierCount, + const VkImageMemoryBarrier * pImageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdPipelineBarrier( commandBuffer, + srcStageMask, + dstStageMask, + dependencyFlags, + memoryBarrierCount, + pMemoryBarriers, + bufferMemoryBarrierCount, + pBufferMemoryBarriers, + imageMemoryBarrierCount, + pImageMemoryBarriers ); + } + + void vkCmdPipelineBarrier2KHR( VkCommandBuffer commandBuffer, + const VkDependencyInfoKHR * pDependencyInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdPipelineBarrier( commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers ); + return ::vkCmdPipelineBarrier2KHR( commandBuffer, pDependencyInfo ); } - void vkCmdProcessCommandsNVX( VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo ) const VULKAN_HPP_NOEXCEPT + void vkCmdPreprocessGeneratedCommandsNV( VkCommandBuffer commandBuffer, + const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) const + VULKAN_HPP_NOEXCEPT { - return ::vkCmdProcessCommandsNVX( commandBuffer, pProcessCommandsInfo ); + return ::vkCmdPreprocessGeneratedCommandsNV( commandBuffer, pGeneratedCommandsInfo ); } - void vkCmdPushConstants( VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues ) const VULKAN_HPP_NOEXCEPT + void vkCmdPushConstants( VkCommandBuffer commandBuffer, + VkPipelineLayout layout, + VkShaderStageFlags stageFlags, + uint32_t offset, + uint32_t size, + const void * pValues ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdPushConstants( commandBuffer, layout, stageFlags, offset, size, pValues ); } - void vkCmdPushDescriptorSetKHR( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites ) const VULKAN_HPP_NOEXCEPT + void vkCmdPushDescriptorSetKHR( VkCommandBuffer commandBuffer, + VkPipelineBindPoint pipelineBindPoint, + VkPipelineLayout layout, + uint32_t set, + uint32_t descriptorWriteCount, + const VkWriteDescriptorSet * pDescriptorWrites ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdPushDescriptorSetKHR( commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites ); + return ::vkCmdPushDescriptorSetKHR( + commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites ); } - void vkCmdPushDescriptorSetWithTemplateKHR( VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData ) const VULKAN_HPP_NOEXCEPT + void vkCmdPushDescriptorSetWithTemplateKHR( VkCommandBuffer commandBuffer, + VkDescriptorUpdateTemplate descriptorUpdateTemplate, + VkPipelineLayout layout, + uint32_t set, + const void * pData ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdPushDescriptorSetWithTemplateKHR( commandBuffer, descriptorUpdateTemplate, layout, set, pData ); } - void vkCmdReserveSpaceForCommandsNVX( VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo ) const VULKAN_HPP_NOEXCEPT + void vkCmdResetEvent( VkCommandBuffer commandBuffer, + VkEvent event, + VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdReserveSpaceForCommandsNVX( commandBuffer, pReserveSpaceInfo ); + return ::vkCmdResetEvent( commandBuffer, event, stageMask ); } - void vkCmdResetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT + void vkCmdResetEvent2KHR( VkCommandBuffer commandBuffer, + VkEvent event, + VkPipelineStageFlags2KHR stageMask ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdResetEvent( commandBuffer, event, stageMask ); + return ::vkCmdResetEvent2KHR( commandBuffer, event, stageMask ); } - void vkCmdResetQueryPool( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT + void vkCmdResetQueryPool( VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdResetQueryPool( commandBuffer, queryPool, firstQuery, queryCount ); } - void vkCmdResolveImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions ) const VULKAN_HPP_NOEXCEPT + void vkCmdResolveImage( VkCommandBuffer commandBuffer, + VkImage srcImage, + VkImageLayout srcImageLayout, + VkImage dstImage, + VkImageLayout dstImageLayout, + uint32_t regionCount, + const VkImageResolve * pRegions ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdResolveImage( + commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions ); + } + + void vkCmdResolveImage2KHR( VkCommandBuffer commandBuffer, + const VkResolveImageInfo2KHR * pResolveImageInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdResolveImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions ); + return ::vkCmdResolveImage2KHR( commandBuffer, pResolveImageInfo ); } - void vkCmdSetBlendConstants( VkCommandBuffer commandBuffer, const float blendConstants[4] ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetBlendConstants( VkCommandBuffer commandBuffer, + const float blendConstants[4] ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdSetBlendConstants( commandBuffer, blendConstants ); } - void vkCmdSetCheckpointNV( VkCommandBuffer commandBuffer, const void* pCheckpointMarker ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetCheckpointNV( VkCommandBuffer commandBuffer, const void * pCheckpointMarker ) const VULKAN_HPP_NOEXCEPT { return ::vkCmdSetCheckpointNV( commandBuffer, pCheckpointMarker ); } - void vkCmdSetCoarseSampleOrderNV( VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders ) const VULKAN_HPP_NOEXCEPT + void + vkCmdSetCoarseSampleOrderNV( VkCommandBuffer commandBuffer, + VkCoarseSampleOrderTypeNV sampleOrderType, + uint32_t customSampleOrderCount, + const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdSetCoarseSampleOrderNV( commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders ); + return ::vkCmdSetCoarseSampleOrderNV( + commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders ); } - void vkCmdSetDepthBias( VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetColorWriteEnableEXT( VkCommandBuffer commandBuffer, + uint32_t attachmentCount, + const VkBool32 * pColorWriteEnables ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdSetDepthBias( commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor ); + return ::vkCmdSetColorWriteEnableEXT( commandBuffer, attachmentCount, pColorWriteEnables ); } - void vkCmdSetDepthBounds( VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetCullModeEXT( VkCommandBuffer commandBuffer, VkCullModeFlags cullMode ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdSetDepthBounds( commandBuffer, minDepthBounds, maxDepthBounds ); + return ::vkCmdSetCullModeEXT( commandBuffer, cullMode ); } - void vkCmdSetDeviceMask( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetDepthBias( VkCommandBuffer commandBuffer, + float depthBiasConstantFactor, + float depthBiasClamp, + float depthBiasSlopeFactor ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdSetDeviceMask( commandBuffer, deviceMask ); + return ::vkCmdSetDepthBias( commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor ); } - void vkCmdSetDeviceMaskKHR( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetDepthBiasEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdSetDeviceMaskKHR( commandBuffer, deviceMask ); + return ::vkCmdSetDepthBiasEnableEXT( commandBuffer, depthBiasEnable ); } - void vkCmdSetDiscardRectangleEXT( VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetDepthBounds( VkCommandBuffer commandBuffer, + float minDepthBounds, + float maxDepthBounds ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdSetDiscardRectangleEXT( commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles ); + return ::vkCmdSetDepthBounds( commandBuffer, minDepthBounds, maxDepthBounds ); } - void vkCmdSetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetDepthBoundsTestEnableEXT( VkCommandBuffer commandBuffer, + VkBool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdSetEvent( commandBuffer, event, stageMask ); + return ::vkCmdSetDepthBoundsTestEnableEXT( commandBuffer, depthBoundsTestEnable ); } - void vkCmdSetExclusiveScissorNV( VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetDepthCompareOpEXT( VkCommandBuffer commandBuffer, + VkCompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdSetExclusiveScissorNV( commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors ); + return ::vkCmdSetDepthCompareOpEXT( commandBuffer, depthCompareOp ); } - void vkCmdSetLineStippleEXT( VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetDepthTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdSetLineStippleEXT( commandBuffer, lineStippleFactor, lineStipplePattern ); + return ::vkCmdSetDepthTestEnableEXT( commandBuffer, depthTestEnable ); } - void vkCmdSetLineWidth( VkCommandBuffer commandBuffer, float lineWidth ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetDepthWriteEnableEXT( VkCommandBuffer commandBuffer, + VkBool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdSetLineWidth( commandBuffer, lineWidth ); + return ::vkCmdSetDepthWriteEnableEXT( commandBuffer, depthWriteEnable ); } - VkResult vkCmdSetPerformanceMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetDeviceMask( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdSetPerformanceMarkerINTEL( commandBuffer, pMarkerInfo ); + return ::vkCmdSetDeviceMask( commandBuffer, deviceMask ); } - VkResult vkCmdSetPerformanceOverrideINTEL( VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetDeviceMaskKHR( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdSetPerformanceOverrideINTEL( commandBuffer, pOverrideInfo ); + return ::vkCmdSetDeviceMaskKHR( commandBuffer, deviceMask ); } - VkResult vkCmdSetPerformanceStreamMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetDiscardRectangleEXT( VkCommandBuffer commandBuffer, + uint32_t firstDiscardRectangle, + uint32_t discardRectangleCount, + const VkRect2D * pDiscardRectangles ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdSetPerformanceStreamMarkerINTEL( commandBuffer, pMarkerInfo ); + return ::vkCmdSetDiscardRectangleEXT( + commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles ); } - void vkCmdSetSampleLocationsEXT( VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetEvent( VkCommandBuffer commandBuffer, + VkEvent event, + VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdSetSampleLocationsEXT( commandBuffer, pSampleLocationsInfo ); + return ::vkCmdSetEvent( commandBuffer, event, stageMask ); } - void vkCmdSetScissor( VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetEvent2KHR( VkCommandBuffer commandBuffer, + VkEvent event, + const VkDependencyInfoKHR * pDependencyInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdSetScissor( commandBuffer, firstScissor, scissorCount, pScissors ); + return ::vkCmdSetEvent2KHR( commandBuffer, event, pDependencyInfo ); } - void vkCmdSetStencilCompareMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetExclusiveScissorNV( VkCommandBuffer commandBuffer, + uint32_t firstExclusiveScissor, + uint32_t exclusiveScissorCount, + const VkRect2D * pExclusiveScissors ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdSetStencilCompareMask( commandBuffer, faceMask, compareMask ); + return ::vkCmdSetExclusiveScissorNV( + commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors ); } - void vkCmdSetStencilReference( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetFragmentShadingRateEnumNV( VkCommandBuffer commandBuffer, + VkFragmentShadingRateNV shadingRate, + const VkFragmentShadingRateCombinerOpKHR combinerOps[2] ) const + VULKAN_HPP_NOEXCEPT { - return ::vkCmdSetStencilReference( commandBuffer, faceMask, reference ); + return ::vkCmdSetFragmentShadingRateEnumNV( commandBuffer, shadingRate, combinerOps ); } - void vkCmdSetStencilWriteMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetFragmentShadingRateKHR( VkCommandBuffer commandBuffer, + const VkExtent2D * pFragmentSize, + const VkFragmentShadingRateCombinerOpKHR combinerOps[2] ) const + VULKAN_HPP_NOEXCEPT { - return ::vkCmdSetStencilWriteMask( commandBuffer, faceMask, writeMask ); + return ::vkCmdSetFragmentShadingRateKHR( commandBuffer, pFragmentSize, combinerOps ); } - void vkCmdSetViewport( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetFrontFaceEXT( VkCommandBuffer commandBuffer, VkFrontFace frontFace ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdSetViewport( commandBuffer, firstViewport, viewportCount, pViewports ); + return ::vkCmdSetFrontFaceEXT( commandBuffer, frontFace ); } - void vkCmdSetViewportShadingRatePaletteNV( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetLineStippleEXT( VkCommandBuffer commandBuffer, + uint32_t lineStippleFactor, + uint16_t lineStipplePattern ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdSetViewportShadingRatePaletteNV( commandBuffer, firstViewport, viewportCount, pShadingRatePalettes ); + return ::vkCmdSetLineStippleEXT( commandBuffer, lineStippleFactor, lineStipplePattern ); } - void vkCmdSetViewportWScalingNV( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetLineWidth( VkCommandBuffer commandBuffer, float lineWidth ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdSetViewportWScalingNV( commandBuffer, firstViewport, viewportCount, pViewportWScalings ); + return ::vkCmdSetLineWidth( commandBuffer, lineWidth ); } - void vkCmdTraceRaysNV( VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetLogicOpEXT( VkCommandBuffer commandBuffer, VkLogicOp logicOp ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdTraceRaysNV( commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth ); + return ::vkCmdSetLogicOpEXT( commandBuffer, logicOp ); } - void vkCmdUpdateBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetPatchControlPointsEXT( VkCommandBuffer commandBuffer, + uint32_t patchControlPoints ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdUpdateBuffer( commandBuffer, dstBuffer, dstOffset, dataSize, pData ); + return ::vkCmdSetPatchControlPointsEXT( commandBuffer, patchControlPoints ); } - void vkCmdWaitEvents( VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT + VkResult + vkCmdSetPerformanceMarkerINTEL( VkCommandBuffer commandBuffer, + const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdWaitEvents( commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers ); + return ::vkCmdSetPerformanceMarkerINTEL( commandBuffer, pMarkerInfo ); } - void vkCmdWriteAccelerationStructuresPropertiesNV( VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT + VkResult + vkCmdSetPerformanceOverrideINTEL( VkCommandBuffer commandBuffer, + const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdWriteAccelerationStructuresPropertiesNV( commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery ); + return ::vkCmdSetPerformanceOverrideINTEL( commandBuffer, pOverrideInfo ); } - void vkCmdWriteBufferMarkerAMD( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker ) const VULKAN_HPP_NOEXCEPT + VkResult vkCmdSetPerformanceStreamMarkerINTEL( + VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdWriteBufferMarkerAMD( commandBuffer, pipelineStage, dstBuffer, dstOffset, marker ); + return ::vkCmdSetPerformanceStreamMarkerINTEL( commandBuffer, pMarkerInfo ); } - void vkCmdWriteTimestamp( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetPrimitiveRestartEnableEXT( VkCommandBuffer commandBuffer, + VkBool32 primitiveRestartEnable ) const VULKAN_HPP_NOEXCEPT { - return ::vkCmdWriteTimestamp( commandBuffer, pipelineStage, queryPool, query ); + return ::vkCmdSetPrimitiveRestartEnableEXT( commandBuffer, primitiveRestartEnable ); } - VkResult vkEndCommandBuffer( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetPrimitiveTopologyEXT( VkCommandBuffer commandBuffer, + VkPrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT { - return ::vkEndCommandBuffer( commandBuffer ); + return ::vkCmdSetPrimitiveTopologyEXT( commandBuffer, primitiveTopology ); } - VkResult vkResetCommandBuffer( VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetRasterizerDiscardEnableEXT( VkCommandBuffer commandBuffer, + VkBool32 rasterizerDiscardEnable ) const VULKAN_HPP_NOEXCEPT { - return ::vkResetCommandBuffer( commandBuffer, flags ); + return ::vkCmdSetRasterizerDiscardEnableEXT( commandBuffer, rasterizerDiscardEnable ); } -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkAcquireFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetRayTracingPipelineStackSizeKHR( VkCommandBuffer commandBuffer, + uint32_t pipelineStackSize ) const VULKAN_HPP_NOEXCEPT { - return ::vkAcquireFullScreenExclusiveModeEXT( device, swapchain ); + return ::vkCmdSetRayTracingPipelineStackSizeKHR( commandBuffer, pipelineStackSize ); } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - VkResult vkAcquireNextImage2KHR( VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetSampleLocationsEXT( VkCommandBuffer commandBuffer, + const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkAcquireNextImage2KHR( device, pAcquireInfo, pImageIndex ); + return ::vkCmdSetSampleLocationsEXT( commandBuffer, pSampleLocationsInfo ); } - VkResult vkAcquireNextImageKHR( VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetScissor( VkCommandBuffer commandBuffer, + uint32_t firstScissor, + uint32_t scissorCount, + const VkRect2D * pScissors ) const VULKAN_HPP_NOEXCEPT { - return ::vkAcquireNextImageKHR( device, swapchain, timeout, semaphore, fence, pImageIndex ); + return ::vkCmdSetScissor( commandBuffer, firstScissor, scissorCount, pScissors ); } - VkResult vkAcquirePerformanceConfigurationINTEL( VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetScissorWithCountEXT( VkCommandBuffer commandBuffer, + uint32_t scissorCount, + const VkRect2D * pScissors ) const VULKAN_HPP_NOEXCEPT { - return ::vkAcquirePerformanceConfigurationINTEL( device, pAcquireInfo, pConfiguration ); + return ::vkCmdSetScissorWithCountEXT( commandBuffer, scissorCount, pScissors ); } - VkResult vkAcquireProfilingLockKHR( VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetStencilCompareMask( VkCommandBuffer commandBuffer, + VkStencilFaceFlags faceMask, + uint32_t compareMask ) const VULKAN_HPP_NOEXCEPT { - return ::vkAcquireProfilingLockKHR( device, pInfo ); + return ::vkCmdSetStencilCompareMask( commandBuffer, faceMask, compareMask ); } - VkResult vkAllocateCommandBuffers( VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetStencilOpEXT( VkCommandBuffer commandBuffer, + VkStencilFaceFlags faceMask, + VkStencilOp failOp, + VkStencilOp passOp, + VkStencilOp depthFailOp, + VkCompareOp compareOp ) const VULKAN_HPP_NOEXCEPT { - return ::vkAllocateCommandBuffers( device, pAllocateInfo, pCommandBuffers ); + return ::vkCmdSetStencilOpEXT( commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp ); } - VkResult vkAllocateDescriptorSets( VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetStencilReference( VkCommandBuffer commandBuffer, + VkStencilFaceFlags faceMask, + uint32_t reference ) const VULKAN_HPP_NOEXCEPT { - return ::vkAllocateDescriptorSets( device, pAllocateInfo, pDescriptorSets ); + return ::vkCmdSetStencilReference( commandBuffer, faceMask, reference ); } - VkResult vkAllocateMemory( VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetStencilTestEnableEXT( VkCommandBuffer commandBuffer, + VkBool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT { - return ::vkAllocateMemory( device, pAllocateInfo, pAllocator, pMemory ); + return ::vkCmdSetStencilTestEnableEXT( commandBuffer, stencilTestEnable ); } - VkResult vkBindAccelerationStructureMemoryNV( VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetStencilWriteMask( VkCommandBuffer commandBuffer, + VkStencilFaceFlags faceMask, + uint32_t writeMask ) const VULKAN_HPP_NOEXCEPT { - return ::vkBindAccelerationStructureMemoryNV( device, bindInfoCount, pBindInfos ); + return ::vkCmdSetStencilWriteMask( commandBuffer, faceMask, writeMask ); } - VkResult vkBindBufferMemory( VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetVertexInputEXT( VkCommandBuffer commandBuffer, + uint32_t vertexBindingDescriptionCount, + const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions, + uint32_t vertexAttributeDescriptionCount, + const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) const + VULKAN_HPP_NOEXCEPT { - return ::vkBindBufferMemory( device, buffer, memory, memoryOffset ); + return ::vkCmdSetVertexInputEXT( commandBuffer, + vertexBindingDescriptionCount, + pVertexBindingDescriptions, + vertexAttributeDescriptionCount, + pVertexAttributeDescriptions ); } - VkResult vkBindBufferMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetViewport( VkCommandBuffer commandBuffer, + uint32_t firstViewport, + uint32_t viewportCount, + const VkViewport * pViewports ) const VULKAN_HPP_NOEXCEPT { - return ::vkBindBufferMemory2( device, bindInfoCount, pBindInfos ); + return ::vkCmdSetViewport( commandBuffer, firstViewport, viewportCount, pViewports ); } - VkResult vkBindBufferMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetViewportShadingRatePaletteNV( VkCommandBuffer commandBuffer, + uint32_t firstViewport, + uint32_t viewportCount, + const VkShadingRatePaletteNV * pShadingRatePalettes ) const + VULKAN_HPP_NOEXCEPT { - return ::vkBindBufferMemory2KHR( device, bindInfoCount, pBindInfos ); + return ::vkCmdSetViewportShadingRatePaletteNV( + commandBuffer, firstViewport, viewportCount, pShadingRatePalettes ); } - VkResult vkBindImageMemory( VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetViewportWScalingNV( VkCommandBuffer commandBuffer, + uint32_t firstViewport, + uint32_t viewportCount, + const VkViewportWScalingNV * pViewportWScalings ) const VULKAN_HPP_NOEXCEPT { - return ::vkBindImageMemory( device, image, memory, memoryOffset ); + return ::vkCmdSetViewportWScalingNV( commandBuffer, firstViewport, viewportCount, pViewportWScalings ); } - VkResult vkBindImageMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT + void vkCmdSetViewportWithCountEXT( VkCommandBuffer commandBuffer, + uint32_t viewportCount, + const VkViewport * pViewports ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdSetViewportWithCountEXT( commandBuffer, viewportCount, pViewports ); + } + + void vkCmdTraceRaysIndirectKHR( VkCommandBuffer commandBuffer, + const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable, + const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable, + const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable, + const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable, + VkDeviceAddress indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdTraceRaysIndirectKHR( commandBuffer, + pRaygenShaderBindingTable, + pMissShaderBindingTable, + pHitShaderBindingTable, + pCallableShaderBindingTable, + indirectDeviceAddress ); + } + + void vkCmdTraceRaysKHR( VkCommandBuffer commandBuffer, + const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable, + const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable, + const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable, + const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable, + uint32_t width, + uint32_t height, + uint32_t depth ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdTraceRaysKHR( commandBuffer, + pRaygenShaderBindingTable, + pMissShaderBindingTable, + pHitShaderBindingTable, + pCallableShaderBindingTable, + width, + height, + depth ); + } + + void vkCmdTraceRaysNV( VkCommandBuffer commandBuffer, + VkBuffer raygenShaderBindingTableBuffer, + VkDeviceSize raygenShaderBindingOffset, + VkBuffer missShaderBindingTableBuffer, + VkDeviceSize missShaderBindingOffset, + VkDeviceSize missShaderBindingStride, + VkBuffer hitShaderBindingTableBuffer, + VkDeviceSize hitShaderBindingOffset, + VkDeviceSize hitShaderBindingStride, + VkBuffer callableShaderBindingTableBuffer, + VkDeviceSize callableShaderBindingOffset, + VkDeviceSize callableShaderBindingStride, + uint32_t width, + uint32_t height, + uint32_t depth ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdTraceRaysNV( commandBuffer, + raygenShaderBindingTableBuffer, + raygenShaderBindingOffset, + missShaderBindingTableBuffer, + missShaderBindingOffset, + missShaderBindingStride, + hitShaderBindingTableBuffer, + hitShaderBindingOffset, + hitShaderBindingStride, + callableShaderBindingTableBuffer, + callableShaderBindingOffset, + callableShaderBindingStride, + width, + height, + depth ); + } + + void vkCmdUpdateBuffer( VkCommandBuffer commandBuffer, + VkBuffer dstBuffer, + VkDeviceSize dstOffset, + VkDeviceSize dataSize, + const void * pData ) const VULKAN_HPP_NOEXCEPT { - return ::vkBindImageMemory2( device, bindInfoCount, pBindInfos ); + return ::vkCmdUpdateBuffer( commandBuffer, dstBuffer, dstOffset, dataSize, pData ); } - VkResult vkBindImageMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT + void vkCmdWaitEvents( VkCommandBuffer commandBuffer, + uint32_t eventCount, + const VkEvent * pEvents, + VkPipelineStageFlags srcStageMask, + VkPipelineStageFlags dstStageMask, + uint32_t memoryBarrierCount, + const VkMemoryBarrier * pMemoryBarriers, + uint32_t bufferMemoryBarrierCount, + const VkBufferMemoryBarrier * pBufferMemoryBarriers, + uint32_t imageMemoryBarrierCount, + const VkImageMemoryBarrier * pImageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT { - return ::vkBindImageMemory2KHR( device, bindInfoCount, pBindInfos ); + return ::vkCmdWaitEvents( commandBuffer, + eventCount, + pEvents, + srcStageMask, + dstStageMask, + memoryBarrierCount, + pMemoryBarriers, + bufferMemoryBarrierCount, + pBufferMemoryBarriers, + imageMemoryBarrierCount, + pImageMemoryBarriers ); } - VkResult vkCompileDeferredNV( VkDevice device, VkPipeline pipeline, uint32_t shader ) const VULKAN_HPP_NOEXCEPT + void vkCmdWaitEvents2KHR( VkCommandBuffer commandBuffer, + uint32_t eventCount, + const VkEvent * pEvents, + const VkDependencyInfoKHR * pDependencyInfos ) const VULKAN_HPP_NOEXCEPT { - return ::vkCompileDeferredNV( device, pipeline, shader ); + return ::vkCmdWaitEvents2KHR( commandBuffer, eventCount, pEvents, pDependencyInfos ); } - VkResult vkCreateAccelerationStructureNV( VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT + void vkCmdWriteAccelerationStructuresPropertiesKHR( VkCommandBuffer commandBuffer, + uint32_t accelerationStructureCount, + const VkAccelerationStructureKHR * pAccelerationStructures, + VkQueryType queryType, + VkQueryPool queryPool, + uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateAccelerationStructureNV( device, pCreateInfo, pAllocator, pAccelerationStructure ); + return ::vkCmdWriteAccelerationStructuresPropertiesKHR( + commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery ); } - VkResult vkCreateBuffer( VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer ) const VULKAN_HPP_NOEXCEPT + void vkCmdWriteAccelerationStructuresPropertiesNV( VkCommandBuffer commandBuffer, + uint32_t accelerationStructureCount, + const VkAccelerationStructureNV * pAccelerationStructures, + VkQueryType queryType, + VkQueryPool queryPool, + uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateBuffer( device, pCreateInfo, pAllocator, pBuffer ); + return ::vkCmdWriteAccelerationStructuresPropertiesNV( + commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery ); } - VkResult vkCreateBufferView( VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView ) const VULKAN_HPP_NOEXCEPT + void vkCmdWriteBufferMarker2AMD( VkCommandBuffer commandBuffer, + VkPipelineStageFlags2KHR stage, + VkBuffer dstBuffer, + VkDeviceSize dstOffset, + uint32_t marker ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateBufferView( device, pCreateInfo, pAllocator, pView ); + return ::vkCmdWriteBufferMarker2AMD( commandBuffer, stage, dstBuffer, dstOffset, marker ); } - VkResult vkCreateCommandPool( VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool ) const VULKAN_HPP_NOEXCEPT + void vkCmdWriteBufferMarkerAMD( VkCommandBuffer commandBuffer, + VkPipelineStageFlagBits pipelineStage, + VkBuffer dstBuffer, + VkDeviceSize dstOffset, + uint32_t marker ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateCommandPool( device, pCreateInfo, pAllocator, pCommandPool ); + return ::vkCmdWriteBufferMarkerAMD( commandBuffer, pipelineStage, dstBuffer, dstOffset, marker ); } - VkResult vkCreateComputePipelines( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT + void vkCmdWriteTimestamp( VkCommandBuffer commandBuffer, + VkPipelineStageFlagBits pipelineStage, + VkQueryPool queryPool, + uint32_t query ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateComputePipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines ); + return ::vkCmdWriteTimestamp( commandBuffer, pipelineStage, queryPool, query ); } - VkResult vkCreateDescriptorPool( VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool ) const VULKAN_HPP_NOEXCEPT + void vkCmdWriteTimestamp2KHR( VkCommandBuffer commandBuffer, + VkPipelineStageFlags2KHR stage, + VkQueryPool queryPool, + uint32_t query ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateDescriptorPool( device, pCreateInfo, pAllocator, pDescriptorPool ); + return ::vkCmdWriteTimestamp2KHR( commandBuffer, stage, queryPool, query ); } - VkResult vkCreateDescriptorSetLayout( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout ) const VULKAN_HPP_NOEXCEPT + VkResult vkCompileDeferredNV( VkDevice device, VkPipeline pipeline, uint32_t shader ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateDescriptorSetLayout( device, pCreateInfo, pAllocator, pSetLayout ); + return ::vkCompileDeferredNV( device, pipeline, shader ); } - VkResult vkCreateDescriptorUpdateTemplate( VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT + VkResult + vkCopyAccelerationStructureKHR( VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyAccelerationStructureInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateDescriptorUpdateTemplate( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate ); + return ::vkCopyAccelerationStructureKHR( device, deferredOperation, pInfo ); } - VkResult vkCreateDescriptorUpdateTemplateKHR( VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT + VkResult vkCopyAccelerationStructureToMemoryKHR( VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo ) const + VULKAN_HPP_NOEXCEPT { - return ::vkCreateDescriptorUpdateTemplateKHR( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate ); + return ::vkCopyAccelerationStructureToMemoryKHR( device, deferredOperation, pInfo ); } - VkResult vkCreateEvent( VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent ) const VULKAN_HPP_NOEXCEPT + VkResult vkCopyMemoryToAccelerationStructureKHR( VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo ) const + VULKAN_HPP_NOEXCEPT { - return ::vkCreateEvent( device, pCreateInfo, pAllocator, pEvent ); + return ::vkCopyMemoryToAccelerationStructureKHR( device, deferredOperation, pInfo ); } - VkResult vkCreateFence( VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT + VkResult + vkCreateAccelerationStructureKHR( VkDevice device, + const VkAccelerationStructureCreateInfoKHR * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkAccelerationStructureKHR * pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateFence( device, pCreateInfo, pAllocator, pFence ); + return ::vkCreateAccelerationStructureKHR( device, pCreateInfo, pAllocator, pAccelerationStructure ); } - VkResult vkCreateFramebuffer( VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer ) const VULKAN_HPP_NOEXCEPT + VkResult + vkCreateAccelerationStructureNV( VkDevice device, + const VkAccelerationStructureCreateInfoNV * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkAccelerationStructureNV * pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateFramebuffer( device, pCreateInfo, pAllocator, pFramebuffer ); + return ::vkCreateAccelerationStructureNV( device, pCreateInfo, pAllocator, pAccelerationStructure ); } - VkResult vkCreateGraphicsPipelines( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_ANDROID_KHR ) + VkResult vkCreateAndroidSurfaceKHR( VkInstance instance, + const VkAndroidSurfaceCreateInfoKHR * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateGraphicsPipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines ); + return ::vkCreateAndroidSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); } +# endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - VkResult vkCreateImage( VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateBuffer( VkDevice device, + const VkBufferCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkBuffer * pBuffer ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateImage( device, pCreateInfo, pAllocator, pImage ); + return ::vkCreateBuffer( device, pCreateInfo, pAllocator, pBuffer ); } - VkResult vkCreateImageView( VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateBufferView( VkDevice device, + const VkBufferViewCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkBufferView * pView ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateImageView( device, pCreateInfo, pAllocator, pView ); + return ::vkCreateBufferView( device, pCreateInfo, pAllocator, pView ); } - VkResult vkCreateIndirectCommandsLayoutNVX( VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateCommandPool( VkDevice device, + const VkCommandPoolCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkCommandPool * pCommandPool ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateIndirectCommandsLayoutNVX( device, pCreateInfo, pAllocator, pIndirectCommandsLayout ); + return ::vkCreateCommandPool( device, pCreateInfo, pAllocator, pCommandPool ); } - VkResult vkCreateObjectTableNVX( VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateComputePipelines( VkDevice device, + VkPipelineCache pipelineCache, + uint32_t createInfoCount, + const VkComputePipelineCreateInfo * pCreateInfos, + const VkAllocationCallbacks * pAllocator, + VkPipeline * pPipelines ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateObjectTableNVX( device, pCreateInfo, pAllocator, pObjectTable ); + return ::vkCreateComputePipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines ); } - VkResult vkCreatePipelineCache( VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateDebugReportCallbackEXT( VkInstance instance, + const VkDebugReportCallbackCreateInfoEXT * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkDebugReportCallbackEXT * pCallback ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreatePipelineCache( device, pCreateInfo, pAllocator, pPipelineCache ); + return ::vkCreateDebugReportCallbackEXT( instance, pCreateInfo, pAllocator, pCallback ); } - VkResult vkCreatePipelineLayout( VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateDebugUtilsMessengerEXT( VkInstance instance, + const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkDebugUtilsMessengerEXT * pMessenger ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreatePipelineLayout( device, pCreateInfo, pAllocator, pPipelineLayout ); + return ::vkCreateDebugUtilsMessengerEXT( instance, pCreateInfo, pAllocator, pMessenger ); } - VkResult vkCreateQueryPool( VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateDeferredOperationKHR( VkDevice device, + const VkAllocationCallbacks * pAllocator, + VkDeferredOperationKHR * pDeferredOperation ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateQueryPool( device, pCreateInfo, pAllocator, pQueryPool ); + return ::vkCreateDeferredOperationKHR( device, pAllocator, pDeferredOperation ); } - VkResult vkCreateRayTracingPipelinesNV( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateDescriptorPool( VkDevice device, + const VkDescriptorPoolCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkDescriptorPool * pDescriptorPool ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateRayTracingPipelinesNV( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines ); + return ::vkCreateDescriptorPool( device, pCreateInfo, pAllocator, pDescriptorPool ); } - VkResult vkCreateRenderPass( VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateDescriptorSetLayout( VkDevice device, + const VkDescriptorSetLayoutCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkDescriptorSetLayout * pSetLayout ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateRenderPass( device, pCreateInfo, pAllocator, pRenderPass ); + return ::vkCreateDescriptorSetLayout( device, pCreateInfo, pAllocator, pSetLayout ); } - VkResult vkCreateRenderPass2( VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateDescriptorUpdateTemplate( VkDevice device, + const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) const + VULKAN_HPP_NOEXCEPT { - return ::vkCreateRenderPass2( device, pCreateInfo, pAllocator, pRenderPass ); + return ::vkCreateDescriptorUpdateTemplate( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate ); } - VkResult vkCreateRenderPass2KHR( VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateDescriptorUpdateTemplateKHR( VkDevice device, + const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) const + VULKAN_HPP_NOEXCEPT { - return ::vkCreateRenderPass2KHR( device, pCreateInfo, pAllocator, pRenderPass ); + return ::vkCreateDescriptorUpdateTemplateKHR( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate ); } - VkResult vkCreateSampler( VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateDevice( VkPhysicalDevice physicalDevice, + const VkDeviceCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkDevice * pDevice ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateSampler( device, pCreateInfo, pAllocator, pSampler ); + return ::vkCreateDevice( physicalDevice, pCreateInfo, pAllocator, pDevice ); } - VkResult vkCreateSamplerYcbcrConversion( VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) + VkResult vkCreateDirectFBSurfaceEXT( VkInstance instance, + const VkDirectFBSurfaceCreateInfoEXT * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateSamplerYcbcrConversion( device, pCreateInfo, pAllocator, pYcbcrConversion ); + return ::vkCreateDirectFBSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface ); } +# endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - VkResult vkCreateSamplerYcbcrConversionKHR( VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateDisplayModeKHR( VkPhysicalDevice physicalDevice, + VkDisplayKHR display, + const VkDisplayModeCreateInfoKHR * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkDisplayModeKHR * pMode ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateSamplerYcbcrConversionKHR( device, pCreateInfo, pAllocator, pYcbcrConversion ); + return ::vkCreateDisplayModeKHR( physicalDevice, display, pCreateInfo, pAllocator, pMode ); } - VkResult vkCreateSemaphore( VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateDisplayPlaneSurfaceKHR( VkInstance instance, + const VkDisplaySurfaceCreateInfoKHR * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateSemaphore( device, pCreateInfo, pAllocator, pSemaphore ); + return ::vkCreateDisplayPlaneSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); } - VkResult vkCreateShaderModule( VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateEvent( VkDevice device, + const VkEventCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkEvent * pEvent ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateShaderModule( device, pCreateInfo, pAllocator, pShaderModule ); + return ::vkCreateEvent( device, pCreateInfo, pAllocator, pEvent ); } - VkResult vkCreateSharedSwapchainsKHR( VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateFence( VkDevice device, + const VkFenceCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkFence * pFence ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateSharedSwapchainsKHR( device, swapchainCount, pCreateInfos, pAllocator, pSwapchains ); + return ::vkCreateFence( device, pCreateInfo, pAllocator, pFence ); } - VkResult vkCreateSwapchainKHR( VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateFramebuffer( VkDevice device, + const VkFramebufferCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkFramebuffer * pFramebuffer ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateSwapchainKHR( device, pCreateInfo, pAllocator, pSwapchain ); + return ::vkCreateFramebuffer( device, pCreateInfo, pAllocator, pFramebuffer ); } - VkResult vkCreateValidationCacheEXT( VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateGraphicsPipelines( VkDevice device, + VkPipelineCache pipelineCache, + uint32_t createInfoCount, + const VkGraphicsPipelineCreateInfo * pCreateInfos, + const VkAllocationCallbacks * pAllocator, + VkPipeline * pPipelines ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateValidationCacheEXT( device, pCreateInfo, pAllocator, pValidationCache ); + return ::vkCreateGraphicsPipelines( + device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines ); } - VkResult vkDebugMarkerSetObjectNameEXT( VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateHeadlessSurfaceEXT( VkInstance instance, + const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT { - return ::vkDebugMarkerSetObjectNameEXT( device, pNameInfo ); + return ::vkCreateHeadlessSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface ); } - VkResult vkDebugMarkerSetObjectTagEXT( VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_IOS_MVK ) + VkResult vkCreateIOSSurfaceMVK( VkInstance instance, + const VkIOSSurfaceCreateInfoMVK * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT { - return ::vkDebugMarkerSetObjectTagEXT( device, pTagInfo ); + return ::vkCreateIOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface ); } +# endif /*VK_USE_PLATFORM_IOS_MVK*/ - void vkDestroyAccelerationStructureNV( VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateImage( VkDevice device, + const VkImageCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkImage * pImage ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyAccelerationStructureNV( device, accelerationStructure, pAllocator ); + return ::vkCreateImage( device, pCreateInfo, pAllocator, pImage ); } - void vkDestroyBuffer( VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_FUCHSIA ) + VkResult vkCreateImagePipeSurfaceFUCHSIA( VkInstance instance, + const VkImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyBuffer( device, buffer, pAllocator ); + return ::vkCreateImagePipeSurfaceFUCHSIA( instance, pCreateInfo, pAllocator, pSurface ); } +# endif /*VK_USE_PLATFORM_FUCHSIA*/ - void vkDestroyBufferView( VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateImageView( VkDevice device, + const VkImageViewCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkImageView * pView ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyBufferView( device, bufferView, pAllocator ); + return ::vkCreateImageView( device, pCreateInfo, pAllocator, pView ); } - void vkDestroyCommandPool( VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult + vkCreateIndirectCommandsLayoutNV( VkDevice device, + const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyCommandPool( device, commandPool, pAllocator ); + return ::vkCreateIndirectCommandsLayoutNV( device, pCreateInfo, pAllocator, pIndirectCommandsLayout ); } - void vkDestroyDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateInstance( const VkInstanceCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkInstance * pInstance ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyDescriptorPool( device, descriptorPool, pAllocator ); + return ::vkCreateInstance( pCreateInfo, pAllocator, pInstance ); } - void vkDestroyDescriptorSetLayout( VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_MACOS_MVK ) + VkResult vkCreateMacOSSurfaceMVK( VkInstance instance, + const VkMacOSSurfaceCreateInfoMVK * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyDescriptorSetLayout( device, descriptorSetLayout, pAllocator ); + return ::vkCreateMacOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface ); } +# endif /*VK_USE_PLATFORM_MACOS_MVK*/ - void vkDestroyDescriptorUpdateTemplate( VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_METAL_EXT ) + VkResult vkCreateMetalSurfaceEXT( VkInstance instance, + const VkMetalSurfaceCreateInfoEXT * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyDescriptorUpdateTemplate( device, descriptorUpdateTemplate, pAllocator ); + return ::vkCreateMetalSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface ); } +# endif /*VK_USE_PLATFORM_METAL_EXT*/ - void vkDestroyDescriptorUpdateTemplateKHR( VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreatePipelineCache( VkDevice device, + const VkPipelineCacheCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkPipelineCache * pPipelineCache ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyDescriptorUpdateTemplateKHR( device, descriptorUpdateTemplate, pAllocator ); + return ::vkCreatePipelineCache( device, pCreateInfo, pAllocator, pPipelineCache ); } - void vkDestroyDevice( VkDevice device, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreatePipelineLayout( VkDevice device, + const VkPipelineLayoutCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkPipelineLayout * pPipelineLayout ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyDevice( device, pAllocator ); + return ::vkCreatePipelineLayout( device, pCreateInfo, pAllocator, pPipelineLayout ); } - void vkDestroyEvent( VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreatePrivateDataSlotEXT( VkDevice device, + const VkPrivateDataSlotCreateInfoEXT * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkPrivateDataSlotEXT * pPrivateDataSlot ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyEvent( device, event, pAllocator ); + return ::vkCreatePrivateDataSlotEXT( device, pCreateInfo, pAllocator, pPrivateDataSlot ); } - void vkDestroyFence( VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateQueryPool( VkDevice device, + const VkQueryPoolCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkQueryPool * pQueryPool ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyFence( device, fence, pAllocator ); + return ::vkCreateQueryPool( device, pCreateInfo, pAllocator, pQueryPool ); } - void vkDestroyFramebuffer( VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateRayTracingPipelinesKHR( VkDevice device, + VkDeferredOperationKHR deferredOperation, + VkPipelineCache pipelineCache, + uint32_t createInfoCount, + const VkRayTracingPipelineCreateInfoKHR * pCreateInfos, + const VkAllocationCallbacks * pAllocator, + VkPipeline * pPipelines ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyFramebuffer( device, framebuffer, pAllocator ); + return ::vkCreateRayTracingPipelinesKHR( + device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines ); } - void vkDestroyImage( VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateRayTracingPipelinesNV( VkDevice device, + VkPipelineCache pipelineCache, + uint32_t createInfoCount, + const VkRayTracingPipelineCreateInfoNV * pCreateInfos, + const VkAllocationCallbacks * pAllocator, + VkPipeline * pPipelines ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyImage( device, image, pAllocator ); + return ::vkCreateRayTracingPipelinesNV( + device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines ); } - void vkDestroyImageView( VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateRenderPass( VkDevice device, + const VkRenderPassCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkRenderPass * pRenderPass ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyImageView( device, imageView, pAllocator ); + return ::vkCreateRenderPass( device, pCreateInfo, pAllocator, pRenderPass ); } - void vkDestroyIndirectCommandsLayoutNVX( VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateRenderPass2( VkDevice device, + const VkRenderPassCreateInfo2 * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkRenderPass * pRenderPass ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyIndirectCommandsLayoutNVX( device, indirectCommandsLayout, pAllocator ); + return ::vkCreateRenderPass2( device, pCreateInfo, pAllocator, pRenderPass ); } - void vkDestroyObjectTableNVX( VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateRenderPass2KHR( VkDevice device, + const VkRenderPassCreateInfo2 * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkRenderPass * pRenderPass ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyObjectTableNVX( device, objectTable, pAllocator ); + return ::vkCreateRenderPass2KHR( device, pCreateInfo, pAllocator, pRenderPass ); } - void vkDestroyPipeline( VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateSampler( VkDevice device, + const VkSamplerCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSampler * pSampler ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyPipeline( device, pipeline, pAllocator ); + return ::vkCreateSampler( device, pCreateInfo, pAllocator, pSampler ); } - void vkDestroyPipelineCache( VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateSamplerYcbcrConversion( VkDevice device, + const VkSamplerYcbcrConversionCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSamplerYcbcrConversion * pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyPipelineCache( device, pipelineCache, pAllocator ); + return ::vkCreateSamplerYcbcrConversion( device, pCreateInfo, pAllocator, pYcbcrConversion ); } - void vkDestroyPipelineLayout( VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateSamplerYcbcrConversionKHR( VkDevice device, + const VkSamplerYcbcrConversionCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSamplerYcbcrConversion * pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyPipelineLayout( device, pipelineLayout, pAllocator ); + return ::vkCreateSamplerYcbcrConversionKHR( device, pCreateInfo, pAllocator, pYcbcrConversion ); } - void vkDestroyQueryPool( VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_SCREEN_QNX ) + VkResult vkCreateScreenSurfaceQNX( VkInstance instance, + const VkScreenSurfaceCreateInfoQNX * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyQueryPool( device, queryPool, pAllocator ); + return ::vkCreateScreenSurfaceQNX( instance, pCreateInfo, pAllocator, pSurface ); } +# endif /*VK_USE_PLATFORM_SCREEN_QNX*/ - void vkDestroyRenderPass( VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateSemaphore( VkDevice device, + const VkSemaphoreCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSemaphore * pSemaphore ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyRenderPass( device, renderPass, pAllocator ); + return ::vkCreateSemaphore( device, pCreateInfo, pAllocator, pSemaphore ); } - void vkDestroySampler( VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateShaderModule( VkDevice device, + const VkShaderModuleCreateInfo * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkShaderModule * pShaderModule ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroySampler( device, sampler, pAllocator ); + return ::vkCreateShaderModule( device, pCreateInfo, pAllocator, pShaderModule ); } - void vkDestroySamplerYcbcrConversion( VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateSharedSwapchainsKHR( VkDevice device, + uint32_t swapchainCount, + const VkSwapchainCreateInfoKHR * pCreateInfos, + const VkAllocationCallbacks * pAllocator, + VkSwapchainKHR * pSwapchains ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroySamplerYcbcrConversion( device, ycbcrConversion, pAllocator ); + return ::vkCreateSharedSwapchainsKHR( device, swapchainCount, pCreateInfos, pAllocator, pSwapchains ); } - void vkDestroySamplerYcbcrConversionKHR( VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_GGP ) + VkResult vkCreateStreamDescriptorSurfaceGGP( VkInstance instance, + const VkStreamDescriptorSurfaceCreateInfoGGP * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroySamplerYcbcrConversionKHR( device, ycbcrConversion, pAllocator ); + return ::vkCreateStreamDescriptorSurfaceGGP( instance, pCreateInfo, pAllocator, pSurface ); } +# endif /*VK_USE_PLATFORM_GGP*/ - void vkDestroySemaphore( VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateSwapchainKHR( VkDevice device, + const VkSwapchainCreateInfoKHR * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSwapchainKHR * pSwapchain ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroySemaphore( device, semaphore, pAllocator ); + return ::vkCreateSwapchainKHR( device, pCreateInfo, pAllocator, pSwapchain ); } - void vkDestroyShaderModule( VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkCreateValidationCacheEXT( VkDevice device, + const VkValidationCacheCreateInfoEXT * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkValidationCacheEXT * pValidationCache ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyShaderModule( device, shaderModule, pAllocator ); + return ::vkCreateValidationCacheEXT( device, pCreateInfo, pAllocator, pValidationCache ); } - void vkDestroySwapchainKHR( VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_VI_NN ) + VkResult vkCreateViSurfaceNN( VkInstance instance, + const VkViSurfaceCreateInfoNN * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroySwapchainKHR( device, swapchain, pAllocator ); + return ::vkCreateViSurfaceNN( instance, pCreateInfo, pAllocator, pSurface ); } +# endif /*VK_USE_PLATFORM_VI_NN*/ - void vkDestroyValidationCacheEXT( VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + VkResult vkCreateVideoSessionKHR( VkDevice device, + const VkVideoSessionCreateInfoKHR * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkVideoSessionKHR * pVideoSession ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyValidationCacheEXT( device, validationCache, pAllocator ); + return ::vkCreateVideoSessionKHR( device, pCreateInfo, pAllocator, pVideoSession ); } +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ - VkResult vkDeviceWaitIdle( VkDevice device ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + VkResult vkCreateVideoSessionParametersKHR( VkDevice device, + const VkVideoSessionParametersCreateInfoKHR * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkVideoSessionParametersKHR * pVideoSessionParameters ) const + VULKAN_HPP_NOEXCEPT { - return ::vkDeviceWaitIdle( device ); + return ::vkCreateVideoSessionParametersKHR( device, pCreateInfo, pAllocator, pVideoSessionParameters ); } +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ - VkResult vkDisplayPowerControlEXT( VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_WAYLAND_KHR ) + VkResult vkCreateWaylandSurfaceKHR( VkInstance instance, + const VkWaylandSurfaceCreateInfoKHR * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT { - return ::vkDisplayPowerControlEXT( device, display, pDisplayPowerInfo ); + return ::vkCreateWaylandSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); } +# endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ - VkResult vkFlushMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + VkResult vkCreateWin32SurfaceKHR( VkInstance instance, + const VkWin32SurfaceCreateInfoKHR * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT { - return ::vkFlushMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges ); + return ::vkCreateWin32SurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); } +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ - void vkFreeCommandBuffers( VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_XCB_KHR ) + VkResult vkCreateXcbSurfaceKHR( VkInstance instance, + const VkXcbSurfaceCreateInfoKHR * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT { - return ::vkFreeCommandBuffers( device, commandPool, commandBufferCount, pCommandBuffers ); + return ::vkCreateXcbSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); } +# endif /*VK_USE_PLATFORM_XCB_KHR*/ - VkResult vkFreeDescriptorSets( VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_XLIB_KHR ) + VkResult vkCreateXlibSurfaceKHR( VkInstance instance, + const VkXlibSurfaceCreateInfoKHR * pCreateInfo, + const VkAllocationCallbacks * pAllocator, + VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT { - return ::vkFreeDescriptorSets( device, descriptorPool, descriptorSetCount, pDescriptorSets ); + return ::vkCreateXlibSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); } +# endif /*VK_USE_PLATFORM_XLIB_KHR*/ - void vkFreeMemory( VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkDebugMarkerSetObjectNameEXT( VkDevice device, + const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkFreeMemory( device, memory, pAllocator ); + return ::vkDebugMarkerSetObjectNameEXT( device, pNameInfo ); } - VkResult vkGetAccelerationStructureHandleNV( VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT + VkResult vkDebugMarkerSetObjectTagEXT( VkDevice device, + const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetAccelerationStructureHandleNV( device, accelerationStructure, dataSize, pData ); + return ::vkDebugMarkerSetObjectTagEXT( device, pTagInfo ); } - void vkGetAccelerationStructureMemoryRequirementsNV( VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT + void vkDebugReportMessageEXT( VkInstance instance, + VkDebugReportFlagsEXT flags, + VkDebugReportObjectTypeEXT objectType, + uint64_t object, + size_t location, + int32_t messageCode, + const char * pLayerPrefix, + const char * pMessage ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetAccelerationStructureMemoryRequirementsNV( device, pInfo, pMemoryRequirements ); + return ::vkDebugReportMessageEXT( + instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage ); } -#ifdef VK_USE_PLATFORM_ANDROID_KHR - VkResult vkGetAndroidHardwareBufferPropertiesANDROID( VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties ) const VULKAN_HPP_NOEXCEPT + VkResult vkDeferredOperationJoinKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetAndroidHardwareBufferPropertiesANDROID( device, buffer, pProperties ); + return ::vkDeferredOperationJoinKHR( device, operation ); } -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - VkDeviceAddress vkGetBufferDeviceAddress( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT + void vkDestroyAccelerationStructureKHR( VkDevice device, + VkAccelerationStructureKHR accelerationStructure, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetBufferDeviceAddress( device, pInfo ); + return ::vkDestroyAccelerationStructureKHR( device, accelerationStructure, pAllocator ); } - VkDeviceAddress vkGetBufferDeviceAddressEXT( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT + void vkDestroyAccelerationStructureNV( VkDevice device, + VkAccelerationStructureNV accelerationStructure, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetBufferDeviceAddressEXT( device, pInfo ); + return ::vkDestroyAccelerationStructureNV( device, accelerationStructure, pAllocator ); } - VkDeviceAddress vkGetBufferDeviceAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT + void vkDestroyBuffer( VkDevice device, + VkBuffer buffer, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetBufferDeviceAddressKHR( device, pInfo ); + return ::vkDestroyBuffer( device, buffer, pAllocator ); } - void vkGetBufferMemoryRequirements( VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT + void vkDestroyBufferView( VkDevice device, + VkBufferView bufferView, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetBufferMemoryRequirements( device, buffer, pMemoryRequirements ); + return ::vkDestroyBufferView( device, bufferView, pAllocator ); } - void vkGetBufferMemoryRequirements2( VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT + void vkDestroyCommandPool( VkDevice device, + VkCommandPool commandPool, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetBufferMemoryRequirements2( device, pInfo, pMemoryRequirements ); + return ::vkDestroyCommandPool( device, commandPool, pAllocator ); } - void vkGetBufferMemoryRequirements2KHR( VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT + void vkDestroyDebugReportCallbackEXT( VkInstance instance, + VkDebugReportCallbackEXT callback, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetBufferMemoryRequirements2KHR( device, pInfo, pMemoryRequirements ); + return ::vkDestroyDebugReportCallbackEXT( instance, callback, pAllocator ); } - uint64_t vkGetBufferOpaqueCaptureAddress( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT + void vkDestroyDebugUtilsMessengerEXT( VkInstance instance, + VkDebugUtilsMessengerEXT messenger, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetBufferOpaqueCaptureAddress( device, pInfo ); + return ::vkDestroyDebugUtilsMessengerEXT( instance, messenger, pAllocator ); } - uint64_t vkGetBufferOpaqueCaptureAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT + void vkDestroyDeferredOperationKHR( VkDevice device, + VkDeferredOperationKHR operation, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetBufferOpaqueCaptureAddressKHR( device, pInfo ); + return ::vkDestroyDeferredOperationKHR( device, operation, pAllocator ); } - VkResult vkGetCalibratedTimestampsEXT( VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation ) const VULKAN_HPP_NOEXCEPT + void vkDestroyDescriptorPool( VkDevice device, + VkDescriptorPool descriptorPool, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetCalibratedTimestampsEXT( device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation ); + return ::vkDestroyDescriptorPool( device, descriptorPool, pAllocator ); } - void vkGetDescriptorSetLayoutSupport( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport ) const VULKAN_HPP_NOEXCEPT + void vkDestroyDescriptorSetLayout( VkDevice device, + VkDescriptorSetLayout descriptorSetLayout, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetDescriptorSetLayoutSupport( device, pCreateInfo, pSupport ); + return ::vkDestroyDescriptorSetLayout( device, descriptorSetLayout, pAllocator ); } - void vkGetDescriptorSetLayoutSupportKHR( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport ) const VULKAN_HPP_NOEXCEPT + void vkDestroyDescriptorUpdateTemplate( VkDevice device, + VkDescriptorUpdateTemplate descriptorUpdateTemplate, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetDescriptorSetLayoutSupportKHR( device, pCreateInfo, pSupport ); + return ::vkDestroyDescriptorUpdateTemplate( device, descriptorUpdateTemplate, pAllocator ); } - void vkGetDeviceGroupPeerMemoryFeatures( VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT + void vkDestroyDescriptorUpdateTemplateKHR( VkDevice device, + VkDescriptorUpdateTemplate descriptorUpdateTemplate, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetDeviceGroupPeerMemoryFeatures( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures ); + return ::vkDestroyDescriptorUpdateTemplateKHR( device, descriptorUpdateTemplate, pAllocator ); } - void vkGetDeviceGroupPeerMemoryFeaturesKHR( VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT + void vkDestroyDevice( VkDevice device, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetDeviceGroupPeerMemoryFeaturesKHR( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures ); + return ::vkDestroyDevice( device, pAllocator ); } - VkResult vkGetDeviceGroupPresentCapabilitiesKHR( VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities ) const VULKAN_HPP_NOEXCEPT + void vkDestroyEvent( VkDevice device, + VkEvent event, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetDeviceGroupPresentCapabilitiesKHR( device, pDeviceGroupPresentCapabilities ); + return ::vkDestroyEvent( device, event, pAllocator ); } -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkGetDeviceGroupSurfacePresentModes2EXT( VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes ) const VULKAN_HPP_NOEXCEPT + void vkDestroyFence( VkDevice device, + VkFence fence, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetDeviceGroupSurfacePresentModes2EXT( device, pSurfaceInfo, pModes ); + return ::vkDestroyFence( device, fence, pAllocator ); } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - VkResult vkGetDeviceGroupSurfacePresentModesKHR( VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes ) const VULKAN_HPP_NOEXCEPT + void vkDestroyFramebuffer( VkDevice device, + VkFramebuffer framebuffer, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetDeviceGroupSurfacePresentModesKHR( device, surface, pModes ); + return ::vkDestroyFramebuffer( device, framebuffer, pAllocator ); } - void vkGetDeviceMemoryCommitment( VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes ) const VULKAN_HPP_NOEXCEPT + void vkDestroyImage( VkDevice device, + VkImage image, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetDeviceMemoryCommitment( device, memory, pCommittedMemoryInBytes ); + return ::vkDestroyImage( device, image, pAllocator ); } - uint64_t vkGetDeviceMemoryOpaqueCaptureAddress( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT + void vkDestroyImageView( VkDevice device, + VkImageView imageView, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetDeviceMemoryOpaqueCaptureAddress( device, pInfo ); + return ::vkDestroyImageView( device, imageView, pAllocator ); } - uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT + void vkDestroyIndirectCommandsLayoutNV( VkDevice device, + VkIndirectCommandsLayoutNV indirectCommandsLayout, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetDeviceMemoryOpaqueCaptureAddressKHR( device, pInfo ); + return ::vkDestroyIndirectCommandsLayoutNV( device, indirectCommandsLayout, pAllocator ); } - PFN_vkVoidFunction vkGetDeviceProcAddr( VkDevice device, const char* pName ) const VULKAN_HPP_NOEXCEPT + void vkDestroyInstance( VkInstance instance, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetDeviceProcAddr( device, pName ); + return ::vkDestroyInstance( instance, pAllocator ); } - void vkGetDeviceQueue( VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue ) const VULKAN_HPP_NOEXCEPT + void vkDestroyPipeline( VkDevice device, + VkPipeline pipeline, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetDeviceQueue( device, queueFamilyIndex, queueIndex, pQueue ); + return ::vkDestroyPipeline( device, pipeline, pAllocator ); } - void vkGetDeviceQueue2( VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue ) const VULKAN_HPP_NOEXCEPT + void vkDestroyPipelineCache( VkDevice device, + VkPipelineCache pipelineCache, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetDeviceQueue2( device, pQueueInfo, pQueue ); + return ::vkDestroyPipelineCache( device, pipelineCache, pAllocator ); } - VkResult vkGetEventStatus( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT + void vkDestroyPipelineLayout( VkDevice device, + VkPipelineLayout pipelineLayout, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetEventStatus( device, event ); + return ::vkDestroyPipelineLayout( device, pipelineLayout, pAllocator ); } - VkResult vkGetFenceFdKHR( VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT + void vkDestroyPrivateDataSlotEXT( VkDevice device, + VkPrivateDataSlotEXT privateDataSlot, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetFenceFdKHR( device, pGetFdInfo, pFd ); + return ::vkDestroyPrivateDataSlotEXT( device, privateDataSlot, pAllocator ); } - VkResult vkGetFenceStatus( VkDevice device, VkFence fence ) const VULKAN_HPP_NOEXCEPT + void vkDestroyQueryPool( VkDevice device, + VkQueryPool queryPool, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetFenceStatus( device, fence ); + return ::vkDestroyQueryPool( device, queryPool, pAllocator ); } -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkGetFenceWin32HandleKHR( VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT + void vkDestroyRenderPass( VkDevice device, + VkRenderPass renderPass, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetFenceWin32HandleKHR( device, pGetWin32HandleInfo, pHandle ); + return ::vkDestroyRenderPass( device, renderPass, pAllocator ); } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - VkResult vkGetImageDrmFormatModifierPropertiesEXT( VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties ) const VULKAN_HPP_NOEXCEPT + void vkDestroySampler( VkDevice device, + VkSampler sampler, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetImageDrmFormatModifierPropertiesEXT( device, image, pProperties ); + return ::vkDestroySampler( device, sampler, pAllocator ); } - void vkGetImageMemoryRequirements( VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT + void vkDestroySamplerYcbcrConversion( VkDevice device, + VkSamplerYcbcrConversion ycbcrConversion, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetImageMemoryRequirements( device, image, pMemoryRequirements ); + return ::vkDestroySamplerYcbcrConversion( device, ycbcrConversion, pAllocator ); } - void vkGetImageMemoryRequirements2( VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT + void vkDestroySamplerYcbcrConversionKHR( VkDevice device, + VkSamplerYcbcrConversion ycbcrConversion, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetImageMemoryRequirements2( device, pInfo, pMemoryRequirements ); + return ::vkDestroySamplerYcbcrConversionKHR( device, ycbcrConversion, pAllocator ); } - void vkGetImageMemoryRequirements2KHR( VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT + void vkDestroySemaphore( VkDevice device, + VkSemaphore semaphore, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetImageMemoryRequirements2KHR( device, pInfo, pMemoryRequirements ); + return ::vkDestroySemaphore( device, semaphore, pAllocator ); } - void vkGetImageSparseMemoryRequirements( VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT + void vkDestroyShaderModule( VkDevice device, + VkShaderModule shaderModule, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetImageSparseMemoryRequirements( device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements ); + return ::vkDestroyShaderModule( device, shaderModule, pAllocator ); } - void vkGetImageSparseMemoryRequirements2( VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT + void vkDestroySurfaceKHR( VkInstance instance, + VkSurfaceKHR surface, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetImageSparseMemoryRequirements2( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements ); + return ::vkDestroySurfaceKHR( instance, surface, pAllocator ); } - void vkGetImageSparseMemoryRequirements2KHR( VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT + void vkDestroySwapchainKHR( VkDevice device, + VkSwapchainKHR swapchain, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetImageSparseMemoryRequirements2KHR( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements ); + return ::vkDestroySwapchainKHR( device, swapchain, pAllocator ); } - void vkGetImageSubresourceLayout( VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout ) const VULKAN_HPP_NOEXCEPT + void vkDestroyValidationCacheEXT( VkDevice device, + VkValidationCacheEXT validationCache, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetImageSubresourceLayout( device, image, pSubresource, pLayout ); + return ::vkDestroyValidationCacheEXT( device, validationCache, pAllocator ); } - uint32_t vkGetImageViewHandleNVX( VkDevice device, const VkImageViewHandleInfoNVX* pInfo ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + void vkDestroyVideoSessionKHR( VkDevice device, + VkVideoSessionKHR videoSession, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetImageViewHandleNVX( device, pInfo ); + return ::vkDestroyVideoSessionKHR( device, videoSession, pAllocator ); } +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ -#ifdef VK_USE_PLATFORM_ANDROID_KHR - VkResult vkGetMemoryAndroidHardwareBufferANDROID( VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + void vkDestroyVideoSessionParametersKHR( VkDevice device, + VkVideoSessionParametersKHR videoSessionParameters, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetMemoryAndroidHardwareBufferANDROID( device, pInfo, pBuffer ); + return ::vkDestroyVideoSessionParametersKHR( device, videoSessionParameters, pAllocator ); } -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ - VkResult vkGetMemoryFdKHR( VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT + VkResult vkDeviceWaitIdle( VkDevice device ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetMemoryFdKHR( device, pGetFdInfo, pFd ); + return ::vkDeviceWaitIdle( device ); } - VkResult vkGetMemoryFdPropertiesKHR( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties ) const VULKAN_HPP_NOEXCEPT + VkResult vkDisplayPowerControlEXT( VkDevice device, + VkDisplayKHR display, + const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetMemoryFdPropertiesKHR( device, handleType, fd, pMemoryFdProperties ); + return ::vkDisplayPowerControlEXT( device, display, pDisplayPowerInfo ); } - VkResult vkGetMemoryHostPointerPropertiesEXT( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties ) const VULKAN_HPP_NOEXCEPT + VkResult vkEndCommandBuffer( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetMemoryHostPointerPropertiesEXT( device, handleType, pHostPointer, pMemoryHostPointerProperties ); + return ::vkEndCommandBuffer( commandBuffer ); } -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkGetMemoryWin32HandleKHR( VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT + VkResult vkEnumerateDeviceExtensionProperties( VkPhysicalDevice physicalDevice, + const char * pLayerName, + uint32_t * pPropertyCount, + VkExtensionProperties * pProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetMemoryWin32HandleKHR( device, pGetWin32HandleInfo, pHandle ); + return ::vkEnumerateDeviceExtensionProperties( physicalDevice, pLayerName, pPropertyCount, pProperties ); } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkGetMemoryWin32HandleNV( VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT + VkResult vkEnumerateDeviceLayerProperties( VkPhysicalDevice physicalDevice, + uint32_t * pPropertyCount, + VkLayerProperties * pProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetMemoryWin32HandleNV( device, memory, handleType, pHandle ); + return ::vkEnumerateDeviceLayerProperties( physicalDevice, pPropertyCount, pProperties ); } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkGetMemoryWin32HandlePropertiesKHR( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties ) const VULKAN_HPP_NOEXCEPT + VkResult vkEnumerateInstanceExtensionProperties( const char * pLayerName, + uint32_t * pPropertyCount, + VkExtensionProperties * pProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetMemoryWin32HandlePropertiesKHR( device, handleType, handle, pMemoryWin32HandleProperties ); + return ::vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, pProperties ); } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - VkResult vkGetPastPresentationTimingGOOGLE( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings ) const VULKAN_HPP_NOEXCEPT + VkResult vkEnumerateInstanceLayerProperties( uint32_t * pPropertyCount, + VkLayerProperties * pProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPastPresentationTimingGOOGLE( device, swapchain, pPresentationTimingCount, pPresentationTimings ); + return ::vkEnumerateInstanceLayerProperties( pPropertyCount, pProperties ); } - VkResult vkGetPerformanceParameterINTEL( VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue ) const VULKAN_HPP_NOEXCEPT + VkResult vkEnumerateInstanceVersion( uint32_t * pApiVersion ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPerformanceParameterINTEL( device, parameter, pValue ); + return ::vkEnumerateInstanceVersion( pApiVersion ); } - VkResult vkGetPipelineCacheData( VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData ) const VULKAN_HPP_NOEXCEPT + VkResult vkEnumeratePhysicalDeviceGroups( VkInstance instance, + uint32_t * pPhysicalDeviceGroupCount, + VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) const + VULKAN_HPP_NOEXCEPT { - return ::vkGetPipelineCacheData( device, pipelineCache, pDataSize, pData ); + return ::vkEnumeratePhysicalDeviceGroups( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties ); } - VkResult vkGetPipelineExecutableInternalRepresentationsKHR( VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations ) const VULKAN_HPP_NOEXCEPT + VkResult vkEnumeratePhysicalDeviceGroupsKHR( + VkInstance instance, + uint32_t * pPhysicalDeviceGroupCount, + VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPipelineExecutableInternalRepresentationsKHR( device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations ); + return ::vkEnumeratePhysicalDeviceGroupsKHR( + instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties ); } - VkResult vkGetPipelineExecutablePropertiesKHR( VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT + VkResult vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( + VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + uint32_t * pCounterCount, + VkPerformanceCounterKHR * pCounters, + VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPipelineExecutablePropertiesKHR( device, pPipelineInfo, pExecutableCount, pProperties ); + return ::vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( + physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions ); } - VkResult vkGetPipelineExecutableStatisticsKHR( VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics ) const VULKAN_HPP_NOEXCEPT + VkResult vkEnumeratePhysicalDevices( VkInstance instance, + uint32_t * pPhysicalDeviceCount, + VkPhysicalDevice * pPhysicalDevices ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPipelineExecutableStatisticsKHR( device, pExecutableInfo, pStatisticCount, pStatistics ); + return ::vkEnumeratePhysicalDevices( instance, pPhysicalDeviceCount, pPhysicalDevices ); } - VkResult vkGetQueryPoolResults( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT + VkResult vkFlushMappedMemoryRanges( VkDevice device, + uint32_t memoryRangeCount, + const VkMappedMemoryRange * pMemoryRanges ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetQueryPoolResults( device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags ); + return ::vkFlushMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges ); } - VkResult vkGetRayTracingShaderGroupHandlesNV( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT + void vkFreeCommandBuffers( VkDevice device, + VkCommandPool commandPool, + uint32_t commandBufferCount, + const VkCommandBuffer * pCommandBuffers ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetRayTracingShaderGroupHandlesNV( device, pipeline, firstGroup, groupCount, dataSize, pData ); + return ::vkFreeCommandBuffers( device, commandPool, commandBufferCount, pCommandBuffers ); } - VkResult vkGetRefreshCycleDurationGOOGLE( VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties ) const VULKAN_HPP_NOEXCEPT + VkResult vkFreeDescriptorSets( VkDevice device, + VkDescriptorPool descriptorPool, + uint32_t descriptorSetCount, + const VkDescriptorSet * pDescriptorSets ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetRefreshCycleDurationGOOGLE( device, swapchain, pDisplayTimingProperties ); + return ::vkFreeDescriptorSets( device, descriptorPool, descriptorSetCount, pDescriptorSets ); } - void vkGetRenderAreaGranularity( VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity ) const VULKAN_HPP_NOEXCEPT + void vkFreeMemory( VkDevice device, + VkDeviceMemory memory, + const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetRenderAreaGranularity( device, renderPass, pGranularity ); + return ::vkFreeMemory( device, memory, pAllocator ); } - VkResult vkGetSemaphoreCounterValue( VkDevice device, VkSemaphore semaphore, uint64_t* pValue ) const VULKAN_HPP_NOEXCEPT + void vkGetAccelerationStructureBuildSizesKHR( VkDevice device, + VkAccelerationStructureBuildTypeKHR buildType, + const VkAccelerationStructureBuildGeometryInfoKHR * pBuildInfo, + const uint32_t * pMaxPrimitiveCounts, + VkAccelerationStructureBuildSizesInfoKHR * pSizeInfo ) const + VULKAN_HPP_NOEXCEPT { - return ::vkGetSemaphoreCounterValue( device, semaphore, pValue ); + return ::vkGetAccelerationStructureBuildSizesKHR( device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo ); } - VkResult vkGetSemaphoreCounterValueKHR( VkDevice device, VkSemaphore semaphore, uint64_t* pValue ) const VULKAN_HPP_NOEXCEPT + VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR( + VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetSemaphoreCounterValueKHR( device, semaphore, pValue ); + return ::vkGetAccelerationStructureDeviceAddressKHR( device, pInfo ); } - VkResult vkGetSemaphoreFdKHR( VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetAccelerationStructureHandleNV( VkDevice device, + VkAccelerationStructureNV accelerationStructure, + size_t dataSize, + void * pData ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetSemaphoreFdKHR( device, pGetFdInfo, pFd ); + return ::vkGetAccelerationStructureHandleNV( device, accelerationStructure, dataSize, pData ); } -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkGetSemaphoreWin32HandleKHR( VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT + void vkGetAccelerationStructureMemoryRequirementsNV( VkDevice device, + const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo, + VkMemoryRequirements2KHR * pMemoryRequirements ) const + VULKAN_HPP_NOEXCEPT { - return ::vkGetSemaphoreWin32HandleKHR( device, pGetWin32HandleInfo, pHandle ); + return ::vkGetAccelerationStructureMemoryRequirementsNV( device, pInfo, pMemoryRequirements ); } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - VkResult vkGetShaderInfoAMD( VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_ANDROID_KHR ) + VkResult vkGetAndroidHardwareBufferPropertiesANDROID( VkDevice device, + const struct AHardwareBuffer * buffer, + VkAndroidHardwareBufferPropertiesANDROID * pProperties ) const + VULKAN_HPP_NOEXCEPT { - return ::vkGetShaderInfoAMD( device, pipeline, shaderStage, infoType, pInfoSize, pInfo ); + return ::vkGetAndroidHardwareBufferPropertiesANDROID( device, buffer, pProperties ); } +# endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - VkResult vkGetSwapchainCounterEXT( VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue ) const VULKAN_HPP_NOEXCEPT + VkDeviceAddress vkGetBufferDeviceAddress( VkDevice device, + const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetSwapchainCounterEXT( device, swapchain, counter, pCounterValue ); + return ::vkGetBufferDeviceAddress( device, pInfo ); } - VkResult vkGetSwapchainImagesKHR( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages ) const VULKAN_HPP_NOEXCEPT + VkDeviceAddress vkGetBufferDeviceAddressEXT( VkDevice device, + const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetSwapchainImagesKHR( device, swapchain, pSwapchainImageCount, pSwapchainImages ); + return ::vkGetBufferDeviceAddressEXT( device, pInfo ); } - VkResult vkGetSwapchainStatusKHR( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT + VkDeviceAddress vkGetBufferDeviceAddressKHR( VkDevice device, + const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetSwapchainStatusKHR( device, swapchain ); + return ::vkGetBufferDeviceAddressKHR( device, pInfo ); } - VkResult vkGetValidationCacheDataEXT( VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData ) const VULKAN_HPP_NOEXCEPT + void vkGetBufferMemoryRequirements( VkDevice device, + VkBuffer buffer, + VkMemoryRequirements * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetValidationCacheDataEXT( device, validationCache, pDataSize, pData ); + return ::vkGetBufferMemoryRequirements( device, buffer, pMemoryRequirements ); } - VkResult vkImportFenceFdKHR( VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo ) const VULKAN_HPP_NOEXCEPT + void vkGetBufferMemoryRequirements2( VkDevice device, + const VkBufferMemoryRequirementsInfo2 * pInfo, + VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT { - return ::vkImportFenceFdKHR( device, pImportFenceFdInfo ); + return ::vkGetBufferMemoryRequirements2( device, pInfo, pMemoryRequirements ); } -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkImportFenceWin32HandleKHR( VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT + void vkGetBufferMemoryRequirements2KHR( VkDevice device, + const VkBufferMemoryRequirementsInfo2 * pInfo, + VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT { - return ::vkImportFenceWin32HandleKHR( device, pImportFenceWin32HandleInfo ); + return ::vkGetBufferMemoryRequirements2KHR( device, pInfo, pMemoryRequirements ); } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - VkResult vkImportSemaphoreFdKHR( VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo ) const VULKAN_HPP_NOEXCEPT + uint64_t vkGetBufferOpaqueCaptureAddress( VkDevice device, + const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkImportSemaphoreFdKHR( device, pImportSemaphoreFdInfo ); + return ::vkGetBufferOpaqueCaptureAddress( device, pInfo ); } -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkImportSemaphoreWin32HandleKHR( VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT + uint64_t vkGetBufferOpaqueCaptureAddressKHR( VkDevice device, + const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkImportSemaphoreWin32HandleKHR( device, pImportSemaphoreWin32HandleInfo ); + return ::vkGetBufferOpaqueCaptureAddressKHR( device, pInfo ); } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - VkResult vkInitializePerformanceApiINTEL( VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetCalibratedTimestampsEXT( VkDevice device, + uint32_t timestampCount, + const VkCalibratedTimestampInfoEXT * pTimestampInfos, + uint64_t * pTimestamps, + uint64_t * pMaxDeviation ) const VULKAN_HPP_NOEXCEPT { - return ::vkInitializePerformanceApiINTEL( device, pInitializeInfo ); + return ::vkGetCalibratedTimestampsEXT( device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation ); } - VkResult vkInvalidateMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges ) const VULKAN_HPP_NOEXCEPT + uint32_t vkGetDeferredOperationMaxConcurrencyKHR( VkDevice device, + VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT { - return ::vkInvalidateMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges ); + return ::vkGetDeferredOperationMaxConcurrencyKHR( device, operation ); } - VkResult vkMapMemory( VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetDeferredOperationResultKHR( VkDevice device, + VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT { - return ::vkMapMemory( device, memory, offset, size, flags, ppData ); + return ::vkGetDeferredOperationResultKHR( device, operation ); } - VkResult vkMergePipelineCaches( VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches ) const VULKAN_HPP_NOEXCEPT + void vkGetDescriptorSetLayoutSupport( VkDevice device, + const VkDescriptorSetLayoutCreateInfo * pCreateInfo, + VkDescriptorSetLayoutSupport * pSupport ) const VULKAN_HPP_NOEXCEPT { - return ::vkMergePipelineCaches( device, dstCache, srcCacheCount, pSrcCaches ); + return ::vkGetDescriptorSetLayoutSupport( device, pCreateInfo, pSupport ); } - VkResult vkMergeValidationCachesEXT( VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches ) const VULKAN_HPP_NOEXCEPT + void vkGetDescriptorSetLayoutSupportKHR( VkDevice device, + const VkDescriptorSetLayoutCreateInfo * pCreateInfo, + VkDescriptorSetLayoutSupport * pSupport ) const VULKAN_HPP_NOEXCEPT { - return ::vkMergeValidationCachesEXT( device, dstCache, srcCacheCount, pSrcCaches ); + return ::vkGetDescriptorSetLayoutSupportKHR( device, pCreateInfo, pSupport ); } - VkResult vkRegisterDeviceEventEXT( VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT + void vkGetDeviceAccelerationStructureCompatibilityKHR( + VkDevice device, + const VkAccelerationStructureVersionInfoKHR * pVersionInfo, + VkAccelerationStructureCompatibilityKHR * pCompatibility ) const VULKAN_HPP_NOEXCEPT { - return ::vkRegisterDeviceEventEXT( device, pDeviceEventInfo, pAllocator, pFence ); + return ::vkGetDeviceAccelerationStructureCompatibilityKHR( device, pVersionInfo, pCompatibility ); } - VkResult vkRegisterDisplayEventEXT( VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT + void vkGetDeviceGroupPeerMemoryFeatures( VkDevice device, + uint32_t heapIndex, + uint32_t localDeviceIndex, + uint32_t remoteDeviceIndex, + VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT { - return ::vkRegisterDisplayEventEXT( device, display, pDisplayEventInfo, pAllocator, pFence ); + return ::vkGetDeviceGroupPeerMemoryFeatures( + device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures ); } - VkResult vkRegisterObjectsNVX( VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const uint32_t* pObjectIndices ) const VULKAN_HPP_NOEXCEPT + void + vkGetDeviceGroupPeerMemoryFeaturesKHR( VkDevice device, + uint32_t heapIndex, + uint32_t localDeviceIndex, + uint32_t remoteDeviceIndex, + VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT { - return ::vkRegisterObjectsNVX( device, objectTable, objectCount, ppObjectTableEntries, pObjectIndices ); + return ::vkGetDeviceGroupPeerMemoryFeaturesKHR( + device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures ); } -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkReleaseFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetDeviceGroupPresentCapabilitiesKHR( + VkDevice device, VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities ) const VULKAN_HPP_NOEXCEPT { - return ::vkReleaseFullScreenExclusiveModeEXT( device, swapchain ); + return ::vkGetDeviceGroupPresentCapabilitiesKHR( device, pDeviceGroupPresentCapabilities ); } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - VkResult vkReleasePerformanceConfigurationINTEL( VkDevice device, VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + VkResult + vkGetDeviceGroupSurfacePresentModes2EXT( VkDevice device, + const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo, + VkDeviceGroupPresentModeFlagsKHR * pModes ) const VULKAN_HPP_NOEXCEPT { - return ::vkReleasePerformanceConfigurationINTEL( device, configuration ); + return ::vkGetDeviceGroupSurfacePresentModes2EXT( device, pSurfaceInfo, pModes ); } +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ - void vkReleaseProfilingLockKHR( VkDevice device ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetDeviceGroupSurfacePresentModesKHR( + VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR * pModes ) const VULKAN_HPP_NOEXCEPT { - return ::vkReleaseProfilingLockKHR( device ); + return ::vkGetDeviceGroupSurfacePresentModesKHR( device, surface, pModes ); } - VkResult vkResetCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT + void vkGetDeviceMemoryCommitment( VkDevice device, + VkDeviceMemory memory, + VkDeviceSize * pCommittedMemoryInBytes ) const VULKAN_HPP_NOEXCEPT { - return ::vkResetCommandPool( device, commandPool, flags ); + return ::vkGetDeviceMemoryCommitment( device, memory, pCommittedMemoryInBytes ); } - VkResult vkResetDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT + uint64_t vkGetDeviceMemoryOpaqueCaptureAddress( + VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkResetDescriptorPool( device, descriptorPool, flags ); + return ::vkGetDeviceMemoryOpaqueCaptureAddress( device, pInfo ); } - VkResult vkResetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT + uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR( + VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkResetEvent( device, event ); + return ::vkGetDeviceMemoryOpaqueCaptureAddressKHR( device, pInfo ); } - VkResult vkResetFences( VkDevice device, uint32_t fenceCount, const VkFence* pFences ) const VULKAN_HPP_NOEXCEPT + PFN_vkVoidFunction vkGetDeviceProcAddr( VkDevice device, const char * pName ) const VULKAN_HPP_NOEXCEPT { - return ::vkResetFences( device, fenceCount, pFences ); + return ::vkGetDeviceProcAddr( device, pName ); } - void vkResetQueryPool( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT + void vkGetDeviceQueue( VkDevice device, + uint32_t queueFamilyIndex, + uint32_t queueIndex, + VkQueue * pQueue ) const VULKAN_HPP_NOEXCEPT { - return ::vkResetQueryPool( device, queryPool, firstQuery, queryCount ); + return ::vkGetDeviceQueue( device, queueFamilyIndex, queueIndex, pQueue ); } - void vkResetQueryPoolEXT( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT + void vkGetDeviceQueue2( VkDevice device, + const VkDeviceQueueInfo2 * pQueueInfo, + VkQueue * pQueue ) const VULKAN_HPP_NOEXCEPT { - return ::vkResetQueryPoolEXT( device, queryPool, firstQuery, queryCount ); + return ::vkGetDeviceQueue2( device, pQueueInfo, pQueue ); } - VkResult vkSetDebugUtilsObjectNameEXT( VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetDisplayModeProperties2KHR( VkPhysicalDevice physicalDevice, + VkDisplayKHR display, + uint32_t * pPropertyCount, + VkDisplayModeProperties2KHR * pProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkSetDebugUtilsObjectNameEXT( device, pNameInfo ); + return ::vkGetDisplayModeProperties2KHR( physicalDevice, display, pPropertyCount, pProperties ); } - VkResult vkSetDebugUtilsObjectTagEXT( VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetDisplayModePropertiesKHR( VkPhysicalDevice physicalDevice, + VkDisplayKHR display, + uint32_t * pPropertyCount, + VkDisplayModePropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkSetDebugUtilsObjectTagEXT( device, pTagInfo ); + return ::vkGetDisplayModePropertiesKHR( physicalDevice, display, pPropertyCount, pProperties ); } - VkResult vkSetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT + VkResult + vkGetDisplayPlaneCapabilities2KHR( VkPhysicalDevice physicalDevice, + const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo, + VkDisplayPlaneCapabilities2KHR * pCapabilities ) const VULKAN_HPP_NOEXCEPT { - return ::vkSetEvent( device, event ); + return ::vkGetDisplayPlaneCapabilities2KHR( physicalDevice, pDisplayPlaneInfo, pCapabilities ); } - void vkSetHdrMetadataEXT( VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetDisplayPlaneCapabilitiesKHR( VkPhysicalDevice physicalDevice, + VkDisplayModeKHR mode, + uint32_t planeIndex, + VkDisplayPlaneCapabilitiesKHR * pCapabilities ) const VULKAN_HPP_NOEXCEPT { - return ::vkSetHdrMetadataEXT( device, swapchainCount, pSwapchains, pMetadata ); + return ::vkGetDisplayPlaneCapabilitiesKHR( physicalDevice, mode, planeIndex, pCapabilities ); } - void vkSetLocalDimmingAMD( VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetDisplayPlaneSupportedDisplaysKHR( VkPhysicalDevice physicalDevice, + uint32_t planeIndex, + uint32_t * pDisplayCount, + VkDisplayKHR * pDisplays ) const VULKAN_HPP_NOEXCEPT { - return ::vkSetLocalDimmingAMD( device, swapChain, localDimmingEnable ); + return ::vkGetDisplayPlaneSupportedDisplaysKHR( physicalDevice, planeIndex, pDisplayCount, pDisplays ); } - VkResult vkSignalSemaphore( VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetEventStatus( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT { - return ::vkSignalSemaphore( device, pSignalInfo ); + return ::vkGetEventStatus( device, event ); } - VkResult vkSignalSemaphoreKHR( VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo ) const VULKAN_HPP_NOEXCEPT + VkResult + vkGetFenceFdKHR( VkDevice device, const VkFenceGetFdInfoKHR * pGetFdInfo, int * pFd ) const VULKAN_HPP_NOEXCEPT { - return ::vkSignalSemaphoreKHR( device, pSignalInfo ); + return ::vkGetFenceFdKHR( device, pGetFdInfo, pFd ); } - void vkTrimCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetFenceStatus( VkDevice device, VkFence fence ) const VULKAN_HPP_NOEXCEPT { - return ::vkTrimCommandPool( device, commandPool, flags ); + return ::vkGetFenceStatus( device, fence ); } - void vkTrimCommandPoolKHR( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + VkResult vkGetFenceWin32HandleKHR( VkDevice device, + const VkFenceGetWin32HandleInfoKHR * pGetWin32HandleInfo, + HANDLE * pHandle ) const VULKAN_HPP_NOEXCEPT { - return ::vkTrimCommandPoolKHR( device, commandPool, flags ); + return ::vkGetFenceWin32HandleKHR( device, pGetWin32HandleInfo, pHandle ); } +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ - void vkUninitializePerformanceApiINTEL( VkDevice device ) const VULKAN_HPP_NOEXCEPT + void vkGetGeneratedCommandsMemoryRequirementsNV( VkDevice device, + const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo, + VkMemoryRequirements2 * pMemoryRequirements ) const + VULKAN_HPP_NOEXCEPT { - return ::vkUninitializePerformanceApiINTEL( device ); + return ::vkGetGeneratedCommandsMemoryRequirementsNV( device, pInfo, pMemoryRequirements ); } - void vkUnmapMemory( VkDevice device, VkDeviceMemory memory ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetImageDrmFormatModifierPropertiesEXT( + VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT * pProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkUnmapMemory( device, memory ); + return ::vkGetImageDrmFormatModifierPropertiesEXT( device, image, pProperties ); } - VkResult vkUnregisterObjectsNVX( VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices ) const VULKAN_HPP_NOEXCEPT + void vkGetImageMemoryRequirements( VkDevice device, + VkImage image, + VkMemoryRequirements * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT { - return ::vkUnregisterObjectsNVX( device, objectTable, objectCount, pObjectEntryTypes, pObjectIndices ); + return ::vkGetImageMemoryRequirements( device, image, pMemoryRequirements ); } - void vkUpdateDescriptorSetWithTemplate( VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData ) const VULKAN_HPP_NOEXCEPT + void vkGetImageMemoryRequirements2( VkDevice device, + const VkImageMemoryRequirementsInfo2 * pInfo, + VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT { - return ::vkUpdateDescriptorSetWithTemplate( device, descriptorSet, descriptorUpdateTemplate, pData ); + return ::vkGetImageMemoryRequirements2( device, pInfo, pMemoryRequirements ); } - void vkUpdateDescriptorSetWithTemplateKHR( VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData ) const VULKAN_HPP_NOEXCEPT + void vkGetImageMemoryRequirements2KHR( VkDevice device, + const VkImageMemoryRequirementsInfo2 * pInfo, + VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT { - return ::vkUpdateDescriptorSetWithTemplateKHR( device, descriptorSet, descriptorUpdateTemplate, pData ); + return ::vkGetImageMemoryRequirements2KHR( device, pInfo, pMemoryRequirements ); } - void vkUpdateDescriptorSets( VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies ) const VULKAN_HPP_NOEXCEPT + void vkGetImageSparseMemoryRequirements( VkDevice device, + VkImage image, + uint32_t * pSparseMemoryRequirementCount, + VkSparseImageMemoryRequirements * pSparseMemoryRequirements ) const + VULKAN_HPP_NOEXCEPT { - return ::vkUpdateDescriptorSets( device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies ); + return ::vkGetImageSparseMemoryRequirements( + device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements ); } - VkResult vkWaitForFences( VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT + void vkGetImageSparseMemoryRequirements2( VkDevice device, + const VkImageSparseMemoryRequirementsInfo2 * pInfo, + uint32_t * pSparseMemoryRequirementCount, + VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) const + VULKAN_HPP_NOEXCEPT { - return ::vkWaitForFences( device, fenceCount, pFences, waitAll, timeout ); + return ::vkGetImageSparseMemoryRequirements2( + device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements ); } - VkResult vkWaitSemaphores( VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT + void vkGetImageSparseMemoryRequirements2KHR( VkDevice device, + const VkImageSparseMemoryRequirementsInfo2 * pInfo, + uint32_t * pSparseMemoryRequirementCount, + VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) const + VULKAN_HPP_NOEXCEPT { - return ::vkWaitSemaphores( device, pWaitInfo, timeout ); + return ::vkGetImageSparseMemoryRequirements2KHR( + device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements ); } - VkResult vkWaitSemaphoresKHR( VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT + void vkGetImageSubresourceLayout( VkDevice device, + VkImage image, + const VkImageSubresource * pSubresource, + VkSubresourceLayout * pLayout ) const VULKAN_HPP_NOEXCEPT { - return ::vkWaitSemaphoresKHR( device, pWaitInfo, timeout ); + return ::vkGetImageSubresourceLayout( device, image, pSubresource, pLayout ); } -#ifdef VK_USE_PLATFORM_ANDROID_KHR - VkResult vkCreateAndroidSurfaceKHR( VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetImageViewAddressNVX( VkDevice device, + VkImageView imageView, + VkImageViewAddressPropertiesNVX * pProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateAndroidSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); + return ::vkGetImageViewAddressNVX( device, imageView, pProperties ); } -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - VkResult vkCreateDebugReportCallbackEXT( VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback ) const VULKAN_HPP_NOEXCEPT + uint32_t vkGetImageViewHandleNVX( VkDevice device, + const VkImageViewHandleInfoNVX * pInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateDebugReportCallbackEXT( instance, pCreateInfo, pAllocator, pCallback ); + return ::vkGetImageViewHandleNVX( device, pInfo ); } - VkResult vkCreateDebugUtilsMessengerEXT( VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger ) const VULKAN_HPP_NOEXCEPT + PFN_vkVoidFunction vkGetInstanceProcAddr( VkInstance instance, const char * pName ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateDebugUtilsMessengerEXT( instance, pCreateInfo, pAllocator, pMessenger ); + return ::vkGetInstanceProcAddr( instance, pName ); } - VkResult vkCreateDisplayPlaneSurfaceKHR( VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_ANDROID_KHR ) + VkResult vkGetMemoryAndroidHardwareBufferANDROID( VkDevice device, + const VkMemoryGetAndroidHardwareBufferInfoANDROID * pInfo, + struct AHardwareBuffer ** pBuffer ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateDisplayPlaneSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); + return ::vkGetMemoryAndroidHardwareBufferANDROID( device, pInfo, pBuffer ); } +# endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - VkResult vkCreateHeadlessSurfaceEXT( VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT + VkResult + vkGetMemoryFdKHR( VkDevice device, const VkMemoryGetFdInfoKHR * pGetFdInfo, int * pFd ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateHeadlessSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface ); + return ::vkGetMemoryFdKHR( device, pGetFdInfo, pFd ); } -#ifdef VK_USE_PLATFORM_IOS_MVK - VkResult vkCreateIOSSurfaceMVK( VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetMemoryFdPropertiesKHR( VkDevice device, + VkExternalMemoryHandleTypeFlagBits handleType, + int fd, + VkMemoryFdPropertiesKHR * pMemoryFdProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateIOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface ); + return ::vkGetMemoryFdPropertiesKHR( device, handleType, fd, pMemoryFdProperties ); } -#endif /*VK_USE_PLATFORM_IOS_MVK*/ -#ifdef VK_USE_PLATFORM_FUCHSIA - VkResult vkCreateImagePipeSurfaceFUCHSIA( VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetMemoryHostPointerPropertiesEXT( + VkDevice device, + VkExternalMemoryHandleTypeFlagBits handleType, + const void * pHostPointer, + VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateImagePipeSurfaceFUCHSIA( instance, pCreateInfo, pAllocator, pSurface ); + return ::vkGetMemoryHostPointerPropertiesEXT( device, handleType, pHostPointer, pMemoryHostPointerProperties ); } -#endif /*VK_USE_PLATFORM_FUCHSIA*/ -#ifdef VK_USE_PLATFORM_MACOS_MVK - VkResult vkCreateMacOSSurfaceMVK( VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + VkResult vkGetMemoryWin32HandleKHR( VkDevice device, + const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo, + HANDLE * pHandle ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateMacOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface ); + return ::vkGetMemoryWin32HandleKHR( device, pGetWin32HandleInfo, pHandle ); } -#endif /*VK_USE_PLATFORM_MACOS_MVK*/ +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_METAL_EXT - VkResult vkCreateMetalSurfaceEXT( VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + VkResult vkGetMemoryWin32HandleNV( VkDevice device, + VkDeviceMemory memory, + VkExternalMemoryHandleTypeFlagsNV handleType, + HANDLE * pHandle ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateMetalSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface ); + return ::vkGetMemoryWin32HandleNV( device, memory, handleType, pHandle ); } -#endif /*VK_USE_PLATFORM_METAL_EXT*/ +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_GGP - VkResult vkCreateStreamDescriptorSurfaceGGP( VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + VkResult vkGetMemoryWin32HandlePropertiesKHR( + VkDevice device, + VkExternalMemoryHandleTypeFlagBits handleType, + HANDLE handle, + VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateStreamDescriptorSurfaceGGP( instance, pCreateInfo, pAllocator, pSurface ); + return ::vkGetMemoryWin32HandlePropertiesKHR( device, handleType, handle, pMemoryWin32HandleProperties ); } -#endif /*VK_USE_PLATFORM_GGP*/ +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_VI_NN - VkResult vkCreateViSurfaceNN( VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_FUCHSIA ) + VkResult vkGetMemoryZirconHandleFUCHSIA( VkDevice device, + const VkMemoryGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo, + zx_handle_t * pZirconHandle ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateViSurfaceNN( instance, pCreateInfo, pAllocator, pSurface ); + return ::vkGetMemoryZirconHandleFUCHSIA( device, pGetZirconHandleInfo, pZirconHandle ); } -#endif /*VK_USE_PLATFORM_VI_NN*/ +# endif /*VK_USE_PLATFORM_FUCHSIA*/ -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - VkResult vkCreateWaylandSurfaceKHR( VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_FUCHSIA ) + VkResult vkGetMemoryZirconHandlePropertiesFUCHSIA( + VkDevice device, + VkExternalMemoryHandleTypeFlagBits handleType, + zx_handle_t zirconHandle, + VkMemoryZirconHandlePropertiesFUCHSIA * pMemoryZirconHandleProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateWaylandSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); + return ::vkGetMemoryZirconHandlePropertiesFUCHSIA( + device, handleType, zirconHandle, pMemoryZirconHandleProperties ); } -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ +# endif /*VK_USE_PLATFORM_FUCHSIA*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkCreateWin32SurfaceKHR( VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPastPresentationTimingGOOGLE( VkDevice device, + VkSwapchainKHR swapchain, + uint32_t * pPresentationTimingCount, + VkPastPresentationTimingGOOGLE * pPresentationTimings ) const + VULKAN_HPP_NOEXCEPT { - return ::vkCreateWin32SurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); + return ::vkGetPastPresentationTimingGOOGLE( device, swapchain, pPresentationTimingCount, pPresentationTimings ); } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_XCB_KHR - VkResult vkCreateXcbSurfaceKHR( VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPerformanceParameterINTEL( VkDevice device, + VkPerformanceParameterTypeINTEL parameter, + VkPerformanceValueINTEL * pValue ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateXcbSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); + return ::vkGetPerformanceParameterINTEL( device, parameter, pValue ); } -#endif /*VK_USE_PLATFORM_XCB_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_KHR - VkResult vkCreateXlibSurfaceKHR( VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( VkPhysicalDevice physicalDevice, + uint32_t * pTimeDomainCount, + VkTimeDomainEXT * pTimeDomains ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateXlibSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); + return ::vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( physicalDevice, pTimeDomainCount, pTimeDomains ); } -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - void vkDebugReportMessageEXT( VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDevice physicalDevice, + uint32_t * pPropertyCount, + VkCooperativeMatrixPropertiesNV * pProperties ) const + VULKAN_HPP_NOEXCEPT { - return ::vkDebugReportMessageEXT( instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage ); + return ::vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( physicalDevice, pPropertyCount, pProperties ); } - void vkDestroyDebugReportCallbackEXT( VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) + VkBool32 vkGetPhysicalDeviceDirectFBPresentationSupportEXT( VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + IDirectFB * dfb ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroyDebugReportCallbackEXT( instance, callback, pAllocator ); + return ::vkGetPhysicalDeviceDirectFBPresentationSupportEXT( physicalDevice, queueFamilyIndex, dfb ); } +# endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - void vkDestroyDebugUtilsMessengerEXT( VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR( VkPhysicalDevice physicalDevice, + uint32_t * pPropertyCount, + VkDisplayPlaneProperties2KHR * pProperties ) const + VULKAN_HPP_NOEXCEPT { - return ::vkDestroyDebugUtilsMessengerEXT( instance, messenger, pAllocator ); + return ::vkGetPhysicalDeviceDisplayPlaneProperties2KHR( physicalDevice, pPropertyCount, pProperties ); } - void vkDestroyInstance( VkInstance instance, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR( VkPhysicalDevice physicalDevice, + uint32_t * pPropertyCount, + VkDisplayPlanePropertiesKHR * pProperties ) const + VULKAN_HPP_NOEXCEPT { - return ::vkDestroyInstance( instance, pAllocator ); + return ::vkGetPhysicalDeviceDisplayPlanePropertiesKHR( physicalDevice, pPropertyCount, pProperties ); } - void vkDestroySurfaceKHR( VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPhysicalDeviceDisplayProperties2KHR( VkPhysicalDevice physicalDevice, + uint32_t * pPropertyCount, + VkDisplayProperties2KHR * pProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkDestroySurfaceKHR( instance, surface, pAllocator ); + return ::vkGetPhysicalDeviceDisplayProperties2KHR( physicalDevice, pPropertyCount, pProperties ); } - VkResult vkEnumeratePhysicalDeviceGroups( VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPhysicalDeviceDisplayPropertiesKHR( VkPhysicalDevice physicalDevice, + uint32_t * pPropertyCount, + VkDisplayPropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkEnumeratePhysicalDeviceGroups( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties ); + return ::vkGetPhysicalDeviceDisplayPropertiesKHR( physicalDevice, pPropertyCount, pProperties ); } - VkResult vkEnumeratePhysicalDeviceGroupsKHR( VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceExternalBufferProperties( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo, + VkExternalBufferProperties * pExternalBufferProperties ) const + VULKAN_HPP_NOEXCEPT { - return ::vkEnumeratePhysicalDeviceGroupsKHR( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties ); + return ::vkGetPhysicalDeviceExternalBufferProperties( + physicalDevice, pExternalBufferInfo, pExternalBufferProperties ); } - VkResult vkEnumeratePhysicalDevices( VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceExternalBufferPropertiesKHR( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo, + VkExternalBufferProperties * pExternalBufferProperties ) const + VULKAN_HPP_NOEXCEPT { - return ::vkEnumeratePhysicalDevices( instance, pPhysicalDeviceCount, pPhysicalDevices ); + return ::vkGetPhysicalDeviceExternalBufferPropertiesKHR( + physicalDevice, pExternalBufferInfo, pExternalBufferProperties ); } - PFN_vkVoidFunction vkGetInstanceProcAddr( VkInstance instance, const char* pName ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceExternalFenceProperties( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo, + VkExternalFenceProperties * pExternalFenceProperties ) const + VULKAN_HPP_NOEXCEPT { - return ::vkGetInstanceProcAddr( instance, pName ); + return ::vkGetPhysicalDeviceExternalFenceProperties( + physicalDevice, pExternalFenceInfo, pExternalFenceProperties ); } - void vkSubmitDebugUtilsMessageEXT( VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceExternalFencePropertiesKHR( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo, + VkExternalFenceProperties * pExternalFenceProperties ) const + VULKAN_HPP_NOEXCEPT { - return ::vkSubmitDebugUtilsMessageEXT( instance, messageSeverity, messageTypes, pCallbackData ); + return ::vkGetPhysicalDeviceExternalFencePropertiesKHR( + physicalDevice, pExternalFenceInfo, pExternalFenceProperties ); } -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - VkResult vkAcquireXlibDisplayEXT( VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV( + VkPhysicalDevice physicalDevice, + VkFormat format, + VkImageType type, + VkImageTiling tiling, + VkImageUsageFlags usage, + VkImageCreateFlags flags, + VkExternalMemoryHandleTypeFlagsNV externalHandleType, + VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkAcquireXlibDisplayEXT( physicalDevice, dpy, display ); + return ::vkGetPhysicalDeviceExternalImageFormatPropertiesNV( + physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties ); } -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - VkResult vkCreateDevice( VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceExternalSemaphoreProperties( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo, + VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateDevice( physicalDevice, pCreateInfo, pAllocator, pDevice ); + return ::vkGetPhysicalDeviceExternalSemaphoreProperties( + physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties ); } - VkResult vkCreateDisplayModeKHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo, + VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkCreateDisplayModeKHR( physicalDevice, display, pCreateInfo, pAllocator, pMode ); + return ::vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( + physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties ); } - VkResult vkEnumerateDeviceExtensionProperties( VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceFeatures( VkPhysicalDevice physicalDevice, + VkPhysicalDeviceFeatures * pFeatures ) const VULKAN_HPP_NOEXCEPT { - return ::vkEnumerateDeviceExtensionProperties( physicalDevice, pLayerName, pPropertyCount, pProperties ); + return ::vkGetPhysicalDeviceFeatures( physicalDevice, pFeatures ); } - VkResult vkEnumerateDeviceLayerProperties( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceFeatures2( VkPhysicalDevice physicalDevice, + VkPhysicalDeviceFeatures2 * pFeatures ) const VULKAN_HPP_NOEXCEPT { - return ::vkEnumerateDeviceLayerProperties( physicalDevice, pPropertyCount, pProperties ); + return ::vkGetPhysicalDeviceFeatures2( physicalDevice, pFeatures ); } - VkResult vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceFeatures2KHR( VkPhysicalDevice physicalDevice, + VkPhysicalDeviceFeatures2 * pFeatures ) const VULKAN_HPP_NOEXCEPT { - return ::vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions ); + return ::vkGetPhysicalDeviceFeatures2KHR( physicalDevice, pFeatures ); } - VkResult vkGetDisplayModeProperties2KHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceFormatProperties( VkPhysicalDevice physicalDevice, + VkFormat format, + VkFormatProperties * pFormatProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetDisplayModeProperties2KHR( physicalDevice, display, pPropertyCount, pProperties ); + return ::vkGetPhysicalDeviceFormatProperties( physicalDevice, format, pFormatProperties ); } - VkResult vkGetDisplayModePropertiesKHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceFormatProperties2( VkPhysicalDevice physicalDevice, + VkFormat format, + VkFormatProperties2 * pFormatProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetDisplayModePropertiesKHR( physicalDevice, display, pPropertyCount, pProperties ); + return ::vkGetPhysicalDeviceFormatProperties2( physicalDevice, format, pFormatProperties ); } - VkResult vkGetDisplayPlaneCapabilities2KHR( VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceFormatProperties2KHR( VkPhysicalDevice physicalDevice, + VkFormat format, + VkFormatProperties2 * pFormatProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetDisplayPlaneCapabilities2KHR( physicalDevice, pDisplayPlaneInfo, pCapabilities ); + return ::vkGetPhysicalDeviceFormatProperties2KHR( physicalDevice, format, pFormatProperties ); } - VkResult vkGetDisplayPlaneCapabilitiesKHR( VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPhysicalDeviceFragmentShadingRatesKHR( + VkPhysicalDevice physicalDevice, + uint32_t * pFragmentShadingRateCount, + VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetDisplayPlaneCapabilitiesKHR( physicalDevice, mode, planeIndex, pCapabilities ); + return ::vkGetPhysicalDeviceFragmentShadingRatesKHR( + physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates ); } - VkResult vkGetDisplayPlaneSupportedDisplaysKHR( VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPhysicalDeviceImageFormatProperties( VkPhysicalDevice physicalDevice, + VkFormat format, + VkImageType type, + VkImageTiling tiling, + VkImageUsageFlags usage, + VkImageCreateFlags flags, + VkImageFormatProperties * pImageFormatProperties ) const + VULKAN_HPP_NOEXCEPT { - return ::vkGetDisplayPlaneSupportedDisplaysKHR( physicalDevice, planeIndex, pDisplayCount, pDisplays ); + return ::vkGetPhysicalDeviceImageFormatProperties( + physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties ); } - VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPhysicalDeviceImageFormatProperties2( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo, + VkImageFormatProperties2 * pImageFormatProperties ) const + VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( physicalDevice, pTimeDomainCount, pTimeDomains ); + return ::vkGetPhysicalDeviceImageFormatProperties2( physicalDevice, pImageFormatInfo, pImageFormatProperties ); } - VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPhysicalDeviceImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo, + VkImageFormatProperties2 * pImageFormatProperties ) const + VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( physicalDevice, pPropertyCount, pProperties ); + return ::vkGetPhysicalDeviceImageFormatProperties2KHR( physicalDevice, pImageFormatInfo, pImageFormatProperties ); } - VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceMemoryProperties( + VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties * pMemoryProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceDisplayPlaneProperties2KHR( physicalDevice, pPropertyCount, pProperties ); + return ::vkGetPhysicalDeviceMemoryProperties( physicalDevice, pMemoryProperties ); } - VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceMemoryProperties2( + VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceDisplayPlanePropertiesKHR( physicalDevice, pPropertyCount, pProperties ); + return ::vkGetPhysicalDeviceMemoryProperties2( physicalDevice, pMemoryProperties ); } - VkResult vkGetPhysicalDeviceDisplayProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceMemoryProperties2KHR( + VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceDisplayProperties2KHR( physicalDevice, pPropertyCount, pProperties ); + return ::vkGetPhysicalDeviceMemoryProperties2KHR( physicalDevice, pMemoryProperties ); } - VkResult vkGetPhysicalDeviceDisplayPropertiesKHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceMultisamplePropertiesEXT( VkPhysicalDevice physicalDevice, + VkSampleCountFlagBits samples, + VkMultisamplePropertiesEXT * pMultisampleProperties ) const + VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceDisplayPropertiesKHR( physicalDevice, pPropertyCount, pProperties ); + return ::vkGetPhysicalDeviceMultisamplePropertiesEXT( physicalDevice, samples, pMultisampleProperties ); } - void vkGetPhysicalDeviceExternalBufferProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPhysicalDevicePresentRectanglesKHR( VkPhysicalDevice physicalDevice, + VkSurfaceKHR surface, + uint32_t * pRectCount, + VkRect2D * pRects ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceExternalBufferProperties( physicalDevice, pExternalBufferInfo, pExternalBufferProperties ); + return ::vkGetPhysicalDevicePresentRectanglesKHR( physicalDevice, surface, pRectCount, pRects ); } - void vkGetPhysicalDeviceExternalBufferPropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceProperties( VkPhysicalDevice physicalDevice, + VkPhysicalDeviceProperties * pProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceExternalBufferPropertiesKHR( physicalDevice, pExternalBufferInfo, pExternalBufferProperties ); + return ::vkGetPhysicalDeviceProperties( physicalDevice, pProperties ); } - void vkGetPhysicalDeviceExternalFenceProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceProperties2( VkPhysicalDevice physicalDevice, + VkPhysicalDeviceProperties2 * pProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceExternalFenceProperties( physicalDevice, pExternalFenceInfo, pExternalFenceProperties ); + return ::vkGetPhysicalDeviceProperties2( physicalDevice, pProperties ); } - void vkGetPhysicalDeviceExternalFencePropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceProperties2KHR( VkPhysicalDevice physicalDevice, + VkPhysicalDeviceProperties2 * pProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceExternalFencePropertiesKHR( physicalDevice, pExternalFenceInfo, pExternalFenceProperties ); + return ::vkGetPhysicalDeviceProperties2KHR( physicalDevice, pProperties ); } - VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( + VkPhysicalDevice physicalDevice, + const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo, + uint32_t * pNumPasses ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceExternalImageFormatPropertiesNV( physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties ); + return ::vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( + physicalDevice, pPerformanceQueryCreateInfo, pNumPasses ); } - void vkGetPhysicalDeviceExternalSemaphoreProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceQueueFamilyProperties( VkPhysicalDevice physicalDevice, + uint32_t * pQueueFamilyPropertyCount, + VkQueueFamilyProperties * pQueueFamilyProperties ) const + VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceExternalSemaphoreProperties( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties ); + return ::vkGetPhysicalDeviceQueueFamilyProperties( + physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties ); } - void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceQueueFamilyProperties2( VkPhysicalDevice physicalDevice, + uint32_t * pQueueFamilyPropertyCount, + VkQueueFamilyProperties2 * pQueueFamilyProperties ) const + VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties ); + return ::vkGetPhysicalDeviceQueueFamilyProperties2( + physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties ); } - void vkGetPhysicalDeviceFeatures( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceQueueFamilyProperties2KHR( VkPhysicalDevice physicalDevice, + uint32_t * pQueueFamilyPropertyCount, + VkQueueFamilyProperties2 * pQueueFamilyProperties ) const + VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceFeatures( physicalDevice, pFeatures ); + return ::vkGetPhysicalDeviceQueueFamilyProperties2KHR( + physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties ); } - void vkGetPhysicalDeviceFeatures2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_SCREEN_QNX ) + VkBool32 vkGetPhysicalDeviceScreenPresentationSupportQNX( VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + struct _screen_window * window ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceFeatures2( physicalDevice, pFeatures ); + return ::vkGetPhysicalDeviceScreenPresentationSupportQNX( physicalDevice, queueFamilyIndex, window ); } +# endif /*VK_USE_PLATFORM_SCREEN_QNX*/ - void vkGetPhysicalDeviceFeatures2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceSparseImageFormatProperties( VkPhysicalDevice physicalDevice, + VkFormat format, + VkImageType type, + VkSampleCountFlagBits samples, + VkImageUsageFlags usage, + VkImageTiling tiling, + uint32_t * pPropertyCount, + VkSparseImageFormatProperties * pProperties ) const + VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceFeatures2KHR( physicalDevice, pFeatures ); + return ::vkGetPhysicalDeviceSparseImageFormatProperties( + physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties ); } - void vkGetPhysicalDeviceFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceSparseImageFormatProperties2( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo, + uint32_t * pPropertyCount, + VkSparseImageFormatProperties2 * pProperties ) const + VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceFormatProperties( physicalDevice, format, pFormatProperties ); + return ::vkGetPhysicalDeviceSparseImageFormatProperties2( + physicalDevice, pFormatInfo, pPropertyCount, pProperties ); } - void vkGetPhysicalDeviceFormatProperties2( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties ) const VULKAN_HPP_NOEXCEPT + void vkGetPhysicalDeviceSparseImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo, + uint32_t * pPropertyCount, + VkSparseImageFormatProperties2 * pProperties ) const + VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceFormatProperties2( physicalDevice, format, pFormatProperties ); + return ::vkGetPhysicalDeviceSparseImageFormatProperties2KHR( + physicalDevice, pFormatInfo, pPropertyCount, pProperties ); } - void vkGetPhysicalDeviceFormatProperties2KHR( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( + VkPhysicalDevice physicalDevice, + uint32_t * pCombinationCount, + VkFramebufferMixedSamplesCombinationNV * pCombinations ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceFormatProperties2KHR( physicalDevice, format, pFormatProperties ); + return ::vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( + physicalDevice, pCombinationCount, pCombinations ); } - void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT( VkPhysicalDevice physicalDevice, + VkSurfaceKHR surface, + VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) const + VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( physicalDevice, pFeatures, pLimits ); + return ::vkGetPhysicalDeviceSurfaceCapabilities2EXT( physicalDevice, surface, pSurfaceCapabilities ); } - VkResult vkGetPhysicalDeviceImageFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo, + VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) const + VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceImageFormatProperties( physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties ); + return ::vkGetPhysicalDeviceSurfaceCapabilities2KHR( physicalDevice, pSurfaceInfo, pSurfaceCapabilities ); } - VkResult vkGetPhysicalDeviceImageFormatProperties2( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR( VkPhysicalDevice physicalDevice, + VkSurfaceKHR surface, + VkSurfaceCapabilitiesKHR * pSurfaceCapabilities ) const + VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceImageFormatProperties2( physicalDevice, pImageFormatInfo, pImageFormatProperties ); + return ::vkGetPhysicalDeviceSurfaceCapabilitiesKHR( physicalDevice, surface, pSurfaceCapabilities ); } - VkResult vkGetPhysicalDeviceImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPhysicalDeviceSurfaceFormats2KHR( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo, + uint32_t * pSurfaceFormatCount, + VkSurfaceFormat2KHR * pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceImageFormatProperties2KHR( physicalDevice, pImageFormatInfo, pImageFormatProperties ); + return ::vkGetPhysicalDeviceSurfaceFormats2KHR( + physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats ); } - void vkGetPhysicalDeviceMemoryProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPhysicalDeviceSurfaceFormatsKHR( VkPhysicalDevice physicalDevice, + VkSurfaceKHR surface, + uint32_t * pSurfaceFormatCount, + VkSurfaceFormatKHR * pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceMemoryProperties( physicalDevice, pMemoryProperties ); + return ::vkGetPhysicalDeviceSurfaceFormatsKHR( physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats ); } - void vkGetPhysicalDeviceMemoryProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo, + uint32_t * pPresentModeCount, + VkPresentModeKHR * pPresentModes ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceMemoryProperties2( physicalDevice, pMemoryProperties ); + return ::vkGetPhysicalDeviceSurfacePresentModes2EXT( + physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes ); } +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ - void vkGetPhysicalDeviceMemoryProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPhysicalDeviceSurfacePresentModesKHR( VkPhysicalDevice physicalDevice, + VkSurfaceKHR surface, + uint32_t * pPresentModeCount, + VkPresentModeKHR * pPresentModes ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceMemoryProperties2KHR( physicalDevice, pMemoryProperties ); + return ::vkGetPhysicalDeviceSurfacePresentModesKHR( physicalDevice, surface, pPresentModeCount, pPresentModes ); } - void vkGetPhysicalDeviceMultisamplePropertiesEXT( VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPhysicalDeviceSurfaceSupportKHR( VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + VkSurfaceKHR surface, + VkBool32 * pSupported ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceMultisamplePropertiesEXT( physicalDevice, samples, pMultisampleProperties ); + return ::vkGetPhysicalDeviceSurfaceSupportKHR( physicalDevice, queueFamilyIndex, surface, pSupported ); } - VkResult vkGetPhysicalDevicePresentRectanglesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPhysicalDeviceToolPropertiesEXT( VkPhysicalDevice physicalDevice, + uint32_t * pToolCount, + VkPhysicalDeviceToolPropertiesEXT * pToolProperties ) const + VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDevicePresentRectanglesKHR( physicalDevice, surface, pRectCount, pRects ); + return ::vkGetPhysicalDeviceToolPropertiesEXT( physicalDevice, pToolCount, pToolProperties ); } - void vkGetPhysicalDeviceProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + VkResult vkGetPhysicalDeviceVideoCapabilitiesKHR( VkPhysicalDevice physicalDevice, + const VkVideoProfileKHR * pVideoProfile, + VkVideoCapabilitiesKHR * pCapabilities ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceProperties( physicalDevice, pProperties ); + return ::vkGetPhysicalDeviceVideoCapabilitiesKHR( physicalDevice, pVideoProfile, pCapabilities ); } +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ - void vkGetPhysicalDeviceProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + VkResult vkGetPhysicalDeviceVideoFormatPropertiesKHR( VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo, + uint32_t * pVideoFormatPropertyCount, + VkVideoFormatPropertiesKHR * pVideoFormatProperties ) const + VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceProperties2( physicalDevice, pProperties ); + return ::vkGetPhysicalDeviceVideoFormatPropertiesKHR( + physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties ); } +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ - void vkGetPhysicalDeviceProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_WAYLAND_KHR ) + VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR( VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + struct wl_display * display ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceProperties2KHR( physicalDevice, pProperties ); + return ::vkGetPhysicalDeviceWaylandPresentationSupportKHR( physicalDevice, queueFamilyIndex, display ); } +# endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ - void vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR( VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( physicalDevice, pPerformanceQueryCreateInfo, pNumPasses ); + return ::vkGetPhysicalDeviceWin32PresentationSupportKHR( physicalDevice, queueFamilyIndex ); } +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ - void vkGetPhysicalDeviceQueueFamilyProperties( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_XCB_KHR ) + VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR( VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + xcb_connection_t * connection, + xcb_visualid_t visual_id ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceQueueFamilyProperties( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties ); + return ::vkGetPhysicalDeviceXcbPresentationSupportKHR( physicalDevice, queueFamilyIndex, connection, visual_id ); } +# endif /*VK_USE_PLATFORM_XCB_KHR*/ - void vkGetPhysicalDeviceQueueFamilyProperties2( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_XLIB_KHR ) + VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR( VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + Display * dpy, + VisualID visualID ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceQueueFamilyProperties2( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties ); + return ::vkGetPhysicalDeviceXlibPresentationSupportKHR( physicalDevice, queueFamilyIndex, dpy, visualID ); } +# endif /*VK_USE_PLATFORM_XLIB_KHR*/ - void vkGetPhysicalDeviceQueueFamilyProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPipelineCacheData( VkDevice device, + VkPipelineCache pipelineCache, + size_t * pDataSize, + void * pData ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceQueueFamilyProperties2KHR( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties ); + return ::vkGetPipelineCacheData( device, pipelineCache, pDataSize, pData ); } - void vkGetPhysicalDeviceSparseImageFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetPipelineExecutableInternalRepresentationsKHR( + VkDevice device, + const VkPipelineExecutableInfoKHR * pExecutableInfo, + uint32_t * pInternalRepresentationCount, + VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceSparseImageFormatProperties( physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties ); + return ::vkGetPipelineExecutableInternalRepresentationsKHR( + device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations ); } - void vkGetPhysicalDeviceSparseImageFormatProperties2( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT + VkResult + vkGetPipelineExecutablePropertiesKHR( VkDevice device, + const VkPipelineInfoKHR * pPipelineInfo, + uint32_t * pExecutableCount, + VkPipelineExecutablePropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceSparseImageFormatProperties2( physicalDevice, pFormatInfo, pPropertyCount, pProperties ); + return ::vkGetPipelineExecutablePropertiesKHR( device, pPipelineInfo, pExecutableCount, pProperties ); } - void vkGetPhysicalDeviceSparseImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT + VkResult + vkGetPipelineExecutableStatisticsKHR( VkDevice device, + const VkPipelineExecutableInfoKHR * pExecutableInfo, + uint32_t * pStatisticCount, + VkPipelineExecutableStatisticKHR * pStatistics ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceSparseImageFormatProperties2KHR( physicalDevice, pFormatInfo, pPropertyCount, pProperties ); + return ::vkGetPipelineExecutableStatisticsKHR( device, pExecutableInfo, pStatisticCount, pStatistics ); } - VkResult vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations ) const VULKAN_HPP_NOEXCEPT + void vkGetPrivateDataEXT( VkDevice device, + VkObjectType objectType, + uint64_t objectHandle, + VkPrivateDataSlotEXT privateDataSlot, + uint64_t * pData ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( physicalDevice, pCombinationCount, pCombinations ); + return ::vkGetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, pData ); } - VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetQueryPoolResults( VkDevice device, + VkQueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount, + size_t dataSize, + void * pData, + VkDeviceSize stride, + VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceSurfaceCapabilities2EXT( physicalDevice, surface, pSurfaceCapabilities ); + return ::vkGetQueryPoolResults( device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags ); } - VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT + void vkGetQueueCheckpointData2NV( VkQueue queue, + uint32_t * pCheckpointDataCount, + VkCheckpointData2NV * pCheckpointData ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceSurfaceCapabilities2KHR( physicalDevice, pSurfaceInfo, pSurfaceCapabilities ); + return ::vkGetQueueCheckpointData2NV( queue, pCheckpointDataCount, pCheckpointData ); } - VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT + void vkGetQueueCheckpointDataNV( VkQueue queue, + uint32_t * pCheckpointDataCount, + VkCheckpointDataNV * pCheckpointData ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceSurfaceCapabilitiesKHR( physicalDevice, surface, pSurfaceCapabilities ); + return ::vkGetQueueCheckpointDataNV( queue, pCheckpointDataCount, pCheckpointData ); } - VkResult vkGetPhysicalDeviceSurfaceFormats2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) + VkResult vkGetRandROutputDisplayEXT( VkPhysicalDevice physicalDevice, + Display * dpy, + RROutput rrOutput, + VkDisplayKHR * pDisplay ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceSurfaceFormats2KHR( physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats ); + return ::vkGetRandROutputDisplayEXT( physicalDevice, dpy, rrOutput, pDisplay ); } +# endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - VkResult vkGetPhysicalDeviceSurfaceFormatsKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( VkDevice device, + VkPipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void * pData ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceSurfaceFormatsKHR( physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats ); + return ::vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( + device, pipeline, firstGroup, groupCount, dataSize, pData ); } -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetRayTracingShaderGroupHandlesKHR( VkDevice device, + VkPipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void * pData ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceSurfacePresentModes2EXT( physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes ); + return ::vkGetRayTracingShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData ); } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - VkResult vkGetPhysicalDeviceSurfacePresentModesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetRayTracingShaderGroupHandlesNV( VkDevice device, + VkPipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void * pData ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceSurfacePresentModesKHR( physicalDevice, surface, pPresentModeCount, pPresentModes ); + return ::vkGetRayTracingShaderGroupHandlesNV( device, pipeline, firstGroup, groupCount, dataSize, pData ); } - VkResult vkGetPhysicalDeviceSurfaceSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported ) const VULKAN_HPP_NOEXCEPT + VkDeviceSize vkGetRayTracingShaderGroupStackSizeKHR( VkDevice device, + VkPipeline pipeline, + uint32_t group, + VkShaderGroupShaderKHR groupShader ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceSurfaceSupportKHR( physicalDevice, queueFamilyIndex, surface, pSupported ); + return ::vkGetRayTracingShaderGroupStackSizeKHR( device, pipeline, group, groupShader ); } - VkResult vkGetPhysicalDeviceToolPropertiesEXT( VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolPropertiesEXT* pToolProperties ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetRefreshCycleDurationGOOGLE( VkDevice device, + VkSwapchainKHR swapchain, + VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) const + VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceToolPropertiesEXT( physicalDevice, pToolCount, pToolProperties ); + return ::vkGetRefreshCycleDurationGOOGLE( device, swapchain, pDisplayTimingProperties ); } -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display ) const VULKAN_HPP_NOEXCEPT + void vkGetRenderAreaGranularity( VkDevice device, + VkRenderPass renderPass, + VkExtent2D * pGranularity ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceWaylandPresentationSupportKHR( physicalDevice, queueFamilyIndex, display ); + return ::vkGetRenderAreaGranularity( device, renderPass, pGranularity ); } -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT + VkResult + vkGetSemaphoreCounterValue( VkDevice device, VkSemaphore semaphore, uint64_t * pValue ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceWin32PresentationSupportKHR( physicalDevice, queueFamilyIndex ); + return ::vkGetSemaphoreCounterValue( device, semaphore, pValue ); } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_XCB_KHR - VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetSemaphoreCounterValueKHR( VkDevice device, + VkSemaphore semaphore, + uint64_t * pValue ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceXcbPresentationSupportKHR( physicalDevice, queueFamilyIndex, connection, visual_id ); + return ::vkGetSemaphoreCounterValueKHR( device, semaphore, pValue ); } -#endif /*VK_USE_PLATFORM_XCB_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_KHR - VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetSemaphoreFdKHR( VkDevice device, + const VkSemaphoreGetFdInfoKHR * pGetFdInfo, + int * pFd ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetPhysicalDeviceXlibPresentationSupportKHR( physicalDevice, queueFamilyIndex, dpy, visualID ); + return ::vkGetSemaphoreFdKHR( device, pGetFdInfo, pFd ); } -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - VkResult vkGetRandROutputDisplayEXT( VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + VkResult vkGetSemaphoreWin32HandleKHR( VkDevice device, + const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo, + HANDLE * pHandle ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetRandROutputDisplayEXT( physicalDevice, dpy, rrOutput, pDisplay ); + return ::vkGetSemaphoreWin32HandleKHR( device, pGetWin32HandleInfo, pHandle ); } -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ - VkResult vkReleaseDisplayEXT( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT +# if defined( VK_USE_PLATFORM_FUCHSIA ) + VkResult vkGetSemaphoreZirconHandleFUCHSIA( VkDevice device, + const VkSemaphoreGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo, + zx_handle_t * pZirconHandle ) const VULKAN_HPP_NOEXCEPT { - return ::vkReleaseDisplayEXT( physicalDevice, display ); + return ::vkGetSemaphoreZirconHandleFUCHSIA( device, pGetZirconHandleInfo, pZirconHandle ); } +# endif /*VK_USE_PLATFORM_FUCHSIA*/ - void vkGetQueueCheckpointDataNV( VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData ) const VULKAN_HPP_NOEXCEPT + VkResult vkGetShaderInfoAMD( VkDevice device, + VkPipeline pipeline, + VkShaderStageFlagBits shaderStage, + VkShaderInfoTypeAMD infoType, + size_t * pInfoSize, + void * pInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetQueueCheckpointDataNV( queue, pCheckpointDataCount, pCheckpointData ); + return ::vkGetShaderInfoAMD( device, pipeline, shaderStage, infoType, pInfoSize, pInfo ); + } + + VkResult vkGetSwapchainCounterEXT( VkDevice device, + VkSwapchainKHR swapchain, + VkSurfaceCounterFlagBitsEXT counter, + uint64_t * pCounterValue ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetSwapchainCounterEXT( device, swapchain, counter, pCounterValue ); + } + + VkResult vkGetSwapchainImagesKHR( VkDevice device, + VkSwapchainKHR swapchain, + uint32_t * pSwapchainImageCount, + VkImage * pSwapchainImages ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetSwapchainImagesKHR( device, swapchain, pSwapchainImageCount, pSwapchainImages ); + } + + VkResult vkGetSwapchainStatusKHR( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetSwapchainStatusKHR( device, swapchain ); + } + + VkResult vkGetValidationCacheDataEXT( VkDevice device, + VkValidationCacheEXT validationCache, + size_t * pDataSize, + void * pData ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetValidationCacheDataEXT( device, validationCache, pDataSize, pData ); + } + +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + VkResult vkGetVideoSessionMemoryRequirementsKHR( + VkDevice device, + VkVideoSessionKHR videoSession, + uint32_t * pVideoSessionMemoryRequirementsCount, + VkVideoGetMemoryPropertiesKHR * pVideoSessionMemoryRequirements ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetVideoSessionMemoryRequirementsKHR( + device, videoSession, pVideoSessionMemoryRequirementsCount, pVideoSessionMemoryRequirements ); + } +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + VkResult vkGetWinrtDisplayNV( VkPhysicalDevice physicalDevice, + uint32_t deviceRelativeId, + VkDisplayKHR * pDisplay ) const VULKAN_HPP_NOEXCEPT + { + return ::vkGetWinrtDisplayNV( physicalDevice, deviceRelativeId, pDisplay ); + } +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + VkResult vkImportFenceFdKHR( VkDevice device, + const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkImportFenceFdKHR( device, pImportFenceFdInfo ); + } + +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + VkResult vkImportFenceWin32HandleKHR( + VkDevice device, const VkImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkImportFenceWin32HandleKHR( device, pImportFenceWin32HandleInfo ); + } +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + VkResult + vkImportSemaphoreFdKHR( VkDevice device, + const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkImportSemaphoreFdKHR( device, pImportSemaphoreFdInfo ); + } + +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + VkResult vkImportSemaphoreWin32HandleKHR( + VkDevice device, + const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkImportSemaphoreWin32HandleKHR( device, pImportSemaphoreWin32HandleInfo ); + } +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +# if defined( VK_USE_PLATFORM_FUCHSIA ) + VkResult vkImportSemaphoreZirconHandleFUCHSIA( + VkDevice device, + const VkImportSemaphoreZirconHandleInfoFUCHSIA * pImportSemaphoreZirconHandleInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkImportSemaphoreZirconHandleFUCHSIA( device, pImportSemaphoreZirconHandleInfo ); + } +# endif /*VK_USE_PLATFORM_FUCHSIA*/ + + VkResult vkInitializePerformanceApiINTEL( + VkDevice device, const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkInitializePerformanceApiINTEL( device, pInitializeInfo ); + } + + VkResult vkInvalidateMappedMemoryRanges( VkDevice device, + uint32_t memoryRangeCount, + const VkMappedMemoryRange * pMemoryRanges ) const VULKAN_HPP_NOEXCEPT + { + return ::vkInvalidateMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges ); + } + + VkResult vkMapMemory( VkDevice device, + VkDeviceMemory memory, + VkDeviceSize offset, + VkDeviceSize size, + VkMemoryMapFlags flags, + void ** ppData ) const VULKAN_HPP_NOEXCEPT + { + return ::vkMapMemory( device, memory, offset, size, flags, ppData ); + } + + VkResult vkMergePipelineCaches( VkDevice device, + VkPipelineCache dstCache, + uint32_t srcCacheCount, + const VkPipelineCache * pSrcCaches ) const VULKAN_HPP_NOEXCEPT + { + return ::vkMergePipelineCaches( device, dstCache, srcCacheCount, pSrcCaches ); + } + + VkResult vkMergeValidationCachesEXT( VkDevice device, + VkValidationCacheEXT dstCache, + uint32_t srcCacheCount, + const VkValidationCacheEXT * pSrcCaches ) const VULKAN_HPP_NOEXCEPT + { + return ::vkMergeValidationCachesEXT( device, dstCache, srcCacheCount, pSrcCaches ); } - void vkQueueBeginDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT + void vkQueueBeginDebugUtilsLabelEXT( VkQueue queue, + const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT { return ::vkQueueBeginDebugUtilsLabelEXT( queue, pLabelInfo ); } - VkResult vkQueueBindSparse( VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence ) const VULKAN_HPP_NOEXCEPT + VkResult vkQueueBindSparse( VkQueue queue, + uint32_t bindInfoCount, + const VkBindSparseInfo * pBindInfo, + VkFence fence ) const VULKAN_HPP_NOEXCEPT { return ::vkQueueBindSparse( queue, bindInfoCount, pBindInfo, fence ); } @@ -2747,59 +4921,353 @@ namespace VULKAN_HPP_NAMESPACE return ::vkQueueEndDebugUtilsLabelEXT( queue ); } - void vkQueueInsertDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT + void vkQueueInsertDebugUtilsLabelEXT( VkQueue queue, + const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT { return ::vkQueueInsertDebugUtilsLabelEXT( queue, pLabelInfo ); } - VkResult vkQueuePresentKHR( VkQueue queue, const VkPresentInfoKHR* pPresentInfo ) const VULKAN_HPP_NOEXCEPT + VkResult vkQueuePresentKHR( VkQueue queue, const VkPresentInfoKHR * pPresentInfo ) const VULKAN_HPP_NOEXCEPT { return ::vkQueuePresentKHR( queue, pPresentInfo ); } - VkResult vkQueueSetPerformanceConfigurationINTEL( VkQueue queue, VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT + VkResult + vkQueueSetPerformanceConfigurationINTEL( VkQueue queue, + VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT { return ::vkQueueSetPerformanceConfigurationINTEL( queue, configuration ); } - VkResult vkQueueSubmit( VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence ) const VULKAN_HPP_NOEXCEPT + VkResult vkQueueSubmit( VkQueue queue, + uint32_t submitCount, + const VkSubmitInfo * pSubmits, + VkFence fence ) const VULKAN_HPP_NOEXCEPT { return ::vkQueueSubmit( queue, submitCount, pSubmits, fence ); } + VkResult vkQueueSubmit2KHR( VkQueue queue, + uint32_t submitCount, + const VkSubmitInfo2KHR * pSubmits, + VkFence fence ) const VULKAN_HPP_NOEXCEPT + { + return ::vkQueueSubmit2KHR( queue, submitCount, pSubmits, fence ); + } + VkResult vkQueueWaitIdle( VkQueue queue ) const VULKAN_HPP_NOEXCEPT { return ::vkQueueWaitIdle( queue ); } + + VkResult vkRegisterDeviceEventEXT( VkDevice device, + const VkDeviceEventInfoEXT * pDeviceEventInfo, + const VkAllocationCallbacks * pAllocator, + VkFence * pFence ) const VULKAN_HPP_NOEXCEPT + { + return ::vkRegisterDeviceEventEXT( device, pDeviceEventInfo, pAllocator, pFence ); + } + + VkResult vkRegisterDisplayEventEXT( VkDevice device, + VkDisplayKHR display, + const VkDisplayEventInfoEXT * pDisplayEventInfo, + const VkAllocationCallbacks * pAllocator, + VkFence * pFence ) const VULKAN_HPP_NOEXCEPT + { + return ::vkRegisterDisplayEventEXT( device, display, pDisplayEventInfo, pAllocator, pFence ); + } + + VkResult vkReleaseDisplayEXT( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT + { + return ::vkReleaseDisplayEXT( physicalDevice, display ); + } + +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + VkResult vkReleaseFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT + { + return ::vkReleaseFullScreenExclusiveModeEXT( device, swapchain ); + } +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + VkResult + vkReleasePerformanceConfigurationINTEL( VkDevice device, + VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT + { + return ::vkReleasePerformanceConfigurationINTEL( device, configuration ); + } + + void vkReleaseProfilingLockKHR( VkDevice device ) const VULKAN_HPP_NOEXCEPT + { + return ::vkReleaseProfilingLockKHR( device ); + } + + VkResult vkResetCommandBuffer( VkCommandBuffer commandBuffer, + VkCommandBufferResetFlags flags ) const VULKAN_HPP_NOEXCEPT + { + return ::vkResetCommandBuffer( commandBuffer, flags ); + } + + VkResult vkResetCommandPool( VkDevice device, + VkCommandPool commandPool, + VkCommandPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT + { + return ::vkResetCommandPool( device, commandPool, flags ); + } + + VkResult vkResetDescriptorPool( VkDevice device, + VkDescriptorPool descriptorPool, + VkDescriptorPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT + { + return ::vkResetDescriptorPool( device, descriptorPool, flags ); + } + + VkResult vkResetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT + { + return ::vkResetEvent( device, event ); + } + + VkResult vkResetFences( VkDevice device, uint32_t fenceCount, const VkFence * pFences ) const VULKAN_HPP_NOEXCEPT + { + return ::vkResetFences( device, fenceCount, pFences ); + } + + void vkResetQueryPool( VkDevice device, + VkQueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT + { + return ::vkResetQueryPool( device, queryPool, firstQuery, queryCount ); + } + + void vkResetQueryPoolEXT( VkDevice device, + VkQueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT + { + return ::vkResetQueryPoolEXT( device, queryPool, firstQuery, queryCount ); + } + + VkResult vkSetDebugUtilsObjectNameEXT( VkDevice device, + const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSetDebugUtilsObjectNameEXT( device, pNameInfo ); + } + + VkResult vkSetDebugUtilsObjectTagEXT( VkDevice device, + const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSetDebugUtilsObjectTagEXT( device, pTagInfo ); + } + + VkResult vkSetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSetEvent( device, event ); + } + + void vkSetHdrMetadataEXT( VkDevice device, + uint32_t swapchainCount, + const VkSwapchainKHR * pSwapchains, + const VkHdrMetadataEXT * pMetadata ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSetHdrMetadataEXT( device, swapchainCount, pSwapchains, pMetadata ); + } + + void vkSetLocalDimmingAMD( VkDevice device, + VkSwapchainKHR swapChain, + VkBool32 localDimmingEnable ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSetLocalDimmingAMD( device, swapChain, localDimmingEnable ); + } + + VkResult vkSetPrivateDataEXT( VkDevice device, + VkObjectType objectType, + uint64_t objectHandle, + VkPrivateDataSlotEXT privateDataSlot, + uint64_t data ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, data ); + } + + VkResult vkSignalSemaphore( VkDevice device, const VkSemaphoreSignalInfo * pSignalInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSignalSemaphore( device, pSignalInfo ); + } + + VkResult vkSignalSemaphoreKHR( VkDevice device, + const VkSemaphoreSignalInfo * pSignalInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkSignalSemaphoreKHR( device, pSignalInfo ); + } + + void vkSubmitDebugUtilsMessageEXT( VkInstance instance, + VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, + VkDebugUtilsMessageTypeFlagsEXT messageTypes, + const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkSubmitDebugUtilsMessageEXT( instance, messageSeverity, messageTypes, pCallbackData ); + } + + void vkTrimCommandPool( VkDevice device, + VkCommandPool commandPool, + VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT + { + return ::vkTrimCommandPool( device, commandPool, flags ); + } + + void vkTrimCommandPoolKHR( VkDevice device, + VkCommandPool commandPool, + VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT + { + return ::vkTrimCommandPoolKHR( device, commandPool, flags ); + } + + void vkUninitializePerformanceApiINTEL( VkDevice device ) const VULKAN_HPP_NOEXCEPT + { + return ::vkUninitializePerformanceApiINTEL( device ); + } + + void vkUnmapMemory( VkDevice device, VkDeviceMemory memory ) const VULKAN_HPP_NOEXCEPT + { + return ::vkUnmapMemory( device, memory ); + } + + void vkUpdateDescriptorSetWithTemplate( VkDevice device, + VkDescriptorSet descriptorSet, + VkDescriptorUpdateTemplate descriptorUpdateTemplate, + const void * pData ) const VULKAN_HPP_NOEXCEPT + { + return ::vkUpdateDescriptorSetWithTemplate( device, descriptorSet, descriptorUpdateTemplate, pData ); + } + + void vkUpdateDescriptorSetWithTemplateKHR( VkDevice device, + VkDescriptorSet descriptorSet, + VkDescriptorUpdateTemplate descriptorUpdateTemplate, + const void * pData ) const VULKAN_HPP_NOEXCEPT + { + return ::vkUpdateDescriptorSetWithTemplateKHR( device, descriptorSet, descriptorUpdateTemplate, pData ); + } + + void vkUpdateDescriptorSets( VkDevice device, + uint32_t descriptorWriteCount, + const VkWriteDescriptorSet * pDescriptorWrites, + uint32_t descriptorCopyCount, + const VkCopyDescriptorSet * pDescriptorCopies ) const VULKAN_HPP_NOEXCEPT + { + return ::vkUpdateDescriptorSets( + device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies ); + } + +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + VkResult vkUpdateVideoSessionParametersKHR( VkDevice device, + VkVideoSessionParametersKHR videoSessionParameters, + const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo ) const + VULKAN_HPP_NOEXCEPT + { + return ::vkUpdateVideoSessionParametersKHR( device, videoSessionParameters, pUpdateInfo ); + } +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + VkResult vkWaitForFences( VkDevice device, + uint32_t fenceCount, + const VkFence * pFences, + VkBool32 waitAll, + uint64_t timeout ) const VULKAN_HPP_NOEXCEPT + { + return ::vkWaitForFences( device, fenceCount, pFences, waitAll, timeout ); + } + + VkResult vkWaitSemaphores( VkDevice device, + const VkSemaphoreWaitInfo * pWaitInfo, + uint64_t timeout ) const VULKAN_HPP_NOEXCEPT + { + return ::vkWaitSemaphores( device, pWaitInfo, timeout ); + } + + VkResult vkWaitSemaphoresKHR( VkDevice device, + const VkSemaphoreWaitInfo * pWaitInfo, + uint64_t timeout ) const VULKAN_HPP_NOEXCEPT + { + return ::vkWaitSemaphoresKHR( device, pWaitInfo, timeout ); + } + + VkResult vkWriteAccelerationStructuresPropertiesKHR( VkDevice device, + uint32_t accelerationStructureCount, + const VkAccelerationStructureKHR * pAccelerationStructures, + VkQueryType queryType, + size_t dataSize, + void * pData, + size_t stride ) const VULKAN_HPP_NOEXCEPT + { + return ::vkWriteAccelerationStructuresPropertiesKHR( + device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride ); + } }; #endif class DispatchLoaderDynamic; -#if !defined(VULKAN_HPP_DISPATCH_LOADER_DYNAMIC) -# if defined(VK_NO_PROTOTYPES) -# define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1 -# else -# define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 0 -# endif +#if !defined( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC ) +# if defined( VK_NO_PROTOTYPES ) +# define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1 +# else +# define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 0 +# endif +#endif + +#if !defined( VULKAN_HPP_STORAGE_API ) +# if defined( VULKAN_HPP_STORAGE_SHARED ) +# if defined( _MSC_VER ) +# if defined( VULKAN_HPP_STORAGE_SHARED_EXPORT ) +# define VULKAN_HPP_STORAGE_API __declspec( dllexport ) +# else +# define VULKAN_HPP_STORAGE_API __declspec( dllimport ) +# endif +# elif defined( __clang__ ) || defined( __GNUC__ ) +# if defined( VULKAN_HPP_STORAGE_SHARED_EXPORT ) +# define VULKAN_HPP_STORAGE_API __attribute__( ( visibility( "default" ) ) ) +# else +# define VULKAN_HPP_STORAGE_API +# endif +# else +# define VULKAN_HPP_STORAGE_API +# pragma warning Unknown import / export semantics +# endif +# else +# define VULKAN_HPP_STORAGE_API +# endif +#endif + +#if !defined( VULKAN_HPP_DEFAULT_DISPATCHER ) +# if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 +# define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::defaultDispatchLoaderDynamic +# define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE \ + namespace VULKAN_HPP_NAMESPACE \ + { \ + VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic; \ + } + extern VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic; +# else +# define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic() +# define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE +# endif #endif -#if !defined(VULKAN_HPP_DEFAULT_DISPATCHER) -# if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 -# define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::defaultDispatchLoaderDynamic -# define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE namespace VULKAN_HPP_NAMESPACE { DispatchLoaderDynamic defaultDispatchLoaderDynamic; } - extern DispatchLoaderDynamic defaultDispatchLoaderDynamic; -# else -# define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic() -# define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE -# endif +#if !defined( VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ) +# if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 +# define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic +# else +# define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic +# endif #endif -#if !defined(VULKAN_HPP_DEFAULT_DISPATCHER_TYPE) -# if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 - #define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic -# else -# define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic -# endif +#if defined( VULKAN_HPP_NO_DEFAULT_DISPATCHER ) +# define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT +# define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT +# define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT +#else +# define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT = {} +# define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT = nullptr +# define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT = VULKAN_HPP_DEFAULT_DISPATCHER #endif struct AllocationCallbacks; @@ -2807,181 +5275,250 @@ namespace VULKAN_HPP_NAMESPACE template class ObjectDestroy { - public: - ObjectDestroy() - : m_owner() - , m_allocationCallbacks( nullptr ) - , m_dispatch( nullptr ) - {} - - ObjectDestroy( OwnerType owner, Optional allocationCallbacks = nullptr, Dispatch const &dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT - : m_owner( owner ) - , m_allocationCallbacks( allocationCallbacks ) - , m_dispatch( &dispatch ) - {} - - OwnerType getOwner() const VULKAN_HPP_NOEXCEPT { return m_owner; } - Optional getAllocator() const VULKAN_HPP_NOEXCEPT { return m_allocationCallbacks; } - - protected: - template - void destroy(T t) VULKAN_HPP_NOEXCEPT - { - assert( m_owner && m_dispatch ); - m_owner.destroy( t, m_allocationCallbacks, *m_dispatch ); - } + public: + ObjectDestroy() = default; + + ObjectDestroy( OwnerType owner, + Optional allocationCallbacks + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT + : m_owner( owner ) + , m_allocationCallbacks( allocationCallbacks ) + , m_dispatch( &dispatch ) + {} + + OwnerType getOwner() const VULKAN_HPP_NOEXCEPT + { + return m_owner; + } + Optional getAllocator() const VULKAN_HPP_NOEXCEPT + { + return m_allocationCallbacks; + } + + protected: + template + void destroy( T t ) VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( m_owner && m_dispatch ); + m_owner.destroy( t, m_allocationCallbacks, *m_dispatch ); + } - private: - OwnerType m_owner; - Optional m_allocationCallbacks; - Dispatch const* m_dispatch; + private: + OwnerType m_owner = {}; + Optional m_allocationCallbacks = nullptr; + Dispatch const * m_dispatch = nullptr; }; class NoParent; template - class ObjectDestroy + class ObjectDestroy { - public: - ObjectDestroy() - : m_allocationCallbacks( nullptr ) - , m_dispatch( nullptr ) - {} + public: + ObjectDestroy() = default; - ObjectDestroy( Optional allocationCallbacks, Dispatch const &dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT - : m_allocationCallbacks( allocationCallbacks ) - , m_dispatch( &dispatch ) - {} + ObjectDestroy( Optional allocationCallbacks, + Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT + : m_allocationCallbacks( allocationCallbacks ) + , m_dispatch( &dispatch ) + {} - Optional getAllocator() const VULKAN_HPP_NOEXCEPT { return m_allocationCallbacks; } + Optional getAllocator() const VULKAN_HPP_NOEXCEPT + { + return m_allocationCallbacks; + } - protected: - template - void destroy(T t) VULKAN_HPP_NOEXCEPT - { - assert( m_dispatch ); - t.destroy( m_allocationCallbacks, *m_dispatch ); - } + protected: + template + void destroy( T t ) VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( m_dispatch ); + t.destroy( m_allocationCallbacks, *m_dispatch ); + } - private: - Optional m_allocationCallbacks; - Dispatch const* m_dispatch; + private: + Optional m_allocationCallbacks = nullptr; + Dispatch const * m_dispatch = nullptr; }; template class ObjectFree { - public: - ObjectFree() - : m_owner() - , m_allocationCallbacks( nullptr ) - , m_dispatch( nullptr ) - {} - - ObjectFree( OwnerType owner, Optional allocationCallbacks, Dispatch const &dispatch ) VULKAN_HPP_NOEXCEPT - : m_owner( owner ) - , m_allocationCallbacks( allocationCallbacks ) - , m_dispatch( &dispatch ) - {} - - OwnerType getOwner() const VULKAN_HPP_NOEXCEPT { return m_owner; } - Optional getAllocator() const VULKAN_HPP_NOEXCEPT { return m_allocationCallbacks; } - - protected: - template - void destroy(T t) VULKAN_HPP_NOEXCEPT - { - assert( m_owner && m_dispatch ); - m_owner.free( t, m_allocationCallbacks, *m_dispatch ); - } + public: + ObjectFree() = default; + + ObjectFree( OwnerType owner, + Optional allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT + : m_owner( owner ) + , m_allocationCallbacks( allocationCallbacks ) + , m_dispatch( &dispatch ) + {} - private: - OwnerType m_owner; - Optional m_allocationCallbacks; - Dispatch const* m_dispatch; + OwnerType getOwner() const VULKAN_HPP_NOEXCEPT + { + return m_owner; + } + + Optional getAllocator() const VULKAN_HPP_NOEXCEPT + { + return m_allocationCallbacks; + } + + protected: + template + void destroy( T t ) VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( m_owner && m_dispatch ); + m_owner.free( t, m_allocationCallbacks, *m_dispatch ); + } + + private: + OwnerType m_owner = {}; + Optional m_allocationCallbacks = nullptr; + Dispatch const * m_dispatch = nullptr; + }; + + template + class ObjectRelease + { + public: + ObjectRelease() = default; + + ObjectRelease( OwnerType owner, Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT + : m_owner( owner ) + , m_dispatch( &dispatch ) + {} + + OwnerType getOwner() const VULKAN_HPP_NOEXCEPT + { + return m_owner; + } + + protected: + template + void destroy( T t ) VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( m_owner && m_dispatch ); + m_owner.release( t, *m_dispatch ); + } + + private: + OwnerType m_owner = {}; + Dispatch const * m_dispatch = nullptr; }; template class PoolFree { - public: - PoolFree( OwnerType owner = OwnerType(), PoolType pool = PoolType(), Dispatch const &dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT - : m_owner( owner ) - , m_pool( pool ) - , m_dispatch( &dispatch ) - {} + public: + PoolFree() = default; - OwnerType getOwner() const VULKAN_HPP_NOEXCEPT { return m_owner; } - PoolType getPool() const VULKAN_HPP_NOEXCEPT { return m_pool; } + PoolFree( OwnerType owner, + PoolType pool, + Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT + : m_owner( owner ) + , m_pool( pool ) + , m_dispatch( &dispatch ) + {} - protected: - template - void destroy(T t) VULKAN_HPP_NOEXCEPT - { - m_owner.free( m_pool, t, *m_dispatch ); - } + OwnerType getOwner() const VULKAN_HPP_NOEXCEPT + { + return m_owner; + } + PoolType getPool() const VULKAN_HPP_NOEXCEPT + { + return m_pool; + } + + protected: + template + void destroy( T t ) VULKAN_HPP_NOEXCEPT + { + m_owner.free( m_pool, t, *m_dispatch ); + } - private: - OwnerType m_owner; - PoolType m_pool; - Dispatch const* m_dispatch; + private: + OwnerType m_owner = OwnerType(); + PoolType m_pool = PoolType(); + Dispatch const * m_dispatch = nullptr; }; - template - class ConstExpression1DArrayCopy + using Bool32 = uint32_t; + using DeviceAddress = uint64_t; + using DeviceSize = uint64_t; + using SampleMask = uint32_t; + + template + struct CppType + {}; + + template + struct isVulkanHandleType { - public: - VULKAN_HPP_CONSTEXPR_14 static void copy(T dst[N], std::array const& src) VULKAN_HPP_NOEXCEPT - { - dst[I-1] = src[I-1]; - ConstExpression1DArrayCopy::copy(dst, src); - } + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = false; }; - template - class ConstExpression1DArrayCopy + VULKAN_HPP_INLINE std::string toHexString( uint32_t value ) { - public: - VULKAN_HPP_CONSTEXPR_14 static void copy(T /*dst*/[N], std::array const& /*src*/) VULKAN_HPP_NOEXCEPT {} + std::stringstream stream; + stream << std::hex << value; + return stream.str(); + } + + enum class AccelerationStructureBuildTypeKHR + { + eHost = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR, + eDevice = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR, + eHostOrDevice = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR }; - template - class ConstExpression2DArrayCopy + VULKAN_HPP_INLINE std::string to_string( AccelerationStructureBuildTypeKHR value ) { - public: - VULKAN_HPP_CONSTEXPR_14 static void copy(T dst[N][M], std::array, N> const& src) VULKAN_HPP_NOEXCEPT + switch ( value ) { - dst[I - 1][J - 1] = src[I - 1][J - 1]; - ConstExpression2DArrayCopy::copy(dst, src); + case AccelerationStructureBuildTypeKHR::eHost: return "Host"; + case AccelerationStructureBuildTypeKHR::eDevice: return "Device"; + case AccelerationStructureBuildTypeKHR::eHostOrDevice: return "HostOrDevice"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } + } + + enum class AccelerationStructureCompatibilityKHR + { + eCompatible = VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR, + eIncompatible = VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR }; - template - class ConstExpression2DArrayCopy + VULKAN_HPP_INLINE std::string to_string( AccelerationStructureCompatibilityKHR value ) { - public: - VULKAN_HPP_CONSTEXPR_14 static void copy(T dst[N][M], std::array, N> const& src) VULKAN_HPP_NOEXCEPT + switch ( value ) { - ConstExpression2DArrayCopy::copy(dst, src); + case AccelerationStructureCompatibilityKHR::eCompatible: return "Compatible"; + case AccelerationStructureCompatibilityKHR::eIncompatible: return "Incompatible"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } - }; + } - template - class ConstExpression2DArrayCopy + enum class AccelerationStructureCreateFlagBitsKHR : VkAccelerationStructureCreateFlagsKHR { - public: - VULKAN_HPP_CONSTEXPR_14 static void copy(T /*dst*/[N][M], std::array, N> const& /*src*/) VULKAN_HPP_NOEXCEPT {} + eDeviceAddressCaptureReplay = VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR }; - using Bool32 = uint32_t; - using DeviceAddress = uint64_t; - using DeviceSize = uint64_t; - using SampleMask = uint32_t; + VULKAN_HPP_INLINE std::string to_string( AccelerationStructureCreateFlagBitsKHR value ) + { + switch ( value ) + { + case AccelerationStructureCreateFlagBitsKHR::eDeviceAddressCaptureReplay: return "DeviceAddressCaptureReplay"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } enum class AccelerationStructureMemoryRequirementsTypeNV { - eObject = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV, - eBuildScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV, + eObject = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV, + eBuildScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV, eUpdateScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV }; @@ -2989,106 +5526,208 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case AccelerationStructureMemoryRequirementsTypeNV::eObject : return "Object"; - case AccelerationStructureMemoryRequirementsTypeNV::eBuildScratch : return "BuildScratch"; - case AccelerationStructureMemoryRequirementsTypeNV::eUpdateScratch : return "UpdateScratch"; - default: return "invalid"; + case AccelerationStructureMemoryRequirementsTypeNV::eObject: return "Object"; + case AccelerationStructureMemoryRequirementsTypeNV::eBuildScratch: return "BuildScratch"; + case AccelerationStructureMemoryRequirementsTypeNV::eUpdateScratch: return "UpdateScratch"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class AccelerationStructureTypeNV + enum class AccelerationStructureTypeKHR { - eTopLevel = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV, - eBottomLevel = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV + eTopLevel = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, + eBottomLevel = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, + eGeneric = VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR }; + using AccelerationStructureTypeNV = AccelerationStructureTypeKHR; - VULKAN_HPP_INLINE std::string to_string( AccelerationStructureTypeNV value ) + VULKAN_HPP_INLINE std::string to_string( AccelerationStructureTypeKHR value ) { switch ( value ) { - case AccelerationStructureTypeNV::eTopLevel : return "TopLevel"; - case AccelerationStructureTypeNV::eBottomLevel : return "BottomLevel"; - default: return "invalid"; - } - } - - enum class AccessFlagBits - { - eIndirectCommandRead = VK_ACCESS_INDIRECT_COMMAND_READ_BIT, - eIndexRead = VK_ACCESS_INDEX_READ_BIT, - eVertexAttributeRead = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT, - eUniformRead = VK_ACCESS_UNIFORM_READ_BIT, - eInputAttachmentRead = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT, - eShaderRead = VK_ACCESS_SHADER_READ_BIT, - eShaderWrite = VK_ACCESS_SHADER_WRITE_BIT, - eColorAttachmentRead = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT, - eColorAttachmentWrite = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, - eDepthStencilAttachmentRead = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT, - eDepthStencilAttachmentWrite = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, - eTransferRead = VK_ACCESS_TRANSFER_READ_BIT, - eTransferWrite = VK_ACCESS_TRANSFER_WRITE_BIT, - eHostRead = VK_ACCESS_HOST_READ_BIT, - eHostWrite = VK_ACCESS_HOST_WRITE_BIT, - eMemoryRead = VK_ACCESS_MEMORY_READ_BIT, - eMemoryWrite = VK_ACCESS_MEMORY_WRITE_BIT, - eTransformFeedbackWriteEXT = VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, - eTransformFeedbackCounterReadEXT = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, - eTransformFeedbackCounterWriteEXT = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, - eConditionalRenderingReadEXT = VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT, - eCommandProcessReadNVX = VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX, - eCommandProcessWriteNVX = VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX, - eColorAttachmentReadNoncoherentEXT = VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, - eShadingRateImageReadNV = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV, - eAccelerationStructureReadNV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV, - eAccelerationStructureWriteNV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV, - eFragmentDensityMapReadEXT = VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT + case AccelerationStructureTypeKHR::eTopLevel: return "TopLevel"; + case AccelerationStructureTypeKHR::eBottomLevel: return "BottomLevel"; + case AccelerationStructureTypeKHR::eGeneric: return "Generic"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class AccessFlagBits : VkAccessFlags + { + eIndirectCommandRead = VK_ACCESS_INDIRECT_COMMAND_READ_BIT, + eIndexRead = VK_ACCESS_INDEX_READ_BIT, + eVertexAttributeRead = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT, + eUniformRead = VK_ACCESS_UNIFORM_READ_BIT, + eInputAttachmentRead = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT, + eShaderRead = VK_ACCESS_SHADER_READ_BIT, + eShaderWrite = VK_ACCESS_SHADER_WRITE_BIT, + eColorAttachmentRead = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT, + eColorAttachmentWrite = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, + eDepthStencilAttachmentRead = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT, + eDepthStencilAttachmentWrite = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, + eTransferRead = VK_ACCESS_TRANSFER_READ_BIT, + eTransferWrite = VK_ACCESS_TRANSFER_WRITE_BIT, + eHostRead = VK_ACCESS_HOST_READ_BIT, + eHostWrite = VK_ACCESS_HOST_WRITE_BIT, + eMemoryRead = VK_ACCESS_MEMORY_READ_BIT, + eMemoryWrite = VK_ACCESS_MEMORY_WRITE_BIT, + eTransformFeedbackWriteEXT = VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, + eTransformFeedbackCounterReadEXT = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, + eTransformFeedbackCounterWriteEXT = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, + eConditionalRenderingReadEXT = VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT, + eColorAttachmentReadNoncoherentEXT = VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, + eAccelerationStructureReadKHR = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR, + eAccelerationStructureWriteKHR = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, + eShadingRateImageReadNV = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV, + eFragmentDensityMapReadEXT = VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, + eCommandPreprocessReadNV = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV, + eCommandPreprocessWriteNV = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV, + eNoneKHR = VK_ACCESS_NONE_KHR, + eAccelerationStructureReadNV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV, + eAccelerationStructureWriteNV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV, + eFragmentShadingRateAttachmentReadKHR = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR }; VULKAN_HPP_INLINE std::string to_string( AccessFlagBits value ) { switch ( value ) { - case AccessFlagBits::eIndirectCommandRead : return "IndirectCommandRead"; - case AccessFlagBits::eIndexRead : return "IndexRead"; - case AccessFlagBits::eVertexAttributeRead : return "VertexAttributeRead"; - case AccessFlagBits::eUniformRead : return "UniformRead"; - case AccessFlagBits::eInputAttachmentRead : return "InputAttachmentRead"; - case AccessFlagBits::eShaderRead : return "ShaderRead"; - case AccessFlagBits::eShaderWrite : return "ShaderWrite"; - case AccessFlagBits::eColorAttachmentRead : return "ColorAttachmentRead"; - case AccessFlagBits::eColorAttachmentWrite : return "ColorAttachmentWrite"; - case AccessFlagBits::eDepthStencilAttachmentRead : return "DepthStencilAttachmentRead"; - case AccessFlagBits::eDepthStencilAttachmentWrite : return "DepthStencilAttachmentWrite"; - case AccessFlagBits::eTransferRead : return "TransferRead"; - case AccessFlagBits::eTransferWrite : return "TransferWrite"; - case AccessFlagBits::eHostRead : return "HostRead"; - case AccessFlagBits::eHostWrite : return "HostWrite"; - case AccessFlagBits::eMemoryRead : return "MemoryRead"; - case AccessFlagBits::eMemoryWrite : return "MemoryWrite"; - case AccessFlagBits::eTransformFeedbackWriteEXT : return "TransformFeedbackWriteEXT"; - case AccessFlagBits::eTransformFeedbackCounterReadEXT : return "TransformFeedbackCounterReadEXT"; - case AccessFlagBits::eTransformFeedbackCounterWriteEXT : return "TransformFeedbackCounterWriteEXT"; - case AccessFlagBits::eConditionalRenderingReadEXT : return "ConditionalRenderingReadEXT"; - case AccessFlagBits::eCommandProcessReadNVX : return "CommandProcessReadNVX"; - case AccessFlagBits::eCommandProcessWriteNVX : return "CommandProcessWriteNVX"; - case AccessFlagBits::eColorAttachmentReadNoncoherentEXT : return "ColorAttachmentReadNoncoherentEXT"; - case AccessFlagBits::eShadingRateImageReadNV : return "ShadingRateImageReadNV"; - case AccessFlagBits::eAccelerationStructureReadNV : return "AccelerationStructureReadNV"; - case AccessFlagBits::eAccelerationStructureWriteNV : return "AccelerationStructureWriteNV"; - case AccessFlagBits::eFragmentDensityMapReadEXT : return "FragmentDensityMapReadEXT"; - default: return "invalid"; - } - } - - enum class AcquireProfilingLockFlagBitsKHR - {}; + case AccessFlagBits::eIndirectCommandRead: return "IndirectCommandRead"; + case AccessFlagBits::eIndexRead: return "IndexRead"; + case AccessFlagBits::eVertexAttributeRead: return "VertexAttributeRead"; + case AccessFlagBits::eUniformRead: return "UniformRead"; + case AccessFlagBits::eInputAttachmentRead: return "InputAttachmentRead"; + case AccessFlagBits::eShaderRead: return "ShaderRead"; + case AccessFlagBits::eShaderWrite: return "ShaderWrite"; + case AccessFlagBits::eColorAttachmentRead: return "ColorAttachmentRead"; + case AccessFlagBits::eColorAttachmentWrite: return "ColorAttachmentWrite"; + case AccessFlagBits::eDepthStencilAttachmentRead: return "DepthStencilAttachmentRead"; + case AccessFlagBits::eDepthStencilAttachmentWrite: return "DepthStencilAttachmentWrite"; + case AccessFlagBits::eTransferRead: return "TransferRead"; + case AccessFlagBits::eTransferWrite: return "TransferWrite"; + case AccessFlagBits::eHostRead: return "HostRead"; + case AccessFlagBits::eHostWrite: return "HostWrite"; + case AccessFlagBits::eMemoryRead: return "MemoryRead"; + case AccessFlagBits::eMemoryWrite: return "MemoryWrite"; + case AccessFlagBits::eTransformFeedbackWriteEXT: return "TransformFeedbackWriteEXT"; + case AccessFlagBits::eTransformFeedbackCounterReadEXT: return "TransformFeedbackCounterReadEXT"; + case AccessFlagBits::eTransformFeedbackCounterWriteEXT: return "TransformFeedbackCounterWriteEXT"; + case AccessFlagBits::eConditionalRenderingReadEXT: return "ConditionalRenderingReadEXT"; + case AccessFlagBits::eColorAttachmentReadNoncoherentEXT: return "ColorAttachmentReadNoncoherentEXT"; + case AccessFlagBits::eAccelerationStructureReadKHR: return "AccelerationStructureReadKHR"; + case AccessFlagBits::eAccelerationStructureWriteKHR: return "AccelerationStructureWriteKHR"; + case AccessFlagBits::eShadingRateImageReadNV: return "ShadingRateImageReadNV"; + case AccessFlagBits::eFragmentDensityMapReadEXT: return "FragmentDensityMapReadEXT"; + case AccessFlagBits::eCommandPreprocessReadNV: return "CommandPreprocessReadNV"; + case AccessFlagBits::eCommandPreprocessWriteNV: return "CommandPreprocessWriteNV"; + case AccessFlagBits::eNoneKHR: return "NoneKHR"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class AccessFlagBits2KHR : VkAccessFlags2KHR + { + // clang-format off + eNone = VK_ACCESS_2_NONE_KHR + , eIndirectCommandRead = VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR + , eIndexRead = VK_ACCESS_2_INDEX_READ_BIT_KHR + , eVertexAttributeRead = VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR + , eUniformRead = VK_ACCESS_2_UNIFORM_READ_BIT_KHR + , eInputAttachmentRead = VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR + , eShaderRead = VK_ACCESS_2_SHADER_READ_BIT_KHR + , eShaderWrite = VK_ACCESS_2_SHADER_WRITE_BIT_KHR + , eColorAttachmentRead = VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR + , eColorAttachmentWrite = VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR + , eDepthStencilAttachmentRead = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR + , eDepthStencilAttachmentWrite = VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR + , eTransferRead = VK_ACCESS_2_TRANSFER_READ_BIT_KHR + , eTransferWrite = VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR + , eHostRead = VK_ACCESS_2_HOST_READ_BIT_KHR + , eHostWrite = VK_ACCESS_2_HOST_WRITE_BIT_KHR + , eMemoryRead = VK_ACCESS_2_MEMORY_READ_BIT_KHR + , eMemoryWrite = VK_ACCESS_2_MEMORY_WRITE_BIT_KHR + , eShaderSampledRead = VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR + , eShaderStorageRead = VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR + , eShaderStorageWrite = VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + , eVideoDecodeRead = VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR + , eVideoDecodeWrite = VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR + , eVideoEncodeRead = VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR + , eVideoEncodeWrite = VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + , eTransformFeedbackWriteExt = VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT + , eTransformFeedbackCounterReadExt = VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT + , eTransformFeedbackCounterWriteExt = VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT + , eConditionalRenderingReadExt = VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT + , eCommandPreprocessReadNv = VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV + , eCommandPreprocessWriteNv = VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV + , eFragmentShadingRateAttachmentRead = VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR + , eAccelerationStructureRead = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR + , eAccelerationStructureWrite = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR + , eFragmentDensityMapReadExt = VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT + , eColorAttachmentReadNoncoherentExt = VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT + , eAccelerationStructureReadNv = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV + , eAccelerationStructureWriteNv = VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV + , eShadingRateImageReadNv = VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV + // clang-format on + }; + + VULKAN_HPP_INLINE std::string to_string( AccessFlagBits2KHR value ) + { + switch ( value ) + { + case AccessFlagBits2KHR::eNone: return "None"; + case AccessFlagBits2KHR::eIndirectCommandRead: return "IndirectCommandRead"; + case AccessFlagBits2KHR::eIndexRead: return "IndexRead"; + case AccessFlagBits2KHR::eVertexAttributeRead: return "VertexAttributeRead"; + case AccessFlagBits2KHR::eUniformRead: return "UniformRead"; + case AccessFlagBits2KHR::eInputAttachmentRead: return "InputAttachmentRead"; + case AccessFlagBits2KHR::eShaderRead: return "ShaderRead"; + case AccessFlagBits2KHR::eShaderWrite: return "ShaderWrite"; + case AccessFlagBits2KHR::eColorAttachmentRead: return "ColorAttachmentRead"; + case AccessFlagBits2KHR::eColorAttachmentWrite: return "ColorAttachmentWrite"; + case AccessFlagBits2KHR::eDepthStencilAttachmentRead: return "DepthStencilAttachmentRead"; + case AccessFlagBits2KHR::eDepthStencilAttachmentWrite: return "DepthStencilAttachmentWrite"; + case AccessFlagBits2KHR::eTransferRead: return "TransferRead"; + case AccessFlagBits2KHR::eTransferWrite: return "TransferWrite"; + case AccessFlagBits2KHR::eHostRead: return "HostRead"; + case AccessFlagBits2KHR::eHostWrite: return "HostWrite"; + case AccessFlagBits2KHR::eMemoryRead: return "MemoryRead"; + case AccessFlagBits2KHR::eMemoryWrite: return "MemoryWrite"; + case AccessFlagBits2KHR::eShaderSampledRead: return "ShaderSampledRead"; + case AccessFlagBits2KHR::eShaderStorageRead: return "ShaderStorageRead"; + case AccessFlagBits2KHR::eShaderStorageWrite: return "ShaderStorageWrite"; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + case AccessFlagBits2KHR::eVideoDecodeRead: return "VideoDecodeRead"; + case AccessFlagBits2KHR::eVideoDecodeWrite: return "VideoDecodeWrite"; + case AccessFlagBits2KHR::eVideoEncodeRead: return "VideoEncodeRead"; + case AccessFlagBits2KHR::eVideoEncodeWrite: return "VideoEncodeWrite"; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + case AccessFlagBits2KHR::eTransformFeedbackWriteExt: return "TransformFeedbackWriteExt"; + case AccessFlagBits2KHR::eTransformFeedbackCounterReadExt: return "TransformFeedbackCounterReadExt"; + case AccessFlagBits2KHR::eTransformFeedbackCounterWriteExt: return "TransformFeedbackCounterWriteExt"; + case AccessFlagBits2KHR::eConditionalRenderingReadExt: return "ConditionalRenderingReadExt"; + case AccessFlagBits2KHR::eCommandPreprocessReadNv: return "CommandPreprocessReadNv"; + case AccessFlagBits2KHR::eCommandPreprocessWriteNv: return "CommandPreprocessWriteNv"; + case AccessFlagBits2KHR::eFragmentShadingRateAttachmentRead: return "FragmentShadingRateAttachmentRead"; + case AccessFlagBits2KHR::eAccelerationStructureRead: return "AccelerationStructureRead"; + case AccessFlagBits2KHR::eAccelerationStructureWrite: return "AccelerationStructureWrite"; + case AccessFlagBits2KHR::eFragmentDensityMapReadExt: return "FragmentDensityMapReadExt"; + case AccessFlagBits2KHR::eColorAttachmentReadNoncoherentExt: return "ColorAttachmentReadNoncoherentExt"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class AcquireProfilingLockFlagBitsKHR : VkAcquireProfilingLockFlagsKHR + { + }; VULKAN_HPP_INLINE std::string to_string( AcquireProfilingLockFlagBitsKHR ) { return "(void)"; } - enum class AttachmentDescriptionFlagBits + enum class AttachmentDescriptionFlagBits : VkAttachmentDescriptionFlags { eMayAlias = VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT }; @@ -3097,15 +5736,15 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case AttachmentDescriptionFlagBits::eMayAlias : return "MayAlias"; - default: return "invalid"; + case AttachmentDescriptionFlagBits::eMayAlias: return "MayAlias"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class AttachmentLoadOp { - eLoad = VK_ATTACHMENT_LOAD_OP_LOAD, - eClear = VK_ATTACHMENT_LOAD_OP_CLEAR, + eLoad = VK_ATTACHMENT_LOAD_OP_LOAD, + eClear = VK_ATTACHMENT_LOAD_OP_CLEAR, eDontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE }; @@ -3113,242 +5752,248 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case AttachmentLoadOp::eLoad : return "Load"; - case AttachmentLoadOp::eClear : return "Clear"; - case AttachmentLoadOp::eDontCare : return "DontCare"; - default: return "invalid"; + case AttachmentLoadOp::eLoad: return "Load"; + case AttachmentLoadOp::eClear: return "Clear"; + case AttachmentLoadOp::eDontCare: return "DontCare"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class AttachmentStoreOp { - eStore = VK_ATTACHMENT_STORE_OP_STORE, - eDontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE + eStore = VK_ATTACHMENT_STORE_OP_STORE, + eDontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE, + eNoneQCOM = VK_ATTACHMENT_STORE_OP_NONE_QCOM }; VULKAN_HPP_INLINE std::string to_string( AttachmentStoreOp value ) { switch ( value ) { - case AttachmentStoreOp::eStore : return "Store"; - case AttachmentStoreOp::eDontCare : return "DontCare"; - default: return "invalid"; + case AttachmentStoreOp::eStore: return "Store"; + case AttachmentStoreOp::eDontCare: return "DontCare"; + case AttachmentStoreOp::eNoneQCOM: return "NoneQCOM"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class BlendFactor { - eZero = VK_BLEND_FACTOR_ZERO, - eOne = VK_BLEND_FACTOR_ONE, - eSrcColor = VK_BLEND_FACTOR_SRC_COLOR, - eOneMinusSrcColor = VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR, - eDstColor = VK_BLEND_FACTOR_DST_COLOR, - eOneMinusDstColor = VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR, - eSrcAlpha = VK_BLEND_FACTOR_SRC_ALPHA, - eOneMinusSrcAlpha = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA, - eDstAlpha = VK_BLEND_FACTOR_DST_ALPHA, - eOneMinusDstAlpha = VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA, - eConstantColor = VK_BLEND_FACTOR_CONSTANT_COLOR, + eZero = VK_BLEND_FACTOR_ZERO, + eOne = VK_BLEND_FACTOR_ONE, + eSrcColor = VK_BLEND_FACTOR_SRC_COLOR, + eOneMinusSrcColor = VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR, + eDstColor = VK_BLEND_FACTOR_DST_COLOR, + eOneMinusDstColor = VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR, + eSrcAlpha = VK_BLEND_FACTOR_SRC_ALPHA, + eOneMinusSrcAlpha = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA, + eDstAlpha = VK_BLEND_FACTOR_DST_ALPHA, + eOneMinusDstAlpha = VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA, + eConstantColor = VK_BLEND_FACTOR_CONSTANT_COLOR, eOneMinusConstantColor = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, - eConstantAlpha = VK_BLEND_FACTOR_CONSTANT_ALPHA, + eConstantAlpha = VK_BLEND_FACTOR_CONSTANT_ALPHA, eOneMinusConstantAlpha = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, - eSrcAlphaSaturate = VK_BLEND_FACTOR_SRC_ALPHA_SATURATE, - eSrc1Color = VK_BLEND_FACTOR_SRC1_COLOR, - eOneMinusSrc1Color = VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, - eSrc1Alpha = VK_BLEND_FACTOR_SRC1_ALPHA, - eOneMinusSrc1Alpha = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA + eSrcAlphaSaturate = VK_BLEND_FACTOR_SRC_ALPHA_SATURATE, + eSrc1Color = VK_BLEND_FACTOR_SRC1_COLOR, + eOneMinusSrc1Color = VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, + eSrc1Alpha = VK_BLEND_FACTOR_SRC1_ALPHA, + eOneMinusSrc1Alpha = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA }; VULKAN_HPP_INLINE std::string to_string( BlendFactor value ) { switch ( value ) { - case BlendFactor::eZero : return "Zero"; - case BlendFactor::eOne : return "One"; - case BlendFactor::eSrcColor : return "SrcColor"; - case BlendFactor::eOneMinusSrcColor : return "OneMinusSrcColor"; - case BlendFactor::eDstColor : return "DstColor"; - case BlendFactor::eOneMinusDstColor : return "OneMinusDstColor"; - case BlendFactor::eSrcAlpha : return "SrcAlpha"; - case BlendFactor::eOneMinusSrcAlpha : return "OneMinusSrcAlpha"; - case BlendFactor::eDstAlpha : return "DstAlpha"; - case BlendFactor::eOneMinusDstAlpha : return "OneMinusDstAlpha"; - case BlendFactor::eConstantColor : return "ConstantColor"; - case BlendFactor::eOneMinusConstantColor : return "OneMinusConstantColor"; - case BlendFactor::eConstantAlpha : return "ConstantAlpha"; - case BlendFactor::eOneMinusConstantAlpha : return "OneMinusConstantAlpha"; - case BlendFactor::eSrcAlphaSaturate : return "SrcAlphaSaturate"; - case BlendFactor::eSrc1Color : return "Src1Color"; - case BlendFactor::eOneMinusSrc1Color : return "OneMinusSrc1Color"; - case BlendFactor::eSrc1Alpha : return "Src1Alpha"; - case BlendFactor::eOneMinusSrc1Alpha : return "OneMinusSrc1Alpha"; - default: return "invalid"; + case BlendFactor::eZero: return "Zero"; + case BlendFactor::eOne: return "One"; + case BlendFactor::eSrcColor: return "SrcColor"; + case BlendFactor::eOneMinusSrcColor: return "OneMinusSrcColor"; + case BlendFactor::eDstColor: return "DstColor"; + case BlendFactor::eOneMinusDstColor: return "OneMinusDstColor"; + case BlendFactor::eSrcAlpha: return "SrcAlpha"; + case BlendFactor::eOneMinusSrcAlpha: return "OneMinusSrcAlpha"; + case BlendFactor::eDstAlpha: return "DstAlpha"; + case BlendFactor::eOneMinusDstAlpha: return "OneMinusDstAlpha"; + case BlendFactor::eConstantColor: return "ConstantColor"; + case BlendFactor::eOneMinusConstantColor: return "OneMinusConstantColor"; + case BlendFactor::eConstantAlpha: return "ConstantAlpha"; + case BlendFactor::eOneMinusConstantAlpha: return "OneMinusConstantAlpha"; + case BlendFactor::eSrcAlphaSaturate: return "SrcAlphaSaturate"; + case BlendFactor::eSrc1Color: return "Src1Color"; + case BlendFactor::eOneMinusSrc1Color: return "OneMinusSrc1Color"; + case BlendFactor::eSrc1Alpha: return "Src1Alpha"; + case BlendFactor::eOneMinusSrc1Alpha: return "OneMinusSrc1Alpha"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class BlendOp { - eAdd = VK_BLEND_OP_ADD, - eSubtract = VK_BLEND_OP_SUBTRACT, - eReverseSubtract = VK_BLEND_OP_REVERSE_SUBTRACT, - eMin = VK_BLEND_OP_MIN, - eMax = VK_BLEND_OP_MAX, - eZeroEXT = VK_BLEND_OP_ZERO_EXT, - eSrcEXT = VK_BLEND_OP_SRC_EXT, - eDstEXT = VK_BLEND_OP_DST_EXT, - eSrcOverEXT = VK_BLEND_OP_SRC_OVER_EXT, - eDstOverEXT = VK_BLEND_OP_DST_OVER_EXT, - eSrcInEXT = VK_BLEND_OP_SRC_IN_EXT, - eDstInEXT = VK_BLEND_OP_DST_IN_EXT, - eSrcOutEXT = VK_BLEND_OP_SRC_OUT_EXT, - eDstOutEXT = VK_BLEND_OP_DST_OUT_EXT, - eSrcAtopEXT = VK_BLEND_OP_SRC_ATOP_EXT, - eDstAtopEXT = VK_BLEND_OP_DST_ATOP_EXT, - eXorEXT = VK_BLEND_OP_XOR_EXT, - eMultiplyEXT = VK_BLEND_OP_MULTIPLY_EXT, - eScreenEXT = VK_BLEND_OP_SCREEN_EXT, - eOverlayEXT = VK_BLEND_OP_OVERLAY_EXT, - eDarkenEXT = VK_BLEND_OP_DARKEN_EXT, - eLightenEXT = VK_BLEND_OP_LIGHTEN_EXT, - eColordodgeEXT = VK_BLEND_OP_COLORDODGE_EXT, - eColorburnEXT = VK_BLEND_OP_COLORBURN_EXT, - eHardlightEXT = VK_BLEND_OP_HARDLIGHT_EXT, - eSoftlightEXT = VK_BLEND_OP_SOFTLIGHT_EXT, - eDifferenceEXT = VK_BLEND_OP_DIFFERENCE_EXT, - eExclusionEXT = VK_BLEND_OP_EXCLUSION_EXT, - eInvertEXT = VK_BLEND_OP_INVERT_EXT, - eInvertRgbEXT = VK_BLEND_OP_INVERT_RGB_EXT, - eLineardodgeEXT = VK_BLEND_OP_LINEARDODGE_EXT, - eLinearburnEXT = VK_BLEND_OP_LINEARBURN_EXT, - eVividlightEXT = VK_BLEND_OP_VIVIDLIGHT_EXT, - eLinearlightEXT = VK_BLEND_OP_LINEARLIGHT_EXT, - ePinlightEXT = VK_BLEND_OP_PINLIGHT_EXT, - eHardmixEXT = VK_BLEND_OP_HARDMIX_EXT, - eHslHueEXT = VK_BLEND_OP_HSL_HUE_EXT, - eHslSaturationEXT = VK_BLEND_OP_HSL_SATURATION_EXT, - eHslColorEXT = VK_BLEND_OP_HSL_COLOR_EXT, - eHslLuminosityEXT = VK_BLEND_OP_HSL_LUMINOSITY_EXT, - ePlusEXT = VK_BLEND_OP_PLUS_EXT, - ePlusClampedEXT = VK_BLEND_OP_PLUS_CLAMPED_EXT, + eAdd = VK_BLEND_OP_ADD, + eSubtract = VK_BLEND_OP_SUBTRACT, + eReverseSubtract = VK_BLEND_OP_REVERSE_SUBTRACT, + eMin = VK_BLEND_OP_MIN, + eMax = VK_BLEND_OP_MAX, + eZeroEXT = VK_BLEND_OP_ZERO_EXT, + eSrcEXT = VK_BLEND_OP_SRC_EXT, + eDstEXT = VK_BLEND_OP_DST_EXT, + eSrcOverEXT = VK_BLEND_OP_SRC_OVER_EXT, + eDstOverEXT = VK_BLEND_OP_DST_OVER_EXT, + eSrcInEXT = VK_BLEND_OP_SRC_IN_EXT, + eDstInEXT = VK_BLEND_OP_DST_IN_EXT, + eSrcOutEXT = VK_BLEND_OP_SRC_OUT_EXT, + eDstOutEXT = VK_BLEND_OP_DST_OUT_EXT, + eSrcAtopEXT = VK_BLEND_OP_SRC_ATOP_EXT, + eDstAtopEXT = VK_BLEND_OP_DST_ATOP_EXT, + eXorEXT = VK_BLEND_OP_XOR_EXT, + eMultiplyEXT = VK_BLEND_OP_MULTIPLY_EXT, + eScreenEXT = VK_BLEND_OP_SCREEN_EXT, + eOverlayEXT = VK_BLEND_OP_OVERLAY_EXT, + eDarkenEXT = VK_BLEND_OP_DARKEN_EXT, + eLightenEXT = VK_BLEND_OP_LIGHTEN_EXT, + eColordodgeEXT = VK_BLEND_OP_COLORDODGE_EXT, + eColorburnEXT = VK_BLEND_OP_COLORBURN_EXT, + eHardlightEXT = VK_BLEND_OP_HARDLIGHT_EXT, + eSoftlightEXT = VK_BLEND_OP_SOFTLIGHT_EXT, + eDifferenceEXT = VK_BLEND_OP_DIFFERENCE_EXT, + eExclusionEXT = VK_BLEND_OP_EXCLUSION_EXT, + eInvertEXT = VK_BLEND_OP_INVERT_EXT, + eInvertRgbEXT = VK_BLEND_OP_INVERT_RGB_EXT, + eLineardodgeEXT = VK_BLEND_OP_LINEARDODGE_EXT, + eLinearburnEXT = VK_BLEND_OP_LINEARBURN_EXT, + eVividlightEXT = VK_BLEND_OP_VIVIDLIGHT_EXT, + eLinearlightEXT = VK_BLEND_OP_LINEARLIGHT_EXT, + ePinlightEXT = VK_BLEND_OP_PINLIGHT_EXT, + eHardmixEXT = VK_BLEND_OP_HARDMIX_EXT, + eHslHueEXT = VK_BLEND_OP_HSL_HUE_EXT, + eHslSaturationEXT = VK_BLEND_OP_HSL_SATURATION_EXT, + eHslColorEXT = VK_BLEND_OP_HSL_COLOR_EXT, + eHslLuminosityEXT = VK_BLEND_OP_HSL_LUMINOSITY_EXT, + ePlusEXT = VK_BLEND_OP_PLUS_EXT, + ePlusClampedEXT = VK_BLEND_OP_PLUS_CLAMPED_EXT, ePlusClampedAlphaEXT = VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT, - ePlusDarkerEXT = VK_BLEND_OP_PLUS_DARKER_EXT, - eMinusEXT = VK_BLEND_OP_MINUS_EXT, - eMinusClampedEXT = VK_BLEND_OP_MINUS_CLAMPED_EXT, - eContrastEXT = VK_BLEND_OP_CONTRAST_EXT, - eInvertOvgEXT = VK_BLEND_OP_INVERT_OVG_EXT, - eRedEXT = VK_BLEND_OP_RED_EXT, - eGreenEXT = VK_BLEND_OP_GREEN_EXT, - eBlueEXT = VK_BLEND_OP_BLUE_EXT + ePlusDarkerEXT = VK_BLEND_OP_PLUS_DARKER_EXT, + eMinusEXT = VK_BLEND_OP_MINUS_EXT, + eMinusClampedEXT = VK_BLEND_OP_MINUS_CLAMPED_EXT, + eContrastEXT = VK_BLEND_OP_CONTRAST_EXT, + eInvertOvgEXT = VK_BLEND_OP_INVERT_OVG_EXT, + eRedEXT = VK_BLEND_OP_RED_EXT, + eGreenEXT = VK_BLEND_OP_GREEN_EXT, + eBlueEXT = VK_BLEND_OP_BLUE_EXT }; VULKAN_HPP_INLINE std::string to_string( BlendOp value ) { switch ( value ) { - case BlendOp::eAdd : return "Add"; - case BlendOp::eSubtract : return "Subtract"; - case BlendOp::eReverseSubtract : return "ReverseSubtract"; - case BlendOp::eMin : return "Min"; - case BlendOp::eMax : return "Max"; - case BlendOp::eZeroEXT : return "ZeroEXT"; - case BlendOp::eSrcEXT : return "SrcEXT"; - case BlendOp::eDstEXT : return "DstEXT"; - case BlendOp::eSrcOverEXT : return "SrcOverEXT"; - case BlendOp::eDstOverEXT : return "DstOverEXT"; - case BlendOp::eSrcInEXT : return "SrcInEXT"; - case BlendOp::eDstInEXT : return "DstInEXT"; - case BlendOp::eSrcOutEXT : return "SrcOutEXT"; - case BlendOp::eDstOutEXT : return "DstOutEXT"; - case BlendOp::eSrcAtopEXT : return "SrcAtopEXT"; - case BlendOp::eDstAtopEXT : return "DstAtopEXT"; - case BlendOp::eXorEXT : return "XorEXT"; - case BlendOp::eMultiplyEXT : return "MultiplyEXT"; - case BlendOp::eScreenEXT : return "ScreenEXT"; - case BlendOp::eOverlayEXT : return "OverlayEXT"; - case BlendOp::eDarkenEXT : return "DarkenEXT"; - case BlendOp::eLightenEXT : return "LightenEXT"; - case BlendOp::eColordodgeEXT : return "ColordodgeEXT"; - case BlendOp::eColorburnEXT : return "ColorburnEXT"; - case BlendOp::eHardlightEXT : return "HardlightEXT"; - case BlendOp::eSoftlightEXT : return "SoftlightEXT"; - case BlendOp::eDifferenceEXT : return "DifferenceEXT"; - case BlendOp::eExclusionEXT : return "ExclusionEXT"; - case BlendOp::eInvertEXT : return "InvertEXT"; - case BlendOp::eInvertRgbEXT : return "InvertRgbEXT"; - case BlendOp::eLineardodgeEXT : return "LineardodgeEXT"; - case BlendOp::eLinearburnEXT : return "LinearburnEXT"; - case BlendOp::eVividlightEXT : return "VividlightEXT"; - case BlendOp::eLinearlightEXT : return "LinearlightEXT"; - case BlendOp::ePinlightEXT : return "PinlightEXT"; - case BlendOp::eHardmixEXT : return "HardmixEXT"; - case BlendOp::eHslHueEXT : return "HslHueEXT"; - case BlendOp::eHslSaturationEXT : return "HslSaturationEXT"; - case BlendOp::eHslColorEXT : return "HslColorEXT"; - case BlendOp::eHslLuminosityEXT : return "HslLuminosityEXT"; - case BlendOp::ePlusEXT : return "PlusEXT"; - case BlendOp::ePlusClampedEXT : return "PlusClampedEXT"; - case BlendOp::ePlusClampedAlphaEXT : return "PlusClampedAlphaEXT"; - case BlendOp::ePlusDarkerEXT : return "PlusDarkerEXT"; - case BlendOp::eMinusEXT : return "MinusEXT"; - case BlendOp::eMinusClampedEXT : return "MinusClampedEXT"; - case BlendOp::eContrastEXT : return "ContrastEXT"; - case BlendOp::eInvertOvgEXT : return "InvertOvgEXT"; - case BlendOp::eRedEXT : return "RedEXT"; - case BlendOp::eGreenEXT : return "GreenEXT"; - case BlendOp::eBlueEXT : return "BlueEXT"; - default: return "invalid"; + case BlendOp::eAdd: return "Add"; + case BlendOp::eSubtract: return "Subtract"; + case BlendOp::eReverseSubtract: return "ReverseSubtract"; + case BlendOp::eMin: return "Min"; + case BlendOp::eMax: return "Max"; + case BlendOp::eZeroEXT: return "ZeroEXT"; + case BlendOp::eSrcEXT: return "SrcEXT"; + case BlendOp::eDstEXT: return "DstEXT"; + case BlendOp::eSrcOverEXT: return "SrcOverEXT"; + case BlendOp::eDstOverEXT: return "DstOverEXT"; + case BlendOp::eSrcInEXT: return "SrcInEXT"; + case BlendOp::eDstInEXT: return "DstInEXT"; + case BlendOp::eSrcOutEXT: return "SrcOutEXT"; + case BlendOp::eDstOutEXT: return "DstOutEXT"; + case BlendOp::eSrcAtopEXT: return "SrcAtopEXT"; + case BlendOp::eDstAtopEXT: return "DstAtopEXT"; + case BlendOp::eXorEXT: return "XorEXT"; + case BlendOp::eMultiplyEXT: return "MultiplyEXT"; + case BlendOp::eScreenEXT: return "ScreenEXT"; + case BlendOp::eOverlayEXT: return "OverlayEXT"; + case BlendOp::eDarkenEXT: return "DarkenEXT"; + case BlendOp::eLightenEXT: return "LightenEXT"; + case BlendOp::eColordodgeEXT: return "ColordodgeEXT"; + case BlendOp::eColorburnEXT: return "ColorburnEXT"; + case BlendOp::eHardlightEXT: return "HardlightEXT"; + case BlendOp::eSoftlightEXT: return "SoftlightEXT"; + case BlendOp::eDifferenceEXT: return "DifferenceEXT"; + case BlendOp::eExclusionEXT: return "ExclusionEXT"; + case BlendOp::eInvertEXT: return "InvertEXT"; + case BlendOp::eInvertRgbEXT: return "InvertRgbEXT"; + case BlendOp::eLineardodgeEXT: return "LineardodgeEXT"; + case BlendOp::eLinearburnEXT: return "LinearburnEXT"; + case BlendOp::eVividlightEXT: return "VividlightEXT"; + case BlendOp::eLinearlightEXT: return "LinearlightEXT"; + case BlendOp::ePinlightEXT: return "PinlightEXT"; + case BlendOp::eHardmixEXT: return "HardmixEXT"; + case BlendOp::eHslHueEXT: return "HslHueEXT"; + case BlendOp::eHslSaturationEXT: return "HslSaturationEXT"; + case BlendOp::eHslColorEXT: return "HslColorEXT"; + case BlendOp::eHslLuminosityEXT: return "HslLuminosityEXT"; + case BlendOp::ePlusEXT: return "PlusEXT"; + case BlendOp::ePlusClampedEXT: return "PlusClampedEXT"; + case BlendOp::ePlusClampedAlphaEXT: return "PlusClampedAlphaEXT"; + case BlendOp::ePlusDarkerEXT: return "PlusDarkerEXT"; + case BlendOp::eMinusEXT: return "MinusEXT"; + case BlendOp::eMinusClampedEXT: return "MinusClampedEXT"; + case BlendOp::eContrastEXT: return "ContrastEXT"; + case BlendOp::eInvertOvgEXT: return "InvertOvgEXT"; + case BlendOp::eRedEXT: return "RedEXT"; + case BlendOp::eGreenEXT: return "GreenEXT"; + case BlendOp::eBlueEXT: return "BlueEXT"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class BlendOverlapEXT { eUncorrelated = VK_BLEND_OVERLAP_UNCORRELATED_EXT, - eDisjoint = VK_BLEND_OVERLAP_DISJOINT_EXT, - eConjoint = VK_BLEND_OVERLAP_CONJOINT_EXT + eDisjoint = VK_BLEND_OVERLAP_DISJOINT_EXT, + eConjoint = VK_BLEND_OVERLAP_CONJOINT_EXT }; VULKAN_HPP_INLINE std::string to_string( BlendOverlapEXT value ) { switch ( value ) { - case BlendOverlapEXT::eUncorrelated : return "Uncorrelated"; - case BlendOverlapEXT::eDisjoint : return "Disjoint"; - case BlendOverlapEXT::eConjoint : return "Conjoint"; - default: return "invalid"; + case BlendOverlapEXT::eUncorrelated: return "Uncorrelated"; + case BlendOverlapEXT::eDisjoint: return "Disjoint"; + case BlendOverlapEXT::eConjoint: return "Conjoint"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class BorderColor { eFloatTransparentBlack = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK, - eIntTransparentBlack = VK_BORDER_COLOR_INT_TRANSPARENT_BLACK, - eFloatOpaqueBlack = VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK, - eIntOpaqueBlack = VK_BORDER_COLOR_INT_OPAQUE_BLACK, - eFloatOpaqueWhite = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE, - eIntOpaqueWhite = VK_BORDER_COLOR_INT_OPAQUE_WHITE + eIntTransparentBlack = VK_BORDER_COLOR_INT_TRANSPARENT_BLACK, + eFloatOpaqueBlack = VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK, + eIntOpaqueBlack = VK_BORDER_COLOR_INT_OPAQUE_BLACK, + eFloatOpaqueWhite = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE, + eIntOpaqueWhite = VK_BORDER_COLOR_INT_OPAQUE_WHITE, + eFloatCustomEXT = VK_BORDER_COLOR_FLOAT_CUSTOM_EXT, + eIntCustomEXT = VK_BORDER_COLOR_INT_CUSTOM_EXT }; VULKAN_HPP_INLINE std::string to_string( BorderColor value ) { switch ( value ) { - case BorderColor::eFloatTransparentBlack : return "FloatTransparentBlack"; - case BorderColor::eIntTransparentBlack : return "IntTransparentBlack"; - case BorderColor::eFloatOpaqueBlack : return "FloatOpaqueBlack"; - case BorderColor::eIntOpaqueBlack : return "IntOpaqueBlack"; - case BorderColor::eFloatOpaqueWhite : return "FloatOpaqueWhite"; - case BorderColor::eIntOpaqueWhite : return "IntOpaqueWhite"; - default: return "invalid"; + case BorderColor::eFloatTransparentBlack: return "FloatTransparentBlack"; + case BorderColor::eIntTransparentBlack: return "IntTransparentBlack"; + case BorderColor::eFloatOpaqueBlack: return "FloatOpaqueBlack"; + case BorderColor::eIntOpaqueBlack: return "IntOpaqueBlack"; + case BorderColor::eFloatOpaqueWhite: return "FloatOpaqueWhite"; + case BorderColor::eIntOpaqueWhite: return "IntOpaqueWhite"; + case BorderColor::eFloatCustomEXT: return "FloatCustomEXT"; + case BorderColor::eIntCustomEXT: return "IntCustomEXT"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class BufferCreateFlagBits + enum class BufferCreateFlagBits : VkBufferCreateFlags { - eSparseBinding = VK_BUFFER_CREATE_SPARSE_BINDING_BIT, - eSparseResidency = VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT, - eSparseAliased = VK_BUFFER_CREATE_SPARSE_ALIASED_BIT, - eProtected = VK_BUFFER_CREATE_PROTECTED_BIT, - eDeviceAddressCaptureReplay = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, + eSparseBinding = VK_BUFFER_CREATE_SPARSE_BINDING_BIT, + eSparseResidency = VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT, + eSparseAliased = VK_BUFFER_CREATE_SPARSE_ALIASED_BIT, + eProtected = VK_BUFFER_CREATE_PROTECTED_BIT, + eDeviceAddressCaptureReplay = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, eDeviceAddressCaptureReplayEXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT, eDeviceAddressCaptureReplayKHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR }; @@ -3357,91 +6002,120 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case BufferCreateFlagBits::eSparseBinding : return "SparseBinding"; - case BufferCreateFlagBits::eSparseResidency : return "SparseResidency"; - case BufferCreateFlagBits::eSparseAliased : return "SparseAliased"; - case BufferCreateFlagBits::eProtected : return "Protected"; - case BufferCreateFlagBits::eDeviceAddressCaptureReplay : return "DeviceAddressCaptureReplay"; - default: return "invalid"; - } - } - - enum class BufferUsageFlagBits - { - eTransferSrc = VK_BUFFER_USAGE_TRANSFER_SRC_BIT, - eTransferDst = VK_BUFFER_USAGE_TRANSFER_DST_BIT, - eUniformTexelBuffer = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, - eStorageTexelBuffer = VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, - eUniformBuffer = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, - eStorageBuffer = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, - eIndexBuffer = VK_BUFFER_USAGE_INDEX_BUFFER_BIT, - eVertexBuffer = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, - eIndirectBuffer = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, - eShaderDeviceAddress = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT, - eTransformFeedbackBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT, - eTransformFeedbackCounterBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT, - eConditionalRenderingEXT = VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT, - eRayTracingNV = VK_BUFFER_USAGE_RAY_TRACING_BIT_NV, - eShaderDeviceAddressEXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT, - eShaderDeviceAddressKHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR + case BufferCreateFlagBits::eSparseBinding: return "SparseBinding"; + case BufferCreateFlagBits::eSparseResidency: return "SparseResidency"; + case BufferCreateFlagBits::eSparseAliased: return "SparseAliased"; + case BufferCreateFlagBits::eProtected: return "Protected"; + case BufferCreateFlagBits::eDeviceAddressCaptureReplay: return "DeviceAddressCaptureReplay"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class BufferUsageFlagBits : VkBufferUsageFlags + { + // clang-format off + eTransferSrc = VK_BUFFER_USAGE_TRANSFER_SRC_BIT + , eTransferDst = VK_BUFFER_USAGE_TRANSFER_DST_BIT + , eUniformTexelBuffer = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT + , eStorageTexelBuffer = VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT + , eUniformBuffer = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT + , eStorageBuffer = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT + , eIndexBuffer = VK_BUFFER_USAGE_INDEX_BUFFER_BIT + , eVertexBuffer = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT + , eIndirectBuffer = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT + , eShaderDeviceAddress = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + , eVideoDecodeSrcKHR = VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR + , eVideoDecodeDstKHR = VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR + , eVideoEncodeDstKHR = VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR + , eVideoEncodeSrcKHR = VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + , eTransformFeedbackBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT + , eTransformFeedbackCounterBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT + , eConditionalRenderingEXT = VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT + , eAccelerationStructureBuildInputReadOnlyKHR = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR + , eAccelerationStructureStorageKHR = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR + , eShaderBindingTableKHR = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR + , eRayTracingNV = VK_BUFFER_USAGE_RAY_TRACING_BIT_NV + , eShaderDeviceAddressEXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT + , eShaderDeviceAddressKHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR + // clang-format on }; VULKAN_HPP_INLINE std::string to_string( BufferUsageFlagBits value ) { switch ( value ) { - case BufferUsageFlagBits::eTransferSrc : return "TransferSrc"; - case BufferUsageFlagBits::eTransferDst : return "TransferDst"; - case BufferUsageFlagBits::eUniformTexelBuffer : return "UniformTexelBuffer"; - case BufferUsageFlagBits::eStorageTexelBuffer : return "StorageTexelBuffer"; - case BufferUsageFlagBits::eUniformBuffer : return "UniformBuffer"; - case BufferUsageFlagBits::eStorageBuffer : return "StorageBuffer"; - case BufferUsageFlagBits::eIndexBuffer : return "IndexBuffer"; - case BufferUsageFlagBits::eVertexBuffer : return "VertexBuffer"; - case BufferUsageFlagBits::eIndirectBuffer : return "IndirectBuffer"; - case BufferUsageFlagBits::eShaderDeviceAddress : return "ShaderDeviceAddress"; - case BufferUsageFlagBits::eTransformFeedbackBufferEXT : return "TransformFeedbackBufferEXT"; - case BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT : return "TransformFeedbackCounterBufferEXT"; - case BufferUsageFlagBits::eConditionalRenderingEXT : return "ConditionalRenderingEXT"; - case BufferUsageFlagBits::eRayTracingNV : return "RayTracingNV"; - default: return "invalid"; - } - } - - enum class BufferViewCreateFlagBits - {}; - - VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlagBits ) + case BufferUsageFlagBits::eTransferSrc: return "TransferSrc"; + case BufferUsageFlagBits::eTransferDst: return "TransferDst"; + case BufferUsageFlagBits::eUniformTexelBuffer: return "UniformTexelBuffer"; + case BufferUsageFlagBits::eStorageTexelBuffer: return "StorageTexelBuffer"; + case BufferUsageFlagBits::eUniformBuffer: return "UniformBuffer"; + case BufferUsageFlagBits::eStorageBuffer: return "StorageBuffer"; + case BufferUsageFlagBits::eIndexBuffer: return "IndexBuffer"; + case BufferUsageFlagBits::eVertexBuffer: return "VertexBuffer"; + case BufferUsageFlagBits::eIndirectBuffer: return "IndirectBuffer"; + case BufferUsageFlagBits::eShaderDeviceAddress: return "ShaderDeviceAddress"; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + case BufferUsageFlagBits::eVideoDecodeSrcKHR: return "VideoDecodeSrcKHR"; + case BufferUsageFlagBits::eVideoDecodeDstKHR: return "VideoDecodeDstKHR"; + case BufferUsageFlagBits::eVideoEncodeDstKHR: return "VideoEncodeDstKHR"; + case BufferUsageFlagBits::eVideoEncodeSrcKHR: return "VideoEncodeSrcKHR"; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + case BufferUsageFlagBits::eTransformFeedbackBufferEXT: return "TransformFeedbackBufferEXT"; + case BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT: return "TransformFeedbackCounterBufferEXT"; + case BufferUsageFlagBits::eConditionalRenderingEXT: return "ConditionalRenderingEXT"; + case BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR: + return "AccelerationStructureBuildInputReadOnlyKHR"; + case BufferUsageFlagBits::eAccelerationStructureStorageKHR: return "AccelerationStructureStorageKHR"; + case BufferUsageFlagBits::eShaderBindingTableKHR: return "ShaderBindingTableKHR"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class BuildAccelerationStructureFlagBitsKHR : VkBuildAccelerationStructureFlagsKHR + { + eAllowUpdate = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR, + eAllowCompaction = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR, + ePreferFastTrace = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR, + ePreferFastBuild = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR, + eLowMemory = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR + }; + using BuildAccelerationStructureFlagBitsNV = BuildAccelerationStructureFlagBitsKHR; + + VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagBitsKHR value ) { - return "(void)"; + switch ( value ) + { + case BuildAccelerationStructureFlagBitsKHR::eAllowUpdate: return "AllowUpdate"; + case BuildAccelerationStructureFlagBitsKHR::eAllowCompaction: return "AllowCompaction"; + case BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace: return "PreferFastTrace"; + case BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild: return "PreferFastBuild"; + case BuildAccelerationStructureFlagBitsKHR::eLowMemory: return "LowMemory"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } } - enum class BuildAccelerationStructureFlagBitsNV + enum class BuildAccelerationStructureModeKHR { - eAllowUpdate = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV, - eAllowCompaction = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV, - ePreferFastTrace = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV, - ePreferFastBuild = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV, - eLowMemory = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV + eBuild = VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR, + eUpdate = VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR }; - VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagBitsNV value ) + VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureModeKHR value ) { switch ( value ) { - case BuildAccelerationStructureFlagBitsNV::eAllowUpdate : return "AllowUpdate"; - case BuildAccelerationStructureFlagBitsNV::eAllowCompaction : return "AllowCompaction"; - case BuildAccelerationStructureFlagBitsNV::ePreferFastTrace : return "PreferFastTrace"; - case BuildAccelerationStructureFlagBitsNV::ePreferFastBuild : return "PreferFastBuild"; - case BuildAccelerationStructureFlagBitsNV::eLowMemory : return "LowMemory"; - default: return "invalid"; + case BuildAccelerationStructureModeKHR::eBuild: return "Build"; + case BuildAccelerationStructureModeKHR::eUpdate: return "Update"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class ChromaLocation { eCositedEven = VK_CHROMA_LOCATION_COSITED_EVEN, - eMidpoint = VK_CHROMA_LOCATION_MIDPOINT + eMidpoint = VK_CHROMA_LOCATION_MIDPOINT }; using ChromaLocationKHR = ChromaLocation; @@ -3449,17 +6123,17 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case ChromaLocation::eCositedEven : return "CositedEven"; - case ChromaLocation::eMidpoint : return "Midpoint"; - default: return "invalid"; + case ChromaLocation::eCositedEven: return "CositedEven"; + case ChromaLocation::eMidpoint: return "Midpoint"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class CoarseSampleOrderTypeNV { - eDefault = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV, - eCustom = VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV, - ePixelMajor = VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV, + eDefault = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV, + eCustom = VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV, + ePixelMajor = VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV, eSampleMajor = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV }; @@ -3467,15 +6141,15 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case CoarseSampleOrderTypeNV::eDefault : return "Default"; - case CoarseSampleOrderTypeNV::eCustom : return "Custom"; - case CoarseSampleOrderTypeNV::ePixelMajor : return "PixelMajor"; - case CoarseSampleOrderTypeNV::eSampleMajor : return "SampleMajor"; - default: return "invalid"; + case CoarseSampleOrderTypeNV::eDefault: return "Default"; + case CoarseSampleOrderTypeNV::eCustom: return "Custom"; + case CoarseSampleOrderTypeNV::ePixelMajor: return "PixelMajor"; + case CoarseSampleOrderTypeNV::eSampleMajor: return "SampleMajor"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class ColorComponentFlagBits + enum class ColorComponentFlagBits : VkColorComponentFlags { eR = VK_COLOR_COMPONENT_R_BIT, eG = VK_COLOR_COMPONENT_G_BIT, @@ -3487,63 +6161,63 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case ColorComponentFlagBits::eR : return "R"; - case ColorComponentFlagBits::eG : return "G"; - case ColorComponentFlagBits::eB : return "B"; - case ColorComponentFlagBits::eA : return "A"; - default: return "invalid"; + case ColorComponentFlagBits::eR: return "R"; + case ColorComponentFlagBits::eG: return "G"; + case ColorComponentFlagBits::eB: return "B"; + case ColorComponentFlagBits::eA: return "A"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class ColorSpaceKHR { - eSrgbNonlinear = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, - eDisplayP3NonlinearEXT = VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT, - eExtendedSrgbLinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT, - eDisplayP3LinearEXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT, - eDciP3NonlinearEXT = VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT, - eBt709LinearEXT = VK_COLOR_SPACE_BT709_LINEAR_EXT, - eBt709NonlinearEXT = VK_COLOR_SPACE_BT709_NONLINEAR_EXT, - eBt2020LinearEXT = VK_COLOR_SPACE_BT2020_LINEAR_EXT, - eHdr10St2084EXT = VK_COLOR_SPACE_HDR10_ST2084_EXT, - eDolbyvisionEXT = VK_COLOR_SPACE_DOLBYVISION_EXT, - eHdr10HlgEXT = VK_COLOR_SPACE_HDR10_HLG_EXT, - eAdobergbLinearEXT = VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT, - eAdobergbNonlinearEXT = VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT, - ePassThroughEXT = VK_COLOR_SPACE_PASS_THROUGH_EXT, - eExtendedSrgbNonlinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT, - eDisplayNativeAMD = VK_COLOR_SPACE_DISPLAY_NATIVE_AMD, + eSrgbNonlinear = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, + eDisplayP3NonlinearEXT = VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT, + eExtendedSrgbLinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT, + eDisplayP3LinearEXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT, + eDciP3NonlinearEXT = VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT, + eBt709LinearEXT = VK_COLOR_SPACE_BT709_LINEAR_EXT, + eBt709NonlinearEXT = VK_COLOR_SPACE_BT709_NONLINEAR_EXT, + eBt2020LinearEXT = VK_COLOR_SPACE_BT2020_LINEAR_EXT, + eHdr10St2084EXT = VK_COLOR_SPACE_HDR10_ST2084_EXT, + eDolbyvisionEXT = VK_COLOR_SPACE_DOLBYVISION_EXT, + eHdr10HlgEXT = VK_COLOR_SPACE_HDR10_HLG_EXT, + eAdobergbLinearEXT = VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT, + eAdobergbNonlinearEXT = VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT, + ePassThroughEXT = VK_COLOR_SPACE_PASS_THROUGH_EXT, + eExtendedSrgbNonlinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT, + eDisplayNativeAMD = VK_COLOR_SPACE_DISPLAY_NATIVE_AMD, eVkColorspaceSrgbNonlinear = VK_COLORSPACE_SRGB_NONLINEAR_KHR, - eDciP3LinearEXT = VK_COLOR_SPACE_DCI_P3_LINEAR_EXT + eDciP3LinearEXT = VK_COLOR_SPACE_DCI_P3_LINEAR_EXT }; VULKAN_HPP_INLINE std::string to_string( ColorSpaceKHR value ) { switch ( value ) { - case ColorSpaceKHR::eSrgbNonlinear : return "SrgbNonlinear"; - case ColorSpaceKHR::eDisplayP3NonlinearEXT : return "DisplayP3NonlinearEXT"; - case ColorSpaceKHR::eExtendedSrgbLinearEXT : return "ExtendedSrgbLinearEXT"; - case ColorSpaceKHR::eDisplayP3LinearEXT : return "DisplayP3LinearEXT"; - case ColorSpaceKHR::eDciP3NonlinearEXT : return "DciP3NonlinearEXT"; - case ColorSpaceKHR::eBt709LinearEXT : return "Bt709LinearEXT"; - case ColorSpaceKHR::eBt709NonlinearEXT : return "Bt709NonlinearEXT"; - case ColorSpaceKHR::eBt2020LinearEXT : return "Bt2020LinearEXT"; - case ColorSpaceKHR::eHdr10St2084EXT : return "Hdr10St2084EXT"; - case ColorSpaceKHR::eDolbyvisionEXT : return "DolbyvisionEXT"; - case ColorSpaceKHR::eHdr10HlgEXT : return "Hdr10HlgEXT"; - case ColorSpaceKHR::eAdobergbLinearEXT : return "AdobergbLinearEXT"; - case ColorSpaceKHR::eAdobergbNonlinearEXT : return "AdobergbNonlinearEXT"; - case ColorSpaceKHR::ePassThroughEXT : return "PassThroughEXT"; - case ColorSpaceKHR::eExtendedSrgbNonlinearEXT : return "ExtendedSrgbNonlinearEXT"; - case ColorSpaceKHR::eDisplayNativeAMD : return "DisplayNativeAMD"; - default: return "invalid"; + case ColorSpaceKHR::eSrgbNonlinear: return "SrgbNonlinear"; + case ColorSpaceKHR::eDisplayP3NonlinearEXT: return "DisplayP3NonlinearEXT"; + case ColorSpaceKHR::eExtendedSrgbLinearEXT: return "ExtendedSrgbLinearEXT"; + case ColorSpaceKHR::eDisplayP3LinearEXT: return "DisplayP3LinearEXT"; + case ColorSpaceKHR::eDciP3NonlinearEXT: return "DciP3NonlinearEXT"; + case ColorSpaceKHR::eBt709LinearEXT: return "Bt709LinearEXT"; + case ColorSpaceKHR::eBt709NonlinearEXT: return "Bt709NonlinearEXT"; + case ColorSpaceKHR::eBt2020LinearEXT: return "Bt2020LinearEXT"; + case ColorSpaceKHR::eHdr10St2084EXT: return "Hdr10St2084EXT"; + case ColorSpaceKHR::eDolbyvisionEXT: return "DolbyvisionEXT"; + case ColorSpaceKHR::eHdr10HlgEXT: return "Hdr10HlgEXT"; + case ColorSpaceKHR::eAdobergbLinearEXT: return "AdobergbLinearEXT"; + case ColorSpaceKHR::eAdobergbNonlinearEXT: return "AdobergbNonlinearEXT"; + case ColorSpaceKHR::ePassThroughEXT: return "PassThroughEXT"; + case ColorSpaceKHR::eExtendedSrgbNonlinearEXT: return "ExtendedSrgbNonlinearEXT"; + case ColorSpaceKHR::eDisplayNativeAMD: return "DisplayNativeAMD"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class CommandBufferLevel { - ePrimary = VK_COMMAND_BUFFER_LEVEL_PRIMARY, + ePrimary = VK_COMMAND_BUFFER_LEVEL_PRIMARY, eSecondary = VK_COMMAND_BUFFER_LEVEL_SECONDARY }; @@ -3551,13 +6225,13 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case CommandBufferLevel::ePrimary : return "Primary"; - case CommandBufferLevel::eSecondary : return "Secondary"; - default: return "invalid"; + case CommandBufferLevel::ePrimary: return "Primary"; + case CommandBufferLevel::eSecondary: return "Secondary"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class CommandBufferResetFlagBits + enum class CommandBufferResetFlagBits : VkCommandBufferResetFlags { eReleaseResources = VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT }; @@ -3566,48 +6240,48 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case CommandBufferResetFlagBits::eReleaseResources : return "ReleaseResources"; - default: return "invalid"; + case CommandBufferResetFlagBits::eReleaseResources: return "ReleaseResources"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class CommandBufferUsageFlagBits + enum class CommandBufferUsageFlagBits : VkCommandBufferUsageFlags { - eOneTimeSubmit = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, + eOneTimeSubmit = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, eRenderPassContinue = VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, - eSimultaneousUse = VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT + eSimultaneousUse = VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT }; VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlagBits value ) { switch ( value ) { - case CommandBufferUsageFlagBits::eOneTimeSubmit : return "OneTimeSubmit"; - case CommandBufferUsageFlagBits::eRenderPassContinue : return "RenderPassContinue"; - case CommandBufferUsageFlagBits::eSimultaneousUse : return "SimultaneousUse"; - default: return "invalid"; + case CommandBufferUsageFlagBits::eOneTimeSubmit: return "OneTimeSubmit"; + case CommandBufferUsageFlagBits::eRenderPassContinue: return "RenderPassContinue"; + case CommandBufferUsageFlagBits::eSimultaneousUse: return "SimultaneousUse"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class CommandPoolCreateFlagBits + enum class CommandPoolCreateFlagBits : VkCommandPoolCreateFlags { - eTransient = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT, + eTransient = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT, eResetCommandBuffer = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, - eProtected = VK_COMMAND_POOL_CREATE_PROTECTED_BIT + eProtected = VK_COMMAND_POOL_CREATE_PROTECTED_BIT }; VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlagBits value ) { switch ( value ) { - case CommandPoolCreateFlagBits::eTransient : return "Transient"; - case CommandPoolCreateFlagBits::eResetCommandBuffer : return "ResetCommandBuffer"; - case CommandPoolCreateFlagBits::eProtected : return "Protected"; - default: return "invalid"; + case CommandPoolCreateFlagBits::eTransient: return "Transient"; + case CommandPoolCreateFlagBits::eResetCommandBuffer: return "ResetCommandBuffer"; + case CommandPoolCreateFlagBits::eProtected: return "Protected"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class CommandPoolResetFlagBits + enum class CommandPoolResetFlagBits : VkCommandPoolResetFlags { eReleaseResources = VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT }; @@ -3616,62 +6290,62 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case CommandPoolResetFlagBits::eReleaseResources : return "ReleaseResources"; - default: return "invalid"; + case CommandPoolResetFlagBits::eReleaseResources: return "ReleaseResources"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class CompareOp { - eNever = VK_COMPARE_OP_NEVER, - eLess = VK_COMPARE_OP_LESS, - eEqual = VK_COMPARE_OP_EQUAL, - eLessOrEqual = VK_COMPARE_OP_LESS_OR_EQUAL, - eGreater = VK_COMPARE_OP_GREATER, - eNotEqual = VK_COMPARE_OP_NOT_EQUAL, + eNever = VK_COMPARE_OP_NEVER, + eLess = VK_COMPARE_OP_LESS, + eEqual = VK_COMPARE_OP_EQUAL, + eLessOrEqual = VK_COMPARE_OP_LESS_OR_EQUAL, + eGreater = VK_COMPARE_OP_GREATER, + eNotEqual = VK_COMPARE_OP_NOT_EQUAL, eGreaterOrEqual = VK_COMPARE_OP_GREATER_OR_EQUAL, - eAlways = VK_COMPARE_OP_ALWAYS + eAlways = VK_COMPARE_OP_ALWAYS }; VULKAN_HPP_INLINE std::string to_string( CompareOp value ) { switch ( value ) { - case CompareOp::eNever : return "Never"; - case CompareOp::eLess : return "Less"; - case CompareOp::eEqual : return "Equal"; - case CompareOp::eLessOrEqual : return "LessOrEqual"; - case CompareOp::eGreater : return "Greater"; - case CompareOp::eNotEqual : return "NotEqual"; - case CompareOp::eGreaterOrEqual : return "GreaterOrEqual"; - case CompareOp::eAlways : return "Always"; - default: return "invalid"; + case CompareOp::eNever: return "Never"; + case CompareOp::eLess: return "Less"; + case CompareOp::eEqual: return "Equal"; + case CompareOp::eLessOrEqual: return "LessOrEqual"; + case CompareOp::eGreater: return "Greater"; + case CompareOp::eNotEqual: return "NotEqual"; + case CompareOp::eGreaterOrEqual: return "GreaterOrEqual"; + case CompareOp::eAlways: return "Always"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class ComponentSwizzle { eIdentity = VK_COMPONENT_SWIZZLE_IDENTITY, - eZero = VK_COMPONENT_SWIZZLE_ZERO, - eOne = VK_COMPONENT_SWIZZLE_ONE, - eR = VK_COMPONENT_SWIZZLE_R, - eG = VK_COMPONENT_SWIZZLE_G, - eB = VK_COMPONENT_SWIZZLE_B, - eA = VK_COMPONENT_SWIZZLE_A + eZero = VK_COMPONENT_SWIZZLE_ZERO, + eOne = VK_COMPONENT_SWIZZLE_ONE, + eR = VK_COMPONENT_SWIZZLE_R, + eG = VK_COMPONENT_SWIZZLE_G, + eB = VK_COMPONENT_SWIZZLE_B, + eA = VK_COMPONENT_SWIZZLE_A }; VULKAN_HPP_INLINE std::string to_string( ComponentSwizzle value ) { switch ( value ) { - case ComponentSwizzle::eIdentity : return "Identity"; - case ComponentSwizzle::eZero : return "Zero"; - case ComponentSwizzle::eOne : return "One"; - case ComponentSwizzle::eR : return "R"; - case ComponentSwizzle::eG : return "G"; - case ComponentSwizzle::eB : return "B"; - case ComponentSwizzle::eA : return "A"; - default: return "invalid"; + case ComponentSwizzle::eIdentity: return "Identity"; + case ComponentSwizzle::eZero: return "Zero"; + case ComponentSwizzle::eOne: return "One"; + case ComponentSwizzle::eR: return "R"; + case ComponentSwizzle::eG: return "G"; + case ComponentSwizzle::eB: return "B"; + case ComponentSwizzle::eA: return "A"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } @@ -3680,56 +6354,56 @@ namespace VULKAN_HPP_NAMESPACE eFloat16 = VK_COMPONENT_TYPE_FLOAT16_NV, eFloat32 = VK_COMPONENT_TYPE_FLOAT32_NV, eFloat64 = VK_COMPONENT_TYPE_FLOAT64_NV, - eSint8 = VK_COMPONENT_TYPE_SINT8_NV, - eSint16 = VK_COMPONENT_TYPE_SINT16_NV, - eSint32 = VK_COMPONENT_TYPE_SINT32_NV, - eSint64 = VK_COMPONENT_TYPE_SINT64_NV, - eUint8 = VK_COMPONENT_TYPE_UINT8_NV, - eUint16 = VK_COMPONENT_TYPE_UINT16_NV, - eUint32 = VK_COMPONENT_TYPE_UINT32_NV, - eUint64 = VK_COMPONENT_TYPE_UINT64_NV + eSint8 = VK_COMPONENT_TYPE_SINT8_NV, + eSint16 = VK_COMPONENT_TYPE_SINT16_NV, + eSint32 = VK_COMPONENT_TYPE_SINT32_NV, + eSint64 = VK_COMPONENT_TYPE_SINT64_NV, + eUint8 = VK_COMPONENT_TYPE_UINT8_NV, + eUint16 = VK_COMPONENT_TYPE_UINT16_NV, + eUint32 = VK_COMPONENT_TYPE_UINT32_NV, + eUint64 = VK_COMPONENT_TYPE_UINT64_NV }; VULKAN_HPP_INLINE std::string to_string( ComponentTypeNV value ) { switch ( value ) { - case ComponentTypeNV::eFloat16 : return "Float16"; - case ComponentTypeNV::eFloat32 : return "Float32"; - case ComponentTypeNV::eFloat64 : return "Float64"; - case ComponentTypeNV::eSint8 : return "Sint8"; - case ComponentTypeNV::eSint16 : return "Sint16"; - case ComponentTypeNV::eSint32 : return "Sint32"; - case ComponentTypeNV::eSint64 : return "Sint64"; - case ComponentTypeNV::eUint8 : return "Uint8"; - case ComponentTypeNV::eUint16 : return "Uint16"; - case ComponentTypeNV::eUint32 : return "Uint32"; - case ComponentTypeNV::eUint64 : return "Uint64"; - default: return "invalid"; + case ComponentTypeNV::eFloat16: return "Float16"; + case ComponentTypeNV::eFloat32: return "Float32"; + case ComponentTypeNV::eFloat64: return "Float64"; + case ComponentTypeNV::eSint8: return "Sint8"; + case ComponentTypeNV::eSint16: return "Sint16"; + case ComponentTypeNV::eSint32: return "Sint32"; + case ComponentTypeNV::eSint64: return "Sint64"; + case ComponentTypeNV::eUint8: return "Uint8"; + case ComponentTypeNV::eUint16: return "Uint16"; + case ComponentTypeNV::eUint32: return "Uint32"; + case ComponentTypeNV::eUint64: return "Uint64"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class CompositeAlphaFlagBitsKHR + enum class CompositeAlphaFlagBitsKHR : VkCompositeAlphaFlagsKHR { - eOpaque = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR, - ePreMultiplied = VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR, + eOpaque = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR, + ePreMultiplied = VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR, ePostMultiplied = VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR, - eInherit = VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR + eInherit = VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR }; VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagBitsKHR value ) { switch ( value ) { - case CompositeAlphaFlagBitsKHR::eOpaque : return "Opaque"; - case CompositeAlphaFlagBitsKHR::ePreMultiplied : return "PreMultiplied"; - case CompositeAlphaFlagBitsKHR::ePostMultiplied : return "PostMultiplied"; - case CompositeAlphaFlagBitsKHR::eInherit : return "Inherit"; - default: return "invalid"; + case CompositeAlphaFlagBitsKHR::eOpaque: return "Opaque"; + case CompositeAlphaFlagBitsKHR::ePreMultiplied: return "PreMultiplied"; + case CompositeAlphaFlagBitsKHR::ePostMultiplied: return "PostMultiplied"; + case CompositeAlphaFlagBitsKHR::eInherit: return "Inherit"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class ConditionalRenderingFlagBitsEXT + enum class ConditionalRenderingFlagBitsEXT : VkConditionalRenderingFlagsEXT { eInverted = VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT }; @@ -3738,15 +6412,15 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case ConditionalRenderingFlagBitsEXT::eInverted : return "Inverted"; - default: return "invalid"; + case ConditionalRenderingFlagBitsEXT::eInverted: return "Inverted"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class ConservativeRasterizationModeEXT { - eDisabled = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT, - eOverestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, + eDisabled = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT, + eOverestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, eUnderestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT }; @@ -3754,52 +6428,57 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case ConservativeRasterizationModeEXT::eDisabled : return "Disabled"; - case ConservativeRasterizationModeEXT::eOverestimate : return "Overestimate"; - case ConservativeRasterizationModeEXT::eUnderestimate : return "Underestimate"; - default: return "invalid"; + case ConservativeRasterizationModeEXT::eDisabled: return "Disabled"; + case ConservativeRasterizationModeEXT::eOverestimate: return "Overestimate"; + case ConservativeRasterizationModeEXT::eUnderestimate: return "Underestimate"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class CopyAccelerationStructureModeNV + enum class CopyAccelerationStructureModeKHR { - eClone = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV, - eCompact = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV + eClone = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR, + eCompact = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR, + eSerialize = VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR, + eDeserialize = VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR }; + using CopyAccelerationStructureModeNV = CopyAccelerationStructureModeKHR; - VULKAN_HPP_INLINE std::string to_string( CopyAccelerationStructureModeNV value ) + VULKAN_HPP_INLINE std::string to_string( CopyAccelerationStructureModeKHR value ) { switch ( value ) { - case CopyAccelerationStructureModeNV::eClone : return "Clone"; - case CopyAccelerationStructureModeNV::eCompact : return "Compact"; - default: return "invalid"; + case CopyAccelerationStructureModeKHR::eClone: return "Clone"; + case CopyAccelerationStructureModeKHR::eCompact: return "Compact"; + case CopyAccelerationStructureModeKHR::eSerialize: return "Serialize"; + case CopyAccelerationStructureModeKHR::eDeserialize: return "Deserialize"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class CoverageModulationModeNV { - eNone = VK_COVERAGE_MODULATION_MODE_NONE_NV, - eRgb = VK_COVERAGE_MODULATION_MODE_RGB_NV, + eNone = VK_COVERAGE_MODULATION_MODE_NONE_NV, + eRgb = VK_COVERAGE_MODULATION_MODE_RGB_NV, eAlpha = VK_COVERAGE_MODULATION_MODE_ALPHA_NV, - eRgba = VK_COVERAGE_MODULATION_MODE_RGBA_NV + eRgba = VK_COVERAGE_MODULATION_MODE_RGBA_NV }; VULKAN_HPP_INLINE std::string to_string( CoverageModulationModeNV value ) { switch ( value ) { - case CoverageModulationModeNV::eNone : return "None"; - case CoverageModulationModeNV::eRgb : return "Rgb"; - case CoverageModulationModeNV::eAlpha : return "Alpha"; - case CoverageModulationModeNV::eRgba : return "Rgba"; - default: return "invalid"; + case CoverageModulationModeNV::eNone: return "None"; + case CoverageModulationModeNV::eRgb: return "Rgb"; + case CoverageModulationModeNV::eAlpha: return "Alpha"; + case CoverageModulationModeNV::eRgba: return "Rgba"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class CoverageReductionModeNV { - eMerge = VK_COVERAGE_REDUCTION_MODE_MERGE_NV, + eMerge = VK_COVERAGE_REDUCTION_MODE_MERGE_NV, eTruncate = VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV }; @@ -3807,17 +6486,17 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case CoverageReductionModeNV::eMerge : return "Merge"; - case CoverageReductionModeNV::eTruncate : return "Truncate"; - default: return "invalid"; + case CoverageReductionModeNV::eMerge: return "Merge"; + case CoverageReductionModeNV::eTruncate: return "Truncate"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class CullModeFlagBits + enum class CullModeFlagBits : VkCullModeFlags { - eNone = VK_CULL_MODE_NONE, - eFront = VK_CULL_MODE_FRONT_BIT, - eBack = VK_CULL_MODE_BACK_BIT, + eNone = VK_CULL_MODE_NONE, + eFront = VK_CULL_MODE_FRONT_BIT, + eBack = VK_CULL_MODE_BACK_BIT, eFrontAndBack = VK_CULL_MODE_FRONT_AND_BACK }; @@ -3825,150 +6504,148 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case CullModeFlagBits::eNone : return "None"; - case CullModeFlagBits::eFront : return "Front"; - case CullModeFlagBits::eBack : return "Back"; - case CullModeFlagBits::eFrontAndBack : return "FrontAndBack"; - default: return "invalid"; + case CullModeFlagBits::eNone: return "None"; + case CullModeFlagBits::eFront: return "Front"; + case CullModeFlagBits::eBack: return "Back"; + case CullModeFlagBits::eFrontAndBack: return "FrontAndBack"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class DebugReportFlagBitsEXT + enum class DebugReportFlagBitsEXT : VkDebugReportFlagsEXT { - eInformation = VK_DEBUG_REPORT_INFORMATION_BIT_EXT, - eWarning = VK_DEBUG_REPORT_WARNING_BIT_EXT, + eInformation = VK_DEBUG_REPORT_INFORMATION_BIT_EXT, + eWarning = VK_DEBUG_REPORT_WARNING_BIT_EXT, ePerformanceWarning = VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT, - eError = VK_DEBUG_REPORT_ERROR_BIT_EXT, - eDebug = VK_DEBUG_REPORT_DEBUG_BIT_EXT + eError = VK_DEBUG_REPORT_ERROR_BIT_EXT, + eDebug = VK_DEBUG_REPORT_DEBUG_BIT_EXT }; VULKAN_HPP_INLINE std::string to_string( DebugReportFlagBitsEXT value ) { switch ( value ) { - case DebugReportFlagBitsEXT::eInformation : return "Information"; - case DebugReportFlagBitsEXT::eWarning : return "Warning"; - case DebugReportFlagBitsEXT::ePerformanceWarning : return "PerformanceWarning"; - case DebugReportFlagBitsEXT::eError : return "Error"; - case DebugReportFlagBitsEXT::eDebug : return "Debug"; - default: return "invalid"; + case DebugReportFlagBitsEXT::eInformation: return "Information"; + case DebugReportFlagBitsEXT::eWarning: return "Warning"; + case DebugReportFlagBitsEXT::ePerformanceWarning: return "PerformanceWarning"; + case DebugReportFlagBitsEXT::eError: return "Error"; + case DebugReportFlagBitsEXT::eDebug: return "Debug"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class DebugReportObjectTypeEXT { - eUnknown = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, - eInstance = VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT, - ePhysicalDevice = VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT, - eDevice = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT, - eQueue = VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT, - eSemaphore = VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT, - eCommandBuffer = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - eFence = VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT, - eDeviceMemory = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT, - eBuffer = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT, - eImage = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT, - eEvent = VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT, - eQueryPool = VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT, - eBufferView = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT, - eImageView = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT, - eShaderModule = VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT, - ePipelineCache = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT, - ePipelineLayout = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT, - eRenderPass = VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT, - ePipeline = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, - eDescriptorSetLayout = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT, - eSampler = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT, - eDescriptorPool = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT, - eDescriptorSet = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT, - eFramebuffer = VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT, - eCommandPool = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT, - eSurfaceKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT, - eSwapchainKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT, - eDebugReportCallbackEXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT, - eDisplayKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT, - eDisplayModeKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT, - eObjectTableNVX = VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT, - eIndirectCommandsLayoutNVX = VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT, - eValidationCacheEXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT, - eSamplerYcbcrConversion = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT, - eDescriptorUpdateTemplate = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT, - eAccelerationStructureNV = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT, - eDebugReport = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT, - eValidationCache = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT, + eUnknown = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, + eInstance = VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT, + ePhysicalDevice = VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT, + eDevice = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT, + eQueue = VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT, + eSemaphore = VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT, + eCommandBuffer = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, + eFence = VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT, + eDeviceMemory = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT, + eBuffer = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT, + eImage = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT, + eEvent = VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT, + eQueryPool = VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT, + eBufferView = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT, + eImageView = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT, + eShaderModule = VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT, + ePipelineCache = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT, + ePipelineLayout = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT, + eRenderPass = VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT, + ePipeline = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, + eDescriptorSetLayout = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT, + eSampler = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT, + eDescriptorPool = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT, + eDescriptorSet = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT, + eFramebuffer = VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT, + eCommandPool = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT, + eSurfaceKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT, + eSwapchainKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT, + eDebugReportCallbackEXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT, + eDisplayKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT, + eDisplayModeKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT, + eValidationCacheEXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT, + eSamplerYcbcrConversion = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT, + eDescriptorUpdateTemplate = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT, + eAccelerationStructureKHR = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT, + eAccelerationStructureNV = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT, + eDebugReport = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT, eDescriptorUpdateTemplateKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT, - eSamplerYcbcrConversionKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT + eSamplerYcbcrConversionKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT, + eValidationCache = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT }; VULKAN_HPP_INLINE std::string to_string( DebugReportObjectTypeEXT value ) { switch ( value ) { - case DebugReportObjectTypeEXT::eUnknown : return "Unknown"; - case DebugReportObjectTypeEXT::eInstance : return "Instance"; - case DebugReportObjectTypeEXT::ePhysicalDevice : return "PhysicalDevice"; - case DebugReportObjectTypeEXT::eDevice : return "Device"; - case DebugReportObjectTypeEXT::eQueue : return "Queue"; - case DebugReportObjectTypeEXT::eSemaphore : return "Semaphore"; - case DebugReportObjectTypeEXT::eCommandBuffer : return "CommandBuffer"; - case DebugReportObjectTypeEXT::eFence : return "Fence"; - case DebugReportObjectTypeEXT::eDeviceMemory : return "DeviceMemory"; - case DebugReportObjectTypeEXT::eBuffer : return "Buffer"; - case DebugReportObjectTypeEXT::eImage : return "Image"; - case DebugReportObjectTypeEXT::eEvent : return "Event"; - case DebugReportObjectTypeEXT::eQueryPool : return "QueryPool"; - case DebugReportObjectTypeEXT::eBufferView : return "BufferView"; - case DebugReportObjectTypeEXT::eImageView : return "ImageView"; - case DebugReportObjectTypeEXT::eShaderModule : return "ShaderModule"; - case DebugReportObjectTypeEXT::ePipelineCache : return "PipelineCache"; - case DebugReportObjectTypeEXT::ePipelineLayout : return "PipelineLayout"; - case DebugReportObjectTypeEXT::eRenderPass : return "RenderPass"; - case DebugReportObjectTypeEXT::ePipeline : return "Pipeline"; - case DebugReportObjectTypeEXT::eDescriptorSetLayout : return "DescriptorSetLayout"; - case DebugReportObjectTypeEXT::eSampler : return "Sampler"; - case DebugReportObjectTypeEXT::eDescriptorPool : return "DescriptorPool"; - case DebugReportObjectTypeEXT::eDescriptorSet : return "DescriptorSet"; - case DebugReportObjectTypeEXT::eFramebuffer : return "Framebuffer"; - case DebugReportObjectTypeEXT::eCommandPool : return "CommandPool"; - case DebugReportObjectTypeEXT::eSurfaceKHR : return "SurfaceKHR"; - case DebugReportObjectTypeEXT::eSwapchainKHR : return "SwapchainKHR"; - case DebugReportObjectTypeEXT::eDebugReportCallbackEXT : return "DebugReportCallbackEXT"; - case DebugReportObjectTypeEXT::eDisplayKHR : return "DisplayKHR"; - case DebugReportObjectTypeEXT::eDisplayModeKHR : return "DisplayModeKHR"; - case DebugReportObjectTypeEXT::eObjectTableNVX : return "ObjectTableNVX"; - case DebugReportObjectTypeEXT::eIndirectCommandsLayoutNVX : return "IndirectCommandsLayoutNVX"; - case DebugReportObjectTypeEXT::eValidationCacheEXT : return "ValidationCacheEXT"; - case DebugReportObjectTypeEXT::eSamplerYcbcrConversion : return "SamplerYcbcrConversion"; - case DebugReportObjectTypeEXT::eDescriptorUpdateTemplate : return "DescriptorUpdateTemplate"; - case DebugReportObjectTypeEXT::eAccelerationStructureNV : return "AccelerationStructureNV"; - default: return "invalid"; - } - } - - enum class DebugUtilsMessageSeverityFlagBitsEXT + case DebugReportObjectTypeEXT::eUnknown: return "Unknown"; + case DebugReportObjectTypeEXT::eInstance: return "Instance"; + case DebugReportObjectTypeEXT::ePhysicalDevice: return "PhysicalDevice"; + case DebugReportObjectTypeEXT::eDevice: return "Device"; + case DebugReportObjectTypeEXT::eQueue: return "Queue"; + case DebugReportObjectTypeEXT::eSemaphore: return "Semaphore"; + case DebugReportObjectTypeEXT::eCommandBuffer: return "CommandBuffer"; + case DebugReportObjectTypeEXT::eFence: return "Fence"; + case DebugReportObjectTypeEXT::eDeviceMemory: return "DeviceMemory"; + case DebugReportObjectTypeEXT::eBuffer: return "Buffer"; + case DebugReportObjectTypeEXT::eImage: return "Image"; + case DebugReportObjectTypeEXT::eEvent: return "Event"; + case DebugReportObjectTypeEXT::eQueryPool: return "QueryPool"; + case DebugReportObjectTypeEXT::eBufferView: return "BufferView"; + case DebugReportObjectTypeEXT::eImageView: return "ImageView"; + case DebugReportObjectTypeEXT::eShaderModule: return "ShaderModule"; + case DebugReportObjectTypeEXT::ePipelineCache: return "PipelineCache"; + case DebugReportObjectTypeEXT::ePipelineLayout: return "PipelineLayout"; + case DebugReportObjectTypeEXT::eRenderPass: return "RenderPass"; + case DebugReportObjectTypeEXT::ePipeline: return "Pipeline"; + case DebugReportObjectTypeEXT::eDescriptorSetLayout: return "DescriptorSetLayout"; + case DebugReportObjectTypeEXT::eSampler: return "Sampler"; + case DebugReportObjectTypeEXT::eDescriptorPool: return "DescriptorPool"; + case DebugReportObjectTypeEXT::eDescriptorSet: return "DescriptorSet"; + case DebugReportObjectTypeEXT::eFramebuffer: return "Framebuffer"; + case DebugReportObjectTypeEXT::eCommandPool: return "CommandPool"; + case DebugReportObjectTypeEXT::eSurfaceKHR: return "SurfaceKHR"; + case DebugReportObjectTypeEXT::eSwapchainKHR: return "SwapchainKHR"; + case DebugReportObjectTypeEXT::eDebugReportCallbackEXT: return "DebugReportCallbackEXT"; + case DebugReportObjectTypeEXT::eDisplayKHR: return "DisplayKHR"; + case DebugReportObjectTypeEXT::eDisplayModeKHR: return "DisplayModeKHR"; + case DebugReportObjectTypeEXT::eValidationCacheEXT: return "ValidationCacheEXT"; + case DebugReportObjectTypeEXT::eSamplerYcbcrConversion: return "SamplerYcbcrConversion"; + case DebugReportObjectTypeEXT::eDescriptorUpdateTemplate: return "DescriptorUpdateTemplate"; + case DebugReportObjectTypeEXT::eAccelerationStructureKHR: return "AccelerationStructureKHR"; + case DebugReportObjectTypeEXT::eAccelerationStructureNV: return "AccelerationStructureNV"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class DebugUtilsMessageSeverityFlagBitsEXT : VkDebugUtilsMessageSeverityFlagsEXT { eVerbose = VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT, - eInfo = VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT, + eInfo = VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT, eWarning = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT, - eError = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT + eError = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT }; VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagBitsEXT value ) { switch ( value ) { - case DebugUtilsMessageSeverityFlagBitsEXT::eVerbose : return "Verbose"; - case DebugUtilsMessageSeverityFlagBitsEXT::eInfo : return "Info"; - case DebugUtilsMessageSeverityFlagBitsEXT::eWarning : return "Warning"; - case DebugUtilsMessageSeverityFlagBitsEXT::eError : return "Error"; - default: return "invalid"; + case DebugUtilsMessageSeverityFlagBitsEXT::eVerbose: return "Verbose"; + case DebugUtilsMessageSeverityFlagBitsEXT::eInfo: return "Info"; + case DebugUtilsMessageSeverityFlagBitsEXT::eWarning: return "Warning"; + case DebugUtilsMessageSeverityFlagBitsEXT::eError: return "Error"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class DebugUtilsMessageTypeFlagBitsEXT + enum class DebugUtilsMessageTypeFlagBitsEXT : VkDebugUtilsMessageTypeFlagsEXT { - eGeneral = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT, - eValidation = VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT, + eGeneral = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT, + eValidation = VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT, ePerformance = VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT }; @@ -3976,39 +6653,39 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case DebugUtilsMessageTypeFlagBitsEXT::eGeneral : return "General"; - case DebugUtilsMessageTypeFlagBitsEXT::eValidation : return "Validation"; - case DebugUtilsMessageTypeFlagBitsEXT::ePerformance : return "Performance"; - default: return "invalid"; + case DebugUtilsMessageTypeFlagBitsEXT::eGeneral: return "General"; + case DebugUtilsMessageTypeFlagBitsEXT::eValidation: return "Validation"; + case DebugUtilsMessageTypeFlagBitsEXT::ePerformance: return "Performance"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class DependencyFlagBits + enum class DependencyFlagBits : VkDependencyFlags { - eByRegion = VK_DEPENDENCY_BY_REGION_BIT, - eDeviceGroup = VK_DEPENDENCY_DEVICE_GROUP_BIT, - eViewLocal = VK_DEPENDENCY_VIEW_LOCAL_BIT, - eViewLocalKHR = VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR, - eDeviceGroupKHR = VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR + eByRegion = VK_DEPENDENCY_BY_REGION_BIT, + eDeviceGroup = VK_DEPENDENCY_DEVICE_GROUP_BIT, + eViewLocal = VK_DEPENDENCY_VIEW_LOCAL_BIT, + eDeviceGroupKHR = VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR, + eViewLocalKHR = VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR }; VULKAN_HPP_INLINE std::string to_string( DependencyFlagBits value ) { switch ( value ) { - case DependencyFlagBits::eByRegion : return "ByRegion"; - case DependencyFlagBits::eDeviceGroup : return "DeviceGroup"; - case DependencyFlagBits::eViewLocal : return "ViewLocal"; - default: return "invalid"; + case DependencyFlagBits::eByRegion: return "ByRegion"; + case DependencyFlagBits::eDeviceGroup: return "DeviceGroup"; + case DependencyFlagBits::eViewLocal: return "ViewLocal"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class DescriptorBindingFlagBits + enum class DescriptorBindingFlagBits : VkDescriptorBindingFlags { - eUpdateAfterBind = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT, + eUpdateAfterBind = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT, eUpdateUnusedWhilePending = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT, - ePartiallyBound = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT, - eVariableDescriptorCount = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT + ePartiallyBound = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT, + eVariableDescriptorCount = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT }; using DescriptorBindingFlagBitsEXT = DescriptorBindingFlagBits; @@ -4016,18 +6693,19 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case DescriptorBindingFlagBits::eUpdateAfterBind : return "UpdateAfterBind"; - case DescriptorBindingFlagBits::eUpdateUnusedWhilePending : return "UpdateUnusedWhilePending"; - case DescriptorBindingFlagBits::ePartiallyBound : return "PartiallyBound"; - case DescriptorBindingFlagBits::eVariableDescriptorCount : return "VariableDescriptorCount"; - default: return "invalid"; + case DescriptorBindingFlagBits::eUpdateAfterBind: return "UpdateAfterBind"; + case DescriptorBindingFlagBits::eUpdateUnusedWhilePending: return "UpdateUnusedWhilePending"; + case DescriptorBindingFlagBits::ePartiallyBound: return "PartiallyBound"; + case DescriptorBindingFlagBits::eVariableDescriptorCount: return "VariableDescriptorCount"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class DescriptorPoolCreateFlagBits + enum class DescriptorPoolCreateFlagBits : VkDescriptorPoolCreateFlags { - eFreeDescriptorSet = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, - eUpdateAfterBind = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT, + eFreeDescriptorSet = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, + eUpdateAfterBind = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT, + eHostOnlyVALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE, eUpdateAfterBindEXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT }; @@ -4035,16 +6713,18 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case DescriptorPoolCreateFlagBits::eFreeDescriptorSet : return "FreeDescriptorSet"; - case DescriptorPoolCreateFlagBits::eUpdateAfterBind : return "UpdateAfterBind"; - default: return "invalid"; + case DescriptorPoolCreateFlagBits::eFreeDescriptorSet: return "FreeDescriptorSet"; + case DescriptorPoolCreateFlagBits::eUpdateAfterBind: return "UpdateAfterBind"; + case DescriptorPoolCreateFlagBits::eHostOnlyVALVE: return "HostOnlyVALVE"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class DescriptorSetLayoutCreateFlagBits + enum class DescriptorSetLayoutCreateFlagBits : VkDescriptorSetLayoutCreateFlags { - eUpdateAfterBindPool = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT, - ePushDescriptorKHR = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, + eUpdateAfterBindPool = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT, + ePushDescriptorKHR = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, + eHostOnlyPoolVALVE = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE, eUpdateAfterBindPoolEXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT }; @@ -4052,53 +6732,58 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool : return "UpdateAfterBindPool"; - case DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR : return "PushDescriptorKHR"; - default: return "invalid"; + case DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool: return "UpdateAfterBindPool"; + case DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR: return "PushDescriptorKHR"; + case DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolVALVE: return "HostOnlyPoolVALVE"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class DescriptorType { - eSampler = VK_DESCRIPTOR_TYPE_SAMPLER, - eCombinedImageSampler = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, - eSampledImage = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, - eStorageImage = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, - eUniformTexelBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, - eStorageTexelBuffer = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, - eUniformBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, - eStorageBuffer = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, - eUniformBufferDynamic = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, - eStorageBufferDynamic = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, - eInputAttachment = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, - eInlineUniformBlockEXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, - eAccelerationStructureNV = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV + eSampler = VK_DESCRIPTOR_TYPE_SAMPLER, + eCombinedImageSampler = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, + eSampledImage = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, + eStorageImage = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, + eUniformTexelBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, + eStorageTexelBuffer = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, + eUniformBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, + eStorageBuffer = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, + eUniformBufferDynamic = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, + eStorageBufferDynamic = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, + eInputAttachment = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, + eInlineUniformBlockEXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, + eAccelerationStructureKHR = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, + eAccelerationStructureNV = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV, + eMutableVALVE = VK_DESCRIPTOR_TYPE_MUTABLE_VALVE }; VULKAN_HPP_INLINE std::string to_string( DescriptorType value ) { switch ( value ) { - case DescriptorType::eSampler : return "Sampler"; - case DescriptorType::eCombinedImageSampler : return "CombinedImageSampler"; - case DescriptorType::eSampledImage : return "SampledImage"; - case DescriptorType::eStorageImage : return "StorageImage"; - case DescriptorType::eUniformTexelBuffer : return "UniformTexelBuffer"; - case DescriptorType::eStorageTexelBuffer : return "StorageTexelBuffer"; - case DescriptorType::eUniformBuffer : return "UniformBuffer"; - case DescriptorType::eStorageBuffer : return "StorageBuffer"; - case DescriptorType::eUniformBufferDynamic : return "UniformBufferDynamic"; - case DescriptorType::eStorageBufferDynamic : return "StorageBufferDynamic"; - case DescriptorType::eInputAttachment : return "InputAttachment"; - case DescriptorType::eInlineUniformBlockEXT : return "InlineUniformBlockEXT"; - case DescriptorType::eAccelerationStructureNV : return "AccelerationStructureNV"; - default: return "invalid"; + case DescriptorType::eSampler: return "Sampler"; + case DescriptorType::eCombinedImageSampler: return "CombinedImageSampler"; + case DescriptorType::eSampledImage: return "SampledImage"; + case DescriptorType::eStorageImage: return "StorageImage"; + case DescriptorType::eUniformTexelBuffer: return "UniformTexelBuffer"; + case DescriptorType::eStorageTexelBuffer: return "StorageTexelBuffer"; + case DescriptorType::eUniformBuffer: return "UniformBuffer"; + case DescriptorType::eStorageBuffer: return "StorageBuffer"; + case DescriptorType::eUniformBufferDynamic: return "UniformBufferDynamic"; + case DescriptorType::eStorageBufferDynamic: return "StorageBufferDynamic"; + case DescriptorType::eInputAttachment: return "InputAttachment"; + case DescriptorType::eInlineUniformBlockEXT: return "InlineUniformBlockEXT"; + case DescriptorType::eAccelerationStructureKHR: return "AccelerationStructureKHR"; + case DescriptorType::eAccelerationStructureNV: return "AccelerationStructureNV"; + case DescriptorType::eMutableVALVE: return "MutableVALVE"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class DescriptorUpdateTemplateType { - eDescriptorSet = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, + eDescriptorSet = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, ePushDescriptorsKHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR }; using DescriptorUpdateTemplateTypeKHR = DescriptorUpdateTemplateType; @@ -4107,20 +6792,39 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case DescriptorUpdateTemplateType::eDescriptorSet : return "DescriptorSet"; - case DescriptorUpdateTemplateType::ePushDescriptorsKHR : return "PushDescriptorsKHR"; - default: return "invalid"; + case DescriptorUpdateTemplateType::eDescriptorSet: return "DescriptorSet"; + case DescriptorUpdateTemplateType::ePushDescriptorsKHR: return "PushDescriptorsKHR"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class DeviceCreateFlagBits - {}; + { + }; VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlagBits ) { return "(void)"; } + enum class DeviceDiagnosticsConfigFlagBitsNV : VkDeviceDiagnosticsConfigFlagsNV + { + eEnableShaderDebugInfo = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV, + eEnableResourceTracking = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV, + eEnableAutomaticCheckpoints = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV + }; + + VULKAN_HPP_INLINE std::string to_string( DeviceDiagnosticsConfigFlagBitsNV value ) + { + switch ( value ) + { + case DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo: return "EnableShaderDebugInfo"; + case DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking: return "EnableResourceTracking"; + case DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints: return "EnableAutomaticCheckpoints"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + enum class DeviceEventTypeEXT { eDisplayHotplug = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT @@ -4130,16 +6834,16 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case DeviceEventTypeEXT::eDisplayHotplug : return "DisplayHotplug"; - default: return "invalid"; + case DeviceEventTypeEXT::eDisplayHotplug: return "DisplayHotplug"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class DeviceGroupPresentModeFlagBitsKHR + enum class DeviceGroupPresentModeFlagBitsKHR : VkDeviceGroupPresentModeFlagsKHR { - eLocal = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR, - eRemote = VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR, - eSum = VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR, + eLocal = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR, + eRemote = VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR, + eSum = VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR, eLocalMultiDevice = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR }; @@ -4147,15 +6851,37 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case DeviceGroupPresentModeFlagBitsKHR::eLocal : return "Local"; - case DeviceGroupPresentModeFlagBitsKHR::eRemote : return "Remote"; - case DeviceGroupPresentModeFlagBitsKHR::eSum : return "Sum"; - case DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice : return "LocalMultiDevice"; - default: return "invalid"; + case DeviceGroupPresentModeFlagBitsKHR::eLocal: return "Local"; + case DeviceGroupPresentModeFlagBitsKHR::eRemote: return "Remote"; + case DeviceGroupPresentModeFlagBitsKHR::eSum: return "Sum"; + case DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice: return "LocalMultiDevice"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class DeviceQueueCreateFlagBits + enum class DeviceMemoryReportEventTypeEXT + { + eAllocate = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT, + eFree = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT, + eImport = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT, + eUnimport = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT, + eAllocationFailed = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT + }; + + VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportEventTypeEXT value ) + { + switch ( value ) + { + case DeviceMemoryReportEventTypeEXT::eAllocate: return "Allocate"; + case DeviceMemoryReportEventTypeEXT::eFree: return "Free"; + case DeviceMemoryReportEventTypeEXT::eImport: return "Import"; + case DeviceMemoryReportEventTypeEXT::eUnimport: return "Unimport"; + case DeviceMemoryReportEventTypeEXT::eAllocationFailed: return "AllocationFailed"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class DeviceQueueCreateFlagBits : VkDeviceQueueCreateFlags { eProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT }; @@ -4164,8 +6890,8 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case DeviceQueueCreateFlagBits::eProtected : return "Protected"; - default: return "invalid"; + case DeviceQueueCreateFlagBits::eProtected: return "Protected"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } @@ -4179,9 +6905,9 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case DiscardRectangleModeEXT::eInclusive : return "Inclusive"; - case DiscardRectangleModeEXT::eExclusive : return "Exclusive"; - default: return "invalid"; + case DiscardRectangleModeEXT::eInclusive: return "Inclusive"; + case DiscardRectangleModeEXT::eExclusive: return "Exclusive"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } @@ -4194,16 +6920,16 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case DisplayEventTypeEXT::eFirstPixelOut : return "FirstPixelOut"; - default: return "invalid"; + case DisplayEventTypeEXT::eFirstPixelOut: return "FirstPixelOut"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class DisplayPlaneAlphaFlagBitsKHR + enum class DisplayPlaneAlphaFlagBitsKHR : VkDisplayPlaneAlphaFlagsKHR { - eOpaque = VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR, - eGlobal = VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR, - ePerPixel = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR, + eOpaque = VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR, + eGlobal = VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR, + ePerPixel = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR, ePerPixelPremultiplied = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR }; @@ -4211,47 +6937,50 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case DisplayPlaneAlphaFlagBitsKHR::eOpaque : return "Opaque"; - case DisplayPlaneAlphaFlagBitsKHR::eGlobal : return "Global"; - case DisplayPlaneAlphaFlagBitsKHR::ePerPixel : return "PerPixel"; - case DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied : return "PerPixelPremultiplied"; - default: return "invalid"; + case DisplayPlaneAlphaFlagBitsKHR::eOpaque: return "Opaque"; + case DisplayPlaneAlphaFlagBitsKHR::eGlobal: return "Global"; + case DisplayPlaneAlphaFlagBitsKHR::ePerPixel: return "PerPixel"; + case DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied: return "PerPixelPremultiplied"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class DisplayPowerStateEXT { - eOff = VK_DISPLAY_POWER_STATE_OFF_EXT, + eOff = VK_DISPLAY_POWER_STATE_OFF_EXT, eSuspend = VK_DISPLAY_POWER_STATE_SUSPEND_EXT, - eOn = VK_DISPLAY_POWER_STATE_ON_EXT + eOn = VK_DISPLAY_POWER_STATE_ON_EXT }; VULKAN_HPP_INLINE std::string to_string( DisplayPowerStateEXT value ) { switch ( value ) { - case DisplayPowerStateEXT::eOff : return "Off"; - case DisplayPowerStateEXT::eSuspend : return "Suspend"; - case DisplayPowerStateEXT::eOn : return "On"; - default: return "invalid"; + case DisplayPowerStateEXT::eOff: return "Off"; + case DisplayPowerStateEXT::eSuspend: return "Suspend"; + case DisplayPowerStateEXT::eOn: return "On"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class DriverId { - eAmdProprietary = VK_DRIVER_ID_AMD_PROPRIETARY, - eAmdOpenSource = VK_DRIVER_ID_AMD_OPEN_SOURCE, - eMesaRadv = VK_DRIVER_ID_MESA_RADV, - eNvidiaProprietary = VK_DRIVER_ID_NVIDIA_PROPRIETARY, + eAmdProprietary = VK_DRIVER_ID_AMD_PROPRIETARY, + eAmdOpenSource = VK_DRIVER_ID_AMD_OPEN_SOURCE, + eMesaRadv = VK_DRIVER_ID_MESA_RADV, + eNvidiaProprietary = VK_DRIVER_ID_NVIDIA_PROPRIETARY, eIntelProprietaryWindows = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS, - eIntelOpenSourceMESA = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA, - eImaginationProprietary = VK_DRIVER_ID_IMAGINATION_PROPRIETARY, - eQualcommProprietary = VK_DRIVER_ID_QUALCOMM_PROPRIETARY, - eArmProprietary = VK_DRIVER_ID_ARM_PROPRIETARY, - eGoogleSwiftshader = VK_DRIVER_ID_GOOGLE_SWIFTSHADER, - eGgpProprietary = VK_DRIVER_ID_GGP_PROPRIETARY, - eBroadcomProprietary = VK_DRIVER_ID_BROADCOM_PROPRIETARY, - eIntelOpenSourceMesa = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR + eIntelOpenSourceMESA = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA, + eImaginationProprietary = VK_DRIVER_ID_IMAGINATION_PROPRIETARY, + eQualcommProprietary = VK_DRIVER_ID_QUALCOMM_PROPRIETARY, + eArmProprietary = VK_DRIVER_ID_ARM_PROPRIETARY, + eGoogleSwiftshader = VK_DRIVER_ID_GOOGLE_SWIFTSHADER, + eGgpProprietary = VK_DRIVER_ID_GGP_PROPRIETARY, + eBroadcomProprietary = VK_DRIVER_ID_BROADCOM_PROPRIETARY, + eMesaLlvmpipe = VK_DRIVER_ID_MESA_LLVMPIPE, + eMoltenvk = VK_DRIVER_ID_MOLTENVK, + eCoreaviProprietary = VK_DRIVER_ID_COREAVI_PROPRIETARY, + eIntelOpenSourceMesa = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR }; using DriverIdKHR = DriverId; @@ -4259,67 +6988,126 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case DriverId::eAmdProprietary : return "AmdProprietary"; - case DriverId::eAmdOpenSource : return "AmdOpenSource"; - case DriverId::eMesaRadv : return "MesaRadv"; - case DriverId::eNvidiaProprietary : return "NvidiaProprietary"; - case DriverId::eIntelProprietaryWindows : return "IntelProprietaryWindows"; - case DriverId::eIntelOpenSourceMESA : return "IntelOpenSourceMESA"; - case DriverId::eImaginationProprietary : return "ImaginationProprietary"; - case DriverId::eQualcommProprietary : return "QualcommProprietary"; - case DriverId::eArmProprietary : return "ArmProprietary"; - case DriverId::eGoogleSwiftshader : return "GoogleSwiftshader"; - case DriverId::eGgpProprietary : return "GgpProprietary"; - case DriverId::eBroadcomProprietary : return "BroadcomProprietary"; - default: return "invalid"; + case DriverId::eAmdProprietary: return "AmdProprietary"; + case DriverId::eAmdOpenSource: return "AmdOpenSource"; + case DriverId::eMesaRadv: return "MesaRadv"; + case DriverId::eNvidiaProprietary: return "NvidiaProprietary"; + case DriverId::eIntelProprietaryWindows: return "IntelProprietaryWindows"; + case DriverId::eIntelOpenSourceMESA: return "IntelOpenSourceMESA"; + case DriverId::eImaginationProprietary: return "ImaginationProprietary"; + case DriverId::eQualcommProprietary: return "QualcommProprietary"; + case DriverId::eArmProprietary: return "ArmProprietary"; + case DriverId::eGoogleSwiftshader: return "GoogleSwiftshader"; + case DriverId::eGgpProprietary: return "GgpProprietary"; + case DriverId::eBroadcomProprietary: return "BroadcomProprietary"; + case DriverId::eMesaLlvmpipe: return "MesaLlvmpipe"; + case DriverId::eMoltenvk: return "Moltenvk"; + case DriverId::eCoreaviProprietary: return "CoreaviProprietary"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class DynamicState { - eViewport = VK_DYNAMIC_STATE_VIEWPORT, - eScissor = VK_DYNAMIC_STATE_SCISSOR, - eLineWidth = VK_DYNAMIC_STATE_LINE_WIDTH, - eDepthBias = VK_DYNAMIC_STATE_DEPTH_BIAS, - eBlendConstants = VK_DYNAMIC_STATE_BLEND_CONSTANTS, - eDepthBounds = VK_DYNAMIC_STATE_DEPTH_BOUNDS, - eStencilCompareMask = VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK, - eStencilWriteMask = VK_DYNAMIC_STATE_STENCIL_WRITE_MASK, - eStencilReference = VK_DYNAMIC_STATE_STENCIL_REFERENCE, - eViewportWScalingNV = VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV, - eDiscardRectangleEXT = VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT, - eSampleLocationsEXT = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, - eViewportShadingRatePaletteNV = VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV, - eViewportCoarseSampleOrderNV = VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV, - eExclusiveScissorNV = VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV, - eLineStippleEXT = VK_DYNAMIC_STATE_LINE_STIPPLE_EXT + eViewport = VK_DYNAMIC_STATE_VIEWPORT, + eScissor = VK_DYNAMIC_STATE_SCISSOR, + eLineWidth = VK_DYNAMIC_STATE_LINE_WIDTH, + eDepthBias = VK_DYNAMIC_STATE_DEPTH_BIAS, + eBlendConstants = VK_DYNAMIC_STATE_BLEND_CONSTANTS, + eDepthBounds = VK_DYNAMIC_STATE_DEPTH_BOUNDS, + eStencilCompareMask = VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK, + eStencilWriteMask = VK_DYNAMIC_STATE_STENCIL_WRITE_MASK, + eStencilReference = VK_DYNAMIC_STATE_STENCIL_REFERENCE, + eViewportWScalingNV = VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV, + eDiscardRectangleEXT = VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT, + eSampleLocationsEXT = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, + eRayTracingPipelineStackSizeKHR = VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR, + eViewportShadingRatePaletteNV = VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV, + eViewportCoarseSampleOrderNV = VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV, + eExclusiveScissorNV = VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV, + eFragmentShadingRateKHR = VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR, + eLineStippleEXT = VK_DYNAMIC_STATE_LINE_STIPPLE_EXT, + eCullModeEXT = VK_DYNAMIC_STATE_CULL_MODE_EXT, + eFrontFaceEXT = VK_DYNAMIC_STATE_FRONT_FACE_EXT, + ePrimitiveTopologyEXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT, + eViewportWithCountEXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT, + eScissorWithCountEXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT, + eVertexInputBindingStrideEXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT, + eDepthTestEnableEXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT, + eDepthWriteEnableEXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT, + eDepthCompareOpEXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT, + eDepthBoundsTestEnableEXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT, + eStencilTestEnableEXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT, + eStencilOpEXT = VK_DYNAMIC_STATE_STENCIL_OP_EXT, + eVertexInputEXT = VK_DYNAMIC_STATE_VERTEX_INPUT_EXT, + ePatchControlPointsEXT = VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT, + eRasterizerDiscardEnableEXT = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT, + eDepthBiasEnableEXT = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT, + eLogicOpEXT = VK_DYNAMIC_STATE_LOGIC_OP_EXT, + ePrimitiveRestartEnableEXT = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT, + eColorWriteEnableEXT = VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT }; VULKAN_HPP_INLINE std::string to_string( DynamicState value ) { switch ( value ) { - case DynamicState::eViewport : return "Viewport"; - case DynamicState::eScissor : return "Scissor"; - case DynamicState::eLineWidth : return "LineWidth"; - case DynamicState::eDepthBias : return "DepthBias"; - case DynamicState::eBlendConstants : return "BlendConstants"; - case DynamicState::eDepthBounds : return "DepthBounds"; - case DynamicState::eStencilCompareMask : return "StencilCompareMask"; - case DynamicState::eStencilWriteMask : return "StencilWriteMask"; - case DynamicState::eStencilReference : return "StencilReference"; - case DynamicState::eViewportWScalingNV : return "ViewportWScalingNV"; - case DynamicState::eDiscardRectangleEXT : return "DiscardRectangleEXT"; - case DynamicState::eSampleLocationsEXT : return "SampleLocationsEXT"; - case DynamicState::eViewportShadingRatePaletteNV : return "ViewportShadingRatePaletteNV"; - case DynamicState::eViewportCoarseSampleOrderNV : return "ViewportCoarseSampleOrderNV"; - case DynamicState::eExclusiveScissorNV : return "ExclusiveScissorNV"; - case DynamicState::eLineStippleEXT : return "LineStippleEXT"; - default: return "invalid"; + case DynamicState::eViewport: return "Viewport"; + case DynamicState::eScissor: return "Scissor"; + case DynamicState::eLineWidth: return "LineWidth"; + case DynamicState::eDepthBias: return "DepthBias"; + case DynamicState::eBlendConstants: return "BlendConstants"; + case DynamicState::eDepthBounds: return "DepthBounds"; + case DynamicState::eStencilCompareMask: return "StencilCompareMask"; + case DynamicState::eStencilWriteMask: return "StencilWriteMask"; + case DynamicState::eStencilReference: return "StencilReference"; + case DynamicState::eViewportWScalingNV: return "ViewportWScalingNV"; + case DynamicState::eDiscardRectangleEXT: return "DiscardRectangleEXT"; + case DynamicState::eSampleLocationsEXT: return "SampleLocationsEXT"; + case DynamicState::eRayTracingPipelineStackSizeKHR: return "RayTracingPipelineStackSizeKHR"; + case DynamicState::eViewportShadingRatePaletteNV: return "ViewportShadingRatePaletteNV"; + case DynamicState::eViewportCoarseSampleOrderNV: return "ViewportCoarseSampleOrderNV"; + case DynamicState::eExclusiveScissorNV: return "ExclusiveScissorNV"; + case DynamicState::eFragmentShadingRateKHR: return "FragmentShadingRateKHR"; + case DynamicState::eLineStippleEXT: return "LineStippleEXT"; + case DynamicState::eCullModeEXT: return "CullModeEXT"; + case DynamicState::eFrontFaceEXT: return "FrontFaceEXT"; + case DynamicState::ePrimitiveTopologyEXT: return "PrimitiveTopologyEXT"; + case DynamicState::eViewportWithCountEXT: return "ViewportWithCountEXT"; + case DynamicState::eScissorWithCountEXT: return "ScissorWithCountEXT"; + case DynamicState::eVertexInputBindingStrideEXT: return "VertexInputBindingStrideEXT"; + case DynamicState::eDepthTestEnableEXT: return "DepthTestEnableEXT"; + case DynamicState::eDepthWriteEnableEXT: return "DepthWriteEnableEXT"; + case DynamicState::eDepthCompareOpEXT: return "DepthCompareOpEXT"; + case DynamicState::eDepthBoundsTestEnableEXT: return "DepthBoundsTestEnableEXT"; + case DynamicState::eStencilTestEnableEXT: return "StencilTestEnableEXT"; + case DynamicState::eStencilOpEXT: return "StencilOpEXT"; + case DynamicState::eVertexInputEXT: return "VertexInputEXT"; + case DynamicState::ePatchControlPointsEXT: return "PatchControlPointsEXT"; + case DynamicState::eRasterizerDiscardEnableEXT: return "RasterizerDiscardEnableEXT"; + case DynamicState::eDepthBiasEnableEXT: return "DepthBiasEnableEXT"; + case DynamicState::eLogicOpEXT: return "LogicOpEXT"; + case DynamicState::ePrimitiveRestartEnableEXT: return "PrimitiveRestartEnableEXT"; + case DynamicState::eColorWriteEnableEXT: return "ColorWriteEnableEXT"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class EventCreateFlagBits : VkEventCreateFlags + { + eDeviceOnlyKHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR + }; + + VULKAN_HPP_INLINE std::string to_string( EventCreateFlagBits value ) + { + switch ( value ) + { + case EventCreateFlagBits::eDeviceOnlyKHR: return "DeviceOnlyKHR"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class ExternalFenceFeatureFlagBits + enum class ExternalFenceFeatureFlagBits : VkExternalFenceFeatureFlags { eExportable = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT, eImportable = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT @@ -4330,18 +7118,18 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case ExternalFenceFeatureFlagBits::eExportable : return "Exportable"; - case ExternalFenceFeatureFlagBits::eImportable : return "Importable"; - default: return "invalid"; + case ExternalFenceFeatureFlagBits::eExportable: return "Exportable"; + case ExternalFenceFeatureFlagBits::eImportable: return "Importable"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class ExternalFenceHandleTypeFlagBits + enum class ExternalFenceHandleTypeFlagBits : VkExternalFenceHandleTypeFlags { - eOpaqueFd = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT, - eOpaqueWin32 = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT, + eOpaqueFd = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT, + eOpaqueWin32 = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT, eOpaqueWin32Kmt = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, - eSyncFd = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT + eSyncFd = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT }; using ExternalFenceHandleTypeFlagBitsKHR = ExternalFenceHandleTypeFlagBits; @@ -4349,19 +7137,19 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case ExternalFenceHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd"; - case ExternalFenceHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32"; - case ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt"; - case ExternalFenceHandleTypeFlagBits::eSyncFd : return "SyncFd"; - default: return "invalid"; + case ExternalFenceHandleTypeFlagBits::eOpaqueFd: return "OpaqueFd"; + case ExternalFenceHandleTypeFlagBits::eOpaqueWin32: return "OpaqueWin32"; + case ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt: return "OpaqueWin32Kmt"; + case ExternalFenceHandleTypeFlagBits::eSyncFd: return "SyncFd"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class ExternalMemoryFeatureFlagBits + enum class ExternalMemoryFeatureFlagBits : VkExternalMemoryFeatureFlags { eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT, - eExportable = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT, - eImportable = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT + eExportable = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT, + eImportable = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT }; using ExternalMemoryFeatureFlagBitsKHR = ExternalMemoryFeatureFlagBits; @@ -4369,44 +7157,51 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case ExternalMemoryFeatureFlagBits::eDedicatedOnly : return "DedicatedOnly"; - case ExternalMemoryFeatureFlagBits::eExportable : return "Exportable"; - case ExternalMemoryFeatureFlagBits::eImportable : return "Importable"; - default: return "invalid"; + case ExternalMemoryFeatureFlagBits::eDedicatedOnly: return "DedicatedOnly"; + case ExternalMemoryFeatureFlagBits::eExportable: return "Exportable"; + case ExternalMemoryFeatureFlagBits::eImportable: return "Importable"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class ExternalMemoryFeatureFlagBitsNV + enum class ExternalMemoryFeatureFlagBitsNV : VkExternalMemoryFeatureFlagsNV { eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV, - eExportable = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV, - eImportable = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV + eExportable = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV, + eImportable = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV }; VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBitsNV value ) { switch ( value ) { - case ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly : return "DedicatedOnly"; - case ExternalMemoryFeatureFlagBitsNV::eExportable : return "Exportable"; - case ExternalMemoryFeatureFlagBitsNV::eImportable : return "Importable"; - default: return "invalid"; + case ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly: return "DedicatedOnly"; + case ExternalMemoryFeatureFlagBitsNV::eExportable: return "Exportable"; + case ExternalMemoryFeatureFlagBitsNV::eImportable: return "Importable"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class ExternalMemoryHandleTypeFlagBits + enum class ExternalMemoryHandleTypeFlagBits : VkExternalMemoryHandleTypeFlags { - eOpaqueFd = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, - eOpaqueWin32 = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, - eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, - eD3D11Texture = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, - eD3D11TextureKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT, - eD3D12Heap = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, - eD3D12Resource = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, - eDmaBufEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT, - eAndroidHardwareBufferANDROID = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, - eHostAllocationEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT, - eHostMappedForeignMemoryEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT + // clang-format off + eOpaqueFd = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT + , eOpaqueWin32 = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT + , eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT + , eD3D11Texture = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT + , eD3D11TextureKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT + , eD3D12Heap = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT + , eD3D12Resource = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT + , eDmaBufEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + , eAndroidHardwareBufferANDROID = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + , eHostAllocationEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT + , eHostMappedForeignMemoryEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT +#if defined( VK_USE_PLATFORM_FUCHSIA ) + , eZirconVmoFUCHSIA = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + // clang-format on }; using ExternalMemoryHandleTypeFlagBitsKHR = ExternalMemoryHandleTypeFlagBits; @@ -4414,42 +7209,47 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case ExternalMemoryHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd"; - case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32"; - case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt"; - case ExternalMemoryHandleTypeFlagBits::eD3D11Texture : return "D3D11Texture"; - case ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt : return "D3D11TextureKmt"; - case ExternalMemoryHandleTypeFlagBits::eD3D12Heap : return "D3D12Heap"; - case ExternalMemoryHandleTypeFlagBits::eD3D12Resource : return "D3D12Resource"; - case ExternalMemoryHandleTypeFlagBits::eDmaBufEXT : return "DmaBufEXT"; - case ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID : return "AndroidHardwareBufferANDROID"; - case ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT : return "HostAllocationEXT"; - case ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT : return "HostMappedForeignMemoryEXT"; - default: return "invalid"; + case ExternalMemoryHandleTypeFlagBits::eOpaqueFd: return "OpaqueFd"; + case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32: return "OpaqueWin32"; + case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt: return "OpaqueWin32Kmt"; + case ExternalMemoryHandleTypeFlagBits::eD3D11Texture: return "D3D11Texture"; + case ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt: return "D3D11TextureKmt"; + case ExternalMemoryHandleTypeFlagBits::eD3D12Heap: return "D3D12Heap"; + case ExternalMemoryHandleTypeFlagBits::eD3D12Resource: return "D3D12Resource"; + case ExternalMemoryHandleTypeFlagBits::eDmaBufEXT: return "DmaBufEXT"; +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + case ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID: return "AndroidHardwareBufferANDROID"; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + case ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT: return "HostAllocationEXT"; + case ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT: return "HostMappedForeignMemoryEXT"; +#if defined( VK_USE_PLATFORM_FUCHSIA ) + case ExternalMemoryHandleTypeFlagBits::eZirconVmoFUCHSIA: return "ZirconVmoFUCHSIA"; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class ExternalMemoryHandleTypeFlagBitsNV + enum class ExternalMemoryHandleTypeFlagBitsNV : VkExternalMemoryHandleTypeFlagsNV { - eOpaqueWin32 = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV, + eOpaqueWin32 = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV, eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV, - eD3D11Image = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV, - eD3D11ImageKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV + eD3D11Image = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV, + eD3D11ImageKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV }; VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBitsNV value ) { switch ( value ) { - case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 : return "OpaqueWin32"; - case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt : return "OpaqueWin32Kmt"; - case ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image : return "D3D11Image"; - case ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt : return "D3D11ImageKmt"; - default: return "invalid"; + case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32: return "OpaqueWin32"; + case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt: return "OpaqueWin32Kmt"; + case ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image: return "D3D11Image"; + case ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt: return "D3D11ImageKmt"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class ExternalSemaphoreFeatureFlagBits + enum class ExternalSemaphoreFeatureFlagBits : VkExternalSemaphoreFeatureFlags { eExportable = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT, eImportable = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT @@ -4460,19 +7260,25 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case ExternalSemaphoreFeatureFlagBits::eExportable : return "Exportable"; - case ExternalSemaphoreFeatureFlagBits::eImportable : return "Importable"; - default: return "invalid"; + case ExternalSemaphoreFeatureFlagBits::eExportable: return "Exportable"; + case ExternalSemaphoreFeatureFlagBits::eImportable: return "Importable"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class ExternalSemaphoreHandleTypeFlagBits + enum class ExternalSemaphoreHandleTypeFlagBits : VkExternalSemaphoreHandleTypeFlags { - eOpaqueFd = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT, - eOpaqueWin32 = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT, - eOpaqueWin32Kmt = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, - eD3D12Fence = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, - eSyncFd = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT + // clang-format off + eOpaqueFd = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT + , eOpaqueWin32 = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT + , eOpaqueWin32Kmt = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT + , eD3D12Fence = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT + , eSyncFd = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT +#if defined( VK_USE_PLATFORM_FUCHSIA ) + , eZirconEventFUCHSIA = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + , eD3D11Fence = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT + // clang-format on }; using ExternalSemaphoreHandleTypeFlagBitsKHR = ExternalSemaphoreHandleTypeFlagBits; @@ -4480,16 +7286,19 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd"; - case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32"; - case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt"; - case ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence : return "D3D12Fence"; - case ExternalSemaphoreHandleTypeFlagBits::eSyncFd : return "SyncFd"; - default: return "invalid"; + case ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd: return "OpaqueFd"; + case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32: return "OpaqueWin32"; + case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt: return "OpaqueWin32Kmt"; + case ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence: return "D3D12Fence"; + case ExternalSemaphoreHandleTypeFlagBits::eSyncFd: return "SyncFd"; +#if defined( VK_USE_PLATFORM_FUCHSIA ) + case ExternalSemaphoreHandleTypeFlagBits::eZirconEventFUCHSIA: return "ZirconEventFUCHSIA"; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class FenceCreateFlagBits + enum class FenceCreateFlagBits : VkFenceCreateFlags { eSignaled = VK_FENCE_CREATE_SIGNALED_BIT }; @@ -4498,12 +7307,12 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case FenceCreateFlagBits::eSignaled : return "Signaled"; - default: return "invalid"; + case FenceCreateFlagBits::eSignaled: return "Signaled"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class FenceImportFlagBits + enum class FenceImportFlagBits : VkFenceImportFlags { eTemporary = VK_FENCE_IMPORT_TEMPORARY_BIT }; @@ -4513,15 +7322,15 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case FenceImportFlagBits::eTemporary : return "Temporary"; - default: return "invalid"; + case FenceImportFlagBits::eTemporary: return "Temporary"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class Filter { - eNearest = VK_FILTER_NEAREST, - eLinear = VK_FILTER_LINEAR, + eNearest = VK_FILTER_NEAREST, + eLinear = VK_FILTER_LINEAR, eCubicIMG = VK_FILTER_CUBIC_IMG, eCubicEXT = VK_FILTER_CUBIC_EXT }; @@ -4530,617 +7339,725 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case Filter::eNearest : return "Nearest"; - case Filter::eLinear : return "Linear"; - case Filter::eCubicIMG : return "CubicIMG"; - default: return "invalid"; + case Filter::eNearest: return "Nearest"; + case Filter::eLinear: return "Linear"; + case Filter::eCubicIMG: return "CubicIMG"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class Format { - eUndefined = VK_FORMAT_UNDEFINED, - eR4G4UnormPack8 = VK_FORMAT_R4G4_UNORM_PACK8, - eR4G4B4A4UnormPack16 = VK_FORMAT_R4G4B4A4_UNORM_PACK16, - eB4G4R4A4UnormPack16 = VK_FORMAT_B4G4R4A4_UNORM_PACK16, - eR5G6B5UnormPack16 = VK_FORMAT_R5G6B5_UNORM_PACK16, - eB5G6R5UnormPack16 = VK_FORMAT_B5G6R5_UNORM_PACK16, - eR5G5B5A1UnormPack16 = VK_FORMAT_R5G5B5A1_UNORM_PACK16, - eB5G5R5A1UnormPack16 = VK_FORMAT_B5G5R5A1_UNORM_PACK16, - eA1R5G5B5UnormPack16 = VK_FORMAT_A1R5G5B5_UNORM_PACK16, - eR8Unorm = VK_FORMAT_R8_UNORM, - eR8Snorm = VK_FORMAT_R8_SNORM, - eR8Uscaled = VK_FORMAT_R8_USCALED, - eR8Sscaled = VK_FORMAT_R8_SSCALED, - eR8Uint = VK_FORMAT_R8_UINT, - eR8Sint = VK_FORMAT_R8_SINT, - eR8Srgb = VK_FORMAT_R8_SRGB, - eR8G8Unorm = VK_FORMAT_R8G8_UNORM, - eR8G8Snorm = VK_FORMAT_R8G8_SNORM, - eR8G8Uscaled = VK_FORMAT_R8G8_USCALED, - eR8G8Sscaled = VK_FORMAT_R8G8_SSCALED, - eR8G8Uint = VK_FORMAT_R8G8_UINT, - eR8G8Sint = VK_FORMAT_R8G8_SINT, - eR8G8Srgb = VK_FORMAT_R8G8_SRGB, - eR8G8B8Unorm = VK_FORMAT_R8G8B8_UNORM, - eR8G8B8Snorm = VK_FORMAT_R8G8B8_SNORM, - eR8G8B8Uscaled = VK_FORMAT_R8G8B8_USCALED, - eR8G8B8Sscaled = VK_FORMAT_R8G8B8_SSCALED, - eR8G8B8Uint = VK_FORMAT_R8G8B8_UINT, - eR8G8B8Sint = VK_FORMAT_R8G8B8_SINT, - eR8G8B8Srgb = VK_FORMAT_R8G8B8_SRGB, - eB8G8R8Unorm = VK_FORMAT_B8G8R8_UNORM, - eB8G8R8Snorm = VK_FORMAT_B8G8R8_SNORM, - eB8G8R8Uscaled = VK_FORMAT_B8G8R8_USCALED, - eB8G8R8Sscaled = VK_FORMAT_B8G8R8_SSCALED, - eB8G8R8Uint = VK_FORMAT_B8G8R8_UINT, - eB8G8R8Sint = VK_FORMAT_B8G8R8_SINT, - eB8G8R8Srgb = VK_FORMAT_B8G8R8_SRGB, - eR8G8B8A8Unorm = VK_FORMAT_R8G8B8A8_UNORM, - eR8G8B8A8Snorm = VK_FORMAT_R8G8B8A8_SNORM, - eR8G8B8A8Uscaled = VK_FORMAT_R8G8B8A8_USCALED, - eR8G8B8A8Sscaled = VK_FORMAT_R8G8B8A8_SSCALED, - eR8G8B8A8Uint = VK_FORMAT_R8G8B8A8_UINT, - eR8G8B8A8Sint = VK_FORMAT_R8G8B8A8_SINT, - eR8G8B8A8Srgb = VK_FORMAT_R8G8B8A8_SRGB, - eB8G8R8A8Unorm = VK_FORMAT_B8G8R8A8_UNORM, - eB8G8R8A8Snorm = VK_FORMAT_B8G8R8A8_SNORM, - eB8G8R8A8Uscaled = VK_FORMAT_B8G8R8A8_USCALED, - eB8G8R8A8Sscaled = VK_FORMAT_B8G8R8A8_SSCALED, - eB8G8R8A8Uint = VK_FORMAT_B8G8R8A8_UINT, - eB8G8R8A8Sint = VK_FORMAT_B8G8R8A8_SINT, - eB8G8R8A8Srgb = VK_FORMAT_B8G8R8A8_SRGB, - eA8B8G8R8UnormPack32 = VK_FORMAT_A8B8G8R8_UNORM_PACK32, - eA8B8G8R8SnormPack32 = VK_FORMAT_A8B8G8R8_SNORM_PACK32, - eA8B8G8R8UscaledPack32 = VK_FORMAT_A8B8G8R8_USCALED_PACK32, - eA8B8G8R8SscaledPack32 = VK_FORMAT_A8B8G8R8_SSCALED_PACK32, - eA8B8G8R8UintPack32 = VK_FORMAT_A8B8G8R8_UINT_PACK32, - eA8B8G8R8SintPack32 = VK_FORMAT_A8B8G8R8_SINT_PACK32, - eA8B8G8R8SrgbPack32 = VK_FORMAT_A8B8G8R8_SRGB_PACK32, - eA2R10G10B10UnormPack32 = VK_FORMAT_A2R10G10B10_UNORM_PACK32, - eA2R10G10B10SnormPack32 = VK_FORMAT_A2R10G10B10_SNORM_PACK32, - eA2R10G10B10UscaledPack32 = VK_FORMAT_A2R10G10B10_USCALED_PACK32, - eA2R10G10B10SscaledPack32 = VK_FORMAT_A2R10G10B10_SSCALED_PACK32, - eA2R10G10B10UintPack32 = VK_FORMAT_A2R10G10B10_UINT_PACK32, - eA2R10G10B10SintPack32 = VK_FORMAT_A2R10G10B10_SINT_PACK32, - eA2B10G10R10UnormPack32 = VK_FORMAT_A2B10G10R10_UNORM_PACK32, - eA2B10G10R10SnormPack32 = VK_FORMAT_A2B10G10R10_SNORM_PACK32, - eA2B10G10R10UscaledPack32 = VK_FORMAT_A2B10G10R10_USCALED_PACK32, - eA2B10G10R10SscaledPack32 = VK_FORMAT_A2B10G10R10_SSCALED_PACK32, - eA2B10G10R10UintPack32 = VK_FORMAT_A2B10G10R10_UINT_PACK32, - eA2B10G10R10SintPack32 = VK_FORMAT_A2B10G10R10_SINT_PACK32, - eR16Unorm = VK_FORMAT_R16_UNORM, - eR16Snorm = VK_FORMAT_R16_SNORM, - eR16Uscaled = VK_FORMAT_R16_USCALED, - eR16Sscaled = VK_FORMAT_R16_SSCALED, - eR16Uint = VK_FORMAT_R16_UINT, - eR16Sint = VK_FORMAT_R16_SINT, - eR16Sfloat = VK_FORMAT_R16_SFLOAT, - eR16G16Unorm = VK_FORMAT_R16G16_UNORM, - eR16G16Snorm = VK_FORMAT_R16G16_SNORM, - eR16G16Uscaled = VK_FORMAT_R16G16_USCALED, - eR16G16Sscaled = VK_FORMAT_R16G16_SSCALED, - eR16G16Uint = VK_FORMAT_R16G16_UINT, - eR16G16Sint = VK_FORMAT_R16G16_SINT, - eR16G16Sfloat = VK_FORMAT_R16G16_SFLOAT, - eR16G16B16Unorm = VK_FORMAT_R16G16B16_UNORM, - eR16G16B16Snorm = VK_FORMAT_R16G16B16_SNORM, - eR16G16B16Uscaled = VK_FORMAT_R16G16B16_USCALED, - eR16G16B16Sscaled = VK_FORMAT_R16G16B16_SSCALED, - eR16G16B16Uint = VK_FORMAT_R16G16B16_UINT, - eR16G16B16Sint = VK_FORMAT_R16G16B16_SINT, - eR16G16B16Sfloat = VK_FORMAT_R16G16B16_SFLOAT, - eR16G16B16A16Unorm = VK_FORMAT_R16G16B16A16_UNORM, - eR16G16B16A16Snorm = VK_FORMAT_R16G16B16A16_SNORM, - eR16G16B16A16Uscaled = VK_FORMAT_R16G16B16A16_USCALED, - eR16G16B16A16Sscaled = VK_FORMAT_R16G16B16A16_SSCALED, - eR16G16B16A16Uint = VK_FORMAT_R16G16B16A16_UINT, - eR16G16B16A16Sint = VK_FORMAT_R16G16B16A16_SINT, - eR16G16B16A16Sfloat = VK_FORMAT_R16G16B16A16_SFLOAT, - eR32Uint = VK_FORMAT_R32_UINT, - eR32Sint = VK_FORMAT_R32_SINT, - eR32Sfloat = VK_FORMAT_R32_SFLOAT, - eR32G32Uint = VK_FORMAT_R32G32_UINT, - eR32G32Sint = VK_FORMAT_R32G32_SINT, - eR32G32Sfloat = VK_FORMAT_R32G32_SFLOAT, - eR32G32B32Uint = VK_FORMAT_R32G32B32_UINT, - eR32G32B32Sint = VK_FORMAT_R32G32B32_SINT, - eR32G32B32Sfloat = VK_FORMAT_R32G32B32_SFLOAT, - eR32G32B32A32Uint = VK_FORMAT_R32G32B32A32_UINT, - eR32G32B32A32Sint = VK_FORMAT_R32G32B32A32_SINT, - eR32G32B32A32Sfloat = VK_FORMAT_R32G32B32A32_SFLOAT, - eR64Uint = VK_FORMAT_R64_UINT, - eR64Sint = VK_FORMAT_R64_SINT, - eR64Sfloat = VK_FORMAT_R64_SFLOAT, - eR64G64Uint = VK_FORMAT_R64G64_UINT, - eR64G64Sint = VK_FORMAT_R64G64_SINT, - eR64G64Sfloat = VK_FORMAT_R64G64_SFLOAT, - eR64G64B64Uint = VK_FORMAT_R64G64B64_UINT, - eR64G64B64Sint = VK_FORMAT_R64G64B64_SINT, - eR64G64B64Sfloat = VK_FORMAT_R64G64B64_SFLOAT, - eR64G64B64A64Uint = VK_FORMAT_R64G64B64A64_UINT, - eR64G64B64A64Sint = VK_FORMAT_R64G64B64A64_SINT, - eR64G64B64A64Sfloat = VK_FORMAT_R64G64B64A64_SFLOAT, - eB10G11R11UfloatPack32 = VK_FORMAT_B10G11R11_UFLOAT_PACK32, - eE5B9G9R9UfloatPack32 = VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, - eD16Unorm = VK_FORMAT_D16_UNORM, - eX8D24UnormPack32 = VK_FORMAT_X8_D24_UNORM_PACK32, - eD32Sfloat = VK_FORMAT_D32_SFLOAT, - eS8Uint = VK_FORMAT_S8_UINT, - eD16UnormS8Uint = VK_FORMAT_D16_UNORM_S8_UINT, - eD24UnormS8Uint = VK_FORMAT_D24_UNORM_S8_UINT, - eD32SfloatS8Uint = VK_FORMAT_D32_SFLOAT_S8_UINT, - eBc1RgbUnormBlock = VK_FORMAT_BC1_RGB_UNORM_BLOCK, - eBc1RgbSrgbBlock = VK_FORMAT_BC1_RGB_SRGB_BLOCK, - eBc1RgbaUnormBlock = VK_FORMAT_BC1_RGBA_UNORM_BLOCK, - eBc1RgbaSrgbBlock = VK_FORMAT_BC1_RGBA_SRGB_BLOCK, - eBc2UnormBlock = VK_FORMAT_BC2_UNORM_BLOCK, - eBc2SrgbBlock = VK_FORMAT_BC2_SRGB_BLOCK, - eBc3UnormBlock = VK_FORMAT_BC3_UNORM_BLOCK, - eBc3SrgbBlock = VK_FORMAT_BC3_SRGB_BLOCK, - eBc4UnormBlock = VK_FORMAT_BC4_UNORM_BLOCK, - eBc4SnormBlock = VK_FORMAT_BC4_SNORM_BLOCK, - eBc5UnormBlock = VK_FORMAT_BC5_UNORM_BLOCK, - eBc5SnormBlock = VK_FORMAT_BC5_SNORM_BLOCK, - eBc6HUfloatBlock = VK_FORMAT_BC6H_UFLOAT_BLOCK, - eBc6HSfloatBlock = VK_FORMAT_BC6H_SFLOAT_BLOCK, - eBc7UnormBlock = VK_FORMAT_BC7_UNORM_BLOCK, - eBc7SrgbBlock = VK_FORMAT_BC7_SRGB_BLOCK, - eEtc2R8G8B8UnormBlock = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK, - eEtc2R8G8B8SrgbBlock = VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK, - eEtc2R8G8B8A1UnormBlock = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK, - eEtc2R8G8B8A1SrgbBlock = VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK, - eEtc2R8G8B8A8UnormBlock = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK, - eEtc2R8G8B8A8SrgbBlock = VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK, - eEacR11UnormBlock = VK_FORMAT_EAC_R11_UNORM_BLOCK, - eEacR11SnormBlock = VK_FORMAT_EAC_R11_SNORM_BLOCK, - eEacR11G11UnormBlock = VK_FORMAT_EAC_R11G11_UNORM_BLOCK, - eEacR11G11SnormBlock = VK_FORMAT_EAC_R11G11_SNORM_BLOCK, - eAstc4x4UnormBlock = VK_FORMAT_ASTC_4x4_UNORM_BLOCK, - eAstc4x4SrgbBlock = VK_FORMAT_ASTC_4x4_SRGB_BLOCK, - eAstc5x4UnormBlock = VK_FORMAT_ASTC_5x4_UNORM_BLOCK, - eAstc5x4SrgbBlock = VK_FORMAT_ASTC_5x4_SRGB_BLOCK, - eAstc5x5UnormBlock = VK_FORMAT_ASTC_5x5_UNORM_BLOCK, - eAstc5x5SrgbBlock = VK_FORMAT_ASTC_5x5_SRGB_BLOCK, - eAstc6x5UnormBlock = VK_FORMAT_ASTC_6x5_UNORM_BLOCK, - eAstc6x5SrgbBlock = VK_FORMAT_ASTC_6x5_SRGB_BLOCK, - eAstc6x6UnormBlock = VK_FORMAT_ASTC_6x6_UNORM_BLOCK, - eAstc6x6SrgbBlock = VK_FORMAT_ASTC_6x6_SRGB_BLOCK, - eAstc8x5UnormBlock = VK_FORMAT_ASTC_8x5_UNORM_BLOCK, - eAstc8x5SrgbBlock = VK_FORMAT_ASTC_8x5_SRGB_BLOCK, - eAstc8x6UnormBlock = VK_FORMAT_ASTC_8x6_UNORM_BLOCK, - eAstc8x6SrgbBlock = VK_FORMAT_ASTC_8x6_SRGB_BLOCK, - eAstc8x8UnormBlock = VK_FORMAT_ASTC_8x8_UNORM_BLOCK, - eAstc8x8SrgbBlock = VK_FORMAT_ASTC_8x8_SRGB_BLOCK, - eAstc10x5UnormBlock = VK_FORMAT_ASTC_10x5_UNORM_BLOCK, - eAstc10x5SrgbBlock = VK_FORMAT_ASTC_10x5_SRGB_BLOCK, - eAstc10x6UnormBlock = VK_FORMAT_ASTC_10x6_UNORM_BLOCK, - eAstc10x6SrgbBlock = VK_FORMAT_ASTC_10x6_SRGB_BLOCK, - eAstc10x8UnormBlock = VK_FORMAT_ASTC_10x8_UNORM_BLOCK, - eAstc10x8SrgbBlock = VK_FORMAT_ASTC_10x8_SRGB_BLOCK, - eAstc10x10UnormBlock = VK_FORMAT_ASTC_10x10_UNORM_BLOCK, - eAstc10x10SrgbBlock = VK_FORMAT_ASTC_10x10_SRGB_BLOCK, - eAstc12x10UnormBlock = VK_FORMAT_ASTC_12x10_UNORM_BLOCK, - eAstc12x10SrgbBlock = VK_FORMAT_ASTC_12x10_SRGB_BLOCK, - eAstc12x12UnormBlock = VK_FORMAT_ASTC_12x12_UNORM_BLOCK, - eAstc12x12SrgbBlock = VK_FORMAT_ASTC_12x12_SRGB_BLOCK, - eG8B8G8R8422Unorm = VK_FORMAT_G8B8G8R8_422_UNORM, - eB8G8R8G8422Unorm = VK_FORMAT_B8G8R8G8_422_UNORM, - eG8B8R83Plane420Unorm = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM, - eG8B8R82Plane420Unorm = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM, - eG8B8R83Plane422Unorm = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM, - eG8B8R82Plane422Unorm = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM, - eG8B8R83Plane444Unorm = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM, - eR10X6UnormPack16 = VK_FORMAT_R10X6_UNORM_PACK16, - eR10X6G10X6Unorm2Pack16 = VK_FORMAT_R10X6G10X6_UNORM_2PACK16, - eR10X6G10X6B10X6A10X6Unorm4Pack16 = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16, - eG10X6B10X6G10X6R10X6422Unorm4Pack16 = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16, - eB10X6G10X6R10X6G10X6422Unorm4Pack16 = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16, - eG10X6B10X6R10X63Plane420Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16, - eG10X6B10X6R10X62Plane420Unorm3Pack16 = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16, - eG10X6B10X6R10X63Plane422Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16, - eG10X6B10X6R10X62Plane422Unorm3Pack16 = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16, - eG10X6B10X6R10X63Plane444Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16, - eR12X4UnormPack16 = VK_FORMAT_R12X4_UNORM_PACK16, - eR12X4G12X4Unorm2Pack16 = VK_FORMAT_R12X4G12X4_UNORM_2PACK16, - eR12X4G12X4B12X4A12X4Unorm4Pack16 = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16, - eG12X4B12X4G12X4R12X4422Unorm4Pack16 = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16, - eB12X4G12X4R12X4G12X4422Unorm4Pack16 = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16, - eG12X4B12X4R12X43Plane420Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16, - eG12X4B12X4R12X42Plane420Unorm3Pack16 = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16, - eG12X4B12X4R12X43Plane422Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16, - eG12X4B12X4R12X42Plane422Unorm3Pack16 = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16, - eG12X4B12X4R12X43Plane444Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16, - eG16B16G16R16422Unorm = VK_FORMAT_G16B16G16R16_422_UNORM, - eB16G16R16G16422Unorm = VK_FORMAT_B16G16R16G16_422_UNORM, - eG16B16R163Plane420Unorm = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM, - eG16B16R162Plane420Unorm = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM, - eG16B16R163Plane422Unorm = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM, - eG16B16R162Plane422Unorm = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM, - eG16B16R163Plane444Unorm = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM, - ePvrtc12BppUnormBlockIMG = VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG, - ePvrtc14BppUnormBlockIMG = VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG, - ePvrtc22BppUnormBlockIMG = VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG, - ePvrtc24BppUnormBlockIMG = VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG, - ePvrtc12BppSrgbBlockIMG = VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG, - ePvrtc14BppSrgbBlockIMG = VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG, - ePvrtc22BppSrgbBlockIMG = VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG, - ePvrtc24BppSrgbBlockIMG = VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG, - eAstc4x4SfloatBlockEXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT, - eAstc5x4SfloatBlockEXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT, - eAstc5x5SfloatBlockEXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT, - eAstc6x5SfloatBlockEXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT, - eAstc6x6SfloatBlockEXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT, - eAstc8x5SfloatBlockEXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT, - eAstc8x6SfloatBlockEXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT, - eAstc8x8SfloatBlockEXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT, - eAstc10x5SfloatBlockEXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT, - eAstc10x6SfloatBlockEXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT, - eAstc10x8SfloatBlockEXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT, - eAstc10x10SfloatBlockEXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT, - eAstc12x10SfloatBlockEXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT, - eAstc12x12SfloatBlockEXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT, - eG8B8G8R8422UnormKHR = VK_FORMAT_G8B8G8R8_422_UNORM_KHR, - eB8G8R8G8422UnormKHR = VK_FORMAT_B8G8R8G8_422_UNORM_KHR, - eG8B8R83Plane420UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR, - eG8B8R82Plane420UnormKHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR, - eG8B8R83Plane422UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR, - eG8B8R82Plane422UnormKHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR, - eG8B8R83Plane444UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR, - eR10X6UnormPack16KHR = VK_FORMAT_R10X6_UNORM_PACK16_KHR, - eR10X6G10X6Unorm2Pack16KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR, - eR10X6G10X6B10X6A10X6Unorm4Pack16KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR, - eG10X6B10X6G10X6R10X6422Unorm4Pack16KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR, - eB10X6G10X6R10X6G10X6422Unorm4Pack16KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR, - eG10X6B10X6R10X63Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR, + eUndefined = VK_FORMAT_UNDEFINED, + eR4G4UnormPack8 = VK_FORMAT_R4G4_UNORM_PACK8, + eR4G4B4A4UnormPack16 = VK_FORMAT_R4G4B4A4_UNORM_PACK16, + eB4G4R4A4UnormPack16 = VK_FORMAT_B4G4R4A4_UNORM_PACK16, + eR5G6B5UnormPack16 = VK_FORMAT_R5G6B5_UNORM_PACK16, + eB5G6R5UnormPack16 = VK_FORMAT_B5G6R5_UNORM_PACK16, + eR5G5B5A1UnormPack16 = VK_FORMAT_R5G5B5A1_UNORM_PACK16, + eB5G5R5A1UnormPack16 = VK_FORMAT_B5G5R5A1_UNORM_PACK16, + eA1R5G5B5UnormPack16 = VK_FORMAT_A1R5G5B5_UNORM_PACK16, + eR8Unorm = VK_FORMAT_R8_UNORM, + eR8Snorm = VK_FORMAT_R8_SNORM, + eR8Uscaled = VK_FORMAT_R8_USCALED, + eR8Sscaled = VK_FORMAT_R8_SSCALED, + eR8Uint = VK_FORMAT_R8_UINT, + eR8Sint = VK_FORMAT_R8_SINT, + eR8Srgb = VK_FORMAT_R8_SRGB, + eR8G8Unorm = VK_FORMAT_R8G8_UNORM, + eR8G8Snorm = VK_FORMAT_R8G8_SNORM, + eR8G8Uscaled = VK_FORMAT_R8G8_USCALED, + eR8G8Sscaled = VK_FORMAT_R8G8_SSCALED, + eR8G8Uint = VK_FORMAT_R8G8_UINT, + eR8G8Sint = VK_FORMAT_R8G8_SINT, + eR8G8Srgb = VK_FORMAT_R8G8_SRGB, + eR8G8B8Unorm = VK_FORMAT_R8G8B8_UNORM, + eR8G8B8Snorm = VK_FORMAT_R8G8B8_SNORM, + eR8G8B8Uscaled = VK_FORMAT_R8G8B8_USCALED, + eR8G8B8Sscaled = VK_FORMAT_R8G8B8_SSCALED, + eR8G8B8Uint = VK_FORMAT_R8G8B8_UINT, + eR8G8B8Sint = VK_FORMAT_R8G8B8_SINT, + eR8G8B8Srgb = VK_FORMAT_R8G8B8_SRGB, + eB8G8R8Unorm = VK_FORMAT_B8G8R8_UNORM, + eB8G8R8Snorm = VK_FORMAT_B8G8R8_SNORM, + eB8G8R8Uscaled = VK_FORMAT_B8G8R8_USCALED, + eB8G8R8Sscaled = VK_FORMAT_B8G8R8_SSCALED, + eB8G8R8Uint = VK_FORMAT_B8G8R8_UINT, + eB8G8R8Sint = VK_FORMAT_B8G8R8_SINT, + eB8G8R8Srgb = VK_FORMAT_B8G8R8_SRGB, + eR8G8B8A8Unorm = VK_FORMAT_R8G8B8A8_UNORM, + eR8G8B8A8Snorm = VK_FORMAT_R8G8B8A8_SNORM, + eR8G8B8A8Uscaled = VK_FORMAT_R8G8B8A8_USCALED, + eR8G8B8A8Sscaled = VK_FORMAT_R8G8B8A8_SSCALED, + eR8G8B8A8Uint = VK_FORMAT_R8G8B8A8_UINT, + eR8G8B8A8Sint = VK_FORMAT_R8G8B8A8_SINT, + eR8G8B8A8Srgb = VK_FORMAT_R8G8B8A8_SRGB, + eB8G8R8A8Unorm = VK_FORMAT_B8G8R8A8_UNORM, + eB8G8R8A8Snorm = VK_FORMAT_B8G8R8A8_SNORM, + eB8G8R8A8Uscaled = VK_FORMAT_B8G8R8A8_USCALED, + eB8G8R8A8Sscaled = VK_FORMAT_B8G8R8A8_SSCALED, + eB8G8R8A8Uint = VK_FORMAT_B8G8R8A8_UINT, + eB8G8R8A8Sint = VK_FORMAT_B8G8R8A8_SINT, + eB8G8R8A8Srgb = VK_FORMAT_B8G8R8A8_SRGB, + eA8B8G8R8UnormPack32 = VK_FORMAT_A8B8G8R8_UNORM_PACK32, + eA8B8G8R8SnormPack32 = VK_FORMAT_A8B8G8R8_SNORM_PACK32, + eA8B8G8R8UscaledPack32 = VK_FORMAT_A8B8G8R8_USCALED_PACK32, + eA8B8G8R8SscaledPack32 = VK_FORMAT_A8B8G8R8_SSCALED_PACK32, + eA8B8G8R8UintPack32 = VK_FORMAT_A8B8G8R8_UINT_PACK32, + eA8B8G8R8SintPack32 = VK_FORMAT_A8B8G8R8_SINT_PACK32, + eA8B8G8R8SrgbPack32 = VK_FORMAT_A8B8G8R8_SRGB_PACK32, + eA2R10G10B10UnormPack32 = VK_FORMAT_A2R10G10B10_UNORM_PACK32, + eA2R10G10B10SnormPack32 = VK_FORMAT_A2R10G10B10_SNORM_PACK32, + eA2R10G10B10UscaledPack32 = VK_FORMAT_A2R10G10B10_USCALED_PACK32, + eA2R10G10B10SscaledPack32 = VK_FORMAT_A2R10G10B10_SSCALED_PACK32, + eA2R10G10B10UintPack32 = VK_FORMAT_A2R10G10B10_UINT_PACK32, + eA2R10G10B10SintPack32 = VK_FORMAT_A2R10G10B10_SINT_PACK32, + eA2B10G10R10UnormPack32 = VK_FORMAT_A2B10G10R10_UNORM_PACK32, + eA2B10G10R10SnormPack32 = VK_FORMAT_A2B10G10R10_SNORM_PACK32, + eA2B10G10R10UscaledPack32 = VK_FORMAT_A2B10G10R10_USCALED_PACK32, + eA2B10G10R10SscaledPack32 = VK_FORMAT_A2B10G10R10_SSCALED_PACK32, + eA2B10G10R10UintPack32 = VK_FORMAT_A2B10G10R10_UINT_PACK32, + eA2B10G10R10SintPack32 = VK_FORMAT_A2B10G10R10_SINT_PACK32, + eR16Unorm = VK_FORMAT_R16_UNORM, + eR16Snorm = VK_FORMAT_R16_SNORM, + eR16Uscaled = VK_FORMAT_R16_USCALED, + eR16Sscaled = VK_FORMAT_R16_SSCALED, + eR16Uint = VK_FORMAT_R16_UINT, + eR16Sint = VK_FORMAT_R16_SINT, + eR16Sfloat = VK_FORMAT_R16_SFLOAT, + eR16G16Unorm = VK_FORMAT_R16G16_UNORM, + eR16G16Snorm = VK_FORMAT_R16G16_SNORM, + eR16G16Uscaled = VK_FORMAT_R16G16_USCALED, + eR16G16Sscaled = VK_FORMAT_R16G16_SSCALED, + eR16G16Uint = VK_FORMAT_R16G16_UINT, + eR16G16Sint = VK_FORMAT_R16G16_SINT, + eR16G16Sfloat = VK_FORMAT_R16G16_SFLOAT, + eR16G16B16Unorm = VK_FORMAT_R16G16B16_UNORM, + eR16G16B16Snorm = VK_FORMAT_R16G16B16_SNORM, + eR16G16B16Uscaled = VK_FORMAT_R16G16B16_USCALED, + eR16G16B16Sscaled = VK_FORMAT_R16G16B16_SSCALED, + eR16G16B16Uint = VK_FORMAT_R16G16B16_UINT, + eR16G16B16Sint = VK_FORMAT_R16G16B16_SINT, + eR16G16B16Sfloat = VK_FORMAT_R16G16B16_SFLOAT, + eR16G16B16A16Unorm = VK_FORMAT_R16G16B16A16_UNORM, + eR16G16B16A16Snorm = VK_FORMAT_R16G16B16A16_SNORM, + eR16G16B16A16Uscaled = VK_FORMAT_R16G16B16A16_USCALED, + eR16G16B16A16Sscaled = VK_FORMAT_R16G16B16A16_SSCALED, + eR16G16B16A16Uint = VK_FORMAT_R16G16B16A16_UINT, + eR16G16B16A16Sint = VK_FORMAT_R16G16B16A16_SINT, + eR16G16B16A16Sfloat = VK_FORMAT_R16G16B16A16_SFLOAT, + eR32Uint = VK_FORMAT_R32_UINT, + eR32Sint = VK_FORMAT_R32_SINT, + eR32Sfloat = VK_FORMAT_R32_SFLOAT, + eR32G32Uint = VK_FORMAT_R32G32_UINT, + eR32G32Sint = VK_FORMAT_R32G32_SINT, + eR32G32Sfloat = VK_FORMAT_R32G32_SFLOAT, + eR32G32B32Uint = VK_FORMAT_R32G32B32_UINT, + eR32G32B32Sint = VK_FORMAT_R32G32B32_SINT, + eR32G32B32Sfloat = VK_FORMAT_R32G32B32_SFLOAT, + eR32G32B32A32Uint = VK_FORMAT_R32G32B32A32_UINT, + eR32G32B32A32Sint = VK_FORMAT_R32G32B32A32_SINT, + eR32G32B32A32Sfloat = VK_FORMAT_R32G32B32A32_SFLOAT, + eR64Uint = VK_FORMAT_R64_UINT, + eR64Sint = VK_FORMAT_R64_SINT, + eR64Sfloat = VK_FORMAT_R64_SFLOAT, + eR64G64Uint = VK_FORMAT_R64G64_UINT, + eR64G64Sint = VK_FORMAT_R64G64_SINT, + eR64G64Sfloat = VK_FORMAT_R64G64_SFLOAT, + eR64G64B64Uint = VK_FORMAT_R64G64B64_UINT, + eR64G64B64Sint = VK_FORMAT_R64G64B64_SINT, + eR64G64B64Sfloat = VK_FORMAT_R64G64B64_SFLOAT, + eR64G64B64A64Uint = VK_FORMAT_R64G64B64A64_UINT, + eR64G64B64A64Sint = VK_FORMAT_R64G64B64A64_SINT, + eR64G64B64A64Sfloat = VK_FORMAT_R64G64B64A64_SFLOAT, + eB10G11R11UfloatPack32 = VK_FORMAT_B10G11R11_UFLOAT_PACK32, + eE5B9G9R9UfloatPack32 = VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, + eD16Unorm = VK_FORMAT_D16_UNORM, + eX8D24UnormPack32 = VK_FORMAT_X8_D24_UNORM_PACK32, + eD32Sfloat = VK_FORMAT_D32_SFLOAT, + eS8Uint = VK_FORMAT_S8_UINT, + eD16UnormS8Uint = VK_FORMAT_D16_UNORM_S8_UINT, + eD24UnormS8Uint = VK_FORMAT_D24_UNORM_S8_UINT, + eD32SfloatS8Uint = VK_FORMAT_D32_SFLOAT_S8_UINT, + eBc1RgbUnormBlock = VK_FORMAT_BC1_RGB_UNORM_BLOCK, + eBc1RgbSrgbBlock = VK_FORMAT_BC1_RGB_SRGB_BLOCK, + eBc1RgbaUnormBlock = VK_FORMAT_BC1_RGBA_UNORM_BLOCK, + eBc1RgbaSrgbBlock = VK_FORMAT_BC1_RGBA_SRGB_BLOCK, + eBc2UnormBlock = VK_FORMAT_BC2_UNORM_BLOCK, + eBc2SrgbBlock = VK_FORMAT_BC2_SRGB_BLOCK, + eBc3UnormBlock = VK_FORMAT_BC3_UNORM_BLOCK, + eBc3SrgbBlock = VK_FORMAT_BC3_SRGB_BLOCK, + eBc4UnormBlock = VK_FORMAT_BC4_UNORM_BLOCK, + eBc4SnormBlock = VK_FORMAT_BC4_SNORM_BLOCK, + eBc5UnormBlock = VK_FORMAT_BC5_UNORM_BLOCK, + eBc5SnormBlock = VK_FORMAT_BC5_SNORM_BLOCK, + eBc6HUfloatBlock = VK_FORMAT_BC6H_UFLOAT_BLOCK, + eBc6HSfloatBlock = VK_FORMAT_BC6H_SFLOAT_BLOCK, + eBc7UnormBlock = VK_FORMAT_BC7_UNORM_BLOCK, + eBc7SrgbBlock = VK_FORMAT_BC7_SRGB_BLOCK, + eEtc2R8G8B8UnormBlock = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK, + eEtc2R8G8B8SrgbBlock = VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK, + eEtc2R8G8B8A1UnormBlock = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK, + eEtc2R8G8B8A1SrgbBlock = VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK, + eEtc2R8G8B8A8UnormBlock = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK, + eEtc2R8G8B8A8SrgbBlock = VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK, + eEacR11UnormBlock = VK_FORMAT_EAC_R11_UNORM_BLOCK, + eEacR11SnormBlock = VK_FORMAT_EAC_R11_SNORM_BLOCK, + eEacR11G11UnormBlock = VK_FORMAT_EAC_R11G11_UNORM_BLOCK, + eEacR11G11SnormBlock = VK_FORMAT_EAC_R11G11_SNORM_BLOCK, + eAstc4x4UnormBlock = VK_FORMAT_ASTC_4x4_UNORM_BLOCK, + eAstc4x4SrgbBlock = VK_FORMAT_ASTC_4x4_SRGB_BLOCK, + eAstc5x4UnormBlock = VK_FORMAT_ASTC_5x4_UNORM_BLOCK, + eAstc5x4SrgbBlock = VK_FORMAT_ASTC_5x4_SRGB_BLOCK, + eAstc5x5UnormBlock = VK_FORMAT_ASTC_5x5_UNORM_BLOCK, + eAstc5x5SrgbBlock = VK_FORMAT_ASTC_5x5_SRGB_BLOCK, + eAstc6x5UnormBlock = VK_FORMAT_ASTC_6x5_UNORM_BLOCK, + eAstc6x5SrgbBlock = VK_FORMAT_ASTC_6x5_SRGB_BLOCK, + eAstc6x6UnormBlock = VK_FORMAT_ASTC_6x6_UNORM_BLOCK, + eAstc6x6SrgbBlock = VK_FORMAT_ASTC_6x6_SRGB_BLOCK, + eAstc8x5UnormBlock = VK_FORMAT_ASTC_8x5_UNORM_BLOCK, + eAstc8x5SrgbBlock = VK_FORMAT_ASTC_8x5_SRGB_BLOCK, + eAstc8x6UnormBlock = VK_FORMAT_ASTC_8x6_UNORM_BLOCK, + eAstc8x6SrgbBlock = VK_FORMAT_ASTC_8x6_SRGB_BLOCK, + eAstc8x8UnormBlock = VK_FORMAT_ASTC_8x8_UNORM_BLOCK, + eAstc8x8SrgbBlock = VK_FORMAT_ASTC_8x8_SRGB_BLOCK, + eAstc10x5UnormBlock = VK_FORMAT_ASTC_10x5_UNORM_BLOCK, + eAstc10x5SrgbBlock = VK_FORMAT_ASTC_10x5_SRGB_BLOCK, + eAstc10x6UnormBlock = VK_FORMAT_ASTC_10x6_UNORM_BLOCK, + eAstc10x6SrgbBlock = VK_FORMAT_ASTC_10x6_SRGB_BLOCK, + eAstc10x8UnormBlock = VK_FORMAT_ASTC_10x8_UNORM_BLOCK, + eAstc10x8SrgbBlock = VK_FORMAT_ASTC_10x8_SRGB_BLOCK, + eAstc10x10UnormBlock = VK_FORMAT_ASTC_10x10_UNORM_BLOCK, + eAstc10x10SrgbBlock = VK_FORMAT_ASTC_10x10_SRGB_BLOCK, + eAstc12x10UnormBlock = VK_FORMAT_ASTC_12x10_UNORM_BLOCK, + eAstc12x10SrgbBlock = VK_FORMAT_ASTC_12x10_SRGB_BLOCK, + eAstc12x12UnormBlock = VK_FORMAT_ASTC_12x12_UNORM_BLOCK, + eAstc12x12SrgbBlock = VK_FORMAT_ASTC_12x12_SRGB_BLOCK, + eG8B8G8R8422Unorm = VK_FORMAT_G8B8G8R8_422_UNORM, + eB8G8R8G8422Unorm = VK_FORMAT_B8G8R8G8_422_UNORM, + eG8B8R83Plane420Unorm = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM, + eG8B8R82Plane420Unorm = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM, + eG8B8R83Plane422Unorm = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM, + eG8B8R82Plane422Unorm = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM, + eG8B8R83Plane444Unorm = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM, + eR10X6UnormPack16 = VK_FORMAT_R10X6_UNORM_PACK16, + eR10X6G10X6Unorm2Pack16 = VK_FORMAT_R10X6G10X6_UNORM_2PACK16, + eR10X6G10X6B10X6A10X6Unorm4Pack16 = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16, + eG10X6B10X6G10X6R10X6422Unorm4Pack16 = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16, + eB10X6G10X6R10X6G10X6422Unorm4Pack16 = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16, + eG10X6B10X6R10X63Plane420Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16, + eG10X6B10X6R10X62Plane420Unorm3Pack16 = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16, + eG10X6B10X6R10X63Plane422Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16, + eG10X6B10X6R10X62Plane422Unorm3Pack16 = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16, + eG10X6B10X6R10X63Plane444Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16, + eR12X4UnormPack16 = VK_FORMAT_R12X4_UNORM_PACK16, + eR12X4G12X4Unorm2Pack16 = VK_FORMAT_R12X4G12X4_UNORM_2PACK16, + eR12X4G12X4B12X4A12X4Unorm4Pack16 = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16, + eG12X4B12X4G12X4R12X4422Unorm4Pack16 = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16, + eB12X4G12X4R12X4G12X4422Unorm4Pack16 = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16, + eG12X4B12X4R12X43Plane420Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16, + eG12X4B12X4R12X42Plane420Unorm3Pack16 = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16, + eG12X4B12X4R12X43Plane422Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16, + eG12X4B12X4R12X42Plane422Unorm3Pack16 = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16, + eG12X4B12X4R12X43Plane444Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16, + eG16B16G16R16422Unorm = VK_FORMAT_G16B16G16R16_422_UNORM, + eB16G16R16G16422Unorm = VK_FORMAT_B16G16R16G16_422_UNORM, + eG16B16R163Plane420Unorm = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM, + eG16B16R162Plane420Unorm = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM, + eG16B16R163Plane422Unorm = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM, + eG16B16R162Plane422Unorm = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM, + eG16B16R163Plane444Unorm = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM, + ePvrtc12BppUnormBlockIMG = VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG, + ePvrtc14BppUnormBlockIMG = VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG, + ePvrtc22BppUnormBlockIMG = VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG, + ePvrtc24BppUnormBlockIMG = VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG, + ePvrtc12BppSrgbBlockIMG = VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG, + ePvrtc14BppSrgbBlockIMG = VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG, + ePvrtc22BppSrgbBlockIMG = VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG, + ePvrtc24BppSrgbBlockIMG = VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG, + eAstc4x4SfloatBlockEXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT, + eAstc5x4SfloatBlockEXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT, + eAstc5x5SfloatBlockEXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT, + eAstc6x5SfloatBlockEXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT, + eAstc6x6SfloatBlockEXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT, + eAstc8x5SfloatBlockEXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT, + eAstc8x6SfloatBlockEXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT, + eAstc8x8SfloatBlockEXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT, + eAstc10x5SfloatBlockEXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT, + eAstc10x6SfloatBlockEXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT, + eAstc10x8SfloatBlockEXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT, + eAstc10x10SfloatBlockEXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT, + eAstc12x10SfloatBlockEXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT, + eAstc12x12SfloatBlockEXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT, + eG8B8R82Plane444UnormEXT = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT, + eG10X6B10X6R10X62Plane444Unorm3Pack16EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT, + eG12X4B12X4R12X42Plane444Unorm3Pack16EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT, + eG16B16R162Plane444UnormEXT = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT, + eA4R4G4B4UnormPack16EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT, + eA4B4G4R4UnormPack16EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT, + eB10X6G10X6R10X6G10X6422Unorm4Pack16KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR, + eB12X4G12X4R12X4G12X4422Unorm4Pack16KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR, + eB16G16R16G16422UnormKHR = VK_FORMAT_B16G16R16G16_422_UNORM_KHR, + eB8G8R8G8422UnormKHR = VK_FORMAT_B8G8R8G8_422_UNORM_KHR, + eG10X6B10X6G10X6R10X6422Unorm4Pack16KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR, eG10X6B10X6R10X62Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR, - eG10X6B10X6R10X63Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR, eG10X6B10X6R10X62Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR, + eG10X6B10X6R10X63Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR, + eG10X6B10X6R10X63Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR, eG10X6B10X6R10X63Plane444Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR, - eR12X4UnormPack16KHR = VK_FORMAT_R12X4_UNORM_PACK16_KHR, - eR12X4G12X4Unorm2Pack16KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR, - eR12X4G12X4B12X4A12X4Unorm4Pack16KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR, - eG12X4B12X4G12X4R12X4422Unorm4Pack16KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR, - eB12X4G12X4R12X4G12X4422Unorm4Pack16KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR, - eG12X4B12X4R12X43Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR, + eG12X4B12X4G12X4R12X4422Unorm4Pack16KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR, eG12X4B12X4R12X42Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR, - eG12X4B12X4R12X43Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR, eG12X4B12X4R12X42Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR, + eG12X4B12X4R12X43Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR, + eG12X4B12X4R12X43Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR, eG12X4B12X4R12X43Plane444Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR, - eG16B16G16R16422UnormKHR = VK_FORMAT_G16B16G16R16_422_UNORM_KHR, - eB16G16R16G16422UnormKHR = VK_FORMAT_B16G16R16G16_422_UNORM_KHR, - eG16B16R163Plane420UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR, - eG16B16R162Plane420UnormKHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR, - eG16B16R163Plane422UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR, - eG16B16R162Plane422UnormKHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR, - eG16B16R163Plane444UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR + eG16B16G16R16422UnormKHR = VK_FORMAT_G16B16G16R16_422_UNORM_KHR, + eG16B16R162Plane420UnormKHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR, + eG16B16R162Plane422UnormKHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR, + eG16B16R163Plane420UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR, + eG16B16R163Plane422UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR, + eG16B16R163Plane444UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR, + eG8B8G8R8422UnormKHR = VK_FORMAT_G8B8G8R8_422_UNORM_KHR, + eG8B8R82Plane420UnormKHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR, + eG8B8R82Plane422UnormKHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR, + eG8B8R83Plane420UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR, + eG8B8R83Plane422UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR, + eG8B8R83Plane444UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR, + eR10X6G10X6B10X6A10X6Unorm4Pack16KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR, + eR10X6G10X6Unorm2Pack16KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR, + eR10X6UnormPack16KHR = VK_FORMAT_R10X6_UNORM_PACK16_KHR, + eR12X4G12X4B12X4A12X4Unorm4Pack16KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR, + eR12X4G12X4Unorm2Pack16KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR, + eR12X4UnormPack16KHR = VK_FORMAT_R12X4_UNORM_PACK16_KHR }; VULKAN_HPP_INLINE std::string to_string( Format value ) { switch ( value ) { - case Format::eUndefined : return "Undefined"; - case Format::eR4G4UnormPack8 : return "R4G4UnormPack8"; - case Format::eR4G4B4A4UnormPack16 : return "R4G4B4A4UnormPack16"; - case Format::eB4G4R4A4UnormPack16 : return "B4G4R4A4UnormPack16"; - case Format::eR5G6B5UnormPack16 : return "R5G6B5UnormPack16"; - case Format::eB5G6R5UnormPack16 : return "B5G6R5UnormPack16"; - case Format::eR5G5B5A1UnormPack16 : return "R5G5B5A1UnormPack16"; - case Format::eB5G5R5A1UnormPack16 : return "B5G5R5A1UnormPack16"; - case Format::eA1R5G5B5UnormPack16 : return "A1R5G5B5UnormPack16"; - case Format::eR8Unorm : return "R8Unorm"; - case Format::eR8Snorm : return "R8Snorm"; - case Format::eR8Uscaled : return "R8Uscaled"; - case Format::eR8Sscaled : return "R8Sscaled"; - case Format::eR8Uint : return "R8Uint"; - case Format::eR8Sint : return "R8Sint"; - case Format::eR8Srgb : return "R8Srgb"; - case Format::eR8G8Unorm : return "R8G8Unorm"; - case Format::eR8G8Snorm : return "R8G8Snorm"; - case Format::eR8G8Uscaled : return "R8G8Uscaled"; - case Format::eR8G8Sscaled : return "R8G8Sscaled"; - case Format::eR8G8Uint : return "R8G8Uint"; - case Format::eR8G8Sint : return "R8G8Sint"; - case Format::eR8G8Srgb : return "R8G8Srgb"; - case Format::eR8G8B8Unorm : return "R8G8B8Unorm"; - case Format::eR8G8B8Snorm : return "R8G8B8Snorm"; - case Format::eR8G8B8Uscaled : return "R8G8B8Uscaled"; - case Format::eR8G8B8Sscaled : return "R8G8B8Sscaled"; - case Format::eR8G8B8Uint : return "R8G8B8Uint"; - case Format::eR8G8B8Sint : return "R8G8B8Sint"; - case Format::eR8G8B8Srgb : return "R8G8B8Srgb"; - case Format::eB8G8R8Unorm : return "B8G8R8Unorm"; - case Format::eB8G8R8Snorm : return "B8G8R8Snorm"; - case Format::eB8G8R8Uscaled : return "B8G8R8Uscaled"; - case Format::eB8G8R8Sscaled : return "B8G8R8Sscaled"; - case Format::eB8G8R8Uint : return "B8G8R8Uint"; - case Format::eB8G8R8Sint : return "B8G8R8Sint"; - case Format::eB8G8R8Srgb : return "B8G8R8Srgb"; - case Format::eR8G8B8A8Unorm : return "R8G8B8A8Unorm"; - case Format::eR8G8B8A8Snorm : return "R8G8B8A8Snorm"; - case Format::eR8G8B8A8Uscaled : return "R8G8B8A8Uscaled"; - case Format::eR8G8B8A8Sscaled : return "R8G8B8A8Sscaled"; - case Format::eR8G8B8A8Uint : return "R8G8B8A8Uint"; - case Format::eR8G8B8A8Sint : return "R8G8B8A8Sint"; - case Format::eR8G8B8A8Srgb : return "R8G8B8A8Srgb"; - case Format::eB8G8R8A8Unorm : return "B8G8R8A8Unorm"; - case Format::eB8G8R8A8Snorm : return "B8G8R8A8Snorm"; - case Format::eB8G8R8A8Uscaled : return "B8G8R8A8Uscaled"; - case Format::eB8G8R8A8Sscaled : return "B8G8R8A8Sscaled"; - case Format::eB8G8R8A8Uint : return "B8G8R8A8Uint"; - case Format::eB8G8R8A8Sint : return "B8G8R8A8Sint"; - case Format::eB8G8R8A8Srgb : return "B8G8R8A8Srgb"; - case Format::eA8B8G8R8UnormPack32 : return "A8B8G8R8UnormPack32"; - case Format::eA8B8G8R8SnormPack32 : return "A8B8G8R8SnormPack32"; - case Format::eA8B8G8R8UscaledPack32 : return "A8B8G8R8UscaledPack32"; - case Format::eA8B8G8R8SscaledPack32 : return "A8B8G8R8SscaledPack32"; - case Format::eA8B8G8R8UintPack32 : return "A8B8G8R8UintPack32"; - case Format::eA8B8G8R8SintPack32 : return "A8B8G8R8SintPack32"; - case Format::eA8B8G8R8SrgbPack32 : return "A8B8G8R8SrgbPack32"; - case Format::eA2R10G10B10UnormPack32 : return "A2R10G10B10UnormPack32"; - case Format::eA2R10G10B10SnormPack32 : return "A2R10G10B10SnormPack32"; - case Format::eA2R10G10B10UscaledPack32 : return "A2R10G10B10UscaledPack32"; - case Format::eA2R10G10B10SscaledPack32 : return "A2R10G10B10SscaledPack32"; - case Format::eA2R10G10B10UintPack32 : return "A2R10G10B10UintPack32"; - case Format::eA2R10G10B10SintPack32 : return "A2R10G10B10SintPack32"; - case Format::eA2B10G10R10UnormPack32 : return "A2B10G10R10UnormPack32"; - case Format::eA2B10G10R10SnormPack32 : return "A2B10G10R10SnormPack32"; - case Format::eA2B10G10R10UscaledPack32 : return "A2B10G10R10UscaledPack32"; - case Format::eA2B10G10R10SscaledPack32 : return "A2B10G10R10SscaledPack32"; - case Format::eA2B10G10R10UintPack32 : return "A2B10G10R10UintPack32"; - case Format::eA2B10G10R10SintPack32 : return "A2B10G10R10SintPack32"; - case Format::eR16Unorm : return "R16Unorm"; - case Format::eR16Snorm : return "R16Snorm"; - case Format::eR16Uscaled : return "R16Uscaled"; - case Format::eR16Sscaled : return "R16Sscaled"; - case Format::eR16Uint : return "R16Uint"; - case Format::eR16Sint : return "R16Sint"; - case Format::eR16Sfloat : return "R16Sfloat"; - case Format::eR16G16Unorm : return "R16G16Unorm"; - case Format::eR16G16Snorm : return "R16G16Snorm"; - case Format::eR16G16Uscaled : return "R16G16Uscaled"; - case Format::eR16G16Sscaled : return "R16G16Sscaled"; - case Format::eR16G16Uint : return "R16G16Uint"; - case Format::eR16G16Sint : return "R16G16Sint"; - case Format::eR16G16Sfloat : return "R16G16Sfloat"; - case Format::eR16G16B16Unorm : return "R16G16B16Unorm"; - case Format::eR16G16B16Snorm : return "R16G16B16Snorm"; - case Format::eR16G16B16Uscaled : return "R16G16B16Uscaled"; - case Format::eR16G16B16Sscaled : return "R16G16B16Sscaled"; - case Format::eR16G16B16Uint : return "R16G16B16Uint"; - case Format::eR16G16B16Sint : return "R16G16B16Sint"; - case Format::eR16G16B16Sfloat : return "R16G16B16Sfloat"; - case Format::eR16G16B16A16Unorm : return "R16G16B16A16Unorm"; - case Format::eR16G16B16A16Snorm : return "R16G16B16A16Snorm"; - case Format::eR16G16B16A16Uscaled : return "R16G16B16A16Uscaled"; - case Format::eR16G16B16A16Sscaled : return "R16G16B16A16Sscaled"; - case Format::eR16G16B16A16Uint : return "R16G16B16A16Uint"; - case Format::eR16G16B16A16Sint : return "R16G16B16A16Sint"; - case Format::eR16G16B16A16Sfloat : return "R16G16B16A16Sfloat"; - case Format::eR32Uint : return "R32Uint"; - case Format::eR32Sint : return "R32Sint"; - case Format::eR32Sfloat : return "R32Sfloat"; - case Format::eR32G32Uint : return "R32G32Uint"; - case Format::eR32G32Sint : return "R32G32Sint"; - case Format::eR32G32Sfloat : return "R32G32Sfloat"; - case Format::eR32G32B32Uint : return "R32G32B32Uint"; - case Format::eR32G32B32Sint : return "R32G32B32Sint"; - case Format::eR32G32B32Sfloat : return "R32G32B32Sfloat"; - case Format::eR32G32B32A32Uint : return "R32G32B32A32Uint"; - case Format::eR32G32B32A32Sint : return "R32G32B32A32Sint"; - case Format::eR32G32B32A32Sfloat : return "R32G32B32A32Sfloat"; - case Format::eR64Uint : return "R64Uint"; - case Format::eR64Sint : return "R64Sint"; - case Format::eR64Sfloat : return "R64Sfloat"; - case Format::eR64G64Uint : return "R64G64Uint"; - case Format::eR64G64Sint : return "R64G64Sint"; - case Format::eR64G64Sfloat : return "R64G64Sfloat"; - case Format::eR64G64B64Uint : return "R64G64B64Uint"; - case Format::eR64G64B64Sint : return "R64G64B64Sint"; - case Format::eR64G64B64Sfloat : return "R64G64B64Sfloat"; - case Format::eR64G64B64A64Uint : return "R64G64B64A64Uint"; - case Format::eR64G64B64A64Sint : return "R64G64B64A64Sint"; - case Format::eR64G64B64A64Sfloat : return "R64G64B64A64Sfloat"; - case Format::eB10G11R11UfloatPack32 : return "B10G11R11UfloatPack32"; - case Format::eE5B9G9R9UfloatPack32 : return "E5B9G9R9UfloatPack32"; - case Format::eD16Unorm : return "D16Unorm"; - case Format::eX8D24UnormPack32 : return "X8D24UnormPack32"; - case Format::eD32Sfloat : return "D32Sfloat"; - case Format::eS8Uint : return "S8Uint"; - case Format::eD16UnormS8Uint : return "D16UnormS8Uint"; - case Format::eD24UnormS8Uint : return "D24UnormS8Uint"; - case Format::eD32SfloatS8Uint : return "D32SfloatS8Uint"; - case Format::eBc1RgbUnormBlock : return "Bc1RgbUnormBlock"; - case Format::eBc1RgbSrgbBlock : return "Bc1RgbSrgbBlock"; - case Format::eBc1RgbaUnormBlock : return "Bc1RgbaUnormBlock"; - case Format::eBc1RgbaSrgbBlock : return "Bc1RgbaSrgbBlock"; - case Format::eBc2UnormBlock : return "Bc2UnormBlock"; - case Format::eBc2SrgbBlock : return "Bc2SrgbBlock"; - case Format::eBc3UnormBlock : return "Bc3UnormBlock"; - case Format::eBc3SrgbBlock : return "Bc3SrgbBlock"; - case Format::eBc4UnormBlock : return "Bc4UnormBlock"; - case Format::eBc4SnormBlock : return "Bc4SnormBlock"; - case Format::eBc5UnormBlock : return "Bc5UnormBlock"; - case Format::eBc5SnormBlock : return "Bc5SnormBlock"; - case Format::eBc6HUfloatBlock : return "Bc6HUfloatBlock"; - case Format::eBc6HSfloatBlock : return "Bc6HSfloatBlock"; - case Format::eBc7UnormBlock : return "Bc7UnormBlock"; - case Format::eBc7SrgbBlock : return "Bc7SrgbBlock"; - case Format::eEtc2R8G8B8UnormBlock : return "Etc2R8G8B8UnormBlock"; - case Format::eEtc2R8G8B8SrgbBlock : return "Etc2R8G8B8SrgbBlock"; - case Format::eEtc2R8G8B8A1UnormBlock : return "Etc2R8G8B8A1UnormBlock"; - case Format::eEtc2R8G8B8A1SrgbBlock : return "Etc2R8G8B8A1SrgbBlock"; - case Format::eEtc2R8G8B8A8UnormBlock : return "Etc2R8G8B8A8UnormBlock"; - case Format::eEtc2R8G8B8A8SrgbBlock : return "Etc2R8G8B8A8SrgbBlock"; - case Format::eEacR11UnormBlock : return "EacR11UnormBlock"; - case Format::eEacR11SnormBlock : return "EacR11SnormBlock"; - case Format::eEacR11G11UnormBlock : return "EacR11G11UnormBlock"; - case Format::eEacR11G11SnormBlock : return "EacR11G11SnormBlock"; - case Format::eAstc4x4UnormBlock : return "Astc4x4UnormBlock"; - case Format::eAstc4x4SrgbBlock : return "Astc4x4SrgbBlock"; - case Format::eAstc5x4UnormBlock : return "Astc5x4UnormBlock"; - case Format::eAstc5x4SrgbBlock : return "Astc5x4SrgbBlock"; - case Format::eAstc5x5UnormBlock : return "Astc5x5UnormBlock"; - case Format::eAstc5x5SrgbBlock : return "Astc5x5SrgbBlock"; - case Format::eAstc6x5UnormBlock : return "Astc6x5UnormBlock"; - case Format::eAstc6x5SrgbBlock : return "Astc6x5SrgbBlock"; - case Format::eAstc6x6UnormBlock : return "Astc6x6UnormBlock"; - case Format::eAstc6x6SrgbBlock : return "Astc6x6SrgbBlock"; - case Format::eAstc8x5UnormBlock : return "Astc8x5UnormBlock"; - case Format::eAstc8x5SrgbBlock : return "Astc8x5SrgbBlock"; - case Format::eAstc8x6UnormBlock : return "Astc8x6UnormBlock"; - case Format::eAstc8x6SrgbBlock : return "Astc8x6SrgbBlock"; - case Format::eAstc8x8UnormBlock : return "Astc8x8UnormBlock"; - case Format::eAstc8x8SrgbBlock : return "Astc8x8SrgbBlock"; - case Format::eAstc10x5UnormBlock : return "Astc10x5UnormBlock"; - case Format::eAstc10x5SrgbBlock : return "Astc10x5SrgbBlock"; - case Format::eAstc10x6UnormBlock : return "Astc10x6UnormBlock"; - case Format::eAstc10x6SrgbBlock : return "Astc10x6SrgbBlock"; - case Format::eAstc10x8UnormBlock : return "Astc10x8UnormBlock"; - case Format::eAstc10x8SrgbBlock : return "Astc10x8SrgbBlock"; - case Format::eAstc10x10UnormBlock : return "Astc10x10UnormBlock"; - case Format::eAstc10x10SrgbBlock : return "Astc10x10SrgbBlock"; - case Format::eAstc12x10UnormBlock : return "Astc12x10UnormBlock"; - case Format::eAstc12x10SrgbBlock : return "Astc12x10SrgbBlock"; - case Format::eAstc12x12UnormBlock : return "Astc12x12UnormBlock"; - case Format::eAstc12x12SrgbBlock : return "Astc12x12SrgbBlock"; - case Format::eG8B8G8R8422Unorm : return "G8B8G8R8422Unorm"; - case Format::eB8G8R8G8422Unorm : return "B8G8R8G8422Unorm"; - case Format::eG8B8R83Plane420Unorm : return "G8B8R83Plane420Unorm"; - case Format::eG8B8R82Plane420Unorm : return "G8B8R82Plane420Unorm"; - case Format::eG8B8R83Plane422Unorm : return "G8B8R83Plane422Unorm"; - case Format::eG8B8R82Plane422Unorm : return "G8B8R82Plane422Unorm"; - case Format::eG8B8R83Plane444Unorm : return "G8B8R83Plane444Unorm"; - case Format::eR10X6UnormPack16 : return "R10X6UnormPack16"; - case Format::eR10X6G10X6Unorm2Pack16 : return "R10X6G10X6Unorm2Pack16"; - case Format::eR10X6G10X6B10X6A10X6Unorm4Pack16 : return "R10X6G10X6B10X6A10X6Unorm4Pack16"; - case Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16 : return "G10X6B10X6G10X6R10X6422Unorm4Pack16"; - case Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16 : return "B10X6G10X6R10X6G10X6422Unorm4Pack16"; - case Format::eG10X6B10X6R10X63Plane420Unorm3Pack16 : return "G10X6B10X6R10X63Plane420Unorm3Pack16"; - case Format::eG10X6B10X6R10X62Plane420Unorm3Pack16 : return "G10X6B10X6R10X62Plane420Unorm3Pack16"; - case Format::eG10X6B10X6R10X63Plane422Unorm3Pack16 : return "G10X6B10X6R10X63Plane422Unorm3Pack16"; - case Format::eG10X6B10X6R10X62Plane422Unorm3Pack16 : return "G10X6B10X6R10X62Plane422Unorm3Pack16"; - case Format::eG10X6B10X6R10X63Plane444Unorm3Pack16 : return "G10X6B10X6R10X63Plane444Unorm3Pack16"; - case Format::eR12X4UnormPack16 : return "R12X4UnormPack16"; - case Format::eR12X4G12X4Unorm2Pack16 : return "R12X4G12X4Unorm2Pack16"; - case Format::eR12X4G12X4B12X4A12X4Unorm4Pack16 : return "R12X4G12X4B12X4A12X4Unorm4Pack16"; - case Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16 : return "G12X4B12X4G12X4R12X4422Unorm4Pack16"; - case Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16 : return "B12X4G12X4R12X4G12X4422Unorm4Pack16"; - case Format::eG12X4B12X4R12X43Plane420Unorm3Pack16 : return "G12X4B12X4R12X43Plane420Unorm3Pack16"; - case Format::eG12X4B12X4R12X42Plane420Unorm3Pack16 : return "G12X4B12X4R12X42Plane420Unorm3Pack16"; - case Format::eG12X4B12X4R12X43Plane422Unorm3Pack16 : return "G12X4B12X4R12X43Plane422Unorm3Pack16"; - case Format::eG12X4B12X4R12X42Plane422Unorm3Pack16 : return "G12X4B12X4R12X42Plane422Unorm3Pack16"; - case Format::eG12X4B12X4R12X43Plane444Unorm3Pack16 : return "G12X4B12X4R12X43Plane444Unorm3Pack16"; - case Format::eG16B16G16R16422Unorm : return "G16B16G16R16422Unorm"; - case Format::eB16G16R16G16422Unorm : return "B16G16R16G16422Unorm"; - case Format::eG16B16R163Plane420Unorm : return "G16B16R163Plane420Unorm"; - case Format::eG16B16R162Plane420Unorm : return "G16B16R162Plane420Unorm"; - case Format::eG16B16R163Plane422Unorm : return "G16B16R163Plane422Unorm"; - case Format::eG16B16R162Plane422Unorm : return "G16B16R162Plane422Unorm"; - case Format::eG16B16R163Plane444Unorm : return "G16B16R163Plane444Unorm"; - case Format::ePvrtc12BppUnormBlockIMG : return "Pvrtc12BppUnormBlockIMG"; - case Format::ePvrtc14BppUnormBlockIMG : return "Pvrtc14BppUnormBlockIMG"; - case Format::ePvrtc22BppUnormBlockIMG : return "Pvrtc22BppUnormBlockIMG"; - case Format::ePvrtc24BppUnormBlockIMG : return "Pvrtc24BppUnormBlockIMG"; - case Format::ePvrtc12BppSrgbBlockIMG : return "Pvrtc12BppSrgbBlockIMG"; - case Format::ePvrtc14BppSrgbBlockIMG : return "Pvrtc14BppSrgbBlockIMG"; - case Format::ePvrtc22BppSrgbBlockIMG : return "Pvrtc22BppSrgbBlockIMG"; - case Format::ePvrtc24BppSrgbBlockIMG : return "Pvrtc24BppSrgbBlockIMG"; - case Format::eAstc4x4SfloatBlockEXT : return "Astc4x4SfloatBlockEXT"; - case Format::eAstc5x4SfloatBlockEXT : return "Astc5x4SfloatBlockEXT"; - case Format::eAstc5x5SfloatBlockEXT : return "Astc5x5SfloatBlockEXT"; - case Format::eAstc6x5SfloatBlockEXT : return "Astc6x5SfloatBlockEXT"; - case Format::eAstc6x6SfloatBlockEXT : return "Astc6x6SfloatBlockEXT"; - case Format::eAstc8x5SfloatBlockEXT : return "Astc8x5SfloatBlockEXT"; - case Format::eAstc8x6SfloatBlockEXT : return "Astc8x6SfloatBlockEXT"; - case Format::eAstc8x8SfloatBlockEXT : return "Astc8x8SfloatBlockEXT"; - case Format::eAstc10x5SfloatBlockEXT : return "Astc10x5SfloatBlockEXT"; - case Format::eAstc10x6SfloatBlockEXT : return "Astc10x6SfloatBlockEXT"; - case Format::eAstc10x8SfloatBlockEXT : return "Astc10x8SfloatBlockEXT"; - case Format::eAstc10x10SfloatBlockEXT : return "Astc10x10SfloatBlockEXT"; - case Format::eAstc12x10SfloatBlockEXT : return "Astc12x10SfloatBlockEXT"; - case Format::eAstc12x12SfloatBlockEXT : return "Astc12x12SfloatBlockEXT"; - default: return "invalid"; - } - } - - enum class FormatFeatureFlagBits - { - eSampledImage = VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, - eStorageImage = VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT, - eStorageImageAtomic = VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT, - eUniformTexelBuffer = VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT, - eStorageTexelBuffer = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT, - eStorageTexelBufferAtomic = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT, - eVertexBuffer = VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT, - eColorAttachment = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, - eColorAttachmentBlend = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, - eDepthStencilAttachment = VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, - eBlitSrc = VK_FORMAT_FEATURE_BLIT_SRC_BIT, - eBlitDst = VK_FORMAT_FEATURE_BLIT_DST_BIT, - eSampledImageFilterLinear = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT, - eTransferSrc = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT, - eTransferDst = VK_FORMAT_FEATURE_TRANSFER_DST_BIT, - eMidpointChromaSamples = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT, - eSampledImageYcbcrConversionLinearFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT, - eSampledImageYcbcrConversionSeparateReconstructionFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT, - eSampledImageYcbcrConversionChromaReconstructionExplicit = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT, - eSampledImageYcbcrConversionChromaReconstructionExplicitForceable = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT, - eDisjoint = VK_FORMAT_FEATURE_DISJOINT_BIT, - eCositedChromaSamples = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT, - eSampledImageFilterMinmax = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT, - eSampledImageFilterCubicIMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG, - eFragmentDensityMapEXT = VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT, - eTransferSrcKHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR, - eTransferDstKHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR, - eSampledImageFilterMinmaxEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT, - eMidpointChromaSamplesKHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR, - eSampledImageYcbcrConversionLinearFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR, - eSampledImageYcbcrConversionSeparateReconstructionFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR, - eSampledImageYcbcrConversionChromaReconstructionExplicitKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR, - eSampledImageYcbcrConversionChromaReconstructionExplicitForceableKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR, - eDisjointKHR = VK_FORMAT_FEATURE_DISJOINT_BIT_KHR, - eCositedChromaSamplesKHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR, - eSampledImageFilterCubicEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT + case Format::eUndefined: return "Undefined"; + case Format::eR4G4UnormPack8: return "R4G4UnormPack8"; + case Format::eR4G4B4A4UnormPack16: return "R4G4B4A4UnormPack16"; + case Format::eB4G4R4A4UnormPack16: return "B4G4R4A4UnormPack16"; + case Format::eR5G6B5UnormPack16: return "R5G6B5UnormPack16"; + case Format::eB5G6R5UnormPack16: return "B5G6R5UnormPack16"; + case Format::eR5G5B5A1UnormPack16: return "R5G5B5A1UnormPack16"; + case Format::eB5G5R5A1UnormPack16: return "B5G5R5A1UnormPack16"; + case Format::eA1R5G5B5UnormPack16: return "A1R5G5B5UnormPack16"; + case Format::eR8Unorm: return "R8Unorm"; + case Format::eR8Snorm: return "R8Snorm"; + case Format::eR8Uscaled: return "R8Uscaled"; + case Format::eR8Sscaled: return "R8Sscaled"; + case Format::eR8Uint: return "R8Uint"; + case Format::eR8Sint: return "R8Sint"; + case Format::eR8Srgb: return "R8Srgb"; + case Format::eR8G8Unorm: return "R8G8Unorm"; + case Format::eR8G8Snorm: return "R8G8Snorm"; + case Format::eR8G8Uscaled: return "R8G8Uscaled"; + case Format::eR8G8Sscaled: return "R8G8Sscaled"; + case Format::eR8G8Uint: return "R8G8Uint"; + case Format::eR8G8Sint: return "R8G8Sint"; + case Format::eR8G8Srgb: return "R8G8Srgb"; + case Format::eR8G8B8Unorm: return "R8G8B8Unorm"; + case Format::eR8G8B8Snorm: return "R8G8B8Snorm"; + case Format::eR8G8B8Uscaled: return "R8G8B8Uscaled"; + case Format::eR8G8B8Sscaled: return "R8G8B8Sscaled"; + case Format::eR8G8B8Uint: return "R8G8B8Uint"; + case Format::eR8G8B8Sint: return "R8G8B8Sint"; + case Format::eR8G8B8Srgb: return "R8G8B8Srgb"; + case Format::eB8G8R8Unorm: return "B8G8R8Unorm"; + case Format::eB8G8R8Snorm: return "B8G8R8Snorm"; + case Format::eB8G8R8Uscaled: return "B8G8R8Uscaled"; + case Format::eB8G8R8Sscaled: return "B8G8R8Sscaled"; + case Format::eB8G8R8Uint: return "B8G8R8Uint"; + case Format::eB8G8R8Sint: return "B8G8R8Sint"; + case Format::eB8G8R8Srgb: return "B8G8R8Srgb"; + case Format::eR8G8B8A8Unorm: return "R8G8B8A8Unorm"; + case Format::eR8G8B8A8Snorm: return "R8G8B8A8Snorm"; + case Format::eR8G8B8A8Uscaled: return "R8G8B8A8Uscaled"; + case Format::eR8G8B8A8Sscaled: return "R8G8B8A8Sscaled"; + case Format::eR8G8B8A8Uint: return "R8G8B8A8Uint"; + case Format::eR8G8B8A8Sint: return "R8G8B8A8Sint"; + case Format::eR8G8B8A8Srgb: return "R8G8B8A8Srgb"; + case Format::eB8G8R8A8Unorm: return "B8G8R8A8Unorm"; + case Format::eB8G8R8A8Snorm: return "B8G8R8A8Snorm"; + case Format::eB8G8R8A8Uscaled: return "B8G8R8A8Uscaled"; + case Format::eB8G8R8A8Sscaled: return "B8G8R8A8Sscaled"; + case Format::eB8G8R8A8Uint: return "B8G8R8A8Uint"; + case Format::eB8G8R8A8Sint: return "B8G8R8A8Sint"; + case Format::eB8G8R8A8Srgb: return "B8G8R8A8Srgb"; + case Format::eA8B8G8R8UnormPack32: return "A8B8G8R8UnormPack32"; + case Format::eA8B8G8R8SnormPack32: return "A8B8G8R8SnormPack32"; + case Format::eA8B8G8R8UscaledPack32: return "A8B8G8R8UscaledPack32"; + case Format::eA8B8G8R8SscaledPack32: return "A8B8G8R8SscaledPack32"; + case Format::eA8B8G8R8UintPack32: return "A8B8G8R8UintPack32"; + case Format::eA8B8G8R8SintPack32: return "A8B8G8R8SintPack32"; + case Format::eA8B8G8R8SrgbPack32: return "A8B8G8R8SrgbPack32"; + case Format::eA2R10G10B10UnormPack32: return "A2R10G10B10UnormPack32"; + case Format::eA2R10G10B10SnormPack32: return "A2R10G10B10SnormPack32"; + case Format::eA2R10G10B10UscaledPack32: return "A2R10G10B10UscaledPack32"; + case Format::eA2R10G10B10SscaledPack32: return "A2R10G10B10SscaledPack32"; + case Format::eA2R10G10B10UintPack32: return "A2R10G10B10UintPack32"; + case Format::eA2R10G10B10SintPack32: return "A2R10G10B10SintPack32"; + case Format::eA2B10G10R10UnormPack32: return "A2B10G10R10UnormPack32"; + case Format::eA2B10G10R10SnormPack32: return "A2B10G10R10SnormPack32"; + case Format::eA2B10G10R10UscaledPack32: return "A2B10G10R10UscaledPack32"; + case Format::eA2B10G10R10SscaledPack32: return "A2B10G10R10SscaledPack32"; + case Format::eA2B10G10R10UintPack32: return "A2B10G10R10UintPack32"; + case Format::eA2B10G10R10SintPack32: return "A2B10G10R10SintPack32"; + case Format::eR16Unorm: return "R16Unorm"; + case Format::eR16Snorm: return "R16Snorm"; + case Format::eR16Uscaled: return "R16Uscaled"; + case Format::eR16Sscaled: return "R16Sscaled"; + case Format::eR16Uint: return "R16Uint"; + case Format::eR16Sint: return "R16Sint"; + case Format::eR16Sfloat: return "R16Sfloat"; + case Format::eR16G16Unorm: return "R16G16Unorm"; + case Format::eR16G16Snorm: return "R16G16Snorm"; + case Format::eR16G16Uscaled: return "R16G16Uscaled"; + case Format::eR16G16Sscaled: return "R16G16Sscaled"; + case Format::eR16G16Uint: return "R16G16Uint"; + case Format::eR16G16Sint: return "R16G16Sint"; + case Format::eR16G16Sfloat: return "R16G16Sfloat"; + case Format::eR16G16B16Unorm: return "R16G16B16Unorm"; + case Format::eR16G16B16Snorm: return "R16G16B16Snorm"; + case Format::eR16G16B16Uscaled: return "R16G16B16Uscaled"; + case Format::eR16G16B16Sscaled: return "R16G16B16Sscaled"; + case Format::eR16G16B16Uint: return "R16G16B16Uint"; + case Format::eR16G16B16Sint: return "R16G16B16Sint"; + case Format::eR16G16B16Sfloat: return "R16G16B16Sfloat"; + case Format::eR16G16B16A16Unorm: return "R16G16B16A16Unorm"; + case Format::eR16G16B16A16Snorm: return "R16G16B16A16Snorm"; + case Format::eR16G16B16A16Uscaled: return "R16G16B16A16Uscaled"; + case Format::eR16G16B16A16Sscaled: return "R16G16B16A16Sscaled"; + case Format::eR16G16B16A16Uint: return "R16G16B16A16Uint"; + case Format::eR16G16B16A16Sint: return "R16G16B16A16Sint"; + case Format::eR16G16B16A16Sfloat: return "R16G16B16A16Sfloat"; + case Format::eR32Uint: return "R32Uint"; + case Format::eR32Sint: return "R32Sint"; + case Format::eR32Sfloat: return "R32Sfloat"; + case Format::eR32G32Uint: return "R32G32Uint"; + case Format::eR32G32Sint: return "R32G32Sint"; + case Format::eR32G32Sfloat: return "R32G32Sfloat"; + case Format::eR32G32B32Uint: return "R32G32B32Uint"; + case Format::eR32G32B32Sint: return "R32G32B32Sint"; + case Format::eR32G32B32Sfloat: return "R32G32B32Sfloat"; + case Format::eR32G32B32A32Uint: return "R32G32B32A32Uint"; + case Format::eR32G32B32A32Sint: return "R32G32B32A32Sint"; + case Format::eR32G32B32A32Sfloat: return "R32G32B32A32Sfloat"; + case Format::eR64Uint: return "R64Uint"; + case Format::eR64Sint: return "R64Sint"; + case Format::eR64Sfloat: return "R64Sfloat"; + case Format::eR64G64Uint: return "R64G64Uint"; + case Format::eR64G64Sint: return "R64G64Sint"; + case Format::eR64G64Sfloat: return "R64G64Sfloat"; + case Format::eR64G64B64Uint: return "R64G64B64Uint"; + case Format::eR64G64B64Sint: return "R64G64B64Sint"; + case Format::eR64G64B64Sfloat: return "R64G64B64Sfloat"; + case Format::eR64G64B64A64Uint: return "R64G64B64A64Uint"; + case Format::eR64G64B64A64Sint: return "R64G64B64A64Sint"; + case Format::eR64G64B64A64Sfloat: return "R64G64B64A64Sfloat"; + case Format::eB10G11R11UfloatPack32: return "B10G11R11UfloatPack32"; + case Format::eE5B9G9R9UfloatPack32: return "E5B9G9R9UfloatPack32"; + case Format::eD16Unorm: return "D16Unorm"; + case Format::eX8D24UnormPack32: return "X8D24UnormPack32"; + case Format::eD32Sfloat: return "D32Sfloat"; + case Format::eS8Uint: return "S8Uint"; + case Format::eD16UnormS8Uint: return "D16UnormS8Uint"; + case Format::eD24UnormS8Uint: return "D24UnormS8Uint"; + case Format::eD32SfloatS8Uint: return "D32SfloatS8Uint"; + case Format::eBc1RgbUnormBlock: return "Bc1RgbUnormBlock"; + case Format::eBc1RgbSrgbBlock: return "Bc1RgbSrgbBlock"; + case Format::eBc1RgbaUnormBlock: return "Bc1RgbaUnormBlock"; + case Format::eBc1RgbaSrgbBlock: return "Bc1RgbaSrgbBlock"; + case Format::eBc2UnormBlock: return "Bc2UnormBlock"; + case Format::eBc2SrgbBlock: return "Bc2SrgbBlock"; + case Format::eBc3UnormBlock: return "Bc3UnormBlock"; + case Format::eBc3SrgbBlock: return "Bc3SrgbBlock"; + case Format::eBc4UnormBlock: return "Bc4UnormBlock"; + case Format::eBc4SnormBlock: return "Bc4SnormBlock"; + case Format::eBc5UnormBlock: return "Bc5UnormBlock"; + case Format::eBc5SnormBlock: return "Bc5SnormBlock"; + case Format::eBc6HUfloatBlock: return "Bc6HUfloatBlock"; + case Format::eBc6HSfloatBlock: return "Bc6HSfloatBlock"; + case Format::eBc7UnormBlock: return "Bc7UnormBlock"; + case Format::eBc7SrgbBlock: return "Bc7SrgbBlock"; + case Format::eEtc2R8G8B8UnormBlock: return "Etc2R8G8B8UnormBlock"; + case Format::eEtc2R8G8B8SrgbBlock: return "Etc2R8G8B8SrgbBlock"; + case Format::eEtc2R8G8B8A1UnormBlock: return "Etc2R8G8B8A1UnormBlock"; + case Format::eEtc2R8G8B8A1SrgbBlock: return "Etc2R8G8B8A1SrgbBlock"; + case Format::eEtc2R8G8B8A8UnormBlock: return "Etc2R8G8B8A8UnormBlock"; + case Format::eEtc2R8G8B8A8SrgbBlock: return "Etc2R8G8B8A8SrgbBlock"; + case Format::eEacR11UnormBlock: return "EacR11UnormBlock"; + case Format::eEacR11SnormBlock: return "EacR11SnormBlock"; + case Format::eEacR11G11UnormBlock: return "EacR11G11UnormBlock"; + case Format::eEacR11G11SnormBlock: return "EacR11G11SnormBlock"; + case Format::eAstc4x4UnormBlock: return "Astc4x4UnormBlock"; + case Format::eAstc4x4SrgbBlock: return "Astc4x4SrgbBlock"; + case Format::eAstc5x4UnormBlock: return "Astc5x4UnormBlock"; + case Format::eAstc5x4SrgbBlock: return "Astc5x4SrgbBlock"; + case Format::eAstc5x5UnormBlock: return "Astc5x5UnormBlock"; + case Format::eAstc5x5SrgbBlock: return "Astc5x5SrgbBlock"; + case Format::eAstc6x5UnormBlock: return "Astc6x5UnormBlock"; + case Format::eAstc6x5SrgbBlock: return "Astc6x5SrgbBlock"; + case Format::eAstc6x6UnormBlock: return "Astc6x6UnormBlock"; + case Format::eAstc6x6SrgbBlock: return "Astc6x6SrgbBlock"; + case Format::eAstc8x5UnormBlock: return "Astc8x5UnormBlock"; + case Format::eAstc8x5SrgbBlock: return "Astc8x5SrgbBlock"; + case Format::eAstc8x6UnormBlock: return "Astc8x6UnormBlock"; + case Format::eAstc8x6SrgbBlock: return "Astc8x6SrgbBlock"; + case Format::eAstc8x8UnormBlock: return "Astc8x8UnormBlock"; + case Format::eAstc8x8SrgbBlock: return "Astc8x8SrgbBlock"; + case Format::eAstc10x5UnormBlock: return "Astc10x5UnormBlock"; + case Format::eAstc10x5SrgbBlock: return "Astc10x5SrgbBlock"; + case Format::eAstc10x6UnormBlock: return "Astc10x6UnormBlock"; + case Format::eAstc10x6SrgbBlock: return "Astc10x6SrgbBlock"; + case Format::eAstc10x8UnormBlock: return "Astc10x8UnormBlock"; + case Format::eAstc10x8SrgbBlock: return "Astc10x8SrgbBlock"; + case Format::eAstc10x10UnormBlock: return "Astc10x10UnormBlock"; + case Format::eAstc10x10SrgbBlock: return "Astc10x10SrgbBlock"; + case Format::eAstc12x10UnormBlock: return "Astc12x10UnormBlock"; + case Format::eAstc12x10SrgbBlock: return "Astc12x10SrgbBlock"; + case Format::eAstc12x12UnormBlock: return "Astc12x12UnormBlock"; + case Format::eAstc12x12SrgbBlock: return "Astc12x12SrgbBlock"; + case Format::eG8B8G8R8422Unorm: return "G8B8G8R8422Unorm"; + case Format::eB8G8R8G8422Unorm: return "B8G8R8G8422Unorm"; + case Format::eG8B8R83Plane420Unorm: return "G8B8R83Plane420Unorm"; + case Format::eG8B8R82Plane420Unorm: return "G8B8R82Plane420Unorm"; + case Format::eG8B8R83Plane422Unorm: return "G8B8R83Plane422Unorm"; + case Format::eG8B8R82Plane422Unorm: return "G8B8R82Plane422Unorm"; + case Format::eG8B8R83Plane444Unorm: return "G8B8R83Plane444Unorm"; + case Format::eR10X6UnormPack16: return "R10X6UnormPack16"; + case Format::eR10X6G10X6Unorm2Pack16: return "R10X6G10X6Unorm2Pack16"; + case Format::eR10X6G10X6B10X6A10X6Unorm4Pack16: return "R10X6G10X6B10X6A10X6Unorm4Pack16"; + case Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16: return "G10X6B10X6G10X6R10X6422Unorm4Pack16"; + case Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16: return "B10X6G10X6R10X6G10X6422Unorm4Pack16"; + case Format::eG10X6B10X6R10X63Plane420Unorm3Pack16: return "G10X6B10X6R10X63Plane420Unorm3Pack16"; + case Format::eG10X6B10X6R10X62Plane420Unorm3Pack16: return "G10X6B10X6R10X62Plane420Unorm3Pack16"; + case Format::eG10X6B10X6R10X63Plane422Unorm3Pack16: return "G10X6B10X6R10X63Plane422Unorm3Pack16"; + case Format::eG10X6B10X6R10X62Plane422Unorm3Pack16: return "G10X6B10X6R10X62Plane422Unorm3Pack16"; + case Format::eG10X6B10X6R10X63Plane444Unorm3Pack16: return "G10X6B10X6R10X63Plane444Unorm3Pack16"; + case Format::eR12X4UnormPack16: return "R12X4UnormPack16"; + case Format::eR12X4G12X4Unorm2Pack16: return "R12X4G12X4Unorm2Pack16"; + case Format::eR12X4G12X4B12X4A12X4Unorm4Pack16: return "R12X4G12X4B12X4A12X4Unorm4Pack16"; + case Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16: return "G12X4B12X4G12X4R12X4422Unorm4Pack16"; + case Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16: return "B12X4G12X4R12X4G12X4422Unorm4Pack16"; + case Format::eG12X4B12X4R12X43Plane420Unorm3Pack16: return "G12X4B12X4R12X43Plane420Unorm3Pack16"; + case Format::eG12X4B12X4R12X42Plane420Unorm3Pack16: return "G12X4B12X4R12X42Plane420Unorm3Pack16"; + case Format::eG12X4B12X4R12X43Plane422Unorm3Pack16: return "G12X4B12X4R12X43Plane422Unorm3Pack16"; + case Format::eG12X4B12X4R12X42Plane422Unorm3Pack16: return "G12X4B12X4R12X42Plane422Unorm3Pack16"; + case Format::eG12X4B12X4R12X43Plane444Unorm3Pack16: return "G12X4B12X4R12X43Plane444Unorm3Pack16"; + case Format::eG16B16G16R16422Unorm: return "G16B16G16R16422Unorm"; + case Format::eB16G16R16G16422Unorm: return "B16G16R16G16422Unorm"; + case Format::eG16B16R163Plane420Unorm: return "G16B16R163Plane420Unorm"; + case Format::eG16B16R162Plane420Unorm: return "G16B16R162Plane420Unorm"; + case Format::eG16B16R163Plane422Unorm: return "G16B16R163Plane422Unorm"; + case Format::eG16B16R162Plane422Unorm: return "G16B16R162Plane422Unorm"; + case Format::eG16B16R163Plane444Unorm: return "G16B16R163Plane444Unorm"; + case Format::ePvrtc12BppUnormBlockIMG: return "Pvrtc12BppUnormBlockIMG"; + case Format::ePvrtc14BppUnormBlockIMG: return "Pvrtc14BppUnormBlockIMG"; + case Format::ePvrtc22BppUnormBlockIMG: return "Pvrtc22BppUnormBlockIMG"; + case Format::ePvrtc24BppUnormBlockIMG: return "Pvrtc24BppUnormBlockIMG"; + case Format::ePvrtc12BppSrgbBlockIMG: return "Pvrtc12BppSrgbBlockIMG"; + case Format::ePvrtc14BppSrgbBlockIMG: return "Pvrtc14BppSrgbBlockIMG"; + case Format::ePvrtc22BppSrgbBlockIMG: return "Pvrtc22BppSrgbBlockIMG"; + case Format::ePvrtc24BppSrgbBlockIMG: return "Pvrtc24BppSrgbBlockIMG"; + case Format::eAstc4x4SfloatBlockEXT: return "Astc4x4SfloatBlockEXT"; + case Format::eAstc5x4SfloatBlockEXT: return "Astc5x4SfloatBlockEXT"; + case Format::eAstc5x5SfloatBlockEXT: return "Astc5x5SfloatBlockEXT"; + case Format::eAstc6x5SfloatBlockEXT: return "Astc6x5SfloatBlockEXT"; + case Format::eAstc6x6SfloatBlockEXT: return "Astc6x6SfloatBlockEXT"; + case Format::eAstc8x5SfloatBlockEXT: return "Astc8x5SfloatBlockEXT"; + case Format::eAstc8x6SfloatBlockEXT: return "Astc8x6SfloatBlockEXT"; + case Format::eAstc8x8SfloatBlockEXT: return "Astc8x8SfloatBlockEXT"; + case Format::eAstc10x5SfloatBlockEXT: return "Astc10x5SfloatBlockEXT"; + case Format::eAstc10x6SfloatBlockEXT: return "Astc10x6SfloatBlockEXT"; + case Format::eAstc10x8SfloatBlockEXT: return "Astc10x8SfloatBlockEXT"; + case Format::eAstc10x10SfloatBlockEXT: return "Astc10x10SfloatBlockEXT"; + case Format::eAstc12x10SfloatBlockEXT: return "Astc12x10SfloatBlockEXT"; + case Format::eAstc12x12SfloatBlockEXT: return "Astc12x12SfloatBlockEXT"; + case Format::eG8B8R82Plane444UnormEXT: return "G8B8R82Plane444UnormEXT"; + case Format::eG10X6B10X6R10X62Plane444Unorm3Pack16EXT: return "G10X6B10X6R10X62Plane444Unorm3Pack16EXT"; + case Format::eG12X4B12X4R12X42Plane444Unorm3Pack16EXT: return "G12X4B12X4R12X42Plane444Unorm3Pack16EXT"; + case Format::eG16B16R162Plane444UnormEXT: return "G16B16R162Plane444UnormEXT"; + case Format::eA4R4G4B4UnormPack16EXT: return "A4R4G4B4UnormPack16EXT"; + case Format::eA4B4G4R4UnormPack16EXT: return "A4B4G4R4UnormPack16EXT"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class FormatFeatureFlagBits : VkFormatFeatureFlags + { + // clang-format off + eSampledImage = VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT + , eStorageImage = VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT + , eStorageImageAtomic = VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT + , eUniformTexelBuffer = VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT + , eStorageTexelBuffer = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT + , eStorageTexelBufferAtomic = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT + , eVertexBuffer = VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT + , eColorAttachment = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT + , eColorAttachmentBlend = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT + , eDepthStencilAttachment = VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT + , eBlitSrc = VK_FORMAT_FEATURE_BLIT_SRC_BIT + , eBlitDst = VK_FORMAT_FEATURE_BLIT_DST_BIT + , eSampledImageFilterLinear = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT + , eTransferSrc = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT + , eTransferDst = VK_FORMAT_FEATURE_TRANSFER_DST_BIT + , eMidpointChromaSamples = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT + , eSampledImageYcbcrConversionLinearFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT + , eSampledImageYcbcrConversionSeparateReconstructionFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT + , eSampledImageYcbcrConversionChromaReconstructionExplicit = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT + , eSampledImageYcbcrConversionChromaReconstructionExplicitForceable = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT + , eDisjoint = VK_FORMAT_FEATURE_DISJOINT_BIT + , eCositedChromaSamples = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT + , eSampledImageFilterMinmax = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT + , eSampledImageFilterCubicIMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + , eVideoDecodeOutputKHR = VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR + , eVideoDecodeDpbKHR = VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR + , eVideoEncodeInputKHR = VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR + , eVideoEncodeDpbKHR = VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + , eAccelerationStructureVertexBufferKHR = VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR + , eFragmentDensityMapEXT = VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT + , eFragmentShadingRateAttachmentKHR = VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR + , eCositedChromaSamplesKHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR + , eDisjointKHR = VK_FORMAT_FEATURE_DISJOINT_BIT_KHR + , eMidpointChromaSamplesKHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR + , eSampledImageFilterCubicEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT + , eSampledImageFilterMinmaxEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT + , eSampledImageYcbcrConversionChromaReconstructionExplicitKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR + , eSampledImageYcbcrConversionChromaReconstructionExplicitForceableKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR + , eSampledImageYcbcrConversionLinearFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR + , eSampledImageYcbcrConversionSeparateReconstructionFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR + , eTransferDstKHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR + , eTransferSrcKHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR + // clang-format on }; VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlagBits value ) { switch ( value ) { - case FormatFeatureFlagBits::eSampledImage : return "SampledImage"; - case FormatFeatureFlagBits::eStorageImage : return "StorageImage"; - case FormatFeatureFlagBits::eStorageImageAtomic : return "StorageImageAtomic"; - case FormatFeatureFlagBits::eUniformTexelBuffer : return "UniformTexelBuffer"; - case FormatFeatureFlagBits::eStorageTexelBuffer : return "StorageTexelBuffer"; - case FormatFeatureFlagBits::eStorageTexelBufferAtomic : return "StorageTexelBufferAtomic"; - case FormatFeatureFlagBits::eVertexBuffer : return "VertexBuffer"; - case FormatFeatureFlagBits::eColorAttachment : return "ColorAttachment"; - case FormatFeatureFlagBits::eColorAttachmentBlend : return "ColorAttachmentBlend"; - case FormatFeatureFlagBits::eDepthStencilAttachment : return "DepthStencilAttachment"; - case FormatFeatureFlagBits::eBlitSrc : return "BlitSrc"; - case FormatFeatureFlagBits::eBlitDst : return "BlitDst"; - case FormatFeatureFlagBits::eSampledImageFilterLinear : return "SampledImageFilterLinear"; - case FormatFeatureFlagBits::eTransferSrc : return "TransferSrc"; - case FormatFeatureFlagBits::eTransferDst : return "TransferDst"; - case FormatFeatureFlagBits::eMidpointChromaSamples : return "MidpointChromaSamples"; - case FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter : return "SampledImageYcbcrConversionLinearFilter"; - case FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter : return "SampledImageYcbcrConversionSeparateReconstructionFilter"; - case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit : return "SampledImageYcbcrConversionChromaReconstructionExplicit"; - case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable : return "SampledImageYcbcrConversionChromaReconstructionExplicitForceable"; - case FormatFeatureFlagBits::eDisjoint : return "Disjoint"; - case FormatFeatureFlagBits::eCositedChromaSamples : return "CositedChromaSamples"; - case FormatFeatureFlagBits::eSampledImageFilterMinmax : return "SampledImageFilterMinmax"; - case FormatFeatureFlagBits::eSampledImageFilterCubicIMG : return "SampledImageFilterCubicIMG"; - case FormatFeatureFlagBits::eFragmentDensityMapEXT : return "FragmentDensityMapEXT"; - default: return "invalid"; - } - } - - enum class FramebufferCreateFlagBits - { - eImageless = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, + case FormatFeatureFlagBits::eSampledImage: return "SampledImage"; + case FormatFeatureFlagBits::eStorageImage: return "StorageImage"; + case FormatFeatureFlagBits::eStorageImageAtomic: return "StorageImageAtomic"; + case FormatFeatureFlagBits::eUniformTexelBuffer: return "UniformTexelBuffer"; + case FormatFeatureFlagBits::eStorageTexelBuffer: return "StorageTexelBuffer"; + case FormatFeatureFlagBits::eStorageTexelBufferAtomic: return "StorageTexelBufferAtomic"; + case FormatFeatureFlagBits::eVertexBuffer: return "VertexBuffer"; + case FormatFeatureFlagBits::eColorAttachment: return "ColorAttachment"; + case FormatFeatureFlagBits::eColorAttachmentBlend: return "ColorAttachmentBlend"; + case FormatFeatureFlagBits::eDepthStencilAttachment: return "DepthStencilAttachment"; + case FormatFeatureFlagBits::eBlitSrc: return "BlitSrc"; + case FormatFeatureFlagBits::eBlitDst: return "BlitDst"; + case FormatFeatureFlagBits::eSampledImageFilterLinear: return "SampledImageFilterLinear"; + case FormatFeatureFlagBits::eTransferSrc: return "TransferSrc"; + case FormatFeatureFlagBits::eTransferDst: return "TransferDst"; + case FormatFeatureFlagBits::eMidpointChromaSamples: return "MidpointChromaSamples"; + case FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter: + return "SampledImageYcbcrConversionLinearFilter"; + case FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter: + return "SampledImageYcbcrConversionSeparateReconstructionFilter"; + case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit: + return "SampledImageYcbcrConversionChromaReconstructionExplicit"; + case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable: + return "SampledImageYcbcrConversionChromaReconstructionExplicitForceable"; + case FormatFeatureFlagBits::eDisjoint: return "Disjoint"; + case FormatFeatureFlagBits::eCositedChromaSamples: return "CositedChromaSamples"; + case FormatFeatureFlagBits::eSampledImageFilterMinmax: return "SampledImageFilterMinmax"; + case FormatFeatureFlagBits::eSampledImageFilterCubicIMG: return "SampledImageFilterCubicIMG"; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + case FormatFeatureFlagBits::eVideoDecodeOutputKHR: return "VideoDecodeOutputKHR"; + case FormatFeatureFlagBits::eVideoDecodeDpbKHR: return "VideoDecodeDpbKHR"; + case FormatFeatureFlagBits::eVideoEncodeInputKHR: return "VideoEncodeInputKHR"; + case FormatFeatureFlagBits::eVideoEncodeDpbKHR: return "VideoEncodeDpbKHR"; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + case FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR: return "AccelerationStructureVertexBufferKHR"; + case FormatFeatureFlagBits::eFragmentDensityMapEXT: return "FragmentDensityMapEXT"; + case FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR: return "FragmentShadingRateAttachmentKHR"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class FragmentShadingRateCombinerOpKHR + { + eKeep = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR, + eReplace = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR, + eMin = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR, + eMax = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR, + eMul = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR + }; + + VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateCombinerOpKHR value ) + { + switch ( value ) + { + case FragmentShadingRateCombinerOpKHR::eKeep: return "Keep"; + case FragmentShadingRateCombinerOpKHR::eReplace: return "Replace"; + case FragmentShadingRateCombinerOpKHR::eMin: return "Min"; + case FragmentShadingRateCombinerOpKHR::eMax: return "Max"; + case FragmentShadingRateCombinerOpKHR::eMul: return "Mul"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class FragmentShadingRateNV + { + e1InvocationPerPixel = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV, + e1InvocationPer1X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV, + e1InvocationPer2X1Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV, + e1InvocationPer2X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV, + e1InvocationPer2X4Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV, + e1InvocationPer4X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV, + e1InvocationPer4X4Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV, + e2InvocationsPerPixel = VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV, + e4InvocationsPerPixel = VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV, + e8InvocationsPerPixel = VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV, + e16InvocationsPerPixel = VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV, + eNoInvocations = VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV + }; + + VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateNV value ) + { + switch ( value ) + { + case FragmentShadingRateNV::e1InvocationPerPixel: return "1InvocationPerPixel"; + case FragmentShadingRateNV::e1InvocationPer1X2Pixels: return "1InvocationPer1X2Pixels"; + case FragmentShadingRateNV::e1InvocationPer2X1Pixels: return "1InvocationPer2X1Pixels"; + case FragmentShadingRateNV::e1InvocationPer2X2Pixels: return "1InvocationPer2X2Pixels"; + case FragmentShadingRateNV::e1InvocationPer2X4Pixels: return "1InvocationPer2X4Pixels"; + case FragmentShadingRateNV::e1InvocationPer4X2Pixels: return "1InvocationPer4X2Pixels"; + case FragmentShadingRateNV::e1InvocationPer4X4Pixels: return "1InvocationPer4X4Pixels"; + case FragmentShadingRateNV::e2InvocationsPerPixel: return "2InvocationsPerPixel"; + case FragmentShadingRateNV::e4InvocationsPerPixel: return "4InvocationsPerPixel"; + case FragmentShadingRateNV::e8InvocationsPerPixel: return "8InvocationsPerPixel"; + case FragmentShadingRateNV::e16InvocationsPerPixel: return "16InvocationsPerPixel"; + case FragmentShadingRateNV::eNoInvocations: return "NoInvocations"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class FragmentShadingRateTypeNV + { + eFragmentSize = VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV, + eEnums = VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV + }; + + VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateTypeNV value ) + { + switch ( value ) + { + case FragmentShadingRateTypeNV::eFragmentSize: return "FragmentSize"; + case FragmentShadingRateTypeNV::eEnums: return "Enums"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class FramebufferCreateFlagBits : VkFramebufferCreateFlags + { + eImageless = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, eImagelessKHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR }; @@ -5148,33 +8065,33 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case FramebufferCreateFlagBits::eImageless : return "Imageless"; - default: return "invalid"; + case FramebufferCreateFlagBits::eImageless: return "Imageless"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class FrontFace { eCounterClockwise = VK_FRONT_FACE_COUNTER_CLOCKWISE, - eClockwise = VK_FRONT_FACE_CLOCKWISE + eClockwise = VK_FRONT_FACE_CLOCKWISE }; VULKAN_HPP_INLINE std::string to_string( FrontFace value ) { switch ( value ) { - case FrontFace::eCounterClockwise : return "CounterClockwise"; - case FrontFace::eClockwise : return "Clockwise"; - default: return "invalid"; + case FrontFace::eCounterClockwise: return "CounterClockwise"; + case FrontFace::eClockwise: return "Clockwise"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } -#ifdef VK_USE_PLATFORM_WIN32_KHR +#if defined( VK_USE_PLATFORM_WIN32_KHR ) enum class FullScreenExclusiveEXT { - eDefault = VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT, - eAllowed = VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT, - eDisallowed = VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT, + eDefault = VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT, + eAllowed = VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT, + eDisallowed = VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT, eApplicationControlled = VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT }; @@ -5182,212 +8099,241 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case FullScreenExclusiveEXT::eDefault : return "Default"; - case FullScreenExclusiveEXT::eAllowed : return "Allowed"; - case FullScreenExclusiveEXT::eDisallowed : return "Disallowed"; - case FullScreenExclusiveEXT::eApplicationControlled : return "ApplicationControlled"; - default: return "invalid"; + case FullScreenExclusiveEXT::eDefault: return "Default"; + case FullScreenExclusiveEXT::eAllowed: return "Allowed"; + case FullScreenExclusiveEXT::eDisallowed: return "Disallowed"; + case FullScreenExclusiveEXT::eApplicationControlled: return "ApplicationControlled"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - enum class GeometryFlagBitsNV + enum class GeometryFlagBitsKHR : VkGeometryFlagsKHR { - eOpaque = VK_GEOMETRY_OPAQUE_BIT_NV, - eNoDuplicateAnyHitInvocation = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV + eOpaque = VK_GEOMETRY_OPAQUE_BIT_KHR, + eNoDuplicateAnyHitInvocation = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR }; + using GeometryFlagBitsNV = GeometryFlagBitsKHR; - VULKAN_HPP_INLINE std::string to_string( GeometryFlagBitsNV value ) + VULKAN_HPP_INLINE std::string to_string( GeometryFlagBitsKHR value ) { switch ( value ) { - case GeometryFlagBitsNV::eOpaque : return "Opaque"; - case GeometryFlagBitsNV::eNoDuplicateAnyHitInvocation : return "NoDuplicateAnyHitInvocation"; - default: return "invalid"; + case GeometryFlagBitsKHR::eOpaque: return "Opaque"; + case GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation: return "NoDuplicateAnyHitInvocation"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class GeometryInstanceFlagBitsNV + enum class GeometryInstanceFlagBitsKHR : VkGeometryInstanceFlagsKHR { - eTriangleCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV, - eTriangleFrontCounterclockwise = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV, - eForceOpaque = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV, - eForceNoOpaque = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV + eTriangleFacingCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR, + eTriangleFrontCounterclockwise = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR, + eForceOpaque = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR, + eForceNoOpaque = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR, + eTriangleCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV }; + using GeometryInstanceFlagBitsNV = GeometryInstanceFlagBitsKHR; - VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagBitsNV value ) + VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagBitsKHR value ) { switch ( value ) { - case GeometryInstanceFlagBitsNV::eTriangleCullDisable : return "TriangleCullDisable"; - case GeometryInstanceFlagBitsNV::eTriangleFrontCounterclockwise : return "TriangleFrontCounterclockwise"; - case GeometryInstanceFlagBitsNV::eForceOpaque : return "ForceOpaque"; - case GeometryInstanceFlagBitsNV::eForceNoOpaque : return "ForceNoOpaque"; - default: return "invalid"; + case GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable: return "TriangleFacingCullDisable"; + case GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise: return "TriangleFrontCounterclockwise"; + case GeometryInstanceFlagBitsKHR::eForceOpaque: return "ForceOpaque"; + case GeometryInstanceFlagBitsKHR::eForceNoOpaque: return "ForceNoOpaque"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class GeometryTypeNV + enum class GeometryTypeKHR { - eTriangles = VK_GEOMETRY_TYPE_TRIANGLES_NV, - eAabbs = VK_GEOMETRY_TYPE_AABBS_NV + eTriangles = VK_GEOMETRY_TYPE_TRIANGLES_KHR, + eAabbs = VK_GEOMETRY_TYPE_AABBS_KHR, + eInstances = VK_GEOMETRY_TYPE_INSTANCES_KHR }; + using GeometryTypeNV = GeometryTypeKHR; - VULKAN_HPP_INLINE std::string to_string( GeometryTypeNV value ) + VULKAN_HPP_INLINE std::string to_string( GeometryTypeKHR value ) { switch ( value ) { - case GeometryTypeNV::eTriangles : return "Triangles"; - case GeometryTypeNV::eAabbs : return "Aabbs"; - default: return "invalid"; + case GeometryTypeKHR::eTriangles: return "Triangles"; + case GeometryTypeKHR::eAabbs: return "Aabbs"; + case GeometryTypeKHR::eInstances: return "Instances"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class ImageAspectFlagBits + enum class ImageAspectFlagBits : VkImageAspectFlags { - eColor = VK_IMAGE_ASPECT_COLOR_BIT, - eDepth = VK_IMAGE_ASPECT_DEPTH_BIT, - eStencil = VK_IMAGE_ASPECT_STENCIL_BIT, - eMetadata = VK_IMAGE_ASPECT_METADATA_BIT, - ePlane0 = VK_IMAGE_ASPECT_PLANE_0_BIT, - ePlane1 = VK_IMAGE_ASPECT_PLANE_1_BIT, - ePlane2 = VK_IMAGE_ASPECT_PLANE_2_BIT, + eColor = VK_IMAGE_ASPECT_COLOR_BIT, + eDepth = VK_IMAGE_ASPECT_DEPTH_BIT, + eStencil = VK_IMAGE_ASPECT_STENCIL_BIT, + eMetadata = VK_IMAGE_ASPECT_METADATA_BIT, + ePlane0 = VK_IMAGE_ASPECT_PLANE_0_BIT, + ePlane1 = VK_IMAGE_ASPECT_PLANE_1_BIT, + ePlane2 = VK_IMAGE_ASPECT_PLANE_2_BIT, eMemoryPlane0EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT, eMemoryPlane1EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT, eMemoryPlane2EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT, eMemoryPlane3EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT, - ePlane0KHR = VK_IMAGE_ASPECT_PLANE_0_BIT_KHR, - ePlane1KHR = VK_IMAGE_ASPECT_PLANE_1_BIT_KHR, - ePlane2KHR = VK_IMAGE_ASPECT_PLANE_2_BIT_KHR + ePlane0KHR = VK_IMAGE_ASPECT_PLANE_0_BIT_KHR, + ePlane1KHR = VK_IMAGE_ASPECT_PLANE_1_BIT_KHR, + ePlane2KHR = VK_IMAGE_ASPECT_PLANE_2_BIT_KHR }; VULKAN_HPP_INLINE std::string to_string( ImageAspectFlagBits value ) { switch ( value ) { - case ImageAspectFlagBits::eColor : return "Color"; - case ImageAspectFlagBits::eDepth : return "Depth"; - case ImageAspectFlagBits::eStencil : return "Stencil"; - case ImageAspectFlagBits::eMetadata : return "Metadata"; - case ImageAspectFlagBits::ePlane0 : return "Plane0"; - case ImageAspectFlagBits::ePlane1 : return "Plane1"; - case ImageAspectFlagBits::ePlane2 : return "Plane2"; - case ImageAspectFlagBits::eMemoryPlane0EXT : return "MemoryPlane0EXT"; - case ImageAspectFlagBits::eMemoryPlane1EXT : return "MemoryPlane1EXT"; - case ImageAspectFlagBits::eMemoryPlane2EXT : return "MemoryPlane2EXT"; - case ImageAspectFlagBits::eMemoryPlane3EXT : return "MemoryPlane3EXT"; - default: return "invalid"; - } - } - - enum class ImageCreateFlagBits - { - eSparseBinding = VK_IMAGE_CREATE_SPARSE_BINDING_BIT, - eSparseResidency = VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, - eSparseAliased = VK_IMAGE_CREATE_SPARSE_ALIASED_BIT, - eMutableFormat = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, - eCubeCompatible = VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, - eAlias = VK_IMAGE_CREATE_ALIAS_BIT, - eSplitInstanceBindRegions = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, - e2DArrayCompatible = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, - eBlockTexelViewCompatible = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, - eExtendedUsage = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT, - eProtected = VK_IMAGE_CREATE_PROTECTED_BIT, - eDisjoint = VK_IMAGE_CREATE_DISJOINT_BIT, - eCornerSampledNV = VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, + case ImageAspectFlagBits::eColor: return "Color"; + case ImageAspectFlagBits::eDepth: return "Depth"; + case ImageAspectFlagBits::eStencil: return "Stencil"; + case ImageAspectFlagBits::eMetadata: return "Metadata"; + case ImageAspectFlagBits::ePlane0: return "Plane0"; + case ImageAspectFlagBits::ePlane1: return "Plane1"; + case ImageAspectFlagBits::ePlane2: return "Plane2"; + case ImageAspectFlagBits::eMemoryPlane0EXT: return "MemoryPlane0EXT"; + case ImageAspectFlagBits::eMemoryPlane1EXT: return "MemoryPlane1EXT"; + case ImageAspectFlagBits::eMemoryPlane2EXT: return "MemoryPlane2EXT"; + case ImageAspectFlagBits::eMemoryPlane3EXT: return "MemoryPlane3EXT"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class ImageCreateFlagBits : VkImageCreateFlags + { + eSparseBinding = VK_IMAGE_CREATE_SPARSE_BINDING_BIT, + eSparseResidency = VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, + eSparseAliased = VK_IMAGE_CREATE_SPARSE_ALIASED_BIT, + eMutableFormat = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, + eCubeCompatible = VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, + eAlias = VK_IMAGE_CREATE_ALIAS_BIT, + eSplitInstanceBindRegions = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, + e2DArrayCompatible = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, + eBlockTexelViewCompatible = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, + eExtendedUsage = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT, + eProtected = VK_IMAGE_CREATE_PROTECTED_BIT, + eDisjoint = VK_IMAGE_CREATE_DISJOINT_BIT, + eCornerSampledNV = VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, eSampleLocationsCompatibleDepthEXT = VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT, - eSubsampledEXT = VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, - eSplitInstanceBindRegionsKHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR, - e2DArrayCompatibleKHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR, - eBlockTexelViewCompatibleKHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR, - eExtendedUsageKHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR, - eDisjointKHR = VK_IMAGE_CREATE_DISJOINT_BIT_KHR, - eAliasKHR = VK_IMAGE_CREATE_ALIAS_BIT_KHR + eSubsampledEXT = VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, + e2DArrayCompatibleKHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR, + eAliasKHR = VK_IMAGE_CREATE_ALIAS_BIT_KHR, + eBlockTexelViewCompatibleKHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR, + eDisjointKHR = VK_IMAGE_CREATE_DISJOINT_BIT_KHR, + eExtendedUsageKHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR, + eSplitInstanceBindRegionsKHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR }; VULKAN_HPP_INLINE std::string to_string( ImageCreateFlagBits value ) { switch ( value ) { - case ImageCreateFlagBits::eSparseBinding : return "SparseBinding"; - case ImageCreateFlagBits::eSparseResidency : return "SparseResidency"; - case ImageCreateFlagBits::eSparseAliased : return "SparseAliased"; - case ImageCreateFlagBits::eMutableFormat : return "MutableFormat"; - case ImageCreateFlagBits::eCubeCompatible : return "CubeCompatible"; - case ImageCreateFlagBits::eAlias : return "Alias"; - case ImageCreateFlagBits::eSplitInstanceBindRegions : return "SplitInstanceBindRegions"; - case ImageCreateFlagBits::e2DArrayCompatible : return "2DArrayCompatible"; - case ImageCreateFlagBits::eBlockTexelViewCompatible : return "BlockTexelViewCompatible"; - case ImageCreateFlagBits::eExtendedUsage : return "ExtendedUsage"; - case ImageCreateFlagBits::eProtected : return "Protected"; - case ImageCreateFlagBits::eDisjoint : return "Disjoint"; - case ImageCreateFlagBits::eCornerSampledNV : return "CornerSampledNV"; - case ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT : return "SampleLocationsCompatibleDepthEXT"; - case ImageCreateFlagBits::eSubsampledEXT : return "SubsampledEXT"; - default: return "invalid"; + case ImageCreateFlagBits::eSparseBinding: return "SparseBinding"; + case ImageCreateFlagBits::eSparseResidency: return "SparseResidency"; + case ImageCreateFlagBits::eSparseAliased: return "SparseAliased"; + case ImageCreateFlagBits::eMutableFormat: return "MutableFormat"; + case ImageCreateFlagBits::eCubeCompatible: return "CubeCompatible"; + case ImageCreateFlagBits::eAlias: return "Alias"; + case ImageCreateFlagBits::eSplitInstanceBindRegions: return "SplitInstanceBindRegions"; + case ImageCreateFlagBits::e2DArrayCompatible: return "2DArrayCompatible"; + case ImageCreateFlagBits::eBlockTexelViewCompatible: return "BlockTexelViewCompatible"; + case ImageCreateFlagBits::eExtendedUsage: return "ExtendedUsage"; + case ImageCreateFlagBits::eProtected: return "Protected"; + case ImageCreateFlagBits::eDisjoint: return "Disjoint"; + case ImageCreateFlagBits::eCornerSampledNV: return "CornerSampledNV"; + case ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT: return "SampleLocationsCompatibleDepthEXT"; + case ImageCreateFlagBits::eSubsampledEXT: return "SubsampledEXT"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class ImageLayout { - eUndefined = VK_IMAGE_LAYOUT_UNDEFINED, - eGeneral = VK_IMAGE_LAYOUT_GENERAL, - eColorAttachmentOptimal = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, - eDepthStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, - eDepthStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, - eShaderReadOnlyOptimal = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, - eTransferSrcOptimal = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, - eTransferDstOptimal = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, - ePreinitialized = VK_IMAGE_LAYOUT_PREINITIALIZED, - eDepthReadOnlyStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, - eDepthAttachmentStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, - eDepthAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, - eDepthReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, - eStencilAttachmentOptimal = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, - eStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, - ePresentSrcKHR = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, - eSharedPresentKHR = VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, - eShadingRateOptimalNV = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV, - eFragmentDensityMapOptimalEXT = VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT, - eDepthReadOnlyStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR, - eDepthAttachmentStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR, - eDepthAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR, - eDepthReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR, - eStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR, - eStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR + // clang-format off + eUndefined = VK_IMAGE_LAYOUT_UNDEFINED + , eGeneral = VK_IMAGE_LAYOUT_GENERAL + , eColorAttachmentOptimal = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL + , eDepthStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL + , eDepthStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL + , eShaderReadOnlyOptimal = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL + , eTransferSrcOptimal = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL + , eTransferDstOptimal = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL + , ePreinitialized = VK_IMAGE_LAYOUT_PREINITIALIZED + , eDepthReadOnlyStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL + , eDepthAttachmentStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL + , eDepthAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL + , eDepthReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL + , eStencilAttachmentOptimal = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL + , eStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL + , ePresentSrcKHR = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + , eVideoDecodeDstKHR = VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR + , eVideoDecodeSrcKHR = VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR + , eVideoDecodeDpbKHR = VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR + , eVideoEncodeDstKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR + , eVideoEncodeSrcKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR + , eVideoEncodeDpbKHR = VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + , eSharedPresentKHR = VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR + , eShadingRateOptimalNV = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV + , eFragmentDensityMapOptimalEXT = VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT + , eReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR + , eAttachmentOptimalKHR = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR + , eDepthAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR + , eDepthAttachmentStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR + , eDepthReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR + , eDepthReadOnlyStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR + , eFragmentShadingRateAttachmentOptimalKHR = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR + , eStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR + , eStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR + // clang-format on }; VULKAN_HPP_INLINE std::string to_string( ImageLayout value ) { switch ( value ) { - case ImageLayout::eUndefined : return "Undefined"; - case ImageLayout::eGeneral : return "General"; - case ImageLayout::eColorAttachmentOptimal : return "ColorAttachmentOptimal"; - case ImageLayout::eDepthStencilAttachmentOptimal : return "DepthStencilAttachmentOptimal"; - case ImageLayout::eDepthStencilReadOnlyOptimal : return "DepthStencilReadOnlyOptimal"; - case ImageLayout::eShaderReadOnlyOptimal : return "ShaderReadOnlyOptimal"; - case ImageLayout::eTransferSrcOptimal : return "TransferSrcOptimal"; - case ImageLayout::eTransferDstOptimal : return "TransferDstOptimal"; - case ImageLayout::ePreinitialized : return "Preinitialized"; - case ImageLayout::eDepthReadOnlyStencilAttachmentOptimal : return "DepthReadOnlyStencilAttachmentOptimal"; - case ImageLayout::eDepthAttachmentStencilReadOnlyOptimal : return "DepthAttachmentStencilReadOnlyOptimal"; - case ImageLayout::eDepthAttachmentOptimal : return "DepthAttachmentOptimal"; - case ImageLayout::eDepthReadOnlyOptimal : return "DepthReadOnlyOptimal"; - case ImageLayout::eStencilAttachmentOptimal : return "StencilAttachmentOptimal"; - case ImageLayout::eStencilReadOnlyOptimal : return "StencilReadOnlyOptimal"; - case ImageLayout::ePresentSrcKHR : return "PresentSrcKHR"; - case ImageLayout::eSharedPresentKHR : return "SharedPresentKHR"; - case ImageLayout::eShadingRateOptimalNV : return "ShadingRateOptimalNV"; - case ImageLayout::eFragmentDensityMapOptimalEXT : return "FragmentDensityMapOptimalEXT"; - default: return "invalid"; + case ImageLayout::eUndefined: return "Undefined"; + case ImageLayout::eGeneral: return "General"; + case ImageLayout::eColorAttachmentOptimal: return "ColorAttachmentOptimal"; + case ImageLayout::eDepthStencilAttachmentOptimal: return "DepthStencilAttachmentOptimal"; + case ImageLayout::eDepthStencilReadOnlyOptimal: return "DepthStencilReadOnlyOptimal"; + case ImageLayout::eShaderReadOnlyOptimal: return "ShaderReadOnlyOptimal"; + case ImageLayout::eTransferSrcOptimal: return "TransferSrcOptimal"; + case ImageLayout::eTransferDstOptimal: return "TransferDstOptimal"; + case ImageLayout::ePreinitialized: return "Preinitialized"; + case ImageLayout::eDepthReadOnlyStencilAttachmentOptimal: return "DepthReadOnlyStencilAttachmentOptimal"; + case ImageLayout::eDepthAttachmentStencilReadOnlyOptimal: return "DepthAttachmentStencilReadOnlyOptimal"; + case ImageLayout::eDepthAttachmentOptimal: return "DepthAttachmentOptimal"; + case ImageLayout::eDepthReadOnlyOptimal: return "DepthReadOnlyOptimal"; + case ImageLayout::eStencilAttachmentOptimal: return "StencilAttachmentOptimal"; + case ImageLayout::eStencilReadOnlyOptimal: return "StencilReadOnlyOptimal"; + case ImageLayout::ePresentSrcKHR: return "PresentSrcKHR"; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + case ImageLayout::eVideoDecodeDstKHR: return "VideoDecodeDstKHR"; + case ImageLayout::eVideoDecodeSrcKHR: return "VideoDecodeSrcKHR"; + case ImageLayout::eVideoDecodeDpbKHR: return "VideoDecodeDpbKHR"; + case ImageLayout::eVideoEncodeDstKHR: return "VideoEncodeDstKHR"; + case ImageLayout::eVideoEncodeSrcKHR: return "VideoEncodeSrcKHR"; + case ImageLayout::eVideoEncodeDpbKHR: return "VideoEncodeDpbKHR"; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + case ImageLayout::eSharedPresentKHR: return "SharedPresentKHR"; + case ImageLayout::eShadingRateOptimalNV: return "ShadingRateOptimalNV"; + case ImageLayout::eFragmentDensityMapOptimalEXT: return "FragmentDensityMapOptimalEXT"; + case ImageLayout::eReadOnlyOptimalKHR: return "ReadOnlyOptimalKHR"; + case ImageLayout::eAttachmentOptimalKHR: return "AttachmentOptimalKHR"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class ImageTiling { - eOptimal = VK_IMAGE_TILING_OPTIMAL, - eLinear = VK_IMAGE_TILING_LINEAR, + eOptimal = VK_IMAGE_TILING_OPTIMAL, + eLinear = VK_IMAGE_TILING_LINEAR, eDrmFormatModifierEXT = VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT }; @@ -5395,10 +8341,10 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case ImageTiling::eOptimal : return "Optimal"; - case ImageTiling::eLinear : return "Linear"; - case ImageTiling::eDrmFormatModifierEXT : return "DrmFormatModifierEXT"; - default: return "invalid"; + case ImageTiling::eOptimal: return "Optimal"; + case ImageTiling::eLinear: return "Linear"; + case ImageTiling::eDrmFormatModifierEXT: return "DrmFormatModifierEXT"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } @@ -5413,67 +8359,88 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case ImageType::e1D : return "1D"; - case ImageType::e2D : return "2D"; - case ImageType::e3D : return "3D"; - default: return "invalid"; - } - } - - enum class ImageUsageFlagBits - { - eTransferSrc = VK_IMAGE_USAGE_TRANSFER_SRC_BIT, - eTransferDst = VK_IMAGE_USAGE_TRANSFER_DST_BIT, - eSampled = VK_IMAGE_USAGE_SAMPLED_BIT, - eStorage = VK_IMAGE_USAGE_STORAGE_BIT, - eColorAttachment = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, - eDepthStencilAttachment = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, - eTransientAttachment = VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, - eInputAttachment = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, - eShadingRateImageNV = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, - eFragmentDensityMapEXT = VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT + case ImageType::e1D: return "1D"; + case ImageType::e2D: return "2D"; + case ImageType::e3D: return "3D"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class ImageUsageFlagBits : VkImageUsageFlags + { + // clang-format off + eTransferSrc = VK_IMAGE_USAGE_TRANSFER_SRC_BIT + , eTransferDst = VK_IMAGE_USAGE_TRANSFER_DST_BIT + , eSampled = VK_IMAGE_USAGE_SAMPLED_BIT + , eStorage = VK_IMAGE_USAGE_STORAGE_BIT + , eColorAttachment = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT + , eDepthStencilAttachment = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT + , eTransientAttachment = VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT + , eInputAttachment = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + , eVideoDecodeDstKHR = VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR + , eVideoDecodeSrcKHR = VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR + , eVideoDecodeDpbKHR = VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR + , eVideoEncodeDstKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR + , eVideoEncodeSrcKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR + , eVideoEncodeDpbKHR = VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + , eShadingRateImageNV = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV + , eFragmentDensityMapEXT = VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT + , eFragmentShadingRateAttachmentKHR = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR + // clang-format on }; VULKAN_HPP_INLINE std::string to_string( ImageUsageFlagBits value ) { switch ( value ) { - case ImageUsageFlagBits::eTransferSrc : return "TransferSrc"; - case ImageUsageFlagBits::eTransferDst : return "TransferDst"; - case ImageUsageFlagBits::eSampled : return "Sampled"; - case ImageUsageFlagBits::eStorage : return "Storage"; - case ImageUsageFlagBits::eColorAttachment : return "ColorAttachment"; - case ImageUsageFlagBits::eDepthStencilAttachment : return "DepthStencilAttachment"; - case ImageUsageFlagBits::eTransientAttachment : return "TransientAttachment"; - case ImageUsageFlagBits::eInputAttachment : return "InputAttachment"; - case ImageUsageFlagBits::eShadingRateImageNV : return "ShadingRateImageNV"; - case ImageUsageFlagBits::eFragmentDensityMapEXT : return "FragmentDensityMapEXT"; - default: return "invalid"; + case ImageUsageFlagBits::eTransferSrc: return "TransferSrc"; + case ImageUsageFlagBits::eTransferDst: return "TransferDst"; + case ImageUsageFlagBits::eSampled: return "Sampled"; + case ImageUsageFlagBits::eStorage: return "Storage"; + case ImageUsageFlagBits::eColorAttachment: return "ColorAttachment"; + case ImageUsageFlagBits::eDepthStencilAttachment: return "DepthStencilAttachment"; + case ImageUsageFlagBits::eTransientAttachment: return "TransientAttachment"; + case ImageUsageFlagBits::eInputAttachment: return "InputAttachment"; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + case ImageUsageFlagBits::eVideoDecodeDstKHR: return "VideoDecodeDstKHR"; + case ImageUsageFlagBits::eVideoDecodeSrcKHR: return "VideoDecodeSrcKHR"; + case ImageUsageFlagBits::eVideoDecodeDpbKHR: return "VideoDecodeDpbKHR"; + case ImageUsageFlagBits::eVideoEncodeDstKHR: return "VideoEncodeDstKHR"; + case ImageUsageFlagBits::eVideoEncodeSrcKHR: return "VideoEncodeSrcKHR"; + case ImageUsageFlagBits::eVideoEncodeDpbKHR: return "VideoEncodeDpbKHR"; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + case ImageUsageFlagBits::eShadingRateImageNV: return "ShadingRateImageNV"; + case ImageUsageFlagBits::eFragmentDensityMapEXT: return "FragmentDensityMapEXT"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class ImageViewCreateFlagBits + enum class ImageViewCreateFlagBits : VkImageViewCreateFlags { - eFragmentDensityMapDynamicEXT = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT + eFragmentDensityMapDynamicEXT = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT, + eFragmentDensityMapDeferredEXT = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT }; VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlagBits value ) { switch ( value ) { - case ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT : return "FragmentDensityMapDynamicEXT"; - default: return "invalid"; + case ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT: return "FragmentDensityMapDynamicEXT"; + case ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT: return "FragmentDensityMapDeferredEXT"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class ImageViewType { - e1D = VK_IMAGE_VIEW_TYPE_1D, - e2D = VK_IMAGE_VIEW_TYPE_2D, - e3D = VK_IMAGE_VIEW_TYPE_3D, - eCube = VK_IMAGE_VIEW_TYPE_CUBE, - e1DArray = VK_IMAGE_VIEW_TYPE_1D_ARRAY, - e2DArray = VK_IMAGE_VIEW_TYPE_2D_ARRAY, + e1D = VK_IMAGE_VIEW_TYPE_1D, + e2D = VK_IMAGE_VIEW_TYPE_2D, + e3D = VK_IMAGE_VIEW_TYPE_3D, + eCube = VK_IMAGE_VIEW_TYPE_CUBE, + e1DArray = VK_IMAGE_VIEW_TYPE_1D_ARRAY, + e2DArray = VK_IMAGE_VIEW_TYPE_2D_ARRAY, eCubeArray = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY }; @@ -5481,87 +8448,101 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case ImageViewType::e1D : return "1D"; - case ImageViewType::e2D : return "2D"; - case ImageViewType::e3D : return "3D"; - case ImageViewType::eCube : return "Cube"; - case ImageViewType::e1DArray : return "1DArray"; - case ImageViewType::e2DArray : return "2DArray"; - case ImageViewType::eCubeArray : return "CubeArray"; - default: return "invalid"; + case ImageViewType::e1D: return "1D"; + case ImageViewType::e2D: return "2D"; + case ImageViewType::e3D: return "3D"; + case ImageViewType::eCube: return "Cube"; + case ImageViewType::e1DArray: return "1DArray"; + case ImageViewType::e2DArray: return "2DArray"; + case ImageViewType::eCubeArray: return "CubeArray"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class IndexType { - eUint16 = VK_INDEX_TYPE_UINT16, - eUint32 = VK_INDEX_TYPE_UINT32, - eNoneNV = VK_INDEX_TYPE_NONE_NV, - eUint8EXT = VK_INDEX_TYPE_UINT8_EXT + eUint16 = VK_INDEX_TYPE_UINT16, + eUint32 = VK_INDEX_TYPE_UINT32, + eNoneKHR = VK_INDEX_TYPE_NONE_KHR, + eUint8EXT = VK_INDEX_TYPE_UINT8_EXT, + eNoneNV = VK_INDEX_TYPE_NONE_NV }; VULKAN_HPP_INLINE std::string to_string( IndexType value ) { switch ( value ) { - case IndexType::eUint16 : return "Uint16"; - case IndexType::eUint32 : return "Uint32"; - case IndexType::eNoneNV : return "NoneNV"; - case IndexType::eUint8EXT : return "Uint8EXT"; - default: return "invalid"; + case IndexType::eUint16: return "Uint16"; + case IndexType::eUint32: return "Uint32"; + case IndexType::eNoneKHR: return "NoneKHR"; + case IndexType::eUint8EXT: return "Uint8EXT"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class IndirectCommandsLayoutUsageFlagBitsNVX + enum class IndirectCommandsLayoutUsageFlagBitsNV : VkIndirectCommandsLayoutUsageFlagsNV { - eUnorderedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX, - eSparseSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX, - eEmptyExecutions = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX, - eIndexedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX + eExplicitPreprocess = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV, + eIndexedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV, + eUnorderedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV }; - VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagBitsNVX value ) + VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagBitsNV value ) { switch ( value ) { - case IndirectCommandsLayoutUsageFlagBitsNVX::eUnorderedSequences : return "UnorderedSequences"; - case IndirectCommandsLayoutUsageFlagBitsNVX::eSparseSequences : return "SparseSequences"; - case IndirectCommandsLayoutUsageFlagBitsNVX::eEmptyExecutions : return "EmptyExecutions"; - case IndirectCommandsLayoutUsageFlagBitsNVX::eIndexedSequences : return "IndexedSequences"; - default: return "invalid"; + case IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess: return "ExplicitPreprocess"; + case IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences: return "IndexedSequences"; + case IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences: return "UnorderedSequences"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class IndirectCommandsTokenTypeNVX + enum class IndirectCommandsTokenTypeNV { - ePipeline = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX, - eDescriptorSet = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX, - eIndexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX, - eVertexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX, - ePushConstant = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX, - eDrawIndexed = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX, - eDraw = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX, - eDispatch = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX + eShaderGroup = VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV, + eStateFlags = VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV, + eIndexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV, + eVertexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV, + ePushConstant = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, + eDrawIndexed = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV, + eDraw = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV, + eDrawTasks = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV }; - VULKAN_HPP_INLINE std::string to_string( IndirectCommandsTokenTypeNVX value ) + VULKAN_HPP_INLINE std::string to_string( IndirectCommandsTokenTypeNV value ) { switch ( value ) { - case IndirectCommandsTokenTypeNVX::ePipeline : return "Pipeline"; - case IndirectCommandsTokenTypeNVX::eDescriptorSet : return "DescriptorSet"; - case IndirectCommandsTokenTypeNVX::eIndexBuffer : return "IndexBuffer"; - case IndirectCommandsTokenTypeNVX::eVertexBuffer : return "VertexBuffer"; - case IndirectCommandsTokenTypeNVX::ePushConstant : return "PushConstant"; - case IndirectCommandsTokenTypeNVX::eDrawIndexed : return "DrawIndexed"; - case IndirectCommandsTokenTypeNVX::eDraw : return "Draw"; - case IndirectCommandsTokenTypeNVX::eDispatch : return "Dispatch"; - default: return "invalid"; + case IndirectCommandsTokenTypeNV::eShaderGroup: return "ShaderGroup"; + case IndirectCommandsTokenTypeNV::eStateFlags: return "StateFlags"; + case IndirectCommandsTokenTypeNV::eIndexBuffer: return "IndexBuffer"; + case IndirectCommandsTokenTypeNV::eVertexBuffer: return "VertexBuffer"; + case IndirectCommandsTokenTypeNV::ePushConstant: return "PushConstant"; + case IndirectCommandsTokenTypeNV::eDrawIndexed: return "DrawIndexed"; + case IndirectCommandsTokenTypeNV::eDraw: return "Draw"; + case IndirectCommandsTokenTypeNV::eDrawTasks: return "DrawTasks"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class IndirectStateFlagBitsNV : VkIndirectStateFlagsNV + { + eFlagFrontface = VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV + }; + + VULKAN_HPP_INLINE std::string to_string( IndirectStateFlagBitsNV value ) + { + switch ( value ) + { + case IndirectStateFlagBitsNV::eFlagFrontface: return "FlagFrontface"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class InstanceCreateFlagBits - {}; + { + }; VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlagBits ) { @@ -5577,16 +8558,16 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case InternalAllocationType::eExecutable : return "Executable"; - default: return "invalid"; + case InternalAllocationType::eExecutable: return "Executable"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class LineRasterizationModeEXT { - eDefault = VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, - eRectangular = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, - eBresenham = VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, + eDefault = VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, + eRectangular = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, + eBresenham = VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, eRectangularSmooth = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT }; @@ -5594,62 +8575,62 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case LineRasterizationModeEXT::eDefault : return "Default"; - case LineRasterizationModeEXT::eRectangular : return "Rectangular"; - case LineRasterizationModeEXT::eBresenham : return "Bresenham"; - case LineRasterizationModeEXT::eRectangularSmooth : return "RectangularSmooth"; - default: return "invalid"; + case LineRasterizationModeEXT::eDefault: return "Default"; + case LineRasterizationModeEXT::eRectangular: return "Rectangular"; + case LineRasterizationModeEXT::eBresenham: return "Bresenham"; + case LineRasterizationModeEXT::eRectangularSmooth: return "RectangularSmooth"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class LogicOp { - eClear = VK_LOGIC_OP_CLEAR, - eAnd = VK_LOGIC_OP_AND, - eAndReverse = VK_LOGIC_OP_AND_REVERSE, - eCopy = VK_LOGIC_OP_COPY, - eAndInverted = VK_LOGIC_OP_AND_INVERTED, - eNoOp = VK_LOGIC_OP_NO_OP, - eXor = VK_LOGIC_OP_XOR, - eOr = VK_LOGIC_OP_OR, - eNor = VK_LOGIC_OP_NOR, - eEquivalent = VK_LOGIC_OP_EQUIVALENT, - eInvert = VK_LOGIC_OP_INVERT, - eOrReverse = VK_LOGIC_OP_OR_REVERSE, + eClear = VK_LOGIC_OP_CLEAR, + eAnd = VK_LOGIC_OP_AND, + eAndReverse = VK_LOGIC_OP_AND_REVERSE, + eCopy = VK_LOGIC_OP_COPY, + eAndInverted = VK_LOGIC_OP_AND_INVERTED, + eNoOp = VK_LOGIC_OP_NO_OP, + eXor = VK_LOGIC_OP_XOR, + eOr = VK_LOGIC_OP_OR, + eNor = VK_LOGIC_OP_NOR, + eEquivalent = VK_LOGIC_OP_EQUIVALENT, + eInvert = VK_LOGIC_OP_INVERT, + eOrReverse = VK_LOGIC_OP_OR_REVERSE, eCopyInverted = VK_LOGIC_OP_COPY_INVERTED, - eOrInverted = VK_LOGIC_OP_OR_INVERTED, - eNand = VK_LOGIC_OP_NAND, - eSet = VK_LOGIC_OP_SET + eOrInverted = VK_LOGIC_OP_OR_INVERTED, + eNand = VK_LOGIC_OP_NAND, + eSet = VK_LOGIC_OP_SET }; VULKAN_HPP_INLINE std::string to_string( LogicOp value ) { switch ( value ) { - case LogicOp::eClear : return "Clear"; - case LogicOp::eAnd : return "And"; - case LogicOp::eAndReverse : return "AndReverse"; - case LogicOp::eCopy : return "Copy"; - case LogicOp::eAndInverted : return "AndInverted"; - case LogicOp::eNoOp : return "NoOp"; - case LogicOp::eXor : return "Xor"; - case LogicOp::eOr : return "Or"; - case LogicOp::eNor : return "Nor"; - case LogicOp::eEquivalent : return "Equivalent"; - case LogicOp::eInvert : return "Invert"; - case LogicOp::eOrReverse : return "OrReverse"; - case LogicOp::eCopyInverted : return "CopyInverted"; - case LogicOp::eOrInverted : return "OrInverted"; - case LogicOp::eNand : return "Nand"; - case LogicOp::eSet : return "Set"; - default: return "invalid"; - } - } - - enum class MemoryAllocateFlagBits - { - eDeviceMask = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT, - eDeviceAddress = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT, + case LogicOp::eClear: return "Clear"; + case LogicOp::eAnd: return "And"; + case LogicOp::eAndReverse: return "AndReverse"; + case LogicOp::eCopy: return "Copy"; + case LogicOp::eAndInverted: return "AndInverted"; + case LogicOp::eNoOp: return "NoOp"; + case LogicOp::eXor: return "Xor"; + case LogicOp::eOr: return "Or"; + case LogicOp::eNor: return "Nor"; + case LogicOp::eEquivalent: return "Equivalent"; + case LogicOp::eInvert: return "Invert"; + case LogicOp::eOrReverse: return "OrReverse"; + case LogicOp::eCopyInverted: return "CopyInverted"; + case LogicOp::eOrInverted: return "OrInverted"; + case LogicOp::eNand: return "Nand"; + case LogicOp::eSet: return "Set"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class MemoryAllocateFlagBits : VkMemoryAllocateFlags + { + eDeviceMask = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT, + eDeviceAddress = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT, eDeviceAddressCaptureReplay = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT }; using MemoryAllocateFlagBitsKHR = MemoryAllocateFlagBits; @@ -5658,17 +8639,17 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case MemoryAllocateFlagBits::eDeviceMask : return "DeviceMask"; - case MemoryAllocateFlagBits::eDeviceAddress : return "DeviceAddress"; - case MemoryAllocateFlagBits::eDeviceAddressCaptureReplay : return "DeviceAddressCaptureReplay"; - default: return "invalid"; + case MemoryAllocateFlagBits::eDeviceMask: return "DeviceMask"; + case MemoryAllocateFlagBits::eDeviceAddress: return "DeviceAddress"; + case MemoryAllocateFlagBits::eDeviceAddressCaptureReplay: return "DeviceAddressCaptureReplay"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class MemoryHeapFlagBits + enum class MemoryHeapFlagBits : VkMemoryHeapFlags { - eDeviceLocal = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT, - eMultiInstance = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT, + eDeviceLocal = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT, + eMultiInstance = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT, eMultiInstanceKHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR }; @@ -5676,16 +8657,16 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case MemoryHeapFlagBits::eDeviceLocal : return "DeviceLocal"; - case MemoryHeapFlagBits::eMultiInstance : return "MultiInstance"; - default: return "invalid"; + case MemoryHeapFlagBits::eDeviceLocal: return "DeviceLocal"; + case MemoryHeapFlagBits::eMultiInstance: return "MultiInstance"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class MemoryOverallocationBehaviorAMD { - eDefault = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD, - eAllowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD, + eDefault = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD, + eAllowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD, eDisallowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD }; @@ -5693,21 +8674,21 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case MemoryOverallocationBehaviorAMD::eDefault : return "Default"; - case MemoryOverallocationBehaviorAMD::eAllowed : return "Allowed"; - case MemoryOverallocationBehaviorAMD::eDisallowed : return "Disallowed"; - default: return "invalid"; + case MemoryOverallocationBehaviorAMD::eDefault: return "Default"; + case MemoryOverallocationBehaviorAMD::eAllowed: return "Allowed"; + case MemoryOverallocationBehaviorAMD::eDisallowed: return "Disallowed"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class MemoryPropertyFlagBits + enum class MemoryPropertyFlagBits : VkMemoryPropertyFlags { - eDeviceLocal = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, - eHostVisible = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, - eHostCoherent = VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, - eHostCached = VK_MEMORY_PROPERTY_HOST_CACHED_BIT, - eLazilyAllocated = VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT, - eProtected = VK_MEMORY_PROPERTY_PROTECTED_BIT, + eDeviceLocal = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, + eHostVisible = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, + eHostCoherent = VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, + eHostCached = VK_MEMORY_PROPERTY_HOST_CACHED_BIT, + eLazilyAllocated = VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT, + eProtected = VK_MEMORY_PROPERTY_PROTECTED_BIT, eDeviceCoherentAMD = VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD, eDeviceUncachedAMD = VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD }; @@ -5716,152 +8697,132 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case MemoryPropertyFlagBits::eDeviceLocal : return "DeviceLocal"; - case MemoryPropertyFlagBits::eHostVisible : return "HostVisible"; - case MemoryPropertyFlagBits::eHostCoherent : return "HostCoherent"; - case MemoryPropertyFlagBits::eHostCached : return "HostCached"; - case MemoryPropertyFlagBits::eLazilyAllocated : return "LazilyAllocated"; - case MemoryPropertyFlagBits::eProtected : return "Protected"; - case MemoryPropertyFlagBits::eDeviceCoherentAMD : return "DeviceCoherentAMD"; - case MemoryPropertyFlagBits::eDeviceUncachedAMD : return "DeviceUncachedAMD"; - default: return "invalid"; - } - } - - enum class ObjectEntryTypeNVX - { - eDescriptorSet = VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX, - ePipeline = VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX, - eIndexBuffer = VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX, - eVertexBuffer = VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX, - ePushConstant = VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX - }; - - VULKAN_HPP_INLINE std::string to_string( ObjectEntryTypeNVX value ) - { - switch ( value ) - { - case ObjectEntryTypeNVX::eDescriptorSet : return "DescriptorSet"; - case ObjectEntryTypeNVX::ePipeline : return "Pipeline"; - case ObjectEntryTypeNVX::eIndexBuffer : return "IndexBuffer"; - case ObjectEntryTypeNVX::eVertexBuffer : return "VertexBuffer"; - case ObjectEntryTypeNVX::ePushConstant : return "PushConstant"; - default: return "invalid"; - } - } - - enum class ObjectEntryUsageFlagBitsNVX - { - eGraphics = VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX, - eCompute = VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX - }; - - VULKAN_HPP_INLINE std::string to_string( ObjectEntryUsageFlagBitsNVX value ) - { - switch ( value ) - { - case ObjectEntryUsageFlagBitsNVX::eGraphics : return "Graphics"; - case ObjectEntryUsageFlagBitsNVX::eCompute : return "Compute"; - default: return "invalid"; + case MemoryPropertyFlagBits::eDeviceLocal: return "DeviceLocal"; + case MemoryPropertyFlagBits::eHostVisible: return "HostVisible"; + case MemoryPropertyFlagBits::eHostCoherent: return "HostCoherent"; + case MemoryPropertyFlagBits::eHostCached: return "HostCached"; + case MemoryPropertyFlagBits::eLazilyAllocated: return "LazilyAllocated"; + case MemoryPropertyFlagBits::eProtected: return "Protected"; + case MemoryPropertyFlagBits::eDeviceCoherentAMD: return "DeviceCoherentAMD"; + case MemoryPropertyFlagBits::eDeviceUncachedAMD: return "DeviceUncachedAMD"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class ObjectType { - eUnknown = VK_OBJECT_TYPE_UNKNOWN, - eInstance = VK_OBJECT_TYPE_INSTANCE, - ePhysicalDevice = VK_OBJECT_TYPE_PHYSICAL_DEVICE, - eDevice = VK_OBJECT_TYPE_DEVICE, - eQueue = VK_OBJECT_TYPE_QUEUE, - eSemaphore = VK_OBJECT_TYPE_SEMAPHORE, - eCommandBuffer = VK_OBJECT_TYPE_COMMAND_BUFFER, - eFence = VK_OBJECT_TYPE_FENCE, - eDeviceMemory = VK_OBJECT_TYPE_DEVICE_MEMORY, - eBuffer = VK_OBJECT_TYPE_BUFFER, - eImage = VK_OBJECT_TYPE_IMAGE, - eEvent = VK_OBJECT_TYPE_EVENT, - eQueryPool = VK_OBJECT_TYPE_QUERY_POOL, - eBufferView = VK_OBJECT_TYPE_BUFFER_VIEW, - eImageView = VK_OBJECT_TYPE_IMAGE_VIEW, - eShaderModule = VK_OBJECT_TYPE_SHADER_MODULE, - ePipelineCache = VK_OBJECT_TYPE_PIPELINE_CACHE, - ePipelineLayout = VK_OBJECT_TYPE_PIPELINE_LAYOUT, - eRenderPass = VK_OBJECT_TYPE_RENDER_PASS, - ePipeline = VK_OBJECT_TYPE_PIPELINE, - eDescriptorSetLayout = VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT, - eSampler = VK_OBJECT_TYPE_SAMPLER, - eDescriptorPool = VK_OBJECT_TYPE_DESCRIPTOR_POOL, - eDescriptorSet = VK_OBJECT_TYPE_DESCRIPTOR_SET, - eFramebuffer = VK_OBJECT_TYPE_FRAMEBUFFER, - eCommandPool = VK_OBJECT_TYPE_COMMAND_POOL, - eSamplerYcbcrConversion = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION, - eDescriptorUpdateTemplate = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE, - eSurfaceKHR = VK_OBJECT_TYPE_SURFACE_KHR, - eSwapchainKHR = VK_OBJECT_TYPE_SWAPCHAIN_KHR, - eDisplayKHR = VK_OBJECT_TYPE_DISPLAY_KHR, - eDisplayModeKHR = VK_OBJECT_TYPE_DISPLAY_MODE_KHR, - eDebugReportCallbackEXT = VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT, - eObjectTableNVX = VK_OBJECT_TYPE_OBJECT_TABLE_NVX, - eIndirectCommandsLayoutNVX = VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX, - eDebugUtilsMessengerEXT = VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT, - eValidationCacheEXT = VK_OBJECT_TYPE_VALIDATION_CACHE_EXT, - eAccelerationStructureNV = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV, - ePerformanceConfigurationINTEL = VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL, - eDescriptorUpdateTemplateKHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR, - eSamplerYcbcrConversionKHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR + // clang-format off + eUnknown = VK_OBJECT_TYPE_UNKNOWN + , eInstance = VK_OBJECT_TYPE_INSTANCE + , ePhysicalDevice = VK_OBJECT_TYPE_PHYSICAL_DEVICE + , eDevice = VK_OBJECT_TYPE_DEVICE + , eQueue = VK_OBJECT_TYPE_QUEUE + , eSemaphore = VK_OBJECT_TYPE_SEMAPHORE + , eCommandBuffer = VK_OBJECT_TYPE_COMMAND_BUFFER + , eFence = VK_OBJECT_TYPE_FENCE + , eDeviceMemory = VK_OBJECT_TYPE_DEVICE_MEMORY + , eBuffer = VK_OBJECT_TYPE_BUFFER + , eImage = VK_OBJECT_TYPE_IMAGE + , eEvent = VK_OBJECT_TYPE_EVENT + , eQueryPool = VK_OBJECT_TYPE_QUERY_POOL + , eBufferView = VK_OBJECT_TYPE_BUFFER_VIEW + , eImageView = VK_OBJECT_TYPE_IMAGE_VIEW + , eShaderModule = VK_OBJECT_TYPE_SHADER_MODULE + , ePipelineCache = VK_OBJECT_TYPE_PIPELINE_CACHE + , ePipelineLayout = VK_OBJECT_TYPE_PIPELINE_LAYOUT + , eRenderPass = VK_OBJECT_TYPE_RENDER_PASS + , ePipeline = VK_OBJECT_TYPE_PIPELINE + , eDescriptorSetLayout = VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT + , eSampler = VK_OBJECT_TYPE_SAMPLER + , eDescriptorPool = VK_OBJECT_TYPE_DESCRIPTOR_POOL + , eDescriptorSet = VK_OBJECT_TYPE_DESCRIPTOR_SET + , eFramebuffer = VK_OBJECT_TYPE_FRAMEBUFFER + , eCommandPool = VK_OBJECT_TYPE_COMMAND_POOL + , eSamplerYcbcrConversion = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION + , eDescriptorUpdateTemplate = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE + , eSurfaceKHR = VK_OBJECT_TYPE_SURFACE_KHR + , eSwapchainKHR = VK_OBJECT_TYPE_SWAPCHAIN_KHR + , eDisplayKHR = VK_OBJECT_TYPE_DISPLAY_KHR + , eDisplayModeKHR = VK_OBJECT_TYPE_DISPLAY_MODE_KHR + , eDebugReportCallbackEXT = VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + , eVideoSessionKHR = VK_OBJECT_TYPE_VIDEO_SESSION_KHR + , eVideoSessionParametersKHR = VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + , eDebugUtilsMessengerEXT = VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT + , eAccelerationStructureKHR = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR + , eValidationCacheEXT = VK_OBJECT_TYPE_VALIDATION_CACHE_EXT + , eAccelerationStructureNV = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV + , ePerformanceConfigurationINTEL = VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL + , eDeferredOperationKHR = VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR + , eIndirectCommandsLayoutNV = VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV + , ePrivateDataSlotEXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT + , eDescriptorUpdateTemplateKHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR + , eSamplerYcbcrConversionKHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR + // clang-format on }; VULKAN_HPP_INLINE std::string to_string( ObjectType value ) { switch ( value ) { - case ObjectType::eUnknown : return "Unknown"; - case ObjectType::eInstance : return "Instance"; - case ObjectType::ePhysicalDevice : return "PhysicalDevice"; - case ObjectType::eDevice : return "Device"; - case ObjectType::eQueue : return "Queue"; - case ObjectType::eSemaphore : return "Semaphore"; - case ObjectType::eCommandBuffer : return "CommandBuffer"; - case ObjectType::eFence : return "Fence"; - case ObjectType::eDeviceMemory : return "DeviceMemory"; - case ObjectType::eBuffer : return "Buffer"; - case ObjectType::eImage : return "Image"; - case ObjectType::eEvent : return "Event"; - case ObjectType::eQueryPool : return "QueryPool"; - case ObjectType::eBufferView : return "BufferView"; - case ObjectType::eImageView : return "ImageView"; - case ObjectType::eShaderModule : return "ShaderModule"; - case ObjectType::ePipelineCache : return "PipelineCache"; - case ObjectType::ePipelineLayout : return "PipelineLayout"; - case ObjectType::eRenderPass : return "RenderPass"; - case ObjectType::ePipeline : return "Pipeline"; - case ObjectType::eDescriptorSetLayout : return "DescriptorSetLayout"; - case ObjectType::eSampler : return "Sampler"; - case ObjectType::eDescriptorPool : return "DescriptorPool"; - case ObjectType::eDescriptorSet : return "DescriptorSet"; - case ObjectType::eFramebuffer : return "Framebuffer"; - case ObjectType::eCommandPool : return "CommandPool"; - case ObjectType::eSamplerYcbcrConversion : return "SamplerYcbcrConversion"; - case ObjectType::eDescriptorUpdateTemplate : return "DescriptorUpdateTemplate"; - case ObjectType::eSurfaceKHR : return "SurfaceKHR"; - case ObjectType::eSwapchainKHR : return "SwapchainKHR"; - case ObjectType::eDisplayKHR : return "DisplayKHR"; - case ObjectType::eDisplayModeKHR : return "DisplayModeKHR"; - case ObjectType::eDebugReportCallbackEXT : return "DebugReportCallbackEXT"; - case ObjectType::eObjectTableNVX : return "ObjectTableNVX"; - case ObjectType::eIndirectCommandsLayoutNVX : return "IndirectCommandsLayoutNVX"; - case ObjectType::eDebugUtilsMessengerEXT : return "DebugUtilsMessengerEXT"; - case ObjectType::eValidationCacheEXT : return "ValidationCacheEXT"; - case ObjectType::eAccelerationStructureNV : return "AccelerationStructureNV"; - case ObjectType::ePerformanceConfigurationINTEL : return "PerformanceConfigurationINTEL"; - default: return "invalid"; - } - } - - enum class PeerMemoryFeatureFlagBits - { - eCopySrc = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT, - eCopyDst = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT, + case ObjectType::eUnknown: return "Unknown"; + case ObjectType::eInstance: return "Instance"; + case ObjectType::ePhysicalDevice: return "PhysicalDevice"; + case ObjectType::eDevice: return "Device"; + case ObjectType::eQueue: return "Queue"; + case ObjectType::eSemaphore: return "Semaphore"; + case ObjectType::eCommandBuffer: return "CommandBuffer"; + case ObjectType::eFence: return "Fence"; + case ObjectType::eDeviceMemory: return "DeviceMemory"; + case ObjectType::eBuffer: return "Buffer"; + case ObjectType::eImage: return "Image"; + case ObjectType::eEvent: return "Event"; + case ObjectType::eQueryPool: return "QueryPool"; + case ObjectType::eBufferView: return "BufferView"; + case ObjectType::eImageView: return "ImageView"; + case ObjectType::eShaderModule: return "ShaderModule"; + case ObjectType::ePipelineCache: return "PipelineCache"; + case ObjectType::ePipelineLayout: return "PipelineLayout"; + case ObjectType::eRenderPass: return "RenderPass"; + case ObjectType::ePipeline: return "Pipeline"; + case ObjectType::eDescriptorSetLayout: return "DescriptorSetLayout"; + case ObjectType::eSampler: return "Sampler"; + case ObjectType::eDescriptorPool: return "DescriptorPool"; + case ObjectType::eDescriptorSet: return "DescriptorSet"; + case ObjectType::eFramebuffer: return "Framebuffer"; + case ObjectType::eCommandPool: return "CommandPool"; + case ObjectType::eSamplerYcbcrConversion: return "SamplerYcbcrConversion"; + case ObjectType::eDescriptorUpdateTemplate: return "DescriptorUpdateTemplate"; + case ObjectType::eSurfaceKHR: return "SurfaceKHR"; + case ObjectType::eSwapchainKHR: return "SwapchainKHR"; + case ObjectType::eDisplayKHR: return "DisplayKHR"; + case ObjectType::eDisplayModeKHR: return "DisplayModeKHR"; + case ObjectType::eDebugReportCallbackEXT: return "DebugReportCallbackEXT"; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + case ObjectType::eVideoSessionKHR: return "VideoSessionKHR"; + case ObjectType::eVideoSessionParametersKHR: return "VideoSessionParametersKHR"; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + case ObjectType::eDebugUtilsMessengerEXT: return "DebugUtilsMessengerEXT"; + case ObjectType::eAccelerationStructureKHR: return "AccelerationStructureKHR"; + case ObjectType::eValidationCacheEXT: return "ValidationCacheEXT"; + case ObjectType::eAccelerationStructureNV: return "AccelerationStructureNV"; + case ObjectType::ePerformanceConfigurationINTEL: return "PerformanceConfigurationINTEL"; + case ObjectType::eDeferredOperationKHR: return "DeferredOperationKHR"; + case ObjectType::eIndirectCommandsLayoutNV: return "IndirectCommandsLayoutNV"; + case ObjectType::ePrivateDataSlotEXT: return "PrivateDataSlotEXT"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + template + struct cpp_type + {}; + + enum class PeerMemoryFeatureFlagBits : VkPeerMemoryFeatureFlags + { + eCopySrc = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT, + eCopyDst = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT, eGenericSrc = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT, eGenericDst = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT }; @@ -5871,71 +8832,73 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case PeerMemoryFeatureFlagBits::eCopySrc : return "CopySrc"; - case PeerMemoryFeatureFlagBits::eCopyDst : return "CopyDst"; - case PeerMemoryFeatureFlagBits::eGenericSrc : return "GenericSrc"; - case PeerMemoryFeatureFlagBits::eGenericDst : return "GenericDst"; - default: return "invalid"; + case PeerMemoryFeatureFlagBits::eCopySrc: return "CopySrc"; + case PeerMemoryFeatureFlagBits::eCopyDst: return "CopyDst"; + case PeerMemoryFeatureFlagBits::eGenericSrc: return "GenericSrc"; + case PeerMemoryFeatureFlagBits::eGenericDst: return "GenericDst"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class PerformanceConfigurationTypeINTEL { - eCommandQueueMetricsDiscoveryActivated = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL + eCommandQueueMetricsDiscoveryActivated = + VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL }; VULKAN_HPP_INLINE std::string to_string( PerformanceConfigurationTypeINTEL value ) { switch ( value ) { - case PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated : return "CommandQueueMetricsDiscoveryActivated"; - default: return "invalid"; + case PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated: + return "CommandQueueMetricsDiscoveryActivated"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class PerformanceCounterDescriptionFlagBitsKHR + enum class PerformanceCounterDescriptionFlagBitsKHR : VkPerformanceCounterDescriptionFlagsKHR { - ePerformanceImpacting = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR, - eConcurrentlyImpacted = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR + ePerformanceImpacting = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR, + eConcurrentlyImpacted = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR }; VULKAN_HPP_INLINE std::string to_string( PerformanceCounterDescriptionFlagBitsKHR value ) { switch ( value ) { - case PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting : return "PerformanceImpacting"; - case PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted : return "ConcurrentlyImpacted"; - default: return "invalid"; + case PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting: return "PerformanceImpacting"; + case PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted: return "ConcurrentlyImpacted"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class PerformanceCounterScopeKHR { - eCommandBuffer = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, - eRenderPass = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, - eCommand = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR, + eCommandBuffer = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, + eRenderPass = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, + eCommand = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR, eVkQueryScopeCommandBuffer = VK_QUERY_SCOPE_COMMAND_BUFFER_KHR, - eVkQueryScopeRenderPass = VK_QUERY_SCOPE_RENDER_PASS_KHR, - eVkQueryScopeCommand = VK_QUERY_SCOPE_COMMAND_KHR + eVkQueryScopeCommand = VK_QUERY_SCOPE_COMMAND_KHR, + eVkQueryScopeRenderPass = VK_QUERY_SCOPE_RENDER_PASS_KHR }; VULKAN_HPP_INLINE std::string to_string( PerformanceCounterScopeKHR value ) { switch ( value ) { - case PerformanceCounterScopeKHR::eCommandBuffer : return "CommandBuffer"; - case PerformanceCounterScopeKHR::eRenderPass : return "RenderPass"; - case PerformanceCounterScopeKHR::eCommand : return "Command"; - default: return "invalid"; + case PerformanceCounterScopeKHR::eCommandBuffer: return "CommandBuffer"; + case PerformanceCounterScopeKHR::eRenderPass: return "RenderPass"; + case PerformanceCounterScopeKHR::eCommand: return "Command"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class PerformanceCounterStorageKHR { - eInt32 = VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR, - eInt64 = VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR, - eUint32 = VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR, - eUint64 = VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR, + eInt32 = VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR, + eInt64 = VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR, + eUint32 = VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR, + eUint64 = VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR, eFloat32 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR, eFloat64 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR }; @@ -5944,53 +8907,53 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case PerformanceCounterStorageKHR::eInt32 : return "Int32"; - case PerformanceCounterStorageKHR::eInt64 : return "Int64"; - case PerformanceCounterStorageKHR::eUint32 : return "Uint32"; - case PerformanceCounterStorageKHR::eUint64 : return "Uint64"; - case PerformanceCounterStorageKHR::eFloat32 : return "Float32"; - case PerformanceCounterStorageKHR::eFloat64 : return "Float64"; - default: return "invalid"; + case PerformanceCounterStorageKHR::eInt32: return "Int32"; + case PerformanceCounterStorageKHR::eInt64: return "Int64"; + case PerformanceCounterStorageKHR::eUint32: return "Uint32"; + case PerformanceCounterStorageKHR::eUint64: return "Uint64"; + case PerformanceCounterStorageKHR::eFloat32: return "Float32"; + case PerformanceCounterStorageKHR::eFloat64: return "Float64"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class PerformanceCounterUnitKHR { - eGeneric = VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR, - ePercentage = VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR, - eNanoseconds = VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR, - eBytes = VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR, + eGeneric = VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR, + ePercentage = VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR, + eNanoseconds = VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR, + eBytes = VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR, eBytesPerSecond = VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR, - eKelvin = VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR, - eWatts = VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR, - eVolts = VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR, - eAmps = VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR, - eHertz = VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR, - eCycles = VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR + eKelvin = VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR, + eWatts = VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR, + eVolts = VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR, + eAmps = VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR, + eHertz = VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR, + eCycles = VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR }; VULKAN_HPP_INLINE std::string to_string( PerformanceCounterUnitKHR value ) { switch ( value ) { - case PerformanceCounterUnitKHR::eGeneric : return "Generic"; - case PerformanceCounterUnitKHR::ePercentage : return "Percentage"; - case PerformanceCounterUnitKHR::eNanoseconds : return "Nanoseconds"; - case PerformanceCounterUnitKHR::eBytes : return "Bytes"; - case PerformanceCounterUnitKHR::eBytesPerSecond : return "BytesPerSecond"; - case PerformanceCounterUnitKHR::eKelvin : return "Kelvin"; - case PerformanceCounterUnitKHR::eWatts : return "Watts"; - case PerformanceCounterUnitKHR::eVolts : return "Volts"; - case PerformanceCounterUnitKHR::eAmps : return "Amps"; - case PerformanceCounterUnitKHR::eHertz : return "Hertz"; - case PerformanceCounterUnitKHR::eCycles : return "Cycles"; - default: return "invalid"; + case PerformanceCounterUnitKHR::eGeneric: return "Generic"; + case PerformanceCounterUnitKHR::ePercentage: return "Percentage"; + case PerformanceCounterUnitKHR::eNanoseconds: return "Nanoseconds"; + case PerformanceCounterUnitKHR::eBytes: return "Bytes"; + case PerformanceCounterUnitKHR::eBytesPerSecond: return "BytesPerSecond"; + case PerformanceCounterUnitKHR::eKelvin: return "Kelvin"; + case PerformanceCounterUnitKHR::eWatts: return "Watts"; + case PerformanceCounterUnitKHR::eVolts: return "Volts"; + case PerformanceCounterUnitKHR::eAmps: return "Amps"; + case PerformanceCounterUnitKHR::eHertz: return "Hertz"; + case PerformanceCounterUnitKHR::eCycles: return "Cycles"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class PerformanceOverrideTypeINTEL { - eNullHardware = VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL, + eNullHardware = VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL, eFlushGpuCaches = VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL }; @@ -5998,15 +8961,15 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case PerformanceOverrideTypeINTEL::eNullHardware : return "NullHardware"; - case PerformanceOverrideTypeINTEL::eFlushGpuCaches : return "FlushGpuCaches"; - default: return "invalid"; + case PerformanceOverrideTypeINTEL::eNullHardware: return "NullHardware"; + case PerformanceOverrideTypeINTEL::eFlushGpuCaches: return "FlushGpuCaches"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class PerformanceParameterTypeINTEL { - eHwCountersSupported = VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL, + eHwCountersSupported = VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL, eStreamMarkerValidBits = VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL }; @@ -6014,9 +8977,9 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case PerformanceParameterTypeINTEL::eHwCountersSupported : return "HwCountersSupported"; - case PerformanceParameterTypeINTEL::eStreamMarkerValidBits : return "StreamMarkerValidBits"; - default: return "invalid"; + case PerformanceParameterTypeINTEL::eHwCountersSupported: return "HwCountersSupported"; + case PerformanceParameterTypeINTEL::eStreamMarkerValidBits: return "StreamMarkerValidBits"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } @@ -6024,8 +8987,8 @@ namespace VULKAN_HPP_NAMESPACE { eUint32 = VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL, eUint64 = VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL, - eFloat = VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL, - eBool = VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL, + eFloat = VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL, + eBool = VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL, eString = VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL }; @@ -6033,61 +8996,68 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case PerformanceValueTypeINTEL::eUint32 : return "Uint32"; - case PerformanceValueTypeINTEL::eUint64 : return "Uint64"; - case PerformanceValueTypeINTEL::eFloat : return "Float"; - case PerformanceValueTypeINTEL::eBool : return "Bool"; - case PerformanceValueTypeINTEL::eString : return "String"; - default: return "invalid"; + case PerformanceValueTypeINTEL::eUint32: return "Uint32"; + case PerformanceValueTypeINTEL::eUint64: return "Uint64"; + case PerformanceValueTypeINTEL::eFloat: return "Float"; + case PerformanceValueTypeINTEL::eBool: return "Bool"; + case PerformanceValueTypeINTEL::eString: return "String"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class PhysicalDeviceType { - eOther = VK_PHYSICAL_DEVICE_TYPE_OTHER, + eOther = VK_PHYSICAL_DEVICE_TYPE_OTHER, eIntegratedGpu = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU, - eDiscreteGpu = VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU, - eVirtualGpu = VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU, - eCpu = VK_PHYSICAL_DEVICE_TYPE_CPU + eDiscreteGpu = VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU, + eVirtualGpu = VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU, + eCpu = VK_PHYSICAL_DEVICE_TYPE_CPU }; VULKAN_HPP_INLINE std::string to_string( PhysicalDeviceType value ) { switch ( value ) { - case PhysicalDeviceType::eOther : return "Other"; - case PhysicalDeviceType::eIntegratedGpu : return "IntegratedGpu"; - case PhysicalDeviceType::eDiscreteGpu : return "DiscreteGpu"; - case PhysicalDeviceType::eVirtualGpu : return "VirtualGpu"; - case PhysicalDeviceType::eCpu : return "Cpu"; - default: return "invalid"; + case PhysicalDeviceType::eOther: return "Other"; + case PhysicalDeviceType::eIntegratedGpu: return "IntegratedGpu"; + case PhysicalDeviceType::eDiscreteGpu: return "DiscreteGpu"; + case PhysicalDeviceType::eVirtualGpu: return "VirtualGpu"; + case PhysicalDeviceType::eCpu: return "Cpu"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class PipelineBindPoint { - eGraphics = VK_PIPELINE_BIND_POINT_GRAPHICS, - eCompute = VK_PIPELINE_BIND_POINT_COMPUTE, - eRayTracingNV = VK_PIPELINE_BIND_POINT_RAY_TRACING_NV + eGraphics = VK_PIPELINE_BIND_POINT_GRAPHICS, + eCompute = VK_PIPELINE_BIND_POINT_COMPUTE, + eRayTracingKHR = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, + eRayTracingNV = VK_PIPELINE_BIND_POINT_RAY_TRACING_NV }; VULKAN_HPP_INLINE std::string to_string( PipelineBindPoint value ) { switch ( value ) { - case PipelineBindPoint::eGraphics : return "Graphics"; - case PipelineBindPoint::eCompute : return "Compute"; - case PipelineBindPoint::eRayTracingNV : return "RayTracingNV"; - default: return "invalid"; + case PipelineBindPoint::eGraphics: return "Graphics"; + case PipelineBindPoint::eCompute: return "Compute"; + case PipelineBindPoint::eRayTracingKHR: return "RayTracingKHR"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class PipelineCacheCreateFlagBits - {}; + enum class PipelineCacheCreateFlagBits : VkPipelineCacheCreateFlags + { + eExternallySynchronizedEXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT + }; - VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlagBits ) + VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlagBits value ) { - return "(void)"; + switch ( value ) + { + case PipelineCacheCreateFlagBits::eExternallySynchronizedEXT: return "ExternallySynchronizedEXT"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } } enum class PipelineCacheHeaderVersion @@ -6099,96 +9069,98 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case PipelineCacheHeaderVersion::eOne : return "One"; - default: return "invalid"; + case PipelineCacheHeaderVersion::eOne: return "One"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class PipelineColorBlendStateCreateFlagBits - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlagBits ) + enum class PipelineCompilerControlFlagBitsAMD : VkPipelineCompilerControlFlagsAMD { - return "(void)"; - } - - enum class PipelineCompilerControlFlagBitsAMD - {}; + }; VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagBitsAMD ) { return "(void)"; } - enum class PipelineCreateFlagBits - { - eDisableOptimization = VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT, - eAllowDerivatives = VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT, - eDerivative = VK_PIPELINE_CREATE_DERIVATIVE_BIT, - eViewIndexFromDeviceIndex = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, - eDispatchBase = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, - eDeferCompileNV = VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV, - eCaptureStatisticsKHR = VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR, + enum class PipelineCreateFlagBits : VkPipelineCreateFlags + { + eDisableOptimization = VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT, + eAllowDerivatives = VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT, + eDerivative = VK_PIPELINE_CREATE_DERIVATIVE_BIT, + eViewIndexFromDeviceIndex = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, + eDispatchBase = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, + eRayTracingNoNullAnyHitShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, + eRayTracingNoNullClosestHitShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, + eRayTracingNoNullMissShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, + eRayTracingNoNullIntersectionShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, + eRayTracingSkipTrianglesKHR = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR, + eRayTracingSkipAabbsKHR = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR, + eRayTracingShaderGroupHandleCaptureReplayKHR = + VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR, + eDeferCompileNV = VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV, + eCaptureStatisticsKHR = VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR, eCaptureInternalRepresentationsKHR = VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR, - eViewIndexFromDeviceIndexKHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR, - eDispatchBaseKHR = VK_PIPELINE_CREATE_DISPATCH_BASE_KHR + eIndirectBindableNV = VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, + eLibraryKHR = VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, + eFailOnPipelineCompileRequiredEXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT, + eEarlyReturnOnFailureEXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT, + eDispatchBaseKHR = VK_PIPELINE_CREATE_DISPATCH_BASE_KHR, + eViewIndexFromDeviceIndexKHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR }; VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlagBits value ) { switch ( value ) { - case PipelineCreateFlagBits::eDisableOptimization : return "DisableOptimization"; - case PipelineCreateFlagBits::eAllowDerivatives : return "AllowDerivatives"; - case PipelineCreateFlagBits::eDerivative : return "Derivative"; - case PipelineCreateFlagBits::eViewIndexFromDeviceIndex : return "ViewIndexFromDeviceIndex"; - case PipelineCreateFlagBits::eDispatchBase : return "DispatchBase"; - case PipelineCreateFlagBits::eDeferCompileNV : return "DeferCompileNV"; - case PipelineCreateFlagBits::eCaptureStatisticsKHR : return "CaptureStatisticsKHR"; - case PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR : return "CaptureInternalRepresentationsKHR"; - default: return "invalid"; - } - } - - enum class PipelineCreationFeedbackFlagBitsEXT - { - eValid = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT, + case PipelineCreateFlagBits::eDisableOptimization: return "DisableOptimization"; + case PipelineCreateFlagBits::eAllowDerivatives: return "AllowDerivatives"; + case PipelineCreateFlagBits::eDerivative: return "Derivative"; + case PipelineCreateFlagBits::eViewIndexFromDeviceIndex: return "ViewIndexFromDeviceIndex"; + case PipelineCreateFlagBits::eDispatchBase: return "DispatchBase"; + case PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR: return "RayTracingNoNullAnyHitShadersKHR"; + case PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR: return "RayTracingNoNullClosestHitShadersKHR"; + case PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR: return "RayTracingNoNullMissShadersKHR"; + case PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR: + return "RayTracingNoNullIntersectionShadersKHR"; + case PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR: return "RayTracingSkipTrianglesKHR"; + case PipelineCreateFlagBits::eRayTracingSkipAabbsKHR: return "RayTracingSkipAabbsKHR"; + case PipelineCreateFlagBits::eRayTracingShaderGroupHandleCaptureReplayKHR: + return "RayTracingShaderGroupHandleCaptureReplayKHR"; + case PipelineCreateFlagBits::eDeferCompileNV: return "DeferCompileNV"; + case PipelineCreateFlagBits::eCaptureStatisticsKHR: return "CaptureStatisticsKHR"; + case PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR: return "CaptureInternalRepresentationsKHR"; + case PipelineCreateFlagBits::eIndirectBindableNV: return "IndirectBindableNV"; + case PipelineCreateFlagBits::eLibraryKHR: return "LibraryKHR"; + case PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT: return "FailOnPipelineCompileRequiredEXT"; + case PipelineCreateFlagBits::eEarlyReturnOnFailureEXT: return "EarlyReturnOnFailureEXT"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class PipelineCreationFeedbackFlagBitsEXT : VkPipelineCreationFeedbackFlagsEXT + { + eValid = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT, eApplicationPipelineCacheHit = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT, - eBasePipelineAcceleration = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT + eBasePipelineAcceleration = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT }; VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagBitsEXT value ) { switch ( value ) { - case PipelineCreationFeedbackFlagBitsEXT::eValid : return "Valid"; - case PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit : return "ApplicationPipelineCacheHit"; - case PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration : return "BasePipelineAcceleration"; - default: return "invalid"; + case PipelineCreationFeedbackFlagBitsEXT::eValid: return "Valid"; + case PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit: return "ApplicationPipelineCacheHit"; + case PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration: return "BasePipelineAcceleration"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class PipelineDepthStencilStateCreateFlagBits - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlagBits ) - { - return "(void)"; - } - - enum class PipelineDynamicStateCreateFlagBits - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlagBits ) - { - return "(void)"; - } - enum class PipelineExecutableStatisticFormatKHR { - eBool32 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR, - eInt64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR, - eUint64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR, + eBool32 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR, + eInt64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR, + eUint64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR, eFloat64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR }; @@ -6196,153 +9168,196 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case PipelineExecutableStatisticFormatKHR::eBool32 : return "Bool32"; - case PipelineExecutableStatisticFormatKHR::eInt64 : return "Int64"; - case PipelineExecutableStatisticFormatKHR::eUint64 : return "Uint64"; - case PipelineExecutableStatisticFormatKHR::eFloat64 : return "Float64"; - default: return "invalid"; + case PipelineExecutableStatisticFormatKHR::eBool32: return "Bool32"; + case PipelineExecutableStatisticFormatKHR::eInt64: return "Int64"; + case PipelineExecutableStatisticFormatKHR::eUint64: return "Uint64"; + case PipelineExecutableStatisticFormatKHR::eFloat64: return "Float64"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class PipelineInputAssemblyStateCreateFlagBits - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlagBits ) - { - return "(void)"; - } - - enum class PipelineLayoutCreateFlagBits - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlagBits ) - { - return "(void)"; - } - - enum class PipelineMultisampleStateCreateFlagBits - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlagBits ) - { - return "(void)"; - } - - enum class PipelineRasterizationStateCreateFlagBits - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlagBits ) - { - return "(void)"; - } - - enum class PipelineShaderStageCreateFlagBits + enum class PipelineShaderStageCreateFlagBits : VkPipelineShaderStageCreateFlags { eAllowVaryingSubgroupSizeEXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT, - eRequireFullSubgroupsEXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT + eRequireFullSubgroupsEXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT }; VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlagBits value ) { switch ( value ) { - case PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT : return "AllowVaryingSubgroupSizeEXT"; - case PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT : return "RequireFullSubgroupsEXT"; - default: return "invalid"; - } - } - - enum class PipelineStageFlagBits - { - eTopOfPipe = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, - eDrawIndirect = VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT, - eVertexInput = VK_PIPELINE_STAGE_VERTEX_INPUT_BIT, - eVertexShader = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, - eTessellationControlShader = VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, - eTessellationEvaluationShader = VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, - eGeometryShader = VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, - eFragmentShader = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, - eEarlyFragmentTests = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT, - eLateFragmentTests = VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT, - eColorAttachmentOutput = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, - eComputeShader = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, - eTransfer = VK_PIPELINE_STAGE_TRANSFER_BIT, - eBottomOfPipe = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, - eHost = VK_PIPELINE_STAGE_HOST_BIT, - eAllGraphics = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, - eAllCommands = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, - eTransformFeedbackEXT = VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT, - eConditionalRenderingEXT = VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT, - eCommandProcessNVX = VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX, - eShadingRateImageNV = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV, - eRayTracingShaderNV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV, - eAccelerationStructureBuildNV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV, - eTaskShaderNV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV, - eMeshShaderNV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV, - eFragmentDensityProcessEXT = VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT + case PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT: return "AllowVaryingSubgroupSizeEXT"; + case PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT: return "RequireFullSubgroupsEXT"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class PipelineStageFlagBits : VkPipelineStageFlags + { + eTopOfPipe = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, + eDrawIndirect = VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT, + eVertexInput = VK_PIPELINE_STAGE_VERTEX_INPUT_BIT, + eVertexShader = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, + eTessellationControlShader = VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, + eTessellationEvaluationShader = VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, + eGeometryShader = VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, + eFragmentShader = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, + eEarlyFragmentTests = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT, + eLateFragmentTests = VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT, + eColorAttachmentOutput = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, + eComputeShader = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, + eTransfer = VK_PIPELINE_STAGE_TRANSFER_BIT, + eBottomOfPipe = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, + eHost = VK_PIPELINE_STAGE_HOST_BIT, + eAllGraphics = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, + eAllCommands = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, + eTransformFeedbackEXT = VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT, + eConditionalRenderingEXT = VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT, + eAccelerationStructureBuildKHR = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, + eRayTracingShaderKHR = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR, + eShadingRateImageNV = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV, + eTaskShaderNV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV, + eMeshShaderNV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV, + eFragmentDensityProcessEXT = VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT, + eCommandPreprocessNV = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV, + eNoneKHR = VK_PIPELINE_STAGE_NONE_KHR, + eAccelerationStructureBuildNV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV, + eFragmentShadingRateAttachmentKHR = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, + eRayTracingShaderNV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV }; VULKAN_HPP_INLINE std::string to_string( PipelineStageFlagBits value ) { switch ( value ) { - case PipelineStageFlagBits::eTopOfPipe : return "TopOfPipe"; - case PipelineStageFlagBits::eDrawIndirect : return "DrawIndirect"; - case PipelineStageFlagBits::eVertexInput : return "VertexInput"; - case PipelineStageFlagBits::eVertexShader : return "VertexShader"; - case PipelineStageFlagBits::eTessellationControlShader : return "TessellationControlShader"; - case PipelineStageFlagBits::eTessellationEvaluationShader : return "TessellationEvaluationShader"; - case PipelineStageFlagBits::eGeometryShader : return "GeometryShader"; - case PipelineStageFlagBits::eFragmentShader : return "FragmentShader"; - case PipelineStageFlagBits::eEarlyFragmentTests : return "EarlyFragmentTests"; - case PipelineStageFlagBits::eLateFragmentTests : return "LateFragmentTests"; - case PipelineStageFlagBits::eColorAttachmentOutput : return "ColorAttachmentOutput"; - case PipelineStageFlagBits::eComputeShader : return "ComputeShader"; - case PipelineStageFlagBits::eTransfer : return "Transfer"; - case PipelineStageFlagBits::eBottomOfPipe : return "BottomOfPipe"; - case PipelineStageFlagBits::eHost : return "Host"; - case PipelineStageFlagBits::eAllGraphics : return "AllGraphics"; - case PipelineStageFlagBits::eAllCommands : return "AllCommands"; - case PipelineStageFlagBits::eTransformFeedbackEXT : return "TransformFeedbackEXT"; - case PipelineStageFlagBits::eConditionalRenderingEXT : return "ConditionalRenderingEXT"; - case PipelineStageFlagBits::eCommandProcessNVX : return "CommandProcessNVX"; - case PipelineStageFlagBits::eShadingRateImageNV : return "ShadingRateImageNV"; - case PipelineStageFlagBits::eRayTracingShaderNV : return "RayTracingShaderNV"; - case PipelineStageFlagBits::eAccelerationStructureBuildNV : return "AccelerationStructureBuildNV"; - case PipelineStageFlagBits::eTaskShaderNV : return "TaskShaderNV"; - case PipelineStageFlagBits::eMeshShaderNV : return "MeshShaderNV"; - case PipelineStageFlagBits::eFragmentDensityProcessEXT : return "FragmentDensityProcessEXT"; - default: return "invalid"; - } - } - - enum class PipelineTessellationStateCreateFlagBits - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlagBits ) - { - return "(void)"; - } - - enum class PipelineVertexInputStateCreateFlagBits - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlagBits ) + case PipelineStageFlagBits::eTopOfPipe: return "TopOfPipe"; + case PipelineStageFlagBits::eDrawIndirect: return "DrawIndirect"; + case PipelineStageFlagBits::eVertexInput: return "VertexInput"; + case PipelineStageFlagBits::eVertexShader: return "VertexShader"; + case PipelineStageFlagBits::eTessellationControlShader: return "TessellationControlShader"; + case PipelineStageFlagBits::eTessellationEvaluationShader: return "TessellationEvaluationShader"; + case PipelineStageFlagBits::eGeometryShader: return "GeometryShader"; + case PipelineStageFlagBits::eFragmentShader: return "FragmentShader"; + case PipelineStageFlagBits::eEarlyFragmentTests: return "EarlyFragmentTests"; + case PipelineStageFlagBits::eLateFragmentTests: return "LateFragmentTests"; + case PipelineStageFlagBits::eColorAttachmentOutput: return "ColorAttachmentOutput"; + case PipelineStageFlagBits::eComputeShader: return "ComputeShader"; + case PipelineStageFlagBits::eTransfer: return "Transfer"; + case PipelineStageFlagBits::eBottomOfPipe: return "BottomOfPipe"; + case PipelineStageFlagBits::eHost: return "Host"; + case PipelineStageFlagBits::eAllGraphics: return "AllGraphics"; + case PipelineStageFlagBits::eAllCommands: return "AllCommands"; + case PipelineStageFlagBits::eTransformFeedbackEXT: return "TransformFeedbackEXT"; + case PipelineStageFlagBits::eConditionalRenderingEXT: return "ConditionalRenderingEXT"; + case PipelineStageFlagBits::eAccelerationStructureBuildKHR: return "AccelerationStructureBuildKHR"; + case PipelineStageFlagBits::eRayTracingShaderKHR: return "RayTracingShaderKHR"; + case PipelineStageFlagBits::eShadingRateImageNV: return "ShadingRateImageNV"; + case PipelineStageFlagBits::eTaskShaderNV: return "TaskShaderNV"; + case PipelineStageFlagBits::eMeshShaderNV: return "MeshShaderNV"; + case PipelineStageFlagBits::eFragmentDensityProcessEXT: return "FragmentDensityProcessEXT"; + case PipelineStageFlagBits::eCommandPreprocessNV: return "CommandPreprocessNV"; + case PipelineStageFlagBits::eNoneKHR: return "NoneKHR"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class PipelineStageFlagBits2KHR : VkPipelineStageFlags2KHR + { + // clang-format off + eNone = VK_PIPELINE_STAGE_2_NONE_KHR + , eTopOfPipe = VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR + , eDrawIndirect = VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR + , eVertexInput = VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR + , eVertexShader = VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR + , eTessellationControlShader = VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR + , eTessellationEvaluationShader = VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR + , eGeometryShader = VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR + , eFragmentShader = VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR + , eEarlyFragmentTests = VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR + , eLateFragmentTests = VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR + , eColorAttachmentOutput = VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR + , eComputeShader = VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR + , eAllTransfer = VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR + , eBottomOfPipe = VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR + , eHost = VK_PIPELINE_STAGE_2_HOST_BIT_KHR + , eAllGraphics = VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR + , eAllCommands = VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR + , eCopy = VK_PIPELINE_STAGE_2_COPY_BIT_KHR + , eResolve = VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR + , eBlit = VK_PIPELINE_STAGE_2_BLIT_BIT_KHR + , eClear = VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR + , eIndexInput = VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR + , eVertexAttributeInput = VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR + , ePreRasterizationShaders = VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + , eVideoDecode = VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR + , eVideoEncode = VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + , eTransformFeedbackExt = VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT + , eConditionalRenderingExt = VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT + , eCommandPreprocessNv = VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV + , eFragmentShadingRateAttachment = VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR + , eAccelerationStructureBuild = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR + , eRayTracingShader = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR + , eFragmentDensityProcessExt = VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT + , eTaskShaderNv = VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV + , eMeshShaderNv = VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV + , eAccelerationStructureBuildNv = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV + , eRayTracingShaderNv = VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV + , eShadingRateImageNv = VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV + , eTransfer = VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR + // clang-format on + }; + + VULKAN_HPP_INLINE std::string to_string( PipelineStageFlagBits2KHR value ) { - return "(void)"; - } - - enum class PipelineViewportStateCreateFlagBits - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlagBits ) - { - return "(void)"; + switch ( value ) + { + case PipelineStageFlagBits2KHR::eNone: return "None"; + case PipelineStageFlagBits2KHR::eTopOfPipe: return "TopOfPipe"; + case PipelineStageFlagBits2KHR::eDrawIndirect: return "DrawIndirect"; + case PipelineStageFlagBits2KHR::eVertexInput: return "VertexInput"; + case PipelineStageFlagBits2KHR::eVertexShader: return "VertexShader"; + case PipelineStageFlagBits2KHR::eTessellationControlShader: return "TessellationControlShader"; + case PipelineStageFlagBits2KHR::eTessellationEvaluationShader: return "TessellationEvaluationShader"; + case PipelineStageFlagBits2KHR::eGeometryShader: return "GeometryShader"; + case PipelineStageFlagBits2KHR::eFragmentShader: return "FragmentShader"; + case PipelineStageFlagBits2KHR::eEarlyFragmentTests: return "EarlyFragmentTests"; + case PipelineStageFlagBits2KHR::eLateFragmentTests: return "LateFragmentTests"; + case PipelineStageFlagBits2KHR::eColorAttachmentOutput: return "ColorAttachmentOutput"; + case PipelineStageFlagBits2KHR::eComputeShader: return "ComputeShader"; + case PipelineStageFlagBits2KHR::eAllTransfer: return "AllTransfer"; + case PipelineStageFlagBits2KHR::eBottomOfPipe: return "BottomOfPipe"; + case PipelineStageFlagBits2KHR::eHost: return "Host"; + case PipelineStageFlagBits2KHR::eAllGraphics: return "AllGraphics"; + case PipelineStageFlagBits2KHR::eAllCommands: return "AllCommands"; + case PipelineStageFlagBits2KHR::eCopy: return "Copy"; + case PipelineStageFlagBits2KHR::eResolve: return "Resolve"; + case PipelineStageFlagBits2KHR::eBlit: return "Blit"; + case PipelineStageFlagBits2KHR::eClear: return "Clear"; + case PipelineStageFlagBits2KHR::eIndexInput: return "IndexInput"; + case PipelineStageFlagBits2KHR::eVertexAttributeInput: return "VertexAttributeInput"; + case PipelineStageFlagBits2KHR::ePreRasterizationShaders: return "PreRasterizationShaders"; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + case PipelineStageFlagBits2KHR::eVideoDecode: return "VideoDecode"; + case PipelineStageFlagBits2KHR::eVideoEncode: return "VideoEncode"; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + case PipelineStageFlagBits2KHR::eTransformFeedbackExt: return "TransformFeedbackExt"; + case PipelineStageFlagBits2KHR::eConditionalRenderingExt: return "ConditionalRenderingExt"; + case PipelineStageFlagBits2KHR::eCommandPreprocessNv: return "CommandPreprocessNv"; + case PipelineStageFlagBits2KHR::eFragmentShadingRateAttachment: return "FragmentShadingRateAttachment"; + case PipelineStageFlagBits2KHR::eAccelerationStructureBuild: return "AccelerationStructureBuild"; + case PipelineStageFlagBits2KHR::eRayTracingShader: return "RayTracingShader"; + case PipelineStageFlagBits2KHR::eFragmentDensityProcessExt: return "FragmentDensityProcessExt"; + case PipelineStageFlagBits2KHR::eTaskShaderNv: return "TaskShaderNv"; + case PipelineStageFlagBits2KHR::eMeshShaderNv: return "MeshShaderNv"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } } enum class PointClippingBehavior { - eAllClipPlanes = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES, + eAllClipPlanes = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES, eUserClipPlanesOnly = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY }; using PointClippingBehaviorKHR = PointClippingBehavior; @@ -6351,17 +9366,17 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case PointClippingBehavior::eAllClipPlanes : return "AllClipPlanes"; - case PointClippingBehavior::eUserClipPlanesOnly : return "UserClipPlanesOnly"; - default: return "invalid"; + case PointClippingBehavior::eAllClipPlanes: return "AllClipPlanes"; + case PointClippingBehavior::eUserClipPlanesOnly: return "UserClipPlanesOnly"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class PolygonMode { - eFill = VK_POLYGON_MODE_FILL, - eLine = VK_POLYGON_MODE_LINE, - ePoint = VK_POLYGON_MODE_POINT, + eFill = VK_POLYGON_MODE_FILL, + eLine = VK_POLYGON_MODE_LINE, + ePoint = VK_POLYGON_MODE_POINT, eFillRectangleNV = VK_POLYGON_MODE_FILL_RECTANGLE_NV }; @@ -6369,21 +9384,21 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case PolygonMode::eFill : return "Fill"; - case PolygonMode::eLine : return "Line"; - case PolygonMode::ePoint : return "Point"; - case PolygonMode::eFillRectangleNV : return "FillRectangleNV"; - default: return "invalid"; + case PolygonMode::eFill: return "Fill"; + case PolygonMode::eLine: return "Line"; + case PolygonMode::ePoint: return "Point"; + case PolygonMode::eFillRectangleNV: return "FillRectangleNV"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class PresentModeKHR { - eImmediate = VK_PRESENT_MODE_IMMEDIATE_KHR, - eMailbox = VK_PRESENT_MODE_MAILBOX_KHR, - eFifo = VK_PRESENT_MODE_FIFO_KHR, - eFifoRelaxed = VK_PRESENT_MODE_FIFO_RELAXED_KHR, - eSharedDemandRefresh = VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR, + eImmediate = VK_PRESENT_MODE_IMMEDIATE_KHR, + eMailbox = VK_PRESENT_MODE_MAILBOX_KHR, + eFifo = VK_PRESENT_MODE_FIFO_KHR, + eFifoRelaxed = VK_PRESENT_MODE_FIFO_RELAXED_KHR, + eSharedDemandRefresh = VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR, eSharedContinuousRefresh = VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR }; @@ -6391,51 +9406,60 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case PresentModeKHR::eImmediate : return "Immediate"; - case PresentModeKHR::eMailbox : return "Mailbox"; - case PresentModeKHR::eFifo : return "Fifo"; - case PresentModeKHR::eFifoRelaxed : return "FifoRelaxed"; - case PresentModeKHR::eSharedDemandRefresh : return "SharedDemandRefresh"; - case PresentModeKHR::eSharedContinuousRefresh : return "SharedContinuousRefresh"; - default: return "invalid"; + case PresentModeKHR::eImmediate: return "Immediate"; + case PresentModeKHR::eMailbox: return "Mailbox"; + case PresentModeKHR::eFifo: return "Fifo"; + case PresentModeKHR::eFifoRelaxed: return "FifoRelaxed"; + case PresentModeKHR::eSharedDemandRefresh: return "SharedDemandRefresh"; + case PresentModeKHR::eSharedContinuousRefresh: return "SharedContinuousRefresh"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class PrimitiveTopology { - ePointList = VK_PRIMITIVE_TOPOLOGY_POINT_LIST, - eLineList = VK_PRIMITIVE_TOPOLOGY_LINE_LIST, - eLineStrip = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, - eTriangleList = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, - eTriangleStrip = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, - eTriangleFan = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN, - eLineListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, - eLineStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY, - eTriangleListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, + ePointList = VK_PRIMITIVE_TOPOLOGY_POINT_LIST, + eLineList = VK_PRIMITIVE_TOPOLOGY_LINE_LIST, + eLineStrip = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, + eTriangleList = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, + eTriangleStrip = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, + eTriangleFan = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN, + eLineListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, + eLineStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY, + eTriangleListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, eTriangleStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY, - ePatchList = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST + ePatchList = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST }; VULKAN_HPP_INLINE std::string to_string( PrimitiveTopology value ) { switch ( value ) { - case PrimitiveTopology::ePointList : return "PointList"; - case PrimitiveTopology::eLineList : return "LineList"; - case PrimitiveTopology::eLineStrip : return "LineStrip"; - case PrimitiveTopology::eTriangleList : return "TriangleList"; - case PrimitiveTopology::eTriangleStrip : return "TriangleStrip"; - case PrimitiveTopology::eTriangleFan : return "TriangleFan"; - case PrimitiveTopology::eLineListWithAdjacency : return "LineListWithAdjacency"; - case PrimitiveTopology::eLineStripWithAdjacency : return "LineStripWithAdjacency"; - case PrimitiveTopology::eTriangleListWithAdjacency : return "TriangleListWithAdjacency"; - case PrimitiveTopology::eTriangleStripWithAdjacency : return "TriangleStripWithAdjacency"; - case PrimitiveTopology::ePatchList : return "PatchList"; - default: return "invalid"; + case PrimitiveTopology::ePointList: return "PointList"; + case PrimitiveTopology::eLineList: return "LineList"; + case PrimitiveTopology::eLineStrip: return "LineStrip"; + case PrimitiveTopology::eTriangleList: return "TriangleList"; + case PrimitiveTopology::eTriangleStrip: return "TriangleStrip"; + case PrimitiveTopology::eTriangleFan: return "TriangleFan"; + case PrimitiveTopology::eLineListWithAdjacency: return "LineListWithAdjacency"; + case PrimitiveTopology::eLineStripWithAdjacency: return "LineStripWithAdjacency"; + case PrimitiveTopology::eTriangleListWithAdjacency: return "TriangleListWithAdjacency"; + case PrimitiveTopology::eTriangleStripWithAdjacency: return "TriangleStripWithAdjacency"; + case PrimitiveTopology::ePatchList: return "PatchList"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class QueryControlFlagBits + enum class PrivateDataSlotCreateFlagBitsEXT : VkPrivateDataSlotCreateFlagsEXT + { + }; + + VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagBitsEXT ) + { + return "(void)"; + } + + enum class QueryControlFlagBits : VkQueryControlFlags { ePrecise = VK_QUERY_CONTROL_PRECISE_BIT }; @@ -6444,23 +9468,24 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case QueryControlFlagBits::ePrecise : return "Precise"; - default: return "invalid"; + case QueryControlFlagBits::ePrecise: return "Precise"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class QueryPipelineStatisticFlagBits + enum class QueryPipelineStatisticFlagBits : VkQueryPipelineStatisticFlags { - eInputAssemblyVertices = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, - eInputAssemblyPrimitives = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, - eVertexShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, - eGeometryShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, - eGeometryShaderPrimitives = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, - eClippingInvocations = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, - eClippingPrimitives = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, - eFragmentShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT, + eInputAssemblyVertices = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, + eInputAssemblyPrimitives = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, + eVertexShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, + eGeometryShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, + eGeometryShaderPrimitives = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, + eClippingInvocations = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, + eClippingPrimitives = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, + eFragmentShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT, eTessellationControlShaderPatches = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, - eTessellationEvaluationShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT, + eTessellationEvaluationShaderInvocations = + VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT, eComputeShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT }; @@ -6468,23 +9493,25 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case QueryPipelineStatisticFlagBits::eInputAssemblyVertices : return "InputAssemblyVertices"; - case QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives : return "InputAssemblyPrimitives"; - case QueryPipelineStatisticFlagBits::eVertexShaderInvocations : return "VertexShaderInvocations"; - case QueryPipelineStatisticFlagBits::eGeometryShaderInvocations : return "GeometryShaderInvocations"; - case QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives : return "GeometryShaderPrimitives"; - case QueryPipelineStatisticFlagBits::eClippingInvocations : return "ClippingInvocations"; - case QueryPipelineStatisticFlagBits::eClippingPrimitives : return "ClippingPrimitives"; - case QueryPipelineStatisticFlagBits::eFragmentShaderInvocations : return "FragmentShaderInvocations"; - case QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches : return "TessellationControlShaderPatches"; - case QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations : return "TessellationEvaluationShaderInvocations"; - case QueryPipelineStatisticFlagBits::eComputeShaderInvocations : return "ComputeShaderInvocations"; - default: return "invalid"; + case QueryPipelineStatisticFlagBits::eInputAssemblyVertices: return "InputAssemblyVertices"; + case QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives: return "InputAssemblyPrimitives"; + case QueryPipelineStatisticFlagBits::eVertexShaderInvocations: return "VertexShaderInvocations"; + case QueryPipelineStatisticFlagBits::eGeometryShaderInvocations: return "GeometryShaderInvocations"; + case QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives: return "GeometryShaderPrimitives"; + case QueryPipelineStatisticFlagBits::eClippingInvocations: return "ClippingInvocations"; + case QueryPipelineStatisticFlagBits::eClippingPrimitives: return "ClippingPrimitives"; + case QueryPipelineStatisticFlagBits::eFragmentShaderInvocations: return "FragmentShaderInvocations"; + case QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches: return "TessellationControlShaderPatches"; + case QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations: + return "TessellationEvaluationShaderInvocations"; + case QueryPipelineStatisticFlagBits::eComputeShaderInvocations: return "ComputeShaderInvocations"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class QueryPoolCreateFlagBits - {}; + { + }; VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlagBits ) { @@ -6500,84 +9527,136 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case QueryPoolSamplingModeINTEL::eManual : return "Manual"; - default: return "invalid"; + case QueryPoolSamplingModeINTEL::eManual: return "Manual"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class QueryResultFlagBits + enum class QueryResultFlagBits : VkQueryResultFlags { - e64 = VK_QUERY_RESULT_64_BIT, - eWait = VK_QUERY_RESULT_WAIT_BIT, - eWithAvailability = VK_QUERY_RESULT_WITH_AVAILABILITY_BIT, - ePartial = VK_QUERY_RESULT_PARTIAL_BIT + // clang-format off + e64 = VK_QUERY_RESULT_64_BIT + , eWait = VK_QUERY_RESULT_WAIT_BIT + , eWithAvailability = VK_QUERY_RESULT_WITH_AVAILABILITY_BIT + , ePartial = VK_QUERY_RESULT_PARTIAL_BIT +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + , eWithStatusKHR = VK_QUERY_RESULT_WITH_STATUS_BIT_KHR +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + // clang-format on }; VULKAN_HPP_INLINE std::string to_string( QueryResultFlagBits value ) { switch ( value ) { - case QueryResultFlagBits::e64 : return "64"; - case QueryResultFlagBits::eWait : return "Wait"; - case QueryResultFlagBits::eWithAvailability : return "WithAvailability"; - case QueryResultFlagBits::ePartial : return "Partial"; - default: return "invalid"; + case QueryResultFlagBits::e64: return "64"; + case QueryResultFlagBits::eWait: return "Wait"; + case QueryResultFlagBits::eWithAvailability: return "WithAvailability"; + case QueryResultFlagBits::ePartial: return "Partial"; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + case QueryResultFlagBits::eWithStatusKHR: return "WithStatusKHR"; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class QueryType +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + enum class QueryResultStatusKHR { - eOcclusion = VK_QUERY_TYPE_OCCLUSION, - ePipelineStatistics = VK_QUERY_TYPE_PIPELINE_STATISTICS, - eTimestamp = VK_QUERY_TYPE_TIMESTAMP, - eTransformFeedbackStreamEXT = VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT, - ePerformanceQueryKHR = VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, - eAccelerationStructureCompactedSizeNV = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV, - ePerformanceQueryINTEL = VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL + eError = VK_QUERY_RESULT_STATUS_ERROR_KHR, + eNotReady = VK_QUERY_RESULT_STATUS_NOT_READY_KHR, + eComplete = VK_QUERY_RESULT_STATUS_COMPLETE_KHR }; - VULKAN_HPP_INLINE std::string to_string( QueryType value ) + VULKAN_HPP_INLINE std::string to_string( QueryResultStatusKHR value ) { switch ( value ) { - case QueryType::eOcclusion : return "Occlusion"; - case QueryType::ePipelineStatistics : return "PipelineStatistics"; - case QueryType::eTimestamp : return "Timestamp"; - case QueryType::eTransformFeedbackStreamEXT : return "TransformFeedbackStreamEXT"; - case QueryType::ePerformanceQueryKHR : return "PerformanceQueryKHR"; - case QueryType::eAccelerationStructureCompactedSizeNV : return "AccelerationStructureCompactedSizeNV"; - case QueryType::ePerformanceQueryINTEL : return "PerformanceQueryINTEL"; - default: return "invalid"; + case QueryResultStatusKHR::eError: return "Error"; + case QueryResultStatusKHR::eNotReady: return "NotReady"; + case QueryResultStatusKHR::eComplete: return "Complete"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + enum class QueryType + { + // clang-format off + eOcclusion = VK_QUERY_TYPE_OCCLUSION + , ePipelineStatistics = VK_QUERY_TYPE_PIPELINE_STATISTICS + , eTimestamp = VK_QUERY_TYPE_TIMESTAMP +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + , eResultStatusOnlyKHR = VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR + , eVideoEncodeBitstreamBufferRangeKHR = VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + , eTransformFeedbackStreamEXT = VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT + , ePerformanceQueryKHR = VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR + , eAccelerationStructureCompactedSizeKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR + , eAccelerationStructureSerializationSizeKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR + , eAccelerationStructureCompactedSizeNV = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV + , ePerformanceQueryINTEL = VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL + // clang-format on + }; - enum class QueueFlagBits + VULKAN_HPP_INLINE std::string to_string( QueryType value ) { - eGraphics = VK_QUEUE_GRAPHICS_BIT, - eCompute = VK_QUEUE_COMPUTE_BIT, - eTransfer = VK_QUEUE_TRANSFER_BIT, - eSparseBinding = VK_QUEUE_SPARSE_BINDING_BIT, - eProtected = VK_QUEUE_PROTECTED_BIT + switch ( value ) + { + case QueryType::eOcclusion: return "Occlusion"; + case QueryType::ePipelineStatistics: return "PipelineStatistics"; + case QueryType::eTimestamp: return "Timestamp"; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + case QueryType::eResultStatusOnlyKHR: return "ResultStatusOnlyKHR"; + case QueryType::eVideoEncodeBitstreamBufferRangeKHR: return "VideoEncodeBitstreamBufferRangeKHR"; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + case QueryType::eTransformFeedbackStreamEXT: return "TransformFeedbackStreamEXT"; + case QueryType::ePerformanceQueryKHR: return "PerformanceQueryKHR"; + case QueryType::eAccelerationStructureCompactedSizeKHR: return "AccelerationStructureCompactedSizeKHR"; + case QueryType::eAccelerationStructureSerializationSizeKHR: return "AccelerationStructureSerializationSizeKHR"; + case QueryType::eAccelerationStructureCompactedSizeNV: return "AccelerationStructureCompactedSizeNV"; + case QueryType::ePerformanceQueryINTEL: return "PerformanceQueryINTEL"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class QueueFlagBits : VkQueueFlags + { + // clang-format off + eGraphics = VK_QUEUE_GRAPHICS_BIT + , eCompute = VK_QUEUE_COMPUTE_BIT + , eTransfer = VK_QUEUE_TRANSFER_BIT + , eSparseBinding = VK_QUEUE_SPARSE_BINDING_BIT + , eProtected = VK_QUEUE_PROTECTED_BIT +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + , eVideoDecodeKHR = VK_QUEUE_VIDEO_DECODE_BIT_KHR + , eVideoEncodeKHR = VK_QUEUE_VIDEO_ENCODE_BIT_KHR +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + // clang-format on }; VULKAN_HPP_INLINE std::string to_string( QueueFlagBits value ) { switch ( value ) { - case QueueFlagBits::eGraphics : return "Graphics"; - case QueueFlagBits::eCompute : return "Compute"; - case QueueFlagBits::eTransfer : return "Transfer"; - case QueueFlagBits::eSparseBinding : return "SparseBinding"; - case QueueFlagBits::eProtected : return "Protected"; - default: return "invalid"; + case QueueFlagBits::eGraphics: return "Graphics"; + case QueueFlagBits::eCompute: return "Compute"; + case QueueFlagBits::eTransfer: return "Transfer"; + case QueueFlagBits::eSparseBinding: return "SparseBinding"; + case QueueFlagBits::eProtected: return "Protected"; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + case QueueFlagBits::eVideoDecodeKHR: return "VideoDecodeKHR"; + case QueueFlagBits::eVideoEncodeKHR: return "VideoEncodeKHR"; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class QueueGlobalPriorityEXT { - eLow = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT, - eMedium = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT, - eHigh = VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT, + eLow = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT, + eMedium = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT, + eHigh = VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT, eRealtime = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT }; @@ -6585,17 +9664,17 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case QueueGlobalPriorityEXT::eLow : return "Low"; - case QueueGlobalPriorityEXT::eMedium : return "Medium"; - case QueueGlobalPriorityEXT::eHigh : return "High"; - case QueueGlobalPriorityEXT::eRealtime : return "Realtime"; - default: return "invalid"; + case QueueGlobalPriorityEXT::eLow: return "Low"; + case QueueGlobalPriorityEXT::eMedium: return "Medium"; + case QueueGlobalPriorityEXT::eHigh: return "High"; + case QueueGlobalPriorityEXT::eRealtime: return "Realtime"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class RasterizationOrderAMD { - eStrict = VK_RASTERIZATION_ORDER_STRICT_AMD, + eStrict = VK_RASTERIZATION_ORDER_STRICT_AMD, eRelaxed = VK_RASTERIZATION_ORDER_RELAXED_AMD }; @@ -6603,45 +9682,52 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case RasterizationOrderAMD::eStrict : return "Strict"; - case RasterizationOrderAMD::eRelaxed : return "Relaxed"; - default: return "invalid"; + case RasterizationOrderAMD::eStrict: return "Strict"; + case RasterizationOrderAMD::eRelaxed: return "Relaxed"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class RayTracingShaderGroupTypeNV + enum class RayTracingShaderGroupTypeKHR { - eGeneral = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV, - eTrianglesHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV, - eProceduralHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV + eGeneral = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR, + eTrianglesHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR, + eProceduralHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR }; + using RayTracingShaderGroupTypeNV = RayTracingShaderGroupTypeKHR; - VULKAN_HPP_INLINE std::string to_string( RayTracingShaderGroupTypeNV value ) + VULKAN_HPP_INLINE std::string to_string( RayTracingShaderGroupTypeKHR value ) { switch ( value ) { - case RayTracingShaderGroupTypeNV::eGeneral : return "General"; - case RayTracingShaderGroupTypeNV::eTrianglesHitGroup : return "TrianglesHitGroup"; - case RayTracingShaderGroupTypeNV::eProceduralHitGroup : return "ProceduralHitGroup"; - default: return "invalid"; + case RayTracingShaderGroupTypeKHR::eGeneral: return "General"; + case RayTracingShaderGroupTypeKHR::eTrianglesHitGroup: return "TrianglesHitGroup"; + case RayTracingShaderGroupTypeKHR::eProceduralHitGroup: return "ProceduralHitGroup"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class RenderPassCreateFlagBits - {}; + enum class RenderPassCreateFlagBits : VkRenderPassCreateFlags + { + eTransformQCOM = VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM + }; - VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlagBits ) + VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlagBits value ) { - return "(void)"; + switch ( value ) + { + case RenderPassCreateFlagBits::eTransformQCOM: return "TransformQCOM"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } } - enum class ResolveModeFlagBits + enum class ResolveModeFlagBits : VkResolveModeFlags { - eNone = VK_RESOLVE_MODE_NONE, + eNone = VK_RESOLVE_MODE_NONE, eSampleZero = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT, - eAverage = VK_RESOLVE_MODE_AVERAGE_BIT, - eMin = VK_RESOLVE_MODE_MIN_BIT, - eMax = VK_RESOLVE_MODE_MAX_BIT + eAverage = VK_RESOLVE_MODE_AVERAGE_BIT, + eMin = VK_RESOLVE_MODE_MIN_BIT, + eMax = VK_RESOLVE_MODE_MAX_BIT }; using ResolveModeFlagBitsKHR = ResolveModeFlagBits; @@ -6649,104 +9735,121 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case ResolveModeFlagBits::eNone : return "None"; - case ResolveModeFlagBits::eSampleZero : return "SampleZero"; - case ResolveModeFlagBits::eAverage : return "Average"; - case ResolveModeFlagBits::eMin : return "Min"; - case ResolveModeFlagBits::eMax : return "Max"; - default: return "invalid"; + case ResolveModeFlagBits::eNone: return "None"; + case ResolveModeFlagBits::eSampleZero: return "SampleZero"; + case ResolveModeFlagBits::eAverage: return "Average"; + case ResolveModeFlagBits::eMin: return "Min"; + case ResolveModeFlagBits::eMax: return "Max"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class Result { - eSuccess = VK_SUCCESS, - eNotReady = VK_NOT_READY, - eTimeout = VK_TIMEOUT, - eEventSet = VK_EVENT_SET, - eEventReset = VK_EVENT_RESET, - eIncomplete = VK_INCOMPLETE, - eErrorOutOfHostMemory = VK_ERROR_OUT_OF_HOST_MEMORY, - eErrorOutOfDeviceMemory = VK_ERROR_OUT_OF_DEVICE_MEMORY, - eErrorInitializationFailed = VK_ERROR_INITIALIZATION_FAILED, - eErrorDeviceLost = VK_ERROR_DEVICE_LOST, - eErrorMemoryMapFailed = VK_ERROR_MEMORY_MAP_FAILED, - eErrorLayerNotPresent = VK_ERROR_LAYER_NOT_PRESENT, - eErrorExtensionNotPresent = VK_ERROR_EXTENSION_NOT_PRESENT, - eErrorFeatureNotPresent = VK_ERROR_FEATURE_NOT_PRESENT, - eErrorIncompatibleDriver = VK_ERROR_INCOMPATIBLE_DRIVER, - eErrorTooManyObjects = VK_ERROR_TOO_MANY_OBJECTS, - eErrorFormatNotSupported = VK_ERROR_FORMAT_NOT_SUPPORTED, - eErrorFragmentedPool = VK_ERROR_FRAGMENTED_POOL, - eErrorUnknown = VK_ERROR_UNKNOWN, - eErrorOutOfPoolMemory = VK_ERROR_OUT_OF_POOL_MEMORY, - eErrorInvalidExternalHandle = VK_ERROR_INVALID_EXTERNAL_HANDLE, - eErrorFragmentation = VK_ERROR_FRAGMENTATION, - eErrorInvalidOpaqueCaptureAddress = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS, - eErrorSurfaceLostKHR = VK_ERROR_SURFACE_LOST_KHR, - eErrorNativeWindowInUseKHR = VK_ERROR_NATIVE_WINDOW_IN_USE_KHR, - eSuboptimalKHR = VK_SUBOPTIMAL_KHR, - eErrorOutOfDateKHR = VK_ERROR_OUT_OF_DATE_KHR, - eErrorIncompatibleDisplayKHR = VK_ERROR_INCOMPATIBLE_DISPLAY_KHR, - eErrorValidationFailedEXT = VK_ERROR_VALIDATION_FAILED_EXT, - eErrorInvalidShaderNV = VK_ERROR_INVALID_SHADER_NV, - eErrorInvalidDrmFormatModifierPlaneLayoutEXT = VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT, - eErrorNotPermittedEXT = VK_ERROR_NOT_PERMITTED_EXT, - eErrorFullScreenExclusiveModeLostEXT = VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT, - eErrorOutOfPoolMemoryKHR = VK_ERROR_OUT_OF_POOL_MEMORY_KHR, - eErrorInvalidExternalHandleKHR = VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR, - eErrorFragmentationEXT = VK_ERROR_FRAGMENTATION_EXT, - eErrorInvalidDeviceAddressEXT = VK_ERROR_INVALID_DEVICE_ADDRESS_EXT, - eErrorInvalidOpaqueCaptureAddressKHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR + // clang-format off + eSuccess = VK_SUCCESS + , eNotReady = VK_NOT_READY + , eTimeout = VK_TIMEOUT + , eEventSet = VK_EVENT_SET + , eEventReset = VK_EVENT_RESET + , eIncomplete = VK_INCOMPLETE + , eErrorOutOfHostMemory = VK_ERROR_OUT_OF_HOST_MEMORY + , eErrorOutOfDeviceMemory = VK_ERROR_OUT_OF_DEVICE_MEMORY + , eErrorInitializationFailed = VK_ERROR_INITIALIZATION_FAILED + , eErrorDeviceLost = VK_ERROR_DEVICE_LOST + , eErrorMemoryMapFailed = VK_ERROR_MEMORY_MAP_FAILED + , eErrorLayerNotPresent = VK_ERROR_LAYER_NOT_PRESENT + , eErrorExtensionNotPresent = VK_ERROR_EXTENSION_NOT_PRESENT + , eErrorFeatureNotPresent = VK_ERROR_FEATURE_NOT_PRESENT + , eErrorIncompatibleDriver = VK_ERROR_INCOMPATIBLE_DRIVER + , eErrorTooManyObjects = VK_ERROR_TOO_MANY_OBJECTS + , eErrorFormatNotSupported = VK_ERROR_FORMAT_NOT_SUPPORTED + , eErrorFragmentedPool = VK_ERROR_FRAGMENTED_POOL + , eErrorUnknown = VK_ERROR_UNKNOWN + , eErrorOutOfPoolMemory = VK_ERROR_OUT_OF_POOL_MEMORY + , eErrorInvalidExternalHandle = VK_ERROR_INVALID_EXTERNAL_HANDLE + , eErrorFragmentation = VK_ERROR_FRAGMENTATION + , eErrorInvalidOpaqueCaptureAddress = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS + , eErrorSurfaceLostKHR = VK_ERROR_SURFACE_LOST_KHR + , eErrorNativeWindowInUseKHR = VK_ERROR_NATIVE_WINDOW_IN_USE_KHR + , eSuboptimalKHR = VK_SUBOPTIMAL_KHR + , eErrorOutOfDateKHR = VK_ERROR_OUT_OF_DATE_KHR + , eErrorIncompatibleDisplayKHR = VK_ERROR_INCOMPATIBLE_DISPLAY_KHR + , eErrorValidationFailedEXT = VK_ERROR_VALIDATION_FAILED_EXT + , eErrorInvalidShaderNV = VK_ERROR_INVALID_SHADER_NV + , eErrorInvalidDrmFormatModifierPlaneLayoutEXT = VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT + , eErrorNotPermittedEXT = VK_ERROR_NOT_PERMITTED_EXT +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + , eErrorFullScreenExclusiveModeLostEXT = VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + , eThreadIdleKHR = VK_THREAD_IDLE_KHR + , eThreadDoneKHR = VK_THREAD_DONE_KHR + , eOperationDeferredKHR = VK_OPERATION_DEFERRED_KHR + , eOperationNotDeferredKHR = VK_OPERATION_NOT_DEFERRED_KHR + , ePipelineCompileRequiredEXT = VK_PIPELINE_COMPILE_REQUIRED_EXT + , eErrorFragmentationEXT = VK_ERROR_FRAGMENTATION_EXT + , eErrorInvalidDeviceAddressEXT = VK_ERROR_INVALID_DEVICE_ADDRESS_EXT + , eErrorInvalidExternalHandleKHR = VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR + , eErrorInvalidOpaqueCaptureAddressKHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR + , eErrorOutOfPoolMemoryKHR = VK_ERROR_OUT_OF_POOL_MEMORY_KHR + , eErrorPipelineCompileRequiredEXT = VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT + // clang-format on }; VULKAN_HPP_INLINE std::string to_string( Result value ) { switch ( value ) { - case Result::eSuccess : return "Success"; - case Result::eNotReady : return "NotReady"; - case Result::eTimeout : return "Timeout"; - case Result::eEventSet : return "EventSet"; - case Result::eEventReset : return "EventReset"; - case Result::eIncomplete : return "Incomplete"; - case Result::eErrorOutOfHostMemory : return "ErrorOutOfHostMemory"; - case Result::eErrorOutOfDeviceMemory : return "ErrorOutOfDeviceMemory"; - case Result::eErrorInitializationFailed : return "ErrorInitializationFailed"; - case Result::eErrorDeviceLost : return "ErrorDeviceLost"; - case Result::eErrorMemoryMapFailed : return "ErrorMemoryMapFailed"; - case Result::eErrorLayerNotPresent : return "ErrorLayerNotPresent"; - case Result::eErrorExtensionNotPresent : return "ErrorExtensionNotPresent"; - case Result::eErrorFeatureNotPresent : return "ErrorFeatureNotPresent"; - case Result::eErrorIncompatibleDriver : return "ErrorIncompatibleDriver"; - case Result::eErrorTooManyObjects : return "ErrorTooManyObjects"; - case Result::eErrorFormatNotSupported : return "ErrorFormatNotSupported"; - case Result::eErrorFragmentedPool : return "ErrorFragmentedPool"; - case Result::eErrorUnknown : return "ErrorUnknown"; - case Result::eErrorOutOfPoolMemory : return "ErrorOutOfPoolMemory"; - case Result::eErrorInvalidExternalHandle : return "ErrorInvalidExternalHandle"; - case Result::eErrorFragmentation : return "ErrorFragmentation"; - case Result::eErrorInvalidOpaqueCaptureAddress : return "ErrorInvalidOpaqueCaptureAddress"; - case Result::eErrorSurfaceLostKHR : return "ErrorSurfaceLostKHR"; - case Result::eErrorNativeWindowInUseKHR : return "ErrorNativeWindowInUseKHR"; - case Result::eSuboptimalKHR : return "SuboptimalKHR"; - case Result::eErrorOutOfDateKHR : return "ErrorOutOfDateKHR"; - case Result::eErrorIncompatibleDisplayKHR : return "ErrorIncompatibleDisplayKHR"; - case Result::eErrorValidationFailedEXT : return "ErrorValidationFailedEXT"; - case Result::eErrorInvalidShaderNV : return "ErrorInvalidShaderNV"; - case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT : return "ErrorInvalidDrmFormatModifierPlaneLayoutEXT"; - case Result::eErrorNotPermittedEXT : return "ErrorNotPermittedEXT"; - case Result::eErrorFullScreenExclusiveModeLostEXT : return "ErrorFullScreenExclusiveModeLostEXT"; - default: return "invalid"; - } - } - - enum class SampleCountFlagBits - { - e1 = VK_SAMPLE_COUNT_1_BIT, - e2 = VK_SAMPLE_COUNT_2_BIT, - e4 = VK_SAMPLE_COUNT_4_BIT, - e8 = VK_SAMPLE_COUNT_8_BIT, + case Result::eSuccess: return "Success"; + case Result::eNotReady: return "NotReady"; + case Result::eTimeout: return "Timeout"; + case Result::eEventSet: return "EventSet"; + case Result::eEventReset: return "EventReset"; + case Result::eIncomplete: return "Incomplete"; + case Result::eErrorOutOfHostMemory: return "ErrorOutOfHostMemory"; + case Result::eErrorOutOfDeviceMemory: return "ErrorOutOfDeviceMemory"; + case Result::eErrorInitializationFailed: return "ErrorInitializationFailed"; + case Result::eErrorDeviceLost: return "ErrorDeviceLost"; + case Result::eErrorMemoryMapFailed: return "ErrorMemoryMapFailed"; + case Result::eErrorLayerNotPresent: return "ErrorLayerNotPresent"; + case Result::eErrorExtensionNotPresent: return "ErrorExtensionNotPresent"; + case Result::eErrorFeatureNotPresent: return "ErrorFeatureNotPresent"; + case Result::eErrorIncompatibleDriver: return "ErrorIncompatibleDriver"; + case Result::eErrorTooManyObjects: return "ErrorTooManyObjects"; + case Result::eErrorFormatNotSupported: return "ErrorFormatNotSupported"; + case Result::eErrorFragmentedPool: return "ErrorFragmentedPool"; + case Result::eErrorUnknown: return "ErrorUnknown"; + case Result::eErrorOutOfPoolMemory: return "ErrorOutOfPoolMemory"; + case Result::eErrorInvalidExternalHandle: return "ErrorInvalidExternalHandle"; + case Result::eErrorFragmentation: return "ErrorFragmentation"; + case Result::eErrorInvalidOpaqueCaptureAddress: return "ErrorInvalidOpaqueCaptureAddress"; + case Result::eErrorSurfaceLostKHR: return "ErrorSurfaceLostKHR"; + case Result::eErrorNativeWindowInUseKHR: return "ErrorNativeWindowInUseKHR"; + case Result::eSuboptimalKHR: return "SuboptimalKHR"; + case Result::eErrorOutOfDateKHR: return "ErrorOutOfDateKHR"; + case Result::eErrorIncompatibleDisplayKHR: return "ErrorIncompatibleDisplayKHR"; + case Result::eErrorValidationFailedEXT: return "ErrorValidationFailedEXT"; + case Result::eErrorInvalidShaderNV: return "ErrorInvalidShaderNV"; + case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT: return "ErrorInvalidDrmFormatModifierPlaneLayoutEXT"; + case Result::eErrorNotPermittedEXT: return "ErrorNotPermittedEXT"; +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + case Result::eErrorFullScreenExclusiveModeLostEXT: return "ErrorFullScreenExclusiveModeLostEXT"; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + case Result::eThreadIdleKHR: return "ThreadIdleKHR"; + case Result::eThreadDoneKHR: return "ThreadDoneKHR"; + case Result::eOperationDeferredKHR: return "OperationDeferredKHR"; + case Result::eOperationNotDeferredKHR: return "OperationNotDeferredKHR"; + case Result::ePipelineCompileRequiredEXT: return "PipelineCompileRequiredEXT"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class SampleCountFlagBits : VkSampleCountFlags + { + e1 = VK_SAMPLE_COUNT_1_BIT, + e2 = VK_SAMPLE_COUNT_2_BIT, + e4 = VK_SAMPLE_COUNT_4_BIT, + e8 = VK_SAMPLE_COUNT_8_BIT, e16 = VK_SAMPLE_COUNT_16_BIT, e32 = VK_SAMPLE_COUNT_32_BIT, e64 = VK_SAMPLE_COUNT_64_BIT @@ -6756,24 +9859,24 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case SampleCountFlagBits::e1 : return "1"; - case SampleCountFlagBits::e2 : return "2"; - case SampleCountFlagBits::e4 : return "4"; - case SampleCountFlagBits::e8 : return "8"; - case SampleCountFlagBits::e16 : return "16"; - case SampleCountFlagBits::e32 : return "32"; - case SampleCountFlagBits::e64 : return "64"; - default: return "invalid"; + case SampleCountFlagBits::e1: return "1"; + case SampleCountFlagBits::e2: return "2"; + case SampleCountFlagBits::e4: return "4"; + case SampleCountFlagBits::e8: return "8"; + case SampleCountFlagBits::e16: return "16"; + case SampleCountFlagBits::e32: return "32"; + case SampleCountFlagBits::e64: return "64"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class SamplerAddressMode { - eRepeat = VK_SAMPLER_ADDRESS_MODE_REPEAT, - eMirroredRepeat = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT, - eClampToEdge = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, - eClampToBorder = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, - eMirrorClampToEdge = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE, + eRepeat = VK_SAMPLER_ADDRESS_MODE_REPEAT, + eMirroredRepeat = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT, + eClampToEdge = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, + eClampToBorder = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, + eMirrorClampToEdge = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE, eMirrorClampToEdgeKHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR }; @@ -6781,18 +9884,18 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case SamplerAddressMode::eRepeat : return "Repeat"; - case SamplerAddressMode::eMirroredRepeat : return "MirroredRepeat"; - case SamplerAddressMode::eClampToEdge : return "ClampToEdge"; - case SamplerAddressMode::eClampToBorder : return "ClampToBorder"; - case SamplerAddressMode::eMirrorClampToEdge : return "MirrorClampToEdge"; - default: return "invalid"; + case SamplerAddressMode::eRepeat: return "Repeat"; + case SamplerAddressMode::eMirroredRepeat: return "MirroredRepeat"; + case SamplerAddressMode::eClampToEdge: return "ClampToEdge"; + case SamplerAddressMode::eClampToBorder: return "ClampToBorder"; + case SamplerAddressMode::eMirrorClampToEdge: return "MirrorClampToEdge"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class SamplerCreateFlagBits + enum class SamplerCreateFlagBits : VkSamplerCreateFlags { - eSubsampledEXT = VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, + eSubsampledEXT = VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, eSubsampledCoarseReconstructionEXT = VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT }; @@ -6800,33 +9903,33 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case SamplerCreateFlagBits::eSubsampledEXT : return "SubsampledEXT"; - case SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT : return "SubsampledCoarseReconstructionEXT"; - default: return "invalid"; + case SamplerCreateFlagBits::eSubsampledEXT: return "SubsampledEXT"; + case SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT: return "SubsampledCoarseReconstructionEXT"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class SamplerMipmapMode { eNearest = VK_SAMPLER_MIPMAP_MODE_NEAREST, - eLinear = VK_SAMPLER_MIPMAP_MODE_LINEAR + eLinear = VK_SAMPLER_MIPMAP_MODE_LINEAR }; VULKAN_HPP_INLINE std::string to_string( SamplerMipmapMode value ) { switch ( value ) { - case SamplerMipmapMode::eNearest : return "Nearest"; - case SamplerMipmapMode::eLinear : return "Linear"; - default: return "invalid"; + case SamplerMipmapMode::eNearest: return "Nearest"; + case SamplerMipmapMode::eLinear: return "Linear"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class SamplerReductionMode { eWeightedAverage = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, - eMin = VK_SAMPLER_REDUCTION_MODE_MIN, - eMax = VK_SAMPLER_REDUCTION_MODE_MAX + eMin = VK_SAMPLER_REDUCTION_MODE_MIN, + eMax = VK_SAMPLER_REDUCTION_MODE_MAX }; using SamplerReductionModeEXT = SamplerReductionMode; @@ -6834,20 +9937,20 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case SamplerReductionMode::eWeightedAverage : return "WeightedAverage"; - case SamplerReductionMode::eMin : return "Min"; - case SamplerReductionMode::eMax : return "Max"; - default: return "invalid"; + case SamplerReductionMode::eWeightedAverage: return "WeightedAverage"; + case SamplerReductionMode::eMin: return "Min"; + case SamplerReductionMode::eMax: return "Max"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class SamplerYcbcrModelConversion { - eRgbIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY, + eRgbIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY, eYcbcrIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY, - eYcbcr709 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709, - eYcbcr601 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601, - eYcbcr2020 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 + eYcbcr709 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709, + eYcbcr601 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601, + eYcbcr2020 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 }; using SamplerYcbcrModelConversionKHR = SamplerYcbcrModelConversion; @@ -6855,18 +9958,18 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case SamplerYcbcrModelConversion::eRgbIdentity : return "RgbIdentity"; - case SamplerYcbcrModelConversion::eYcbcrIdentity : return "YcbcrIdentity"; - case SamplerYcbcrModelConversion::eYcbcr709 : return "Ycbcr709"; - case SamplerYcbcrModelConversion::eYcbcr601 : return "Ycbcr601"; - case SamplerYcbcrModelConversion::eYcbcr2020 : return "Ycbcr2020"; - default: return "invalid"; + case SamplerYcbcrModelConversion::eRgbIdentity: return "RgbIdentity"; + case SamplerYcbcrModelConversion::eYcbcrIdentity: return "YcbcrIdentity"; + case SamplerYcbcrModelConversion::eYcbcr709: return "Ycbcr709"; + case SamplerYcbcrModelConversion::eYcbcr601: return "Ycbcr601"; + case SamplerYcbcrModelConversion::eYcbcr2020: return "Ycbcr2020"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class SamplerYcbcrRange { - eItuFull = VK_SAMPLER_YCBCR_RANGE_ITU_FULL, + eItuFull = VK_SAMPLER_YCBCR_RANGE_ITU_FULL, eItuNarrow = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW }; using SamplerYcbcrRangeKHR = SamplerYcbcrRange; @@ -6875,17 +9978,17 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case SamplerYcbcrRange::eItuFull : return "ItuFull"; - case SamplerYcbcrRange::eItuNarrow : return "ItuNarrow"; - default: return "invalid"; + case SamplerYcbcrRange::eItuFull: return "ItuFull"; + case SamplerYcbcrRange::eItuNarrow: return "ItuNarrow"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class ScopeNV { - eDevice = VK_SCOPE_DEVICE_NV, - eWorkgroup = VK_SCOPE_WORKGROUP_NV, - eSubgroup = VK_SCOPE_SUBGROUP_NV, + eDevice = VK_SCOPE_DEVICE_NV, + eWorkgroup = VK_SCOPE_WORKGROUP_NV, + eSubgroup = VK_SCOPE_SUBGROUP_NV, eQueueFamily = VK_SCOPE_QUEUE_FAMILY_NV }; @@ -6893,23 +9996,15 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case ScopeNV::eDevice : return "Device"; - case ScopeNV::eWorkgroup : return "Workgroup"; - case ScopeNV::eSubgroup : return "Subgroup"; - case ScopeNV::eQueueFamily : return "QueueFamily"; - default: return "invalid"; + case ScopeNV::eDevice: return "Device"; + case ScopeNV::eWorkgroup: return "Workgroup"; + case ScopeNV::eSubgroup: return "Subgroup"; + case ScopeNV::eQueueFamily: return "QueueFamily"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class SemaphoreCreateFlagBits - {}; - - VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlagBits ) - { - return "(void)"; - } - - enum class SemaphoreImportFlagBits + enum class SemaphoreImportFlagBits : VkSemaphoreImportFlags { eTemporary = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT }; @@ -6919,14 +10014,14 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case SemaphoreImportFlagBits::eTemporary : return "Temporary"; - default: return "invalid"; + case SemaphoreImportFlagBits::eTemporary: return "Temporary"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class SemaphoreType { - eBinary = VK_SEMAPHORE_TYPE_BINARY, + eBinary = VK_SEMAPHORE_TYPE_BINARY, eTimeline = VK_SEMAPHORE_TYPE_TIMELINE }; using SemaphoreTypeKHR = SemaphoreType; @@ -6935,13 +10030,13 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case SemaphoreType::eBinary : return "Binary"; - case SemaphoreType::eTimeline : return "Timeline"; - default: return "invalid"; + case SemaphoreType::eBinary: return "Binary"; + case SemaphoreType::eTimeline: return "Timeline"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class SemaphoreWaitFlagBits + enum class SemaphoreWaitFlagBits : VkSemaphoreWaitFlags { eAny = VK_SEMAPHORE_WAIT_ANY_BIT }; @@ -6951,13 +10046,14 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case SemaphoreWaitFlagBits::eAny : return "Any"; - default: return "invalid"; + case SemaphoreWaitFlagBits::eAny: return "Any"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class ShaderCorePropertiesFlagBitsAMD - {}; + enum class ShaderCorePropertiesFlagBitsAMD : VkShaderCorePropertiesFlagsAMD + { + }; VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagBitsAMD ) { @@ -6967,8 +10063,8 @@ namespace VULKAN_HPP_NAMESPACE enum class ShaderFloatControlsIndependence { e32BitOnly = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY, - eAll = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL, - eNone = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE + eAll = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL, + eNone = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE }; using ShaderFloatControlsIndependenceKHR = ShaderFloatControlsIndependence; @@ -6976,17 +10072,37 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case ShaderFloatControlsIndependence::e32BitOnly : return "32BitOnly"; - case ShaderFloatControlsIndependence::eAll : return "All"; - case ShaderFloatControlsIndependence::eNone : return "None"; - default: return "invalid"; + case ShaderFloatControlsIndependence::e32BitOnly: return "32BitOnly"; + case ShaderFloatControlsIndependence::eAll: return "All"; + case ShaderFloatControlsIndependence::eNone: return "None"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class ShaderGroupShaderKHR + { + eGeneral = VK_SHADER_GROUP_SHADER_GENERAL_KHR, + eClosestHit = VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR, + eAnyHit = VK_SHADER_GROUP_SHADER_ANY_HIT_KHR, + eIntersection = VK_SHADER_GROUP_SHADER_INTERSECTION_KHR + }; + + VULKAN_HPP_INLINE std::string to_string( ShaderGroupShaderKHR value ) + { + switch ( value ) + { + case ShaderGroupShaderKHR::eGeneral: return "General"; + case ShaderGroupShaderKHR::eClosestHit: return "ClosestHit"; + case ShaderGroupShaderKHR::eAnyHit: return "AnyHit"; + case ShaderGroupShaderKHR::eIntersection: return "Intersection"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class ShaderInfoTypeAMD { - eStatistics = VK_SHADER_INFO_TYPE_STATISTICS_AMD, - eBinary = VK_SHADER_INFO_TYPE_BINARY_AMD, + eStatistics = VK_SHADER_INFO_TYPE_STATISTICS_AMD, + eBinary = VK_SHADER_INFO_TYPE_BINARY_AMD, eDisassembly = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD }; @@ -6994,73 +10110,80 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case ShaderInfoTypeAMD::eStatistics : return "Statistics"; - case ShaderInfoTypeAMD::eBinary : return "Binary"; - case ShaderInfoTypeAMD::eDisassembly : return "Disassembly"; - default: return "invalid"; + case ShaderInfoTypeAMD::eStatistics: return "Statistics"; + case ShaderInfoTypeAMD::eBinary: return "Binary"; + case ShaderInfoTypeAMD::eDisassembly: return "Disassembly"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class ShaderModuleCreateFlagBits - {}; + enum class ShaderModuleCreateFlagBits : VkShaderModuleCreateFlags + { + }; VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlagBits ) { return "(void)"; } - enum class ShaderStageFlagBits + enum class ShaderStageFlagBits : VkShaderStageFlags { - eVertex = VK_SHADER_STAGE_VERTEX_BIT, - eTessellationControl = VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, + eVertex = VK_SHADER_STAGE_VERTEX_BIT, + eTessellationControl = VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, eTessellationEvaluation = VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, - eGeometry = VK_SHADER_STAGE_GEOMETRY_BIT, - eFragment = VK_SHADER_STAGE_FRAGMENT_BIT, - eCompute = VK_SHADER_STAGE_COMPUTE_BIT, - eAllGraphics = VK_SHADER_STAGE_ALL_GRAPHICS, - eAll = VK_SHADER_STAGE_ALL, - eRaygenNV = VK_SHADER_STAGE_RAYGEN_BIT_NV, - eAnyHitNV = VK_SHADER_STAGE_ANY_HIT_BIT_NV, - eClosestHitNV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV, - eMissNV = VK_SHADER_STAGE_MISS_BIT_NV, - eIntersectionNV = VK_SHADER_STAGE_INTERSECTION_BIT_NV, - eCallableNV = VK_SHADER_STAGE_CALLABLE_BIT_NV, - eTaskNV = VK_SHADER_STAGE_TASK_BIT_NV, - eMeshNV = VK_SHADER_STAGE_MESH_BIT_NV + eGeometry = VK_SHADER_STAGE_GEOMETRY_BIT, + eFragment = VK_SHADER_STAGE_FRAGMENT_BIT, + eCompute = VK_SHADER_STAGE_COMPUTE_BIT, + eAllGraphics = VK_SHADER_STAGE_ALL_GRAPHICS, + eAll = VK_SHADER_STAGE_ALL, + eRaygenKHR = VK_SHADER_STAGE_RAYGEN_BIT_KHR, + eAnyHitKHR = VK_SHADER_STAGE_ANY_HIT_BIT_KHR, + eClosestHitKHR = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR, + eMissKHR = VK_SHADER_STAGE_MISS_BIT_KHR, + eIntersectionKHR = VK_SHADER_STAGE_INTERSECTION_BIT_KHR, + eCallableKHR = VK_SHADER_STAGE_CALLABLE_BIT_KHR, + eTaskNV = VK_SHADER_STAGE_TASK_BIT_NV, + eMeshNV = VK_SHADER_STAGE_MESH_BIT_NV, + eAnyHitNV = VK_SHADER_STAGE_ANY_HIT_BIT_NV, + eCallableNV = VK_SHADER_STAGE_CALLABLE_BIT_NV, + eClosestHitNV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV, + eIntersectionNV = VK_SHADER_STAGE_INTERSECTION_BIT_NV, + eMissNV = VK_SHADER_STAGE_MISS_BIT_NV, + eRaygenNV = VK_SHADER_STAGE_RAYGEN_BIT_NV }; VULKAN_HPP_INLINE std::string to_string( ShaderStageFlagBits value ) { switch ( value ) { - case ShaderStageFlagBits::eVertex : return "Vertex"; - case ShaderStageFlagBits::eTessellationControl : return "TessellationControl"; - case ShaderStageFlagBits::eTessellationEvaluation : return "TessellationEvaluation"; - case ShaderStageFlagBits::eGeometry : return "Geometry"; - case ShaderStageFlagBits::eFragment : return "Fragment"; - case ShaderStageFlagBits::eCompute : return "Compute"; - case ShaderStageFlagBits::eAllGraphics : return "AllGraphics"; - case ShaderStageFlagBits::eAll : return "All"; - case ShaderStageFlagBits::eRaygenNV : return "RaygenNV"; - case ShaderStageFlagBits::eAnyHitNV : return "AnyHitNV"; - case ShaderStageFlagBits::eClosestHitNV : return "ClosestHitNV"; - case ShaderStageFlagBits::eMissNV : return "MissNV"; - case ShaderStageFlagBits::eIntersectionNV : return "IntersectionNV"; - case ShaderStageFlagBits::eCallableNV : return "CallableNV"; - case ShaderStageFlagBits::eTaskNV : return "TaskNV"; - case ShaderStageFlagBits::eMeshNV : return "MeshNV"; - default: return "invalid"; + case ShaderStageFlagBits::eVertex: return "Vertex"; + case ShaderStageFlagBits::eTessellationControl: return "TessellationControl"; + case ShaderStageFlagBits::eTessellationEvaluation: return "TessellationEvaluation"; + case ShaderStageFlagBits::eGeometry: return "Geometry"; + case ShaderStageFlagBits::eFragment: return "Fragment"; + case ShaderStageFlagBits::eCompute: return "Compute"; + case ShaderStageFlagBits::eAllGraphics: return "AllGraphics"; + case ShaderStageFlagBits::eAll: return "All"; + case ShaderStageFlagBits::eRaygenKHR: return "RaygenKHR"; + case ShaderStageFlagBits::eAnyHitKHR: return "AnyHitKHR"; + case ShaderStageFlagBits::eClosestHitKHR: return "ClosestHitKHR"; + case ShaderStageFlagBits::eMissKHR: return "MissKHR"; + case ShaderStageFlagBits::eIntersectionKHR: return "IntersectionKHR"; + case ShaderStageFlagBits::eCallableKHR: return "CallableKHR"; + case ShaderStageFlagBits::eTaskNV: return "TaskNV"; + case ShaderStageFlagBits::eMeshNV: return "MeshNV"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class ShadingRatePaletteEntryNV { - eNoInvocations = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV, - e16InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV, - e8InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV, - e4InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV, - e2InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV, - e1InvocationPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV, + eNoInvocations = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV, + e16InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV, + e8InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV, + e4InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV, + e2InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV, + e1InvocationPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV, e1InvocationPer2X1Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV, e1InvocationPer1X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV, e1InvocationPer2X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV, @@ -7073,25 +10196,25 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case ShadingRatePaletteEntryNV::eNoInvocations : return "NoInvocations"; - case ShadingRatePaletteEntryNV::e16InvocationsPerPixel : return "16InvocationsPerPixel"; - case ShadingRatePaletteEntryNV::e8InvocationsPerPixel : return "8InvocationsPerPixel"; - case ShadingRatePaletteEntryNV::e4InvocationsPerPixel : return "4InvocationsPerPixel"; - case ShadingRatePaletteEntryNV::e2InvocationsPerPixel : return "2InvocationsPerPixel"; - case ShadingRatePaletteEntryNV::e1InvocationPerPixel : return "1InvocationPerPixel"; - case ShadingRatePaletteEntryNV::e1InvocationPer2X1Pixels : return "1InvocationPer2X1Pixels"; - case ShadingRatePaletteEntryNV::e1InvocationPer1X2Pixels : return "1InvocationPer1X2Pixels"; - case ShadingRatePaletteEntryNV::e1InvocationPer2X2Pixels : return "1InvocationPer2X2Pixels"; - case ShadingRatePaletteEntryNV::e1InvocationPer4X2Pixels : return "1InvocationPer4X2Pixels"; - case ShadingRatePaletteEntryNV::e1InvocationPer2X4Pixels : return "1InvocationPer2X4Pixels"; - case ShadingRatePaletteEntryNV::e1InvocationPer4X4Pixels : return "1InvocationPer4X4Pixels"; - default: return "invalid"; + case ShadingRatePaletteEntryNV::eNoInvocations: return "NoInvocations"; + case ShadingRatePaletteEntryNV::e16InvocationsPerPixel: return "16InvocationsPerPixel"; + case ShadingRatePaletteEntryNV::e8InvocationsPerPixel: return "8InvocationsPerPixel"; + case ShadingRatePaletteEntryNV::e4InvocationsPerPixel: return "4InvocationsPerPixel"; + case ShadingRatePaletteEntryNV::e2InvocationsPerPixel: return "2InvocationsPerPixel"; + case ShadingRatePaletteEntryNV::e1InvocationPerPixel: return "1InvocationPerPixel"; + case ShadingRatePaletteEntryNV::e1InvocationPer2X1Pixels: return "1InvocationPer2X1Pixels"; + case ShadingRatePaletteEntryNV::e1InvocationPer1X2Pixels: return "1InvocationPer1X2Pixels"; + case ShadingRatePaletteEntryNV::e1InvocationPer2X2Pixels: return "1InvocationPer2X2Pixels"; + case ShadingRatePaletteEntryNV::e1InvocationPer4X2Pixels: return "1InvocationPer4X2Pixels"; + case ShadingRatePaletteEntryNV::e1InvocationPer2X4Pixels: return "1InvocationPer2X4Pixels"; + case ShadingRatePaletteEntryNV::e1InvocationPer4X4Pixels: return "1InvocationPer4X4Pixels"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class SharingMode { - eExclusive = VK_SHARING_MODE_EXCLUSIVE, + eExclusive = VK_SHARING_MODE_EXCLUSIVE, eConcurrent = VK_SHARING_MODE_CONCURRENT }; @@ -7099,16 +10222,16 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case SharingMode::eExclusive : return "Exclusive"; - case SharingMode::eConcurrent : return "Concurrent"; - default: return "invalid"; + case SharingMode::eExclusive: return "Exclusive"; + case SharingMode::eConcurrent: return "Concurrent"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class SparseImageFormatFlagBits + enum class SparseImageFormatFlagBits : VkSparseImageFormatFlags { - eSingleMiptail = VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT, - eAlignedMipSize = VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT, + eSingleMiptail = VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT, + eAlignedMipSize = VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT, eNonstandardBlockSize = VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT }; @@ -7116,14 +10239,14 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case SparseImageFormatFlagBits::eSingleMiptail : return "SingleMiptail"; - case SparseImageFormatFlagBits::eAlignedMipSize : return "AlignedMipSize"; - case SparseImageFormatFlagBits::eNonstandardBlockSize : return "NonstandardBlockSize"; - default: return "invalid"; + case SparseImageFormatFlagBits::eSingleMiptail: return "SingleMiptail"; + case SparseImageFormatFlagBits::eAlignedMipSize: return "AlignedMipSize"; + case SparseImageFormatFlagBits::eNonstandardBlockSize: return "NonstandardBlockSize"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class SparseMemoryBindFlagBits + enum class SparseMemoryBindFlagBits : VkSparseMemoryBindFlags { eMetadata = VK_SPARSE_MEMORY_BIND_METADATA_BIT }; @@ -7132,16 +10255,16 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case SparseMemoryBindFlagBits::eMetadata : return "Metadata"; - default: return "invalid"; + case SparseMemoryBindFlagBits::eMetadata: return "Metadata"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class StencilFaceFlagBits + enum class StencilFaceFlagBits : VkStencilFaceFlags { - eFront = VK_STENCIL_FACE_FRONT_BIT, - eBack = VK_STENCIL_FACE_BACK_BIT, - eFrontAndBack = VK_STENCIL_FACE_FRONT_AND_BACK, + eFront = VK_STENCIL_FACE_FRONT_BIT, + eBack = VK_STENCIL_FACE_BACK_BIT, + eFrontAndBack = VK_STENCIL_FACE_FRONT_AND_BACK, eVkStencilFrontAndBack = VK_STENCIL_FRONT_AND_BACK }; @@ -7149,998 +10272,1540 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case StencilFaceFlagBits::eFront : return "Front"; - case StencilFaceFlagBits::eBack : return "Back"; - case StencilFaceFlagBits::eFrontAndBack : return "FrontAndBack"; - default: return "invalid"; + case StencilFaceFlagBits::eFront: return "Front"; + case StencilFaceFlagBits::eBack: return "Back"; + case StencilFaceFlagBits::eFrontAndBack: return "FrontAndBack"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class StencilOp { - eKeep = VK_STENCIL_OP_KEEP, - eZero = VK_STENCIL_OP_ZERO, - eReplace = VK_STENCIL_OP_REPLACE, + eKeep = VK_STENCIL_OP_KEEP, + eZero = VK_STENCIL_OP_ZERO, + eReplace = VK_STENCIL_OP_REPLACE, eIncrementAndClamp = VK_STENCIL_OP_INCREMENT_AND_CLAMP, eDecrementAndClamp = VK_STENCIL_OP_DECREMENT_AND_CLAMP, - eInvert = VK_STENCIL_OP_INVERT, - eIncrementAndWrap = VK_STENCIL_OP_INCREMENT_AND_WRAP, - eDecrementAndWrap = VK_STENCIL_OP_DECREMENT_AND_WRAP + eInvert = VK_STENCIL_OP_INVERT, + eIncrementAndWrap = VK_STENCIL_OP_INCREMENT_AND_WRAP, + eDecrementAndWrap = VK_STENCIL_OP_DECREMENT_AND_WRAP }; VULKAN_HPP_INLINE std::string to_string( StencilOp value ) { switch ( value ) { - case StencilOp::eKeep : return "Keep"; - case StencilOp::eZero : return "Zero"; - case StencilOp::eReplace : return "Replace"; - case StencilOp::eIncrementAndClamp : return "IncrementAndClamp"; - case StencilOp::eDecrementAndClamp : return "DecrementAndClamp"; - case StencilOp::eInvert : return "Invert"; - case StencilOp::eIncrementAndWrap : return "IncrementAndWrap"; - case StencilOp::eDecrementAndWrap : return "DecrementAndWrap"; - default: return "invalid"; + case StencilOp::eKeep: return "Keep"; + case StencilOp::eZero: return "Zero"; + case StencilOp::eReplace: return "Replace"; + case StencilOp::eIncrementAndClamp: return "IncrementAndClamp"; + case StencilOp::eDecrementAndClamp: return "DecrementAndClamp"; + case StencilOp::eInvert: return "Invert"; + case StencilOp::eIncrementAndWrap: return "IncrementAndWrap"; + case StencilOp::eDecrementAndWrap: return "DecrementAndWrap"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class StructureType { - eApplicationInfo = VK_STRUCTURE_TYPE_APPLICATION_INFO, - eInstanceCreateInfo = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, - eDeviceQueueCreateInfo = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO, - eDeviceCreateInfo = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, - eSubmitInfo = VK_STRUCTURE_TYPE_SUBMIT_INFO, - eMemoryAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO, - eMappedMemoryRange = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE, - eBindSparseInfo = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO, - eFenceCreateInfo = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO, - eSemaphoreCreateInfo = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO, - eEventCreateInfo = VK_STRUCTURE_TYPE_EVENT_CREATE_INFO, - eQueryPoolCreateInfo = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO, - eBufferCreateInfo = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO, - eBufferViewCreateInfo = VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO, - eImageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, - eImageViewCreateInfo = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, - eShaderModuleCreateInfo = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO, - ePipelineCacheCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO, - ePipelineShaderStageCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, - ePipelineVertexInputStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO, - ePipelineInputAssemblyStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO, - ePipelineTessellationStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO, - ePipelineViewportStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO, - ePipelineRasterizationStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO, - ePipelineMultisampleStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO, - ePipelineDepthStencilStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO, - ePipelineColorBlendStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO, - ePipelineDynamicStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO, - eGraphicsPipelineCreateInfo = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO, - eComputePipelineCreateInfo = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO, - ePipelineLayoutCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO, - eSamplerCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO, - eDescriptorSetLayoutCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO, - eDescriptorPoolCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO, - eDescriptorSetAllocateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO, - eWriteDescriptorSet = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, - eCopyDescriptorSet = VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET, - eFramebufferCreateInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO, - eRenderPassCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO, - eCommandPoolCreateInfo = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO, - eCommandBufferAllocateInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO, - eCommandBufferInheritanceInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO, - eCommandBufferBeginInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, - eRenderPassBeginInfo = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO, - eBufferMemoryBarrier = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER, - eImageMemoryBarrier = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, - eMemoryBarrier = VK_STRUCTURE_TYPE_MEMORY_BARRIER, - eLoaderInstanceCreateInfo = VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO, - eLoaderDeviceCreateInfo = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO, - ePhysicalDeviceSubgroupProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES, - eBindBufferMemoryInfo = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO, - eBindImageMemoryInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO, - ePhysicalDevice16BitStorageFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, - eMemoryDedicatedRequirements = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS, - eMemoryDedicatedAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO, - eMemoryAllocateFlagsInfo = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO, - eDeviceGroupRenderPassBeginInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO, - eDeviceGroupCommandBufferBeginInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO, - eDeviceGroupSubmitInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO, - eDeviceGroupBindSparseInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO, - eBindBufferMemoryDeviceGroupInfo = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO, - eBindImageMemoryDeviceGroupInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO, - ePhysicalDeviceGroupProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES, - eDeviceGroupDeviceCreateInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO, - eBufferMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2, - eImageMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2, - eImageSparseMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2, - eMemoryRequirements2 = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2, - eSparseImageMemoryRequirements2 = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2, - ePhysicalDeviceFeatures2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2, - ePhysicalDeviceProperties2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2, - eFormatProperties2 = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2, - eImageFormatProperties2 = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2, - ePhysicalDeviceImageFormatInfo2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2, - eQueueFamilyProperties2 = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2, - ePhysicalDeviceMemoryProperties2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2, - eSparseImageFormatProperties2 = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2, - ePhysicalDeviceSparseImageFormatInfo2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2, - ePhysicalDevicePointClippingProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES, - eRenderPassInputAttachmentAspectCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO, - eImageViewUsageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO, - ePipelineTessellationDomainOriginStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO, - eRenderPassMultiviewCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO, - ePhysicalDeviceMultiviewFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, - ePhysicalDeviceMultiviewProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, - ePhysicalDeviceVariablePointersFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, - eProtectedSubmitInfo = VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO, - ePhysicalDeviceProtectedMemoryFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, - ePhysicalDeviceProtectedMemoryProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES, - eDeviceQueueInfo2 = VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2, - eSamplerYcbcrConversionCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO, - eSamplerYcbcrConversionInfo = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO, - eBindImagePlaneMemoryInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO, - eImagePlaneMemoryRequirementsInfo = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO, - ePhysicalDeviceSamplerYcbcrConversionFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES, - eSamplerYcbcrConversionImageFormatProperties = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES, - eDescriptorUpdateTemplateCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO, - ePhysicalDeviceExternalImageFormatInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO, - eExternalImageFormatProperties = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES, - ePhysicalDeviceExternalBufferInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO, - eExternalBufferProperties = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES, - ePhysicalDeviceIdProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES, - eExternalMemoryBufferCreateInfo = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO, - eExternalMemoryImageCreateInfo = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO, - eExportMemoryAllocateInfo = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO, - ePhysicalDeviceExternalFenceInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO, - eExternalFenceProperties = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES, - eExportFenceCreateInfo = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO, - eExportSemaphoreCreateInfo = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO, - ePhysicalDeviceExternalSemaphoreInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO, - eExternalSemaphoreProperties = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES, - ePhysicalDeviceMaintenance3Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, - eDescriptorSetLayoutSupport = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT, - ePhysicalDeviceShaderDrawParametersFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, - ePhysicalDeviceVulkan11Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES, - ePhysicalDeviceVulkan11Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES, - ePhysicalDeviceVulkan12Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES, - ePhysicalDeviceVulkan12Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES, - eImageFormatListCreateInfo = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO, - eAttachmentDescription2 = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2, - eAttachmentReference2 = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2, - eSubpassDescription2 = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2, - eSubpassDependency2 = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2, - eRenderPassCreateInfo2 = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2, - eSubpassBeginInfo = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO, - eSubpassEndInfo = VK_STRUCTURE_TYPE_SUBPASS_END_INFO, - ePhysicalDevice8BitStorageFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES, - ePhysicalDeviceDriverProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES, - ePhysicalDeviceShaderAtomicInt64Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES, - ePhysicalDeviceShaderFloat16Int8Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES, - ePhysicalDeviceFloatControlsProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES, - eDescriptorSetLayoutBindingFlagsCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO, - ePhysicalDeviceDescriptorIndexingFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES, - ePhysicalDeviceDescriptorIndexingProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES, - eDescriptorSetVariableDescriptorCountAllocateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO, - eDescriptorSetVariableDescriptorCountLayoutSupport = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT, - ePhysicalDeviceDepthStencilResolveProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES, - eSubpassDescriptionDepthStencilResolve = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE, - ePhysicalDeviceScalarBlockLayoutFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES, - eImageStencilUsageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO, - ePhysicalDeviceSamplerFilterMinmaxProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES, - eSamplerReductionModeCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO, - ePhysicalDeviceVulkanMemoryModelFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES, - ePhysicalDeviceImagelessFramebufferFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES, - eFramebufferAttachmentsCreateInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO, - eFramebufferAttachmentImageInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO, - eRenderPassAttachmentBeginInfo = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO, - ePhysicalDeviceUniformBufferStandardLayoutFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES, - ePhysicalDeviceShaderSubgroupExtendedTypesFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES, - ePhysicalDeviceSeparateDepthStencilLayoutsFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES, - eAttachmentReferenceStencilLayout = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT, - eAttachmentDescriptionStencilLayout = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT, - ePhysicalDeviceHostQueryResetFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES, - ePhysicalDeviceTimelineSemaphoreFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES, - ePhysicalDeviceTimelineSemaphoreProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES, - eSemaphoreTypeCreateInfo = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO, - eTimelineSemaphoreSubmitInfo = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO, - eSemaphoreWaitInfo = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO, - eSemaphoreSignalInfo = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO, - ePhysicalDeviceBufferDeviceAddressFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES, - eBufferDeviceAddressInfo = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO, - eBufferOpaqueCaptureAddressCreateInfo = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO, - eMemoryOpaqueCaptureAddressAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO, - eDeviceMemoryOpaqueCaptureAddressInfo = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO, - eSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR, - ePresentInfoKHR = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR, - eDeviceGroupPresentCapabilitiesKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR, - eImageSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR, - eBindImageMemorySwapchainInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR, - eAcquireNextImageInfoKHR = VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR, - eDeviceGroupPresentInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR, - eDeviceGroupSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR, - eDisplayModeCreateInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR, - eDisplaySurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR, - eDisplayPresentInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR, - eXlibSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR, - eXcbSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR, - eWaylandSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR, - eAndroidSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR, - eWin32SurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR, - eDebugReportCallbackCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, - ePipelineRasterizationStateRasterizationOrderAMD = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD, - eDebugMarkerObjectNameInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT, - eDebugMarkerObjectTagInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT, - eDebugMarkerMarkerInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT, - eDedicatedAllocationImageCreateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV, - eDedicatedAllocationBufferCreateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV, - eDedicatedAllocationMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV, - ePhysicalDeviceTransformFeedbackFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT, - ePhysicalDeviceTransformFeedbackPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT, - ePipelineRasterizationStateStreamCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT, - eImageViewHandleInfoNVX = VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX, - eTextureLodGatherFormatPropertiesAMD = VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD, - eStreamDescriptorSurfaceCreateInfoGGP = VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP, - ePhysicalDeviceCornerSampledImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV, - eExternalMemoryImageCreateInfoNV = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV, - eExportMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV, - eImportMemoryWin32HandleInfoNV = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV, - eExportMemoryWin32HandleInfoNV = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV, - eWin32KeyedMutexAcquireReleaseInfoNV = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV, - eValidationFlagsEXT = VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT, - eViSurfaceCreateInfoNN = VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN, - ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT, - eImageViewAstcDecodeModeEXT = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT, - ePhysicalDeviceAstcDecodeFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT, - eImportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR, - eExportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR, - eMemoryWin32HandlePropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR, - eMemoryGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR, - eImportMemoryFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR, - eMemoryFdPropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR, - eMemoryGetFdInfoKHR = VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR, - eWin32KeyedMutexAcquireReleaseInfoKHR = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR, - eImportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR, - eExportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR, - eD3D12FenceSubmitInfoKHR = VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR, - eSemaphoreGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR, - eImportSemaphoreFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR, - eSemaphoreGetFdInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR, - ePhysicalDevicePushDescriptorPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR, - eCommandBufferInheritanceConditionalRenderingInfoEXT = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT, - ePhysicalDeviceConditionalRenderingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT, - eConditionalRenderingBeginInfoEXT = VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT, - ePresentRegionsKHR = VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR, - eObjectTableCreateInfoNVX = VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX, - eIndirectCommandsLayoutCreateInfoNVX = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX, - eCmdProcessCommandsInfoNVX = VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX, - eCmdReserveSpaceForCommandsInfoNVX = VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX, - eDeviceGeneratedCommandsLimitsNVX = VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX, - eDeviceGeneratedCommandsFeaturesNVX = VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX, - ePipelineViewportWScalingStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV, - eSurfaceCapabilities2EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT, - eDisplayPowerInfoEXT = VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT, - eDeviceEventInfoEXT = VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT, - eDisplayEventInfoEXT = VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT, - eSwapchainCounterCreateInfoEXT = VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT, - ePresentTimesInfoGOOGLE = VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE, - ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX, - ePipelineViewportSwizzleStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV, - ePhysicalDeviceDiscardRectanglePropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT, - ePipelineDiscardRectangleStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT, - ePhysicalDeviceConservativeRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT, - ePipelineRasterizationConservativeStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT, - ePhysicalDeviceDepthClipEnableFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT, - ePipelineRasterizationDepthClipStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT, - eHdrMetadataEXT = VK_STRUCTURE_TYPE_HDR_METADATA_EXT, - eSharedPresentSurfaceCapabilitiesKHR = VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR, - eImportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR, - eExportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR, - eFenceGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR, - eImportFenceFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR, - eFenceGetFdInfoKHR = VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR, - ePhysicalDevicePerformanceQueryFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR, - ePhysicalDevicePerformanceQueryPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR, - eQueryPoolPerformanceCreateInfoKHR = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR, - ePerformanceQuerySubmitInfoKHR = VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR, - eAcquireProfilingLockInfoKHR = VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR, - ePerformanceCounterKHR = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR, - ePerformanceCounterDescriptionKHR = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR, - ePhysicalDeviceSurfaceInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR, - eSurfaceCapabilities2KHR = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR, - eSurfaceFormat2KHR = VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR, - eDisplayProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR, - eDisplayPlaneProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR, - eDisplayModeProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR, - eDisplayPlaneInfo2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR, - eDisplayPlaneCapabilities2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR, - eIosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK, - eMacosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK, - eDebugUtilsObjectNameInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT, - eDebugUtilsObjectTagInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT, - eDebugUtilsLabelEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT, - eDebugUtilsMessengerCallbackDataEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT, - eDebugUtilsMessengerCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT, - eAndroidHardwareBufferUsageANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID, - eAndroidHardwareBufferPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID, - eAndroidHardwareBufferFormatPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID, - eImportAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID, - eMemoryGetAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID, - eExternalFormatANDROID = VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID, - ePhysicalDeviceInlineUniformBlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT, - ePhysicalDeviceInlineUniformBlockPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT, - eWriteDescriptorSetInlineUniformBlockEXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT, - eDescriptorPoolInlineUniformBlockCreateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT, - eSampleLocationsInfoEXT = VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT, - eRenderPassSampleLocationsBeginInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT, - ePipelineSampleLocationsStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT, - ePhysicalDeviceSampleLocationsPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT, - eMultisamplePropertiesEXT = VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT, - ePhysicalDeviceBlendOperationAdvancedFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT, - ePhysicalDeviceBlendOperationAdvancedPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT, - ePipelineColorBlendAdvancedStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT, - ePipelineCoverageToColorStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV, - ePipelineCoverageModulationStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV, - ePhysicalDeviceShaderSmBuiltinsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV, - ePhysicalDeviceShaderSmBuiltinsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV, - eDrmFormatModifierPropertiesListEXT = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT, - eDrmFormatModifierPropertiesEXT = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT, - ePhysicalDeviceImageDrmFormatModifierInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT, - eImageDrmFormatModifierListCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT, - eImageDrmFormatModifierExplicitCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT, - eImageDrmFormatModifierPropertiesEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT, - eValidationCacheCreateInfoEXT = VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT, - eShaderModuleValidationCacheCreateInfoEXT = VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT, - ePipelineViewportShadingRateImageStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV, - ePhysicalDeviceShadingRateImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV, - ePhysicalDeviceShadingRateImagePropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV, - ePipelineViewportCoarseSampleOrderStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV, - eRayTracingPipelineCreateInfoNV = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV, - eAccelerationStructureCreateInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV, - eGeometryNV = VK_STRUCTURE_TYPE_GEOMETRY_NV, - eGeometryTrianglesNV = VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV, - eGeometryAabbNV = VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV, - eBindAccelerationStructureMemoryInfoNV = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV, - eWriteDescriptorSetAccelerationStructureNV = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV, - eAccelerationStructureMemoryRequirementsInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV, - ePhysicalDeviceRayTracingPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV, - eRayTracingShaderGroupCreateInfoNV = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV, - eAccelerationStructureInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV, - ePhysicalDeviceRepresentativeFragmentTestFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV, - ePipelineRepresentativeFragmentTestStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV, - ePhysicalDeviceImageViewImageFormatInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT, - eFilterCubicImageViewImageFormatPropertiesEXT = VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT, - eDeviceQueueGlobalPriorityCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT, - eImportMemoryHostPointerInfoEXT = VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT, - eMemoryHostPointerPropertiesEXT = VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT, - ePhysicalDeviceExternalMemoryHostPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT, - ePhysicalDeviceShaderClockFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR, - ePipelineCompilerControlCreateInfoAMD = VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD, - eCalibratedTimestampInfoEXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT, - ePhysicalDeviceShaderCorePropertiesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD, - eDeviceMemoryOverallocationCreateInfoAMD = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD, - ePhysicalDeviceVertexAttributeDivisorPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT, - ePipelineVertexInputDivisorStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT, - ePhysicalDeviceVertexAttributeDivisorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT, - ePresentFrameTokenGGP = VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP, - ePipelineCreationFeedbackCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT, - ePhysicalDeviceComputeShaderDerivativesFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV, - ePhysicalDeviceMeshShaderFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV, - ePhysicalDeviceMeshShaderPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV, - ePhysicalDeviceFragmentShaderBarycentricFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV, - ePhysicalDeviceShaderImageFootprintFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV, - ePipelineViewportExclusiveScissorStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV, - ePhysicalDeviceExclusiveScissorFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV, - eCheckpointDataNV = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV, - eQueueFamilyCheckpointPropertiesNV = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV, - ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL, - eQueryPoolCreateInfoINTEL = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL, - eInitializePerformanceApiInfoINTEL = VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL, - ePerformanceMarkerInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL, - ePerformanceStreamMarkerInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL, - ePerformanceOverrideInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL, - ePerformanceConfigurationAcquireInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL, - ePhysicalDevicePciBusInfoPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT, - eDisplayNativeHdrSurfaceCapabilitiesAMD = VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD, - eSwapchainDisplayNativeHdrCreateInfoAMD = VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD, - eImagepipeSurfaceCreateInfoFUCHSIA = VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA, - eMetalSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT, - ePhysicalDeviceFragmentDensityMapFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT, - ePhysicalDeviceFragmentDensityMapPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT, - eRenderPassFragmentDensityMapCreateInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT, - ePhysicalDeviceSubgroupSizeControlPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT, - ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT, - ePhysicalDeviceSubgroupSizeControlFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT, - ePhysicalDeviceShaderCoreProperties2AMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD, - ePhysicalDeviceCoherentMemoryFeaturesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, - ePhysicalDeviceMemoryBudgetPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT, - ePhysicalDeviceMemoryPriorityFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT, - eMemoryPriorityAllocateInfoEXT = VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT, - eSurfaceProtectedCapabilitiesKHR = VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR, - ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV, - ePhysicalDeviceBufferDeviceAddressFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, - eBufferDeviceAddressCreateInfoEXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT, - ePhysicalDeviceToolPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT, - eValidationFeaturesEXT = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT, - ePhysicalDeviceCooperativeMatrixFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, - eCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV, - ePhysicalDeviceCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV, - ePhysicalDeviceCoverageReductionModeFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV, - ePipelineCoverageReductionStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV, - eFramebufferMixedSamplesCombinationNV = VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV, - ePhysicalDeviceFragmentShaderInterlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT, - ePhysicalDeviceYcbcrImageArraysFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT, - eSurfaceFullScreenExclusiveInfoEXT = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT, - eSurfaceCapabilitiesFullScreenExclusiveEXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT, - eSurfaceFullScreenExclusiveWin32InfoEXT = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT, - eHeadlessSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT, - ePhysicalDeviceLineRasterizationFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT, - ePipelineRasterizationLineStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT, - ePhysicalDeviceLineRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT, - ePhysicalDeviceIndexTypeUint8FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT, - ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR, - ePipelineInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR, - ePipelineExecutablePropertiesKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR, - ePipelineExecutableInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR, - ePipelineExecutableStatisticKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR, - ePipelineExecutableInternalRepresentationKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR, - ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT, - ePhysicalDeviceTexelBufferAlignmentFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT, - ePhysicalDeviceTexelBufferAlignmentPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT, - ePhysicalDeviceVariablePointerFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES, - ePhysicalDeviceShaderDrawParameterFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES, - eDebugReportCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT, - eRenderPassMultiviewCreateInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR, - ePhysicalDeviceMultiviewFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR, - ePhysicalDeviceMultiviewPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR, - ePhysicalDeviceFeatures2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR, - ePhysicalDeviceProperties2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR, - eFormatProperties2KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR, - eImageFormatProperties2KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR, - ePhysicalDeviceImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR, - eQueueFamilyProperties2KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR, - ePhysicalDeviceMemoryProperties2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR, - eSparseImageFormatProperties2KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR, - ePhysicalDeviceSparseImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR, - eMemoryAllocateFlagsInfoKHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR, - eDeviceGroupRenderPassBeginInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR, - eDeviceGroupCommandBufferBeginInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR, - eDeviceGroupSubmitInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR, - eDeviceGroupBindSparseInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR, - eBindBufferMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR, - eBindImageMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR, - ePhysicalDeviceGroupPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR, - eDeviceGroupDeviceCreateInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR, - ePhysicalDeviceExternalImageFormatInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR, - eExternalImageFormatPropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR, - ePhysicalDeviceExternalBufferInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR, - eExternalBufferPropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR, - ePhysicalDeviceIdPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR, - eExternalMemoryBufferCreateInfoKHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR, - eExternalMemoryImageCreateInfoKHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR, - eExportMemoryAllocateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR, - ePhysicalDeviceExternalSemaphoreInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR, - eExternalSemaphorePropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR, - eExportSemaphoreCreateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR, - ePhysicalDeviceShaderFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR, - ePhysicalDeviceFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR, - ePhysicalDevice16BitStorageFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR, - eDescriptorUpdateTemplateCreateInfoKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR, - ePhysicalDeviceImagelessFramebufferFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR, - eFramebufferAttachmentsCreateInfoKHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR, - eFramebufferAttachmentImageInfoKHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR, - eRenderPassAttachmentBeginInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR, - eAttachmentDescription2KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR, - eAttachmentReference2KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR, - eSubpassDescription2KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR, - eSubpassDependency2KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR, - eRenderPassCreateInfo2KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR, - eSubpassBeginInfoKHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR, - eSubpassEndInfoKHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR, - ePhysicalDeviceExternalFenceInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR, - eExternalFencePropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR, - eExportFenceCreateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR, - ePhysicalDevicePointClippingPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR, - eRenderPassInputAttachmentAspectCreateInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR, - eImageViewUsageCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR, - ePipelineTessellationDomainOriginStateCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR, - ePhysicalDeviceVariablePointerFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR, - ePhysicalDeviceVariablePointersFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR, - eMemoryDedicatedRequirementsKHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR, - eMemoryDedicatedAllocateInfoKHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR, - ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT, - eSamplerReductionModeCreateInfoEXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT, - eBufferMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR, - eImageMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR, - eImageSparseMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR, - eMemoryRequirements2KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR, - eSparseImageMemoryRequirements2KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR, - eImageFormatListCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR, - eSamplerYcbcrConversionCreateInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR, - eSamplerYcbcrConversionInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR, - eBindImagePlaneMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR, - eImagePlaneMemoryRequirementsInfoKHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR, - ePhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR, - eSamplerYcbcrConversionImageFormatPropertiesKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR, - eBindBufferMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR, - eBindImageMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR, - eDescriptorSetLayoutBindingFlagsCreateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT, - ePhysicalDeviceDescriptorIndexingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT, - ePhysicalDeviceDescriptorIndexingPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT, - eDescriptorSetVariableDescriptorCountAllocateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT, - eDescriptorSetVariableDescriptorCountLayoutSupportEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT, - ePhysicalDeviceMaintenance3PropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR, - eDescriptorSetLayoutSupportKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR, - ePhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR, - ePhysicalDevice8BitStorageFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR, - ePhysicalDeviceShaderAtomicInt64FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR, - ePhysicalDeviceDriverPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR, - ePhysicalDeviceFloatControlsPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR, - ePhysicalDeviceDepthStencilResolvePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR, - eSubpassDescriptionDepthStencilResolveKHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR, - ePhysicalDeviceTimelineSemaphoreFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR, - ePhysicalDeviceTimelineSemaphorePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR, - eSemaphoreTypeCreateInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR, - eTimelineSemaphoreSubmitInfoKHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR, - eSemaphoreWaitInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR, - eSemaphoreSignalInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR, - ePhysicalDeviceVulkanMemoryModelFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR, - ePhysicalDeviceScalarBlockLayoutFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT, - ePhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR, - eAttachmentReferenceStencilLayoutKHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR, - eAttachmentDescriptionStencilLayoutKHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR, - ePhysicalDeviceBufferAddressFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT, - eBufferDeviceAddressInfoEXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT, - eImageStencilUsageCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT, - ePhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR, - ePhysicalDeviceBufferDeviceAddressFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR, - eBufferDeviceAddressInfoKHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR, - eBufferOpaqueCaptureAddressCreateInfoKHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR, - eMemoryOpaqueCaptureAddressAllocateInfoKHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR, - eDeviceMemoryOpaqueCaptureAddressInfoKHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR, - ePhysicalDeviceHostQueryResetFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT + // clang-format off + eApplicationInfo = VK_STRUCTURE_TYPE_APPLICATION_INFO + , eInstanceCreateInfo = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO + , eDeviceQueueCreateInfo = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO + , eDeviceCreateInfo = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO + , eSubmitInfo = VK_STRUCTURE_TYPE_SUBMIT_INFO + , eMemoryAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO + , eMappedMemoryRange = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE + , eBindSparseInfo = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO + , eFenceCreateInfo = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO + , eSemaphoreCreateInfo = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO + , eEventCreateInfo = VK_STRUCTURE_TYPE_EVENT_CREATE_INFO + , eQueryPoolCreateInfo = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO + , eBufferCreateInfo = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO + , eBufferViewCreateInfo = VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO + , eImageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO + , eImageViewCreateInfo = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO + , eShaderModuleCreateInfo = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO + , ePipelineCacheCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO + , ePipelineShaderStageCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO + , ePipelineVertexInputStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO + , ePipelineInputAssemblyStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO + , ePipelineTessellationStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO + , ePipelineViewportStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO + , ePipelineRasterizationStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO + , ePipelineMultisampleStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO + , ePipelineDepthStencilStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO + , ePipelineColorBlendStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO + , ePipelineDynamicStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO + , eGraphicsPipelineCreateInfo = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO + , eComputePipelineCreateInfo = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO + , ePipelineLayoutCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO + , eSamplerCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO + , eDescriptorSetLayoutCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO + , eDescriptorPoolCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO + , eDescriptorSetAllocateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO + , eWriteDescriptorSet = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET + , eCopyDescriptorSet = VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET + , eFramebufferCreateInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO + , eRenderPassCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO + , eCommandPoolCreateInfo = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO + , eCommandBufferAllocateInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO + , eCommandBufferInheritanceInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO + , eCommandBufferBeginInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO + , eRenderPassBeginInfo = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO + , eBufferMemoryBarrier = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER + , eImageMemoryBarrier = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER + , eMemoryBarrier = VK_STRUCTURE_TYPE_MEMORY_BARRIER + , eLoaderInstanceCreateInfo = VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO + , eLoaderDeviceCreateInfo = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO + , ePhysicalDeviceSubgroupProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES + , eBindBufferMemoryInfo = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO + , eBindImageMemoryInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO + , ePhysicalDevice16BitStorageFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES + , eMemoryDedicatedRequirements = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS + , eMemoryDedicatedAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO + , eMemoryAllocateFlagsInfo = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO + , eDeviceGroupRenderPassBeginInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO + , eDeviceGroupCommandBufferBeginInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO + , eDeviceGroupSubmitInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO + , eDeviceGroupBindSparseInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO + , eBindBufferMemoryDeviceGroupInfo = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO + , eBindImageMemoryDeviceGroupInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO + , ePhysicalDeviceGroupProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES + , eDeviceGroupDeviceCreateInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO + , eBufferMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 + , eImageMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 + , eImageSparseMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 + , eMemoryRequirements2 = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 + , eSparseImageMemoryRequirements2 = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 + , ePhysicalDeviceFeatures2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 + , ePhysicalDeviceProperties2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 + , eFormatProperties2 = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 + , eImageFormatProperties2 = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 + , ePhysicalDeviceImageFormatInfo2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 + , eQueueFamilyProperties2 = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 + , ePhysicalDeviceMemoryProperties2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 + , eSparseImageFormatProperties2 = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 + , ePhysicalDeviceSparseImageFormatInfo2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 + , ePhysicalDevicePointClippingProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES + , eRenderPassInputAttachmentAspectCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO + , eImageViewUsageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO + , ePipelineTessellationDomainOriginStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO + , eRenderPassMultiviewCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO + , ePhysicalDeviceMultiviewFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES + , ePhysicalDeviceMultiviewProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES + , ePhysicalDeviceVariablePointersFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES + , eProtectedSubmitInfo = VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO + , ePhysicalDeviceProtectedMemoryFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES + , ePhysicalDeviceProtectedMemoryProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES + , eDeviceQueueInfo2 = VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 + , eSamplerYcbcrConversionCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO + , eSamplerYcbcrConversionInfo = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO + , eBindImagePlaneMemoryInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO + , eImagePlaneMemoryRequirementsInfo = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO + , ePhysicalDeviceSamplerYcbcrConversionFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES + , eSamplerYcbcrConversionImageFormatProperties = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES + , eDescriptorUpdateTemplateCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO + , ePhysicalDeviceExternalImageFormatInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO + , eExternalImageFormatProperties = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES + , ePhysicalDeviceExternalBufferInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO + , eExternalBufferProperties = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES + , ePhysicalDeviceIdProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES + , eExternalMemoryBufferCreateInfo = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO + , eExternalMemoryImageCreateInfo = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO + , eExportMemoryAllocateInfo = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO + , ePhysicalDeviceExternalFenceInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO + , eExternalFenceProperties = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES + , eExportFenceCreateInfo = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO + , eExportSemaphoreCreateInfo = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO + , ePhysicalDeviceExternalSemaphoreInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO + , eExternalSemaphoreProperties = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES + , ePhysicalDeviceMaintenance3Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES + , eDescriptorSetLayoutSupport = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT + , ePhysicalDeviceShaderDrawParametersFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES + , ePhysicalDeviceVulkan11Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES + , ePhysicalDeviceVulkan11Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES + , ePhysicalDeviceVulkan12Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES + , ePhysicalDeviceVulkan12Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES + , eImageFormatListCreateInfo = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO + , eAttachmentDescription2 = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 + , eAttachmentReference2 = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 + , eSubpassDescription2 = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 + , eSubpassDependency2 = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 + , eRenderPassCreateInfo2 = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 + , eSubpassBeginInfo = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO + , eSubpassEndInfo = VK_STRUCTURE_TYPE_SUBPASS_END_INFO + , ePhysicalDevice8BitStorageFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES + , ePhysicalDeviceDriverProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES + , ePhysicalDeviceShaderAtomicInt64Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES + , ePhysicalDeviceShaderFloat16Int8Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES + , ePhysicalDeviceFloatControlsProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES + , eDescriptorSetLayoutBindingFlagsCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO + , ePhysicalDeviceDescriptorIndexingFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES + , ePhysicalDeviceDescriptorIndexingProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES + , eDescriptorSetVariableDescriptorCountAllocateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO + , eDescriptorSetVariableDescriptorCountLayoutSupport = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT + , ePhysicalDeviceDepthStencilResolveProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES + , eSubpassDescriptionDepthStencilResolve = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE + , ePhysicalDeviceScalarBlockLayoutFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES + , eImageStencilUsageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO + , ePhysicalDeviceSamplerFilterMinmaxProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES + , eSamplerReductionModeCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO + , ePhysicalDeviceVulkanMemoryModelFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES + , ePhysicalDeviceImagelessFramebufferFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES + , eFramebufferAttachmentsCreateInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO + , eFramebufferAttachmentImageInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO + , eRenderPassAttachmentBeginInfo = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO + , ePhysicalDeviceUniformBufferStandardLayoutFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES + , ePhysicalDeviceShaderSubgroupExtendedTypesFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES + , ePhysicalDeviceSeparateDepthStencilLayoutsFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES + , eAttachmentReferenceStencilLayout = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT + , eAttachmentDescriptionStencilLayout = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT + , ePhysicalDeviceHostQueryResetFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES + , ePhysicalDeviceTimelineSemaphoreFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES + , ePhysicalDeviceTimelineSemaphoreProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES + , eSemaphoreTypeCreateInfo = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO + , eTimelineSemaphoreSubmitInfo = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO + , eSemaphoreWaitInfo = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO + , eSemaphoreSignalInfo = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO + , ePhysicalDeviceBufferDeviceAddressFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES + , eBufferDeviceAddressInfo = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO + , eBufferOpaqueCaptureAddressCreateInfo = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO + , eMemoryOpaqueCaptureAddressAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO + , eDeviceMemoryOpaqueCaptureAddressInfo = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO + , eSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR + , ePresentInfoKHR = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR + , eDeviceGroupPresentCapabilitiesKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR + , eImageSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR + , eBindImageMemorySwapchainInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR + , eAcquireNextImageInfoKHR = VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR + , eDeviceGroupPresentInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR + , eDeviceGroupSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR + , eDisplayModeCreateInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR + , eDisplaySurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR + , eDisplayPresentInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR +#if defined( VK_USE_PLATFORM_XLIB_KHR ) + , eXlibSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR +#endif /*VK_USE_PLATFORM_XLIB_KHR*/ +#if defined( VK_USE_PLATFORM_XCB_KHR ) + , eXcbSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR +#endif /*VK_USE_PLATFORM_XCB_KHR*/ +#if defined( VK_USE_PLATFORM_WAYLAND_KHR ) + , eWaylandSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR +#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + , eAndroidSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + , eWin32SurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + , eDebugReportCallbackCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT + , ePipelineRasterizationStateRasterizationOrderAMD = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD + , eDebugMarkerObjectNameInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT + , eDebugMarkerObjectTagInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT + , eDebugMarkerMarkerInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + , eVideoProfileKHR = VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR + , eVideoCapabilitiesKHR = VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR + , eVideoPictureResourceKHR = VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR + , eVideoGetMemoryPropertiesKHR = VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR + , eVideoBindMemoryKHR = VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR + , eVideoSessionCreateInfoKHR = VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR + , eVideoSessionParametersCreateInfoKHR = VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR + , eVideoSessionParametersUpdateInfoKHR = VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR + , eVideoBeginCodingInfoKHR = VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR + , eVideoEndCodingInfoKHR = VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR + , eVideoCodingControlInfoKHR = VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR + , eVideoReferenceSlotKHR = VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR + , eVideoQueueFamilyProperties2KHR = VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR + , eVideoProfilesKHR = VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR + , ePhysicalDeviceVideoFormatInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR + , eVideoFormatPropertiesKHR = VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR + , eVideoDecodeInfoKHR = VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR + , eVideoEncodeInfoKHR = VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR + , eVideoEncodeRateControlInfoKHR = VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + , eDedicatedAllocationImageCreateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV + , eDedicatedAllocationBufferCreateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV + , eDedicatedAllocationMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV + , ePhysicalDeviceTransformFeedbackFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT + , ePhysicalDeviceTransformFeedbackPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT + , ePipelineRasterizationStateStreamCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT + , eImageViewHandleInfoNVX = VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX + , eImageViewAddressPropertiesNVX = VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + , eVideoEncodeH264CapabilitiesEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT + , eVideoEncodeH264SessionCreateInfoEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT + , eVideoEncodeH264SessionParametersCreateInfoEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT + , eVideoEncodeH264SessionParametersAddInfoEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT + , eVideoEncodeH264VclFrameInfoEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT + , eVideoEncodeH264DpbSlotInfoEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT + , eVideoEncodeH264NaluSliceEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT + , eVideoEncodeH264EmitPictureParametersEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT + , eVideoEncodeH264ProfileEXT = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT + , eVideoDecodeH264CapabilitiesEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT + , eVideoDecodeH264SessionCreateInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT + , eVideoDecodeH264PictureInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT + , eVideoDecodeH264MvcEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT + , eVideoDecodeH264ProfileEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT + , eVideoDecodeH264SessionParametersCreateInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT + , eVideoDecodeH264SessionParametersAddInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT + , eVideoDecodeH264DpbSlotInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + , eTextureLodGatherFormatPropertiesAMD = VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD +#if defined( VK_USE_PLATFORM_GGP ) + , eStreamDescriptorSurfaceCreateInfoGGP = VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP +#endif /*VK_USE_PLATFORM_GGP*/ + , ePhysicalDeviceCornerSampledImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV + , eExternalMemoryImageCreateInfoNV = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV + , eExportMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + , eImportMemoryWin32HandleInfoNV = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV + , eExportMemoryWin32HandleInfoNV = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV + , eWin32KeyedMutexAcquireReleaseInfoNV = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + , eValidationFlagsEXT = VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT +#if defined( VK_USE_PLATFORM_VI_NN ) + , eViSurfaceCreateInfoNN = VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN +#endif /*VK_USE_PLATFORM_VI_NN*/ + , ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT + , eImageViewAstcDecodeModeEXT = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT + , ePhysicalDeviceAstcDecodeFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + , eImportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR + , eExportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR + , eMemoryWin32HandlePropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR + , eMemoryGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + , eImportMemoryFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR + , eMemoryFdPropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR + , eMemoryGetFdInfoKHR = VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + , eWin32KeyedMutexAcquireReleaseInfoKHR = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR + , eImportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR + , eExportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR + , eD3D12FenceSubmitInfoKHR = VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR + , eSemaphoreGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + , eImportSemaphoreFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR + , eSemaphoreGetFdInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR + , ePhysicalDevicePushDescriptorPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR + , eCommandBufferInheritanceConditionalRenderingInfoEXT = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT + , ePhysicalDeviceConditionalRenderingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT + , eConditionalRenderingBeginInfoEXT = VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT + , ePresentRegionsKHR = VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR + , ePipelineViewportWScalingStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV + , eSurfaceCapabilities2EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT + , eDisplayPowerInfoEXT = VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT + , eDeviceEventInfoEXT = VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT + , eDisplayEventInfoEXT = VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT + , eSwapchainCounterCreateInfoEXT = VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT + , ePresentTimesInfoGOOGLE = VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE + , ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX + , ePipelineViewportSwizzleStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV + , ePhysicalDeviceDiscardRectanglePropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT + , ePipelineDiscardRectangleStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT + , ePhysicalDeviceConservativeRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT + , ePipelineRasterizationConservativeStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT + , ePhysicalDeviceDepthClipEnableFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT + , ePipelineRasterizationDepthClipStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT + , eHdrMetadataEXT = VK_STRUCTURE_TYPE_HDR_METADATA_EXT + , eSharedPresentSurfaceCapabilitiesKHR = VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + , eImportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR + , eExportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR + , eFenceGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + , eImportFenceFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR + , eFenceGetFdInfoKHR = VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR + , ePhysicalDevicePerformanceQueryFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR + , ePhysicalDevicePerformanceQueryPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR + , eQueryPoolPerformanceCreateInfoKHR = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR + , ePerformanceQuerySubmitInfoKHR = VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR + , eAcquireProfilingLockInfoKHR = VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR + , ePerformanceCounterKHR = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR + , ePerformanceCounterDescriptionKHR = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR + , ePhysicalDeviceSurfaceInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR + , eSurfaceCapabilities2KHR = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR + , eSurfaceFormat2KHR = VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR + , eDisplayProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR + , eDisplayPlaneProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR + , eDisplayModeProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR + , eDisplayPlaneInfo2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR + , eDisplayPlaneCapabilities2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR +#if defined( VK_USE_PLATFORM_IOS_MVK ) + , eIosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK +#endif /*VK_USE_PLATFORM_IOS_MVK*/ +#if defined( VK_USE_PLATFORM_MACOS_MVK ) + , eMacosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK +#endif /*VK_USE_PLATFORM_MACOS_MVK*/ + , eDebugUtilsObjectNameInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT + , eDebugUtilsObjectTagInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT + , eDebugUtilsLabelEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT + , eDebugUtilsMessengerCallbackDataEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT + , eDebugUtilsMessengerCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + , eAndroidHardwareBufferUsageANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID + , eAndroidHardwareBufferPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID + , eAndroidHardwareBufferFormatPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID + , eImportAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID + , eMemoryGetAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID + , eExternalFormatANDROID = VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + , ePhysicalDeviceInlineUniformBlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT + , ePhysicalDeviceInlineUniformBlockPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT + , eWriteDescriptorSetInlineUniformBlockEXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT + , eDescriptorPoolInlineUniformBlockCreateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT + , eSampleLocationsInfoEXT = VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT + , eRenderPassSampleLocationsBeginInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT + , ePipelineSampleLocationsStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT + , ePhysicalDeviceSampleLocationsPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT + , eMultisamplePropertiesEXT = VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT + , ePhysicalDeviceBlendOperationAdvancedFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT + , ePhysicalDeviceBlendOperationAdvancedPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT + , ePipelineColorBlendAdvancedStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT + , ePipelineCoverageToColorStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV + , eWriteDescriptorSetAccelerationStructureKHR = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR + , eAccelerationStructureBuildGeometryInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR + , eAccelerationStructureDeviceAddressInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR + , eAccelerationStructureGeometryAabbsDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR + , eAccelerationStructureGeometryInstancesDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR + , eAccelerationStructureGeometryTrianglesDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR + , eAccelerationStructureGeometryKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR + , eAccelerationStructureVersionInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR + , eCopyAccelerationStructureInfoKHR = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR + , eCopyAccelerationStructureToMemoryInfoKHR = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR + , eCopyMemoryToAccelerationStructureInfoKHR = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR + , ePhysicalDeviceAccelerationStructureFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR + , ePhysicalDeviceAccelerationStructurePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR + , eAccelerationStructureCreateInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR + , eAccelerationStructureBuildSizesInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR + , ePhysicalDeviceRayTracingPipelineFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR + , ePhysicalDeviceRayTracingPipelinePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR + , eRayTracingPipelineCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR + , eRayTracingShaderGroupCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR + , eRayTracingPipelineInterfaceCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR + , ePhysicalDeviceRayQueryFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR + , ePipelineCoverageModulationStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV + , ePhysicalDeviceShaderSmBuiltinsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV + , ePhysicalDeviceShaderSmBuiltinsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV + , eDrmFormatModifierPropertiesListEXT = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT + , ePhysicalDeviceImageDrmFormatModifierInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT + , eImageDrmFormatModifierListCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT + , eImageDrmFormatModifierExplicitCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT + , eImageDrmFormatModifierPropertiesEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT + , eValidationCacheCreateInfoEXT = VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT + , eShaderModuleValidationCacheCreateInfoEXT = VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + , ePhysicalDevicePortabilitySubsetFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR + , ePhysicalDevicePortabilitySubsetPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + , ePipelineViewportShadingRateImageStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV + , ePhysicalDeviceShadingRateImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV + , ePhysicalDeviceShadingRateImagePropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV + , ePipelineViewportCoarseSampleOrderStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV + , eRayTracingPipelineCreateInfoNV = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV + , eAccelerationStructureCreateInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV + , eGeometryNV = VK_STRUCTURE_TYPE_GEOMETRY_NV + , eGeometryTrianglesNV = VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV + , eGeometryAabbNV = VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV + , eBindAccelerationStructureMemoryInfoNV = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV + , eWriteDescriptorSetAccelerationStructureNV = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV + , eAccelerationStructureMemoryRequirementsInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV + , ePhysicalDeviceRayTracingPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV + , eRayTracingShaderGroupCreateInfoNV = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV + , eAccelerationStructureInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV + , ePhysicalDeviceRepresentativeFragmentTestFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV + , ePipelineRepresentativeFragmentTestStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV + , ePhysicalDeviceImageViewImageFormatInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT + , eFilterCubicImageViewImageFormatPropertiesEXT = VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT + , eDeviceQueueGlobalPriorityCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT + , eImportMemoryHostPointerInfoEXT = VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT + , eMemoryHostPointerPropertiesEXT = VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT + , ePhysicalDeviceExternalMemoryHostPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT + , ePhysicalDeviceShaderClockFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR + , ePipelineCompilerControlCreateInfoAMD = VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD + , eCalibratedTimestampInfoEXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT + , ePhysicalDeviceShaderCorePropertiesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + , eVideoDecodeH265CapabilitiesEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT + , eVideoDecodeH265SessionCreateInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT + , eVideoDecodeH265SessionParametersCreateInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT + , eVideoDecodeH265SessionParametersAddInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT + , eVideoDecodeH265ProfileEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT + , eVideoDecodeH265PictureInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT + , eVideoDecodeH265DpbSlotInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + , eDeviceMemoryOverallocationCreateInfoAMD = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD + , ePhysicalDeviceVertexAttributeDivisorPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT + , ePipelineVertexInputDivisorStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT + , ePhysicalDeviceVertexAttributeDivisorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT +#if defined( VK_USE_PLATFORM_GGP ) + , ePresentFrameTokenGGP = VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP +#endif /*VK_USE_PLATFORM_GGP*/ + , ePipelineCreationFeedbackCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT + , ePhysicalDeviceComputeShaderDerivativesFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV + , ePhysicalDeviceMeshShaderFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV + , ePhysicalDeviceMeshShaderPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV + , ePhysicalDeviceFragmentShaderBarycentricFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV + , ePhysicalDeviceShaderImageFootprintFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV + , ePipelineViewportExclusiveScissorStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV + , ePhysicalDeviceExclusiveScissorFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV + , eCheckpointDataNV = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV + , eQueueFamilyCheckpointPropertiesNV = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV + , ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL + , eQueryPoolPerformanceQueryCreateInfoINTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL + , eInitializePerformanceApiInfoINTEL = VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL + , ePerformanceMarkerInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL + , ePerformanceStreamMarkerInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL + , ePerformanceOverrideInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL + , ePerformanceConfigurationAcquireInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL + , ePhysicalDevicePciBusInfoPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT + , eDisplayNativeHdrSurfaceCapabilitiesAMD = VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD + , eSwapchainDisplayNativeHdrCreateInfoAMD = VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD +#if defined( VK_USE_PLATFORM_FUCHSIA ) + , eImagepipeSurfaceCreateInfoFUCHSIA = VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + , ePhysicalDeviceShaderTerminateInvocationFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR +#if defined( VK_USE_PLATFORM_METAL_EXT ) + , eMetalSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT +#endif /*VK_USE_PLATFORM_METAL_EXT*/ + , ePhysicalDeviceFragmentDensityMapFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT + , ePhysicalDeviceFragmentDensityMapPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT + , eRenderPassFragmentDensityMapCreateInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT + , ePhysicalDeviceSubgroupSizeControlPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT + , ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT + , ePhysicalDeviceSubgroupSizeControlFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT + , eFragmentShadingRateAttachmentInfoKHR = VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR + , ePipelineFragmentShadingRateStateCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR + , ePhysicalDeviceFragmentShadingRatePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR + , ePhysicalDeviceFragmentShadingRateFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR + , ePhysicalDeviceFragmentShadingRateKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR + , ePhysicalDeviceShaderCoreProperties2AMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD + , ePhysicalDeviceCoherentMemoryFeaturesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD + , ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT + , ePhysicalDeviceMemoryBudgetPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT + , ePhysicalDeviceMemoryPriorityFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT + , eMemoryPriorityAllocateInfoEXT = VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT + , eSurfaceProtectedCapabilitiesKHR = VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR + , ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV + , ePhysicalDeviceBufferDeviceAddressFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT + , eBufferDeviceAddressCreateInfoEXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT + , ePhysicalDeviceToolPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT + , eValidationFeaturesEXT = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT + , ePhysicalDeviceCooperativeMatrixFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV + , eCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV + , ePhysicalDeviceCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV + , ePhysicalDeviceCoverageReductionModeFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV + , ePipelineCoverageReductionStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV + , eFramebufferMixedSamplesCombinationNV = VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV + , ePhysicalDeviceFragmentShaderInterlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT + , ePhysicalDeviceYcbcrImageArraysFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + , eSurfaceFullScreenExclusiveInfoEXT = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT + , eSurfaceCapabilitiesFullScreenExclusiveEXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT + , eSurfaceFullScreenExclusiveWin32InfoEXT = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + , eHeadlessSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT + , ePhysicalDeviceLineRasterizationFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT + , ePipelineRasterizationLineStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT + , ePhysicalDeviceLineRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT + , ePhysicalDeviceShaderAtomicFloatFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT + , ePhysicalDeviceIndexTypeUint8FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT + , ePhysicalDeviceExtendedDynamicStateFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT + , ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR + , ePipelineInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR + , ePipelineExecutablePropertiesKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR + , ePipelineExecutableInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR + , ePipelineExecutableStatisticKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR + , ePipelineExecutableInternalRepresentationKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR + , ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT + , ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV + , eGraphicsShaderGroupCreateInfoNV = VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV + , eGraphicsPipelineShaderGroupsCreateInfoNV = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV + , eIndirectCommandsLayoutTokenNV = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV + , eIndirectCommandsLayoutCreateInfoNV = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV + , eGeneratedCommandsInfoNV = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV + , eGeneratedCommandsMemoryRequirementsInfoNV = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV + , ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV + , ePhysicalDeviceInheritedViewportScissorFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV + , eCommandBufferInheritanceViewportScissorInfoNV = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV + , ePhysicalDeviceTexelBufferAlignmentFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT + , ePhysicalDeviceTexelBufferAlignmentPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT + , eCommandBufferInheritanceRenderPassTransformInfoQCOM = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM + , eRenderPassTransformBeginInfoQCOM = VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM + , ePhysicalDeviceDeviceMemoryReportFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT + , eDeviceDeviceMemoryReportCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT + , eDeviceMemoryReportCallbackDataEXT = VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT + , ePhysicalDeviceRobustness2FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT + , ePhysicalDeviceRobustness2PropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT + , eSamplerCustomBorderColorCreateInfoEXT = VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT + , ePhysicalDeviceCustomBorderColorPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT + , ePhysicalDeviceCustomBorderColorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT + , ePipelineLibraryCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR + , ePhysicalDevicePrivateDataFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT + , eDevicePrivateDataCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT + , ePrivateDataSlotCreateInfoEXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT + , ePhysicalDevicePipelineCreationCacheControlFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT + , ePhysicalDeviceDiagnosticsConfigFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV + , eDeviceDiagnosticsConfigCreateInfoNV = VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV + , eMemoryBarrier2KHR = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR + , eBufferMemoryBarrier2KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR + , eImageMemoryBarrier2KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR + , eDependencyInfoKHR = VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR + , eSubmitInfo2KHR = VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR + , eSemaphoreSubmitInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR + , eCommandBufferSubmitInfoKHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR + , ePhysicalDeviceSynchronization2FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR + , eQueueFamilyCheckpointProperties2Nv = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV + , eCheckpointData2Nv = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV + , ePhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR + , ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV + , ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV + , ePipelineFragmentShadingRateEnumStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV + , ePhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT + , ePhysicalDeviceFragmentDensityMap2FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT + , ePhysicalDeviceFragmentDensityMap2PropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT + , eCopyCommandTransformInfoQCOM = VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM + , ePhysicalDeviceImageRobustnessFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT + , ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR + , eCopyBufferInfo2KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR + , eCopyImageInfo2KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR + , eCopyBufferToImageInfo2KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR + , eCopyImageToBufferInfo2KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR + , eBlitImageInfo2KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR + , eResolveImageInfo2KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR + , eBufferCopy2KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR + , eImageCopy2KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR + , eImageBlit2KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR + , eBufferImageCopy2KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR + , eImageResolve2KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR + , ePhysicalDevice4444FormatsFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT +#if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) + , eDirectfbSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT +#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ + , ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE + , eMutableDescriptorTypeCreateInfoVALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE + , ePhysicalDeviceVertexInputDynamicStateFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT + , eVertexInputBindingDescription2EXT = VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT + , eVertexInputAttributeDescription2EXT = VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT +#if defined( VK_USE_PLATFORM_FUCHSIA ) + , eImportMemoryZirconHandleInfoFUCHSIA = VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA + , eMemoryZirconHandlePropertiesFUCHSIA = VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA + , eMemoryGetZirconHandleInfoFUCHSIA = VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA + , eImportSemaphoreZirconHandleInfoFUCHSIA = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA + , eSemaphoreGetZirconHandleInfoFUCHSIA = VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + , ePhysicalDeviceExtendedDynamicState2FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT +#if defined( VK_USE_PLATFORM_SCREEN_QNX ) + , eScreenSurfaceCreateInfoQNX = VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX +#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + , ePhysicalDeviceColorWriteEnableFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT + , ePipelineColorWriteCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT + , eAttachmentDescription2KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR + , eAttachmentDescriptionStencilLayoutKHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR + , eAttachmentReference2KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR + , eAttachmentReferenceStencilLayoutKHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR + , eBindBufferMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR + , eBindBufferMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR + , eBindImageMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR + , eBindImageMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR + , eBindImagePlaneMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR + , eBufferDeviceAddressInfoEXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT + , eBufferDeviceAddressInfoKHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR + , eBufferMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR + , eBufferOpaqueCaptureAddressCreateInfoKHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR + , eDebugReportCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT + , eDescriptorSetLayoutBindingFlagsCreateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT + , eDescriptorSetLayoutSupportKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR + , eDescriptorSetVariableDescriptorCountAllocateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT + , eDescriptorSetVariableDescriptorCountLayoutSupportEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT + , eDescriptorUpdateTemplateCreateInfoKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR + , eDeviceGroupBindSparseInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR + , eDeviceGroupCommandBufferBeginInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR + , eDeviceGroupDeviceCreateInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR + , eDeviceGroupRenderPassBeginInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR + , eDeviceGroupSubmitInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR + , eDeviceMemoryOpaqueCaptureAddressInfoKHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR + , eExportFenceCreateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR + , eExportMemoryAllocateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR + , eExportSemaphoreCreateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR + , eExternalBufferPropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR + , eExternalFencePropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR + , eExternalImageFormatPropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR + , eExternalMemoryBufferCreateInfoKHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR + , eExternalMemoryImageCreateInfoKHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR + , eExternalSemaphorePropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR + , eFormatProperties2KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR + , eFramebufferAttachmentsCreateInfoKHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR + , eFramebufferAttachmentImageInfoKHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR + , eImageFormatListCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR + , eImageFormatProperties2KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR + , eImageMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR + , eImagePlaneMemoryRequirementsInfoKHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR + , eImageSparseMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR + , eImageStencilUsageCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT + , eImageViewUsageCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR + , eMemoryAllocateFlagsInfoKHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR + , eMemoryDedicatedAllocateInfoKHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR + , eMemoryDedicatedRequirementsKHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR + , eMemoryOpaqueCaptureAddressAllocateInfoKHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR + , eMemoryRequirements2KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR + , ePhysicalDevice16BitStorageFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR + , ePhysicalDevice8BitStorageFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR + , ePhysicalDeviceBufferAddressFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT + , ePhysicalDeviceBufferDeviceAddressFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR + , ePhysicalDeviceDepthStencilResolvePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR + , ePhysicalDeviceDescriptorIndexingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT + , ePhysicalDeviceDescriptorIndexingPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT + , ePhysicalDeviceDriverPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR + , ePhysicalDeviceExternalBufferInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR + , ePhysicalDeviceExternalFenceInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR + , ePhysicalDeviceExternalImageFormatInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR + , ePhysicalDeviceExternalSemaphoreInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR + , ePhysicalDeviceFeatures2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR + , ePhysicalDeviceFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR + , ePhysicalDeviceFloatControlsPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR + , ePhysicalDeviceGroupPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR + , ePhysicalDeviceHostQueryResetFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT + , ePhysicalDeviceIdPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR + , ePhysicalDeviceImagelessFramebufferFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR + , ePhysicalDeviceImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR + , ePhysicalDeviceMaintenance3PropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR + , ePhysicalDeviceMemoryProperties2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR + , ePhysicalDeviceMultiviewFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR + , ePhysicalDeviceMultiviewPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR + , ePhysicalDevicePointClippingPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR + , ePhysicalDeviceProperties2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR + , ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT + , ePhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR + , ePhysicalDeviceScalarBlockLayoutFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT + , ePhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR + , ePhysicalDeviceShaderAtomicInt64FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR + , ePhysicalDeviceShaderDrawParameterFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES + , ePhysicalDeviceShaderFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR + , ePhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR + , ePhysicalDeviceSparseImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR + , ePhysicalDeviceTimelineSemaphoreFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR + , ePhysicalDeviceTimelineSemaphorePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR + , ePhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR + , ePhysicalDeviceVariablePointersFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR + , ePhysicalDeviceVariablePointerFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES + , ePhysicalDeviceVariablePointerFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR + , ePhysicalDeviceVulkanMemoryModelFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR + , ePipelineTessellationDomainOriginStateCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR + , eQueryPoolCreateInfoINTEL = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL + , eQueueFamilyProperties2KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR + , eRenderPassAttachmentBeginInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR + , eRenderPassCreateInfo2KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR + , eRenderPassInputAttachmentAspectCreateInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR + , eRenderPassMultiviewCreateInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR + , eSamplerReductionModeCreateInfoEXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT + , eSamplerYcbcrConversionCreateInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR + , eSamplerYcbcrConversionImageFormatPropertiesKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR + , eSamplerYcbcrConversionInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR + , eSemaphoreSignalInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR + , eSemaphoreTypeCreateInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR + , eSemaphoreWaitInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR + , eSparseImageFormatProperties2KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR + , eSparseImageMemoryRequirements2KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR + , eSubpassBeginInfoKHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR + , eSubpassDependency2KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR + , eSubpassDescription2KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR + , eSubpassDescriptionDepthStencilResolveKHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR + , eSubpassEndInfoKHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR + , eTimelineSemaphoreSubmitInfoKHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR + // clang-format on }; VULKAN_HPP_INLINE std::string to_string( StructureType value ) { switch ( value ) { - case StructureType::eApplicationInfo : return "ApplicationInfo"; - case StructureType::eInstanceCreateInfo : return "InstanceCreateInfo"; - case StructureType::eDeviceQueueCreateInfo : return "DeviceQueueCreateInfo"; - case StructureType::eDeviceCreateInfo : return "DeviceCreateInfo"; - case StructureType::eSubmitInfo : return "SubmitInfo"; - case StructureType::eMemoryAllocateInfo : return "MemoryAllocateInfo"; - case StructureType::eMappedMemoryRange : return "MappedMemoryRange"; - case StructureType::eBindSparseInfo : return "BindSparseInfo"; - case StructureType::eFenceCreateInfo : return "FenceCreateInfo"; - case StructureType::eSemaphoreCreateInfo : return "SemaphoreCreateInfo"; - case StructureType::eEventCreateInfo : return "EventCreateInfo"; - case StructureType::eQueryPoolCreateInfo : return "QueryPoolCreateInfo"; - case StructureType::eBufferCreateInfo : return "BufferCreateInfo"; - case StructureType::eBufferViewCreateInfo : return "BufferViewCreateInfo"; - case StructureType::eImageCreateInfo : return "ImageCreateInfo"; - case StructureType::eImageViewCreateInfo : return "ImageViewCreateInfo"; - case StructureType::eShaderModuleCreateInfo : return "ShaderModuleCreateInfo"; - case StructureType::ePipelineCacheCreateInfo : return "PipelineCacheCreateInfo"; - case StructureType::ePipelineShaderStageCreateInfo : return "PipelineShaderStageCreateInfo"; - case StructureType::ePipelineVertexInputStateCreateInfo : return "PipelineVertexInputStateCreateInfo"; - case StructureType::ePipelineInputAssemblyStateCreateInfo : return "PipelineInputAssemblyStateCreateInfo"; - case StructureType::ePipelineTessellationStateCreateInfo : return "PipelineTessellationStateCreateInfo"; - case StructureType::ePipelineViewportStateCreateInfo : return "PipelineViewportStateCreateInfo"; - case StructureType::ePipelineRasterizationStateCreateInfo : return "PipelineRasterizationStateCreateInfo"; - case StructureType::ePipelineMultisampleStateCreateInfo : return "PipelineMultisampleStateCreateInfo"; - case StructureType::ePipelineDepthStencilStateCreateInfo : return "PipelineDepthStencilStateCreateInfo"; - case StructureType::ePipelineColorBlendStateCreateInfo : return "PipelineColorBlendStateCreateInfo"; - case StructureType::ePipelineDynamicStateCreateInfo : return "PipelineDynamicStateCreateInfo"; - case StructureType::eGraphicsPipelineCreateInfo : return "GraphicsPipelineCreateInfo"; - case StructureType::eComputePipelineCreateInfo : return "ComputePipelineCreateInfo"; - case StructureType::ePipelineLayoutCreateInfo : return "PipelineLayoutCreateInfo"; - case StructureType::eSamplerCreateInfo : return "SamplerCreateInfo"; - case StructureType::eDescriptorSetLayoutCreateInfo : return "DescriptorSetLayoutCreateInfo"; - case StructureType::eDescriptorPoolCreateInfo : return "DescriptorPoolCreateInfo"; - case StructureType::eDescriptorSetAllocateInfo : return "DescriptorSetAllocateInfo"; - case StructureType::eWriteDescriptorSet : return "WriteDescriptorSet"; - case StructureType::eCopyDescriptorSet : return "CopyDescriptorSet"; - case StructureType::eFramebufferCreateInfo : return "FramebufferCreateInfo"; - case StructureType::eRenderPassCreateInfo : return "RenderPassCreateInfo"; - case StructureType::eCommandPoolCreateInfo : return "CommandPoolCreateInfo"; - case StructureType::eCommandBufferAllocateInfo : return "CommandBufferAllocateInfo"; - case StructureType::eCommandBufferInheritanceInfo : return "CommandBufferInheritanceInfo"; - case StructureType::eCommandBufferBeginInfo : return "CommandBufferBeginInfo"; - case StructureType::eRenderPassBeginInfo : return "RenderPassBeginInfo"; - case StructureType::eBufferMemoryBarrier : return "BufferMemoryBarrier"; - case StructureType::eImageMemoryBarrier : return "ImageMemoryBarrier"; - case StructureType::eMemoryBarrier : return "MemoryBarrier"; - case StructureType::eLoaderInstanceCreateInfo : return "LoaderInstanceCreateInfo"; - case StructureType::eLoaderDeviceCreateInfo : return "LoaderDeviceCreateInfo"; - case StructureType::ePhysicalDeviceSubgroupProperties : return "PhysicalDeviceSubgroupProperties"; - case StructureType::eBindBufferMemoryInfo : return "BindBufferMemoryInfo"; - case StructureType::eBindImageMemoryInfo : return "BindImageMemoryInfo"; - case StructureType::ePhysicalDevice16BitStorageFeatures : return "PhysicalDevice16BitStorageFeatures"; - case StructureType::eMemoryDedicatedRequirements : return "MemoryDedicatedRequirements"; - case StructureType::eMemoryDedicatedAllocateInfo : return "MemoryDedicatedAllocateInfo"; - case StructureType::eMemoryAllocateFlagsInfo : return "MemoryAllocateFlagsInfo"; - case StructureType::eDeviceGroupRenderPassBeginInfo : return "DeviceGroupRenderPassBeginInfo"; - case StructureType::eDeviceGroupCommandBufferBeginInfo : return "DeviceGroupCommandBufferBeginInfo"; - case StructureType::eDeviceGroupSubmitInfo : return "DeviceGroupSubmitInfo"; - case StructureType::eDeviceGroupBindSparseInfo : return "DeviceGroupBindSparseInfo"; - case StructureType::eBindBufferMemoryDeviceGroupInfo : return "BindBufferMemoryDeviceGroupInfo"; - case StructureType::eBindImageMemoryDeviceGroupInfo : return "BindImageMemoryDeviceGroupInfo"; - case StructureType::ePhysicalDeviceGroupProperties : return "PhysicalDeviceGroupProperties"; - case StructureType::eDeviceGroupDeviceCreateInfo : return "DeviceGroupDeviceCreateInfo"; - case StructureType::eBufferMemoryRequirementsInfo2 : return "BufferMemoryRequirementsInfo2"; - case StructureType::eImageMemoryRequirementsInfo2 : return "ImageMemoryRequirementsInfo2"; - case StructureType::eImageSparseMemoryRequirementsInfo2 : return "ImageSparseMemoryRequirementsInfo2"; - case StructureType::eMemoryRequirements2 : return "MemoryRequirements2"; - case StructureType::eSparseImageMemoryRequirements2 : return "SparseImageMemoryRequirements2"; - case StructureType::ePhysicalDeviceFeatures2 : return "PhysicalDeviceFeatures2"; - case StructureType::ePhysicalDeviceProperties2 : return "PhysicalDeviceProperties2"; - case StructureType::eFormatProperties2 : return "FormatProperties2"; - case StructureType::eImageFormatProperties2 : return "ImageFormatProperties2"; - case StructureType::ePhysicalDeviceImageFormatInfo2 : return "PhysicalDeviceImageFormatInfo2"; - case StructureType::eQueueFamilyProperties2 : return "QueueFamilyProperties2"; - case StructureType::ePhysicalDeviceMemoryProperties2 : return "PhysicalDeviceMemoryProperties2"; - case StructureType::eSparseImageFormatProperties2 : return "SparseImageFormatProperties2"; - case StructureType::ePhysicalDeviceSparseImageFormatInfo2 : return "PhysicalDeviceSparseImageFormatInfo2"; - case StructureType::ePhysicalDevicePointClippingProperties : return "PhysicalDevicePointClippingProperties"; - case StructureType::eRenderPassInputAttachmentAspectCreateInfo : return "RenderPassInputAttachmentAspectCreateInfo"; - case StructureType::eImageViewUsageCreateInfo : return "ImageViewUsageCreateInfo"; - case StructureType::ePipelineTessellationDomainOriginStateCreateInfo : return "PipelineTessellationDomainOriginStateCreateInfo"; - case StructureType::eRenderPassMultiviewCreateInfo : return "RenderPassMultiviewCreateInfo"; - case StructureType::ePhysicalDeviceMultiviewFeatures : return "PhysicalDeviceMultiviewFeatures"; - case StructureType::ePhysicalDeviceMultiviewProperties : return "PhysicalDeviceMultiviewProperties"; - case StructureType::ePhysicalDeviceVariablePointersFeatures : return "PhysicalDeviceVariablePointersFeatures"; - case StructureType::eProtectedSubmitInfo : return "ProtectedSubmitInfo"; - case StructureType::ePhysicalDeviceProtectedMemoryFeatures : return "PhysicalDeviceProtectedMemoryFeatures"; - case StructureType::ePhysicalDeviceProtectedMemoryProperties : return "PhysicalDeviceProtectedMemoryProperties"; - case StructureType::eDeviceQueueInfo2 : return "DeviceQueueInfo2"; - case StructureType::eSamplerYcbcrConversionCreateInfo : return "SamplerYcbcrConversionCreateInfo"; - case StructureType::eSamplerYcbcrConversionInfo : return "SamplerYcbcrConversionInfo"; - case StructureType::eBindImagePlaneMemoryInfo : return "BindImagePlaneMemoryInfo"; - case StructureType::eImagePlaneMemoryRequirementsInfo : return "ImagePlaneMemoryRequirementsInfo"; - case StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures : return "PhysicalDeviceSamplerYcbcrConversionFeatures"; - case StructureType::eSamplerYcbcrConversionImageFormatProperties : return "SamplerYcbcrConversionImageFormatProperties"; - case StructureType::eDescriptorUpdateTemplateCreateInfo : return "DescriptorUpdateTemplateCreateInfo"; - case StructureType::ePhysicalDeviceExternalImageFormatInfo : return "PhysicalDeviceExternalImageFormatInfo"; - case StructureType::eExternalImageFormatProperties : return "ExternalImageFormatProperties"; - case StructureType::ePhysicalDeviceExternalBufferInfo : return "PhysicalDeviceExternalBufferInfo"; - case StructureType::eExternalBufferProperties : return "ExternalBufferProperties"; - case StructureType::ePhysicalDeviceIdProperties : return "PhysicalDeviceIdProperties"; - case StructureType::eExternalMemoryBufferCreateInfo : return "ExternalMemoryBufferCreateInfo"; - case StructureType::eExternalMemoryImageCreateInfo : return "ExternalMemoryImageCreateInfo"; - case StructureType::eExportMemoryAllocateInfo : return "ExportMemoryAllocateInfo"; - case StructureType::ePhysicalDeviceExternalFenceInfo : return "PhysicalDeviceExternalFenceInfo"; - case StructureType::eExternalFenceProperties : return "ExternalFenceProperties"; - case StructureType::eExportFenceCreateInfo : return "ExportFenceCreateInfo"; - case StructureType::eExportSemaphoreCreateInfo : return "ExportSemaphoreCreateInfo"; - case StructureType::ePhysicalDeviceExternalSemaphoreInfo : return "PhysicalDeviceExternalSemaphoreInfo"; - case StructureType::eExternalSemaphoreProperties : return "ExternalSemaphoreProperties"; - case StructureType::ePhysicalDeviceMaintenance3Properties : return "PhysicalDeviceMaintenance3Properties"; - case StructureType::eDescriptorSetLayoutSupport : return "DescriptorSetLayoutSupport"; - case StructureType::ePhysicalDeviceShaderDrawParametersFeatures : return "PhysicalDeviceShaderDrawParametersFeatures"; - case StructureType::ePhysicalDeviceVulkan11Features : return "PhysicalDeviceVulkan11Features"; - case StructureType::ePhysicalDeviceVulkan11Properties : return "PhysicalDeviceVulkan11Properties"; - case StructureType::ePhysicalDeviceVulkan12Features : return "PhysicalDeviceVulkan12Features"; - case StructureType::ePhysicalDeviceVulkan12Properties : return "PhysicalDeviceVulkan12Properties"; - case StructureType::eImageFormatListCreateInfo : return "ImageFormatListCreateInfo"; - case StructureType::eAttachmentDescription2 : return "AttachmentDescription2"; - case StructureType::eAttachmentReference2 : return "AttachmentReference2"; - case StructureType::eSubpassDescription2 : return "SubpassDescription2"; - case StructureType::eSubpassDependency2 : return "SubpassDependency2"; - case StructureType::eRenderPassCreateInfo2 : return "RenderPassCreateInfo2"; - case StructureType::eSubpassBeginInfo : return "SubpassBeginInfo"; - case StructureType::eSubpassEndInfo : return "SubpassEndInfo"; - case StructureType::ePhysicalDevice8BitStorageFeatures : return "PhysicalDevice8BitStorageFeatures"; - case StructureType::ePhysicalDeviceDriverProperties : return "PhysicalDeviceDriverProperties"; - case StructureType::ePhysicalDeviceShaderAtomicInt64Features : return "PhysicalDeviceShaderAtomicInt64Features"; - case StructureType::ePhysicalDeviceShaderFloat16Int8Features : return "PhysicalDeviceShaderFloat16Int8Features"; - case StructureType::ePhysicalDeviceFloatControlsProperties : return "PhysicalDeviceFloatControlsProperties"; - case StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo : return "DescriptorSetLayoutBindingFlagsCreateInfo"; - case StructureType::ePhysicalDeviceDescriptorIndexingFeatures : return "PhysicalDeviceDescriptorIndexingFeatures"; - case StructureType::ePhysicalDeviceDescriptorIndexingProperties : return "PhysicalDeviceDescriptorIndexingProperties"; - case StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo : return "DescriptorSetVariableDescriptorCountAllocateInfo"; - case StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport : return "DescriptorSetVariableDescriptorCountLayoutSupport"; - case StructureType::ePhysicalDeviceDepthStencilResolveProperties : return "PhysicalDeviceDepthStencilResolveProperties"; - case StructureType::eSubpassDescriptionDepthStencilResolve : return "SubpassDescriptionDepthStencilResolve"; - case StructureType::ePhysicalDeviceScalarBlockLayoutFeatures : return "PhysicalDeviceScalarBlockLayoutFeatures"; - case StructureType::eImageStencilUsageCreateInfo : return "ImageStencilUsageCreateInfo"; - case StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties : return "PhysicalDeviceSamplerFilterMinmaxProperties"; - case StructureType::eSamplerReductionModeCreateInfo : return "SamplerReductionModeCreateInfo"; - case StructureType::ePhysicalDeviceVulkanMemoryModelFeatures : return "PhysicalDeviceVulkanMemoryModelFeatures"; - case StructureType::ePhysicalDeviceImagelessFramebufferFeatures : return "PhysicalDeviceImagelessFramebufferFeatures"; - case StructureType::eFramebufferAttachmentsCreateInfo : return "FramebufferAttachmentsCreateInfo"; - case StructureType::eFramebufferAttachmentImageInfo : return "FramebufferAttachmentImageInfo"; - case StructureType::eRenderPassAttachmentBeginInfo : return "RenderPassAttachmentBeginInfo"; - case StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures : return "PhysicalDeviceUniformBufferStandardLayoutFeatures"; - case StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures : return "PhysicalDeviceShaderSubgroupExtendedTypesFeatures"; - case StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures : return "PhysicalDeviceSeparateDepthStencilLayoutsFeatures"; - case StructureType::eAttachmentReferenceStencilLayout : return "AttachmentReferenceStencilLayout"; - case StructureType::eAttachmentDescriptionStencilLayout : return "AttachmentDescriptionStencilLayout"; - case StructureType::ePhysicalDeviceHostQueryResetFeatures : return "PhysicalDeviceHostQueryResetFeatures"; - case StructureType::ePhysicalDeviceTimelineSemaphoreFeatures : return "PhysicalDeviceTimelineSemaphoreFeatures"; - case StructureType::ePhysicalDeviceTimelineSemaphoreProperties : return "PhysicalDeviceTimelineSemaphoreProperties"; - case StructureType::eSemaphoreTypeCreateInfo : return "SemaphoreTypeCreateInfo"; - case StructureType::eTimelineSemaphoreSubmitInfo : return "TimelineSemaphoreSubmitInfo"; - case StructureType::eSemaphoreWaitInfo : return "SemaphoreWaitInfo"; - case StructureType::eSemaphoreSignalInfo : return "SemaphoreSignalInfo"; - case StructureType::ePhysicalDeviceBufferDeviceAddressFeatures : return "PhysicalDeviceBufferDeviceAddressFeatures"; - case StructureType::eBufferDeviceAddressInfo : return "BufferDeviceAddressInfo"; - case StructureType::eBufferOpaqueCaptureAddressCreateInfo : return "BufferOpaqueCaptureAddressCreateInfo"; - case StructureType::eMemoryOpaqueCaptureAddressAllocateInfo : return "MemoryOpaqueCaptureAddressAllocateInfo"; - case StructureType::eDeviceMemoryOpaqueCaptureAddressInfo : return "DeviceMemoryOpaqueCaptureAddressInfo"; - case StructureType::eSwapchainCreateInfoKHR : return "SwapchainCreateInfoKHR"; - case StructureType::ePresentInfoKHR : return "PresentInfoKHR"; - case StructureType::eDeviceGroupPresentCapabilitiesKHR : return "DeviceGroupPresentCapabilitiesKHR"; - case StructureType::eImageSwapchainCreateInfoKHR : return "ImageSwapchainCreateInfoKHR"; - case StructureType::eBindImageMemorySwapchainInfoKHR : return "BindImageMemorySwapchainInfoKHR"; - case StructureType::eAcquireNextImageInfoKHR : return "AcquireNextImageInfoKHR"; - case StructureType::eDeviceGroupPresentInfoKHR : return "DeviceGroupPresentInfoKHR"; - case StructureType::eDeviceGroupSwapchainCreateInfoKHR : return "DeviceGroupSwapchainCreateInfoKHR"; - case StructureType::eDisplayModeCreateInfoKHR : return "DisplayModeCreateInfoKHR"; - case StructureType::eDisplaySurfaceCreateInfoKHR : return "DisplaySurfaceCreateInfoKHR"; - case StructureType::eDisplayPresentInfoKHR : return "DisplayPresentInfoKHR"; - case StructureType::eXlibSurfaceCreateInfoKHR : return "XlibSurfaceCreateInfoKHR"; - case StructureType::eXcbSurfaceCreateInfoKHR : return "XcbSurfaceCreateInfoKHR"; - case StructureType::eWaylandSurfaceCreateInfoKHR : return "WaylandSurfaceCreateInfoKHR"; - case StructureType::eAndroidSurfaceCreateInfoKHR : return "AndroidSurfaceCreateInfoKHR"; - case StructureType::eWin32SurfaceCreateInfoKHR : return "Win32SurfaceCreateInfoKHR"; - case StructureType::eDebugReportCallbackCreateInfoEXT : return "DebugReportCallbackCreateInfoEXT"; - case StructureType::ePipelineRasterizationStateRasterizationOrderAMD : return "PipelineRasterizationStateRasterizationOrderAMD"; - case StructureType::eDebugMarkerObjectNameInfoEXT : return "DebugMarkerObjectNameInfoEXT"; - case StructureType::eDebugMarkerObjectTagInfoEXT : return "DebugMarkerObjectTagInfoEXT"; - case StructureType::eDebugMarkerMarkerInfoEXT : return "DebugMarkerMarkerInfoEXT"; - case StructureType::eDedicatedAllocationImageCreateInfoNV : return "DedicatedAllocationImageCreateInfoNV"; - case StructureType::eDedicatedAllocationBufferCreateInfoNV : return "DedicatedAllocationBufferCreateInfoNV"; - case StructureType::eDedicatedAllocationMemoryAllocateInfoNV : return "DedicatedAllocationMemoryAllocateInfoNV"; - case StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT : return "PhysicalDeviceTransformFeedbackFeaturesEXT"; - case StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT : return "PhysicalDeviceTransformFeedbackPropertiesEXT"; - case StructureType::ePipelineRasterizationStateStreamCreateInfoEXT : return "PipelineRasterizationStateStreamCreateInfoEXT"; - case StructureType::eImageViewHandleInfoNVX : return "ImageViewHandleInfoNVX"; - case StructureType::eTextureLodGatherFormatPropertiesAMD : return "TextureLodGatherFormatPropertiesAMD"; - case StructureType::eStreamDescriptorSurfaceCreateInfoGGP : return "StreamDescriptorSurfaceCreateInfoGGP"; - case StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV : return "PhysicalDeviceCornerSampledImageFeaturesNV"; - case StructureType::eExternalMemoryImageCreateInfoNV : return "ExternalMemoryImageCreateInfoNV"; - case StructureType::eExportMemoryAllocateInfoNV : return "ExportMemoryAllocateInfoNV"; - case StructureType::eImportMemoryWin32HandleInfoNV : return "ImportMemoryWin32HandleInfoNV"; - case StructureType::eExportMemoryWin32HandleInfoNV : return "ExportMemoryWin32HandleInfoNV"; - case StructureType::eWin32KeyedMutexAcquireReleaseInfoNV : return "Win32KeyedMutexAcquireReleaseInfoNV"; - case StructureType::eValidationFlagsEXT : return "ValidationFlagsEXT"; - case StructureType::eViSurfaceCreateInfoNN : return "ViSurfaceCreateInfoNN"; - case StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT : return "PhysicalDeviceTextureCompressionAstcHdrFeaturesEXT"; - case StructureType::eImageViewAstcDecodeModeEXT : return "ImageViewAstcDecodeModeEXT"; - case StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT : return "PhysicalDeviceAstcDecodeFeaturesEXT"; - case StructureType::eImportMemoryWin32HandleInfoKHR : return "ImportMemoryWin32HandleInfoKHR"; - case StructureType::eExportMemoryWin32HandleInfoKHR : return "ExportMemoryWin32HandleInfoKHR"; - case StructureType::eMemoryWin32HandlePropertiesKHR : return "MemoryWin32HandlePropertiesKHR"; - case StructureType::eMemoryGetWin32HandleInfoKHR : return "MemoryGetWin32HandleInfoKHR"; - case StructureType::eImportMemoryFdInfoKHR : return "ImportMemoryFdInfoKHR"; - case StructureType::eMemoryFdPropertiesKHR : return "MemoryFdPropertiesKHR"; - case StructureType::eMemoryGetFdInfoKHR : return "MemoryGetFdInfoKHR"; - case StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR : return "Win32KeyedMutexAcquireReleaseInfoKHR"; - case StructureType::eImportSemaphoreWin32HandleInfoKHR : return "ImportSemaphoreWin32HandleInfoKHR"; - case StructureType::eExportSemaphoreWin32HandleInfoKHR : return "ExportSemaphoreWin32HandleInfoKHR"; - case StructureType::eD3D12FenceSubmitInfoKHR : return "D3D12FenceSubmitInfoKHR"; - case StructureType::eSemaphoreGetWin32HandleInfoKHR : return "SemaphoreGetWin32HandleInfoKHR"; - case StructureType::eImportSemaphoreFdInfoKHR : return "ImportSemaphoreFdInfoKHR"; - case StructureType::eSemaphoreGetFdInfoKHR : return "SemaphoreGetFdInfoKHR"; - case StructureType::ePhysicalDevicePushDescriptorPropertiesKHR : return "PhysicalDevicePushDescriptorPropertiesKHR"; - case StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT : return "CommandBufferInheritanceConditionalRenderingInfoEXT"; - case StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT : return "PhysicalDeviceConditionalRenderingFeaturesEXT"; - case StructureType::eConditionalRenderingBeginInfoEXT : return "ConditionalRenderingBeginInfoEXT"; - case StructureType::ePresentRegionsKHR : return "PresentRegionsKHR"; - case StructureType::eObjectTableCreateInfoNVX : return "ObjectTableCreateInfoNVX"; - case StructureType::eIndirectCommandsLayoutCreateInfoNVX : return "IndirectCommandsLayoutCreateInfoNVX"; - case StructureType::eCmdProcessCommandsInfoNVX : return "CmdProcessCommandsInfoNVX"; - case StructureType::eCmdReserveSpaceForCommandsInfoNVX : return "CmdReserveSpaceForCommandsInfoNVX"; - case StructureType::eDeviceGeneratedCommandsLimitsNVX : return "DeviceGeneratedCommandsLimitsNVX"; - case StructureType::eDeviceGeneratedCommandsFeaturesNVX : return "DeviceGeneratedCommandsFeaturesNVX"; - case StructureType::ePipelineViewportWScalingStateCreateInfoNV : return "PipelineViewportWScalingStateCreateInfoNV"; - case StructureType::eSurfaceCapabilities2EXT : return "SurfaceCapabilities2EXT"; - case StructureType::eDisplayPowerInfoEXT : return "DisplayPowerInfoEXT"; - case StructureType::eDeviceEventInfoEXT : return "DeviceEventInfoEXT"; - case StructureType::eDisplayEventInfoEXT : return "DisplayEventInfoEXT"; - case StructureType::eSwapchainCounterCreateInfoEXT : return "SwapchainCounterCreateInfoEXT"; - case StructureType::ePresentTimesInfoGOOGLE : return "PresentTimesInfoGOOGLE"; - case StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX : return "PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX"; - case StructureType::ePipelineViewportSwizzleStateCreateInfoNV : return "PipelineViewportSwizzleStateCreateInfoNV"; - case StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT : return "PhysicalDeviceDiscardRectanglePropertiesEXT"; - case StructureType::ePipelineDiscardRectangleStateCreateInfoEXT : return "PipelineDiscardRectangleStateCreateInfoEXT"; - case StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT : return "PhysicalDeviceConservativeRasterizationPropertiesEXT"; - case StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT : return "PipelineRasterizationConservativeStateCreateInfoEXT"; - case StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT : return "PhysicalDeviceDepthClipEnableFeaturesEXT"; - case StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT : return "PipelineRasterizationDepthClipStateCreateInfoEXT"; - case StructureType::eHdrMetadataEXT : return "HdrMetadataEXT"; - case StructureType::eSharedPresentSurfaceCapabilitiesKHR : return "SharedPresentSurfaceCapabilitiesKHR"; - case StructureType::eImportFenceWin32HandleInfoKHR : return "ImportFenceWin32HandleInfoKHR"; - case StructureType::eExportFenceWin32HandleInfoKHR : return "ExportFenceWin32HandleInfoKHR"; - case StructureType::eFenceGetWin32HandleInfoKHR : return "FenceGetWin32HandleInfoKHR"; - case StructureType::eImportFenceFdInfoKHR : return "ImportFenceFdInfoKHR"; - case StructureType::eFenceGetFdInfoKHR : return "FenceGetFdInfoKHR"; - case StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR : return "PhysicalDevicePerformanceQueryFeaturesKHR"; - case StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR : return "PhysicalDevicePerformanceQueryPropertiesKHR"; - case StructureType::eQueryPoolPerformanceCreateInfoKHR : return "QueryPoolPerformanceCreateInfoKHR"; - case StructureType::ePerformanceQuerySubmitInfoKHR : return "PerformanceQuerySubmitInfoKHR"; - case StructureType::eAcquireProfilingLockInfoKHR : return "AcquireProfilingLockInfoKHR"; - case StructureType::ePerformanceCounterKHR : return "PerformanceCounterKHR"; - case StructureType::ePerformanceCounterDescriptionKHR : return "PerformanceCounterDescriptionKHR"; - case StructureType::ePhysicalDeviceSurfaceInfo2KHR : return "PhysicalDeviceSurfaceInfo2KHR"; - case StructureType::eSurfaceCapabilities2KHR : return "SurfaceCapabilities2KHR"; - case StructureType::eSurfaceFormat2KHR : return "SurfaceFormat2KHR"; - case StructureType::eDisplayProperties2KHR : return "DisplayProperties2KHR"; - case StructureType::eDisplayPlaneProperties2KHR : return "DisplayPlaneProperties2KHR"; - case StructureType::eDisplayModeProperties2KHR : return "DisplayModeProperties2KHR"; - case StructureType::eDisplayPlaneInfo2KHR : return "DisplayPlaneInfo2KHR"; - case StructureType::eDisplayPlaneCapabilities2KHR : return "DisplayPlaneCapabilities2KHR"; - case StructureType::eIosSurfaceCreateInfoMVK : return "IosSurfaceCreateInfoMVK"; - case StructureType::eMacosSurfaceCreateInfoMVK : return "MacosSurfaceCreateInfoMVK"; - case StructureType::eDebugUtilsObjectNameInfoEXT : return "DebugUtilsObjectNameInfoEXT"; - case StructureType::eDebugUtilsObjectTagInfoEXT : return "DebugUtilsObjectTagInfoEXT"; - case StructureType::eDebugUtilsLabelEXT : return "DebugUtilsLabelEXT"; - case StructureType::eDebugUtilsMessengerCallbackDataEXT : return "DebugUtilsMessengerCallbackDataEXT"; - case StructureType::eDebugUtilsMessengerCreateInfoEXT : return "DebugUtilsMessengerCreateInfoEXT"; - case StructureType::eAndroidHardwareBufferUsageANDROID : return "AndroidHardwareBufferUsageANDROID"; - case StructureType::eAndroidHardwareBufferPropertiesANDROID : return "AndroidHardwareBufferPropertiesANDROID"; - case StructureType::eAndroidHardwareBufferFormatPropertiesANDROID : return "AndroidHardwareBufferFormatPropertiesANDROID"; - case StructureType::eImportAndroidHardwareBufferInfoANDROID : return "ImportAndroidHardwareBufferInfoANDROID"; - case StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID : return "MemoryGetAndroidHardwareBufferInfoANDROID"; - case StructureType::eExternalFormatANDROID : return "ExternalFormatANDROID"; - case StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT : return "PhysicalDeviceInlineUniformBlockFeaturesEXT"; - case StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT : return "PhysicalDeviceInlineUniformBlockPropertiesEXT"; - case StructureType::eWriteDescriptorSetInlineUniformBlockEXT : return "WriteDescriptorSetInlineUniformBlockEXT"; - case StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT : return "DescriptorPoolInlineUniformBlockCreateInfoEXT"; - case StructureType::eSampleLocationsInfoEXT : return "SampleLocationsInfoEXT"; - case StructureType::eRenderPassSampleLocationsBeginInfoEXT : return "RenderPassSampleLocationsBeginInfoEXT"; - case StructureType::ePipelineSampleLocationsStateCreateInfoEXT : return "PipelineSampleLocationsStateCreateInfoEXT"; - case StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT : return "PhysicalDeviceSampleLocationsPropertiesEXT"; - case StructureType::eMultisamplePropertiesEXT : return "MultisamplePropertiesEXT"; - case StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT : return "PhysicalDeviceBlendOperationAdvancedFeaturesEXT"; - case StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT : return "PhysicalDeviceBlendOperationAdvancedPropertiesEXT"; - case StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT : return "PipelineColorBlendAdvancedStateCreateInfoEXT"; - case StructureType::ePipelineCoverageToColorStateCreateInfoNV : return "PipelineCoverageToColorStateCreateInfoNV"; - case StructureType::ePipelineCoverageModulationStateCreateInfoNV : return "PipelineCoverageModulationStateCreateInfoNV"; - case StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV : return "PhysicalDeviceShaderSmBuiltinsFeaturesNV"; - case StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV : return "PhysicalDeviceShaderSmBuiltinsPropertiesNV"; - case StructureType::eDrmFormatModifierPropertiesListEXT : return "DrmFormatModifierPropertiesListEXT"; - case StructureType::eDrmFormatModifierPropertiesEXT : return "DrmFormatModifierPropertiesEXT"; - case StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT : return "PhysicalDeviceImageDrmFormatModifierInfoEXT"; - case StructureType::eImageDrmFormatModifierListCreateInfoEXT : return "ImageDrmFormatModifierListCreateInfoEXT"; - case StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT : return "ImageDrmFormatModifierExplicitCreateInfoEXT"; - case StructureType::eImageDrmFormatModifierPropertiesEXT : return "ImageDrmFormatModifierPropertiesEXT"; - case StructureType::eValidationCacheCreateInfoEXT : return "ValidationCacheCreateInfoEXT"; - case StructureType::eShaderModuleValidationCacheCreateInfoEXT : return "ShaderModuleValidationCacheCreateInfoEXT"; - case StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV : return "PipelineViewportShadingRateImageStateCreateInfoNV"; - case StructureType::ePhysicalDeviceShadingRateImageFeaturesNV : return "PhysicalDeviceShadingRateImageFeaturesNV"; - case StructureType::ePhysicalDeviceShadingRateImagePropertiesNV : return "PhysicalDeviceShadingRateImagePropertiesNV"; - case StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV : return "PipelineViewportCoarseSampleOrderStateCreateInfoNV"; - case StructureType::eRayTracingPipelineCreateInfoNV : return "RayTracingPipelineCreateInfoNV"; - case StructureType::eAccelerationStructureCreateInfoNV : return "AccelerationStructureCreateInfoNV"; - case StructureType::eGeometryNV : return "GeometryNV"; - case StructureType::eGeometryTrianglesNV : return "GeometryTrianglesNV"; - case StructureType::eGeometryAabbNV : return "GeometryAabbNV"; - case StructureType::eBindAccelerationStructureMemoryInfoNV : return "BindAccelerationStructureMemoryInfoNV"; - case StructureType::eWriteDescriptorSetAccelerationStructureNV : return "WriteDescriptorSetAccelerationStructureNV"; - case StructureType::eAccelerationStructureMemoryRequirementsInfoNV : return "AccelerationStructureMemoryRequirementsInfoNV"; - case StructureType::ePhysicalDeviceRayTracingPropertiesNV : return "PhysicalDeviceRayTracingPropertiesNV"; - case StructureType::eRayTracingShaderGroupCreateInfoNV : return "RayTracingShaderGroupCreateInfoNV"; - case StructureType::eAccelerationStructureInfoNV : return "AccelerationStructureInfoNV"; - case StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV : return "PhysicalDeviceRepresentativeFragmentTestFeaturesNV"; - case StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV : return "PipelineRepresentativeFragmentTestStateCreateInfoNV"; - case StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT : return "PhysicalDeviceImageViewImageFormatInfoEXT"; - case StructureType::eFilterCubicImageViewImageFormatPropertiesEXT : return "FilterCubicImageViewImageFormatPropertiesEXT"; - case StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT : return "DeviceQueueGlobalPriorityCreateInfoEXT"; - case StructureType::eImportMemoryHostPointerInfoEXT : return "ImportMemoryHostPointerInfoEXT"; - case StructureType::eMemoryHostPointerPropertiesEXT : return "MemoryHostPointerPropertiesEXT"; - case StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT : return "PhysicalDeviceExternalMemoryHostPropertiesEXT"; - case StructureType::ePhysicalDeviceShaderClockFeaturesKHR : return "PhysicalDeviceShaderClockFeaturesKHR"; - case StructureType::ePipelineCompilerControlCreateInfoAMD : return "PipelineCompilerControlCreateInfoAMD"; - case StructureType::eCalibratedTimestampInfoEXT : return "CalibratedTimestampInfoEXT"; - case StructureType::ePhysicalDeviceShaderCorePropertiesAMD : return "PhysicalDeviceShaderCorePropertiesAMD"; - case StructureType::eDeviceMemoryOverallocationCreateInfoAMD : return "DeviceMemoryOverallocationCreateInfoAMD"; - case StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT : return "PhysicalDeviceVertexAttributeDivisorPropertiesEXT"; - case StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT : return "PipelineVertexInputDivisorStateCreateInfoEXT"; - case StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT : return "PhysicalDeviceVertexAttributeDivisorFeaturesEXT"; - case StructureType::ePresentFrameTokenGGP : return "PresentFrameTokenGGP"; - case StructureType::ePipelineCreationFeedbackCreateInfoEXT : return "PipelineCreationFeedbackCreateInfoEXT"; - case StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV : return "PhysicalDeviceComputeShaderDerivativesFeaturesNV"; - case StructureType::ePhysicalDeviceMeshShaderFeaturesNV : return "PhysicalDeviceMeshShaderFeaturesNV"; - case StructureType::ePhysicalDeviceMeshShaderPropertiesNV : return "PhysicalDeviceMeshShaderPropertiesNV"; - case StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV : return "PhysicalDeviceFragmentShaderBarycentricFeaturesNV"; - case StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV : return "PhysicalDeviceShaderImageFootprintFeaturesNV"; - case StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV : return "PipelineViewportExclusiveScissorStateCreateInfoNV"; - case StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV : return "PhysicalDeviceExclusiveScissorFeaturesNV"; - case StructureType::eCheckpointDataNV : return "CheckpointDataNV"; - case StructureType::eQueueFamilyCheckpointPropertiesNV : return "QueueFamilyCheckpointPropertiesNV"; - case StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL : return "PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL"; - case StructureType::eQueryPoolCreateInfoINTEL : return "QueryPoolCreateInfoINTEL"; - case StructureType::eInitializePerformanceApiInfoINTEL : return "InitializePerformanceApiInfoINTEL"; - case StructureType::ePerformanceMarkerInfoINTEL : return "PerformanceMarkerInfoINTEL"; - case StructureType::ePerformanceStreamMarkerInfoINTEL : return "PerformanceStreamMarkerInfoINTEL"; - case StructureType::ePerformanceOverrideInfoINTEL : return "PerformanceOverrideInfoINTEL"; - case StructureType::ePerformanceConfigurationAcquireInfoINTEL : return "PerformanceConfigurationAcquireInfoINTEL"; - case StructureType::ePhysicalDevicePciBusInfoPropertiesEXT : return "PhysicalDevicePciBusInfoPropertiesEXT"; - case StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD : return "DisplayNativeHdrSurfaceCapabilitiesAMD"; - case StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD : return "SwapchainDisplayNativeHdrCreateInfoAMD"; - case StructureType::eImagepipeSurfaceCreateInfoFUCHSIA : return "ImagepipeSurfaceCreateInfoFUCHSIA"; - case StructureType::eMetalSurfaceCreateInfoEXT : return "MetalSurfaceCreateInfoEXT"; - case StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT : return "PhysicalDeviceFragmentDensityMapFeaturesEXT"; - case StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT : return "PhysicalDeviceFragmentDensityMapPropertiesEXT"; - case StructureType::eRenderPassFragmentDensityMapCreateInfoEXT : return "RenderPassFragmentDensityMapCreateInfoEXT"; - case StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT : return "PhysicalDeviceSubgroupSizeControlPropertiesEXT"; - case StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT : return "PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT"; - case StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT : return "PhysicalDeviceSubgroupSizeControlFeaturesEXT"; - case StructureType::ePhysicalDeviceShaderCoreProperties2AMD : return "PhysicalDeviceShaderCoreProperties2AMD"; - case StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD : return "PhysicalDeviceCoherentMemoryFeaturesAMD"; - case StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT : return "PhysicalDeviceMemoryBudgetPropertiesEXT"; - case StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT : return "PhysicalDeviceMemoryPriorityFeaturesEXT"; - case StructureType::eMemoryPriorityAllocateInfoEXT : return "MemoryPriorityAllocateInfoEXT"; - case StructureType::eSurfaceProtectedCapabilitiesKHR : return "SurfaceProtectedCapabilitiesKHR"; - case StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV : return "PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV"; - case StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT : return "PhysicalDeviceBufferDeviceAddressFeaturesEXT"; - case StructureType::eBufferDeviceAddressCreateInfoEXT : return "BufferDeviceAddressCreateInfoEXT"; - case StructureType::ePhysicalDeviceToolPropertiesEXT : return "PhysicalDeviceToolPropertiesEXT"; - case StructureType::eValidationFeaturesEXT : return "ValidationFeaturesEXT"; - case StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV : return "PhysicalDeviceCooperativeMatrixFeaturesNV"; - case StructureType::eCooperativeMatrixPropertiesNV : return "CooperativeMatrixPropertiesNV"; - case StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV : return "PhysicalDeviceCooperativeMatrixPropertiesNV"; - case StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV : return "PhysicalDeviceCoverageReductionModeFeaturesNV"; - case StructureType::ePipelineCoverageReductionStateCreateInfoNV : return "PipelineCoverageReductionStateCreateInfoNV"; - case StructureType::eFramebufferMixedSamplesCombinationNV : return "FramebufferMixedSamplesCombinationNV"; - case StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT : return "PhysicalDeviceFragmentShaderInterlockFeaturesEXT"; - case StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT : return "PhysicalDeviceYcbcrImageArraysFeaturesEXT"; - case StructureType::eSurfaceFullScreenExclusiveInfoEXT : return "SurfaceFullScreenExclusiveInfoEXT"; - case StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT : return "SurfaceCapabilitiesFullScreenExclusiveEXT"; - case StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT : return "SurfaceFullScreenExclusiveWin32InfoEXT"; - case StructureType::eHeadlessSurfaceCreateInfoEXT : return "HeadlessSurfaceCreateInfoEXT"; - case StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT : return "PhysicalDeviceLineRasterizationFeaturesEXT"; - case StructureType::ePipelineRasterizationLineStateCreateInfoEXT : return "PipelineRasterizationLineStateCreateInfoEXT"; - case StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT : return "PhysicalDeviceLineRasterizationPropertiesEXT"; - case StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT : return "PhysicalDeviceIndexTypeUint8FeaturesEXT"; - case StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR : return "PhysicalDevicePipelineExecutablePropertiesFeaturesKHR"; - case StructureType::ePipelineInfoKHR : return "PipelineInfoKHR"; - case StructureType::ePipelineExecutablePropertiesKHR : return "PipelineExecutablePropertiesKHR"; - case StructureType::ePipelineExecutableInfoKHR : return "PipelineExecutableInfoKHR"; - case StructureType::ePipelineExecutableStatisticKHR : return "PipelineExecutableStatisticKHR"; - case StructureType::ePipelineExecutableInternalRepresentationKHR : return "PipelineExecutableInternalRepresentationKHR"; - case StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT : return "PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT"; - case StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT : return "PhysicalDeviceTexelBufferAlignmentFeaturesEXT"; - case StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT : return "PhysicalDeviceTexelBufferAlignmentPropertiesEXT"; - default: return "invalid"; - } - } - - enum class SubgroupFeatureFlagBits - { - eBasic = VK_SUBGROUP_FEATURE_BASIC_BIT, - eVote = VK_SUBGROUP_FEATURE_VOTE_BIT, - eArithmetic = VK_SUBGROUP_FEATURE_ARITHMETIC_BIT, - eBallot = VK_SUBGROUP_FEATURE_BALLOT_BIT, - eShuffle = VK_SUBGROUP_FEATURE_SHUFFLE_BIT, + case StructureType::eApplicationInfo: return "ApplicationInfo"; + case StructureType::eInstanceCreateInfo: return "InstanceCreateInfo"; + case StructureType::eDeviceQueueCreateInfo: return "DeviceQueueCreateInfo"; + case StructureType::eDeviceCreateInfo: return "DeviceCreateInfo"; + case StructureType::eSubmitInfo: return "SubmitInfo"; + case StructureType::eMemoryAllocateInfo: return "MemoryAllocateInfo"; + case StructureType::eMappedMemoryRange: return "MappedMemoryRange"; + case StructureType::eBindSparseInfo: return "BindSparseInfo"; + case StructureType::eFenceCreateInfo: return "FenceCreateInfo"; + case StructureType::eSemaphoreCreateInfo: return "SemaphoreCreateInfo"; + case StructureType::eEventCreateInfo: return "EventCreateInfo"; + case StructureType::eQueryPoolCreateInfo: return "QueryPoolCreateInfo"; + case StructureType::eBufferCreateInfo: return "BufferCreateInfo"; + case StructureType::eBufferViewCreateInfo: return "BufferViewCreateInfo"; + case StructureType::eImageCreateInfo: return "ImageCreateInfo"; + case StructureType::eImageViewCreateInfo: return "ImageViewCreateInfo"; + case StructureType::eShaderModuleCreateInfo: return "ShaderModuleCreateInfo"; + case StructureType::ePipelineCacheCreateInfo: return "PipelineCacheCreateInfo"; + case StructureType::ePipelineShaderStageCreateInfo: return "PipelineShaderStageCreateInfo"; + case StructureType::ePipelineVertexInputStateCreateInfo: return "PipelineVertexInputStateCreateInfo"; + case StructureType::ePipelineInputAssemblyStateCreateInfo: return "PipelineInputAssemblyStateCreateInfo"; + case StructureType::ePipelineTessellationStateCreateInfo: return "PipelineTessellationStateCreateInfo"; + case StructureType::ePipelineViewportStateCreateInfo: return "PipelineViewportStateCreateInfo"; + case StructureType::ePipelineRasterizationStateCreateInfo: return "PipelineRasterizationStateCreateInfo"; + case StructureType::ePipelineMultisampleStateCreateInfo: return "PipelineMultisampleStateCreateInfo"; + case StructureType::ePipelineDepthStencilStateCreateInfo: return "PipelineDepthStencilStateCreateInfo"; + case StructureType::ePipelineColorBlendStateCreateInfo: return "PipelineColorBlendStateCreateInfo"; + case StructureType::ePipelineDynamicStateCreateInfo: return "PipelineDynamicStateCreateInfo"; + case StructureType::eGraphicsPipelineCreateInfo: return "GraphicsPipelineCreateInfo"; + case StructureType::eComputePipelineCreateInfo: return "ComputePipelineCreateInfo"; + case StructureType::ePipelineLayoutCreateInfo: return "PipelineLayoutCreateInfo"; + case StructureType::eSamplerCreateInfo: return "SamplerCreateInfo"; + case StructureType::eDescriptorSetLayoutCreateInfo: return "DescriptorSetLayoutCreateInfo"; + case StructureType::eDescriptorPoolCreateInfo: return "DescriptorPoolCreateInfo"; + case StructureType::eDescriptorSetAllocateInfo: return "DescriptorSetAllocateInfo"; + case StructureType::eWriteDescriptorSet: return "WriteDescriptorSet"; + case StructureType::eCopyDescriptorSet: return "CopyDescriptorSet"; + case StructureType::eFramebufferCreateInfo: return "FramebufferCreateInfo"; + case StructureType::eRenderPassCreateInfo: return "RenderPassCreateInfo"; + case StructureType::eCommandPoolCreateInfo: return "CommandPoolCreateInfo"; + case StructureType::eCommandBufferAllocateInfo: return "CommandBufferAllocateInfo"; + case StructureType::eCommandBufferInheritanceInfo: return "CommandBufferInheritanceInfo"; + case StructureType::eCommandBufferBeginInfo: return "CommandBufferBeginInfo"; + case StructureType::eRenderPassBeginInfo: return "RenderPassBeginInfo"; + case StructureType::eBufferMemoryBarrier: return "BufferMemoryBarrier"; + case StructureType::eImageMemoryBarrier: return "ImageMemoryBarrier"; + case StructureType::eMemoryBarrier: return "MemoryBarrier"; + case StructureType::eLoaderInstanceCreateInfo: return "LoaderInstanceCreateInfo"; + case StructureType::eLoaderDeviceCreateInfo: return "LoaderDeviceCreateInfo"; + case StructureType::ePhysicalDeviceSubgroupProperties: return "PhysicalDeviceSubgroupProperties"; + case StructureType::eBindBufferMemoryInfo: return "BindBufferMemoryInfo"; + case StructureType::eBindImageMemoryInfo: return "BindImageMemoryInfo"; + case StructureType::ePhysicalDevice16BitStorageFeatures: return "PhysicalDevice16BitStorageFeatures"; + case StructureType::eMemoryDedicatedRequirements: return "MemoryDedicatedRequirements"; + case StructureType::eMemoryDedicatedAllocateInfo: return "MemoryDedicatedAllocateInfo"; + case StructureType::eMemoryAllocateFlagsInfo: return "MemoryAllocateFlagsInfo"; + case StructureType::eDeviceGroupRenderPassBeginInfo: return "DeviceGroupRenderPassBeginInfo"; + case StructureType::eDeviceGroupCommandBufferBeginInfo: return "DeviceGroupCommandBufferBeginInfo"; + case StructureType::eDeviceGroupSubmitInfo: return "DeviceGroupSubmitInfo"; + case StructureType::eDeviceGroupBindSparseInfo: return "DeviceGroupBindSparseInfo"; + case StructureType::eBindBufferMemoryDeviceGroupInfo: return "BindBufferMemoryDeviceGroupInfo"; + case StructureType::eBindImageMemoryDeviceGroupInfo: return "BindImageMemoryDeviceGroupInfo"; + case StructureType::ePhysicalDeviceGroupProperties: return "PhysicalDeviceGroupProperties"; + case StructureType::eDeviceGroupDeviceCreateInfo: return "DeviceGroupDeviceCreateInfo"; + case StructureType::eBufferMemoryRequirementsInfo2: return "BufferMemoryRequirementsInfo2"; + case StructureType::eImageMemoryRequirementsInfo2: return "ImageMemoryRequirementsInfo2"; + case StructureType::eImageSparseMemoryRequirementsInfo2: return "ImageSparseMemoryRequirementsInfo2"; + case StructureType::eMemoryRequirements2: return "MemoryRequirements2"; + case StructureType::eSparseImageMemoryRequirements2: return "SparseImageMemoryRequirements2"; + case StructureType::ePhysicalDeviceFeatures2: return "PhysicalDeviceFeatures2"; + case StructureType::ePhysicalDeviceProperties2: return "PhysicalDeviceProperties2"; + case StructureType::eFormatProperties2: return "FormatProperties2"; + case StructureType::eImageFormatProperties2: return "ImageFormatProperties2"; + case StructureType::ePhysicalDeviceImageFormatInfo2: return "PhysicalDeviceImageFormatInfo2"; + case StructureType::eQueueFamilyProperties2: return "QueueFamilyProperties2"; + case StructureType::ePhysicalDeviceMemoryProperties2: return "PhysicalDeviceMemoryProperties2"; + case StructureType::eSparseImageFormatProperties2: return "SparseImageFormatProperties2"; + case StructureType::ePhysicalDeviceSparseImageFormatInfo2: return "PhysicalDeviceSparseImageFormatInfo2"; + case StructureType::ePhysicalDevicePointClippingProperties: return "PhysicalDevicePointClippingProperties"; + case StructureType::eRenderPassInputAttachmentAspectCreateInfo: + return "RenderPassInputAttachmentAspectCreateInfo"; + case StructureType::eImageViewUsageCreateInfo: return "ImageViewUsageCreateInfo"; + case StructureType::ePipelineTessellationDomainOriginStateCreateInfo: + return "PipelineTessellationDomainOriginStateCreateInfo"; + case StructureType::eRenderPassMultiviewCreateInfo: return "RenderPassMultiviewCreateInfo"; + case StructureType::ePhysicalDeviceMultiviewFeatures: return "PhysicalDeviceMultiviewFeatures"; + case StructureType::ePhysicalDeviceMultiviewProperties: return "PhysicalDeviceMultiviewProperties"; + case StructureType::ePhysicalDeviceVariablePointersFeatures: return "PhysicalDeviceVariablePointersFeatures"; + case StructureType::eProtectedSubmitInfo: return "ProtectedSubmitInfo"; + case StructureType::ePhysicalDeviceProtectedMemoryFeatures: return "PhysicalDeviceProtectedMemoryFeatures"; + case StructureType::ePhysicalDeviceProtectedMemoryProperties: return "PhysicalDeviceProtectedMemoryProperties"; + case StructureType::eDeviceQueueInfo2: return "DeviceQueueInfo2"; + case StructureType::eSamplerYcbcrConversionCreateInfo: return "SamplerYcbcrConversionCreateInfo"; + case StructureType::eSamplerYcbcrConversionInfo: return "SamplerYcbcrConversionInfo"; + case StructureType::eBindImagePlaneMemoryInfo: return "BindImagePlaneMemoryInfo"; + case StructureType::eImagePlaneMemoryRequirementsInfo: return "ImagePlaneMemoryRequirementsInfo"; + case StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures: + return "PhysicalDeviceSamplerYcbcrConversionFeatures"; + case StructureType::eSamplerYcbcrConversionImageFormatProperties: + return "SamplerYcbcrConversionImageFormatProperties"; + case StructureType::eDescriptorUpdateTemplateCreateInfo: return "DescriptorUpdateTemplateCreateInfo"; + case StructureType::ePhysicalDeviceExternalImageFormatInfo: return "PhysicalDeviceExternalImageFormatInfo"; + case StructureType::eExternalImageFormatProperties: return "ExternalImageFormatProperties"; + case StructureType::ePhysicalDeviceExternalBufferInfo: return "PhysicalDeviceExternalBufferInfo"; + case StructureType::eExternalBufferProperties: return "ExternalBufferProperties"; + case StructureType::ePhysicalDeviceIdProperties: return "PhysicalDeviceIdProperties"; + case StructureType::eExternalMemoryBufferCreateInfo: return "ExternalMemoryBufferCreateInfo"; + case StructureType::eExternalMemoryImageCreateInfo: return "ExternalMemoryImageCreateInfo"; + case StructureType::eExportMemoryAllocateInfo: return "ExportMemoryAllocateInfo"; + case StructureType::ePhysicalDeviceExternalFenceInfo: return "PhysicalDeviceExternalFenceInfo"; + case StructureType::eExternalFenceProperties: return "ExternalFenceProperties"; + case StructureType::eExportFenceCreateInfo: return "ExportFenceCreateInfo"; + case StructureType::eExportSemaphoreCreateInfo: return "ExportSemaphoreCreateInfo"; + case StructureType::ePhysicalDeviceExternalSemaphoreInfo: return "PhysicalDeviceExternalSemaphoreInfo"; + case StructureType::eExternalSemaphoreProperties: return "ExternalSemaphoreProperties"; + case StructureType::ePhysicalDeviceMaintenance3Properties: return "PhysicalDeviceMaintenance3Properties"; + case StructureType::eDescriptorSetLayoutSupport: return "DescriptorSetLayoutSupport"; + case StructureType::ePhysicalDeviceShaderDrawParametersFeatures: + return "PhysicalDeviceShaderDrawParametersFeatures"; + case StructureType::ePhysicalDeviceVulkan11Features: return "PhysicalDeviceVulkan11Features"; + case StructureType::ePhysicalDeviceVulkan11Properties: return "PhysicalDeviceVulkan11Properties"; + case StructureType::ePhysicalDeviceVulkan12Features: return "PhysicalDeviceVulkan12Features"; + case StructureType::ePhysicalDeviceVulkan12Properties: return "PhysicalDeviceVulkan12Properties"; + case StructureType::eImageFormatListCreateInfo: return "ImageFormatListCreateInfo"; + case StructureType::eAttachmentDescription2: return "AttachmentDescription2"; + case StructureType::eAttachmentReference2: return "AttachmentReference2"; + case StructureType::eSubpassDescription2: return "SubpassDescription2"; + case StructureType::eSubpassDependency2: return "SubpassDependency2"; + case StructureType::eRenderPassCreateInfo2: return "RenderPassCreateInfo2"; + case StructureType::eSubpassBeginInfo: return "SubpassBeginInfo"; + case StructureType::eSubpassEndInfo: return "SubpassEndInfo"; + case StructureType::ePhysicalDevice8BitStorageFeatures: return "PhysicalDevice8BitStorageFeatures"; + case StructureType::ePhysicalDeviceDriverProperties: return "PhysicalDeviceDriverProperties"; + case StructureType::ePhysicalDeviceShaderAtomicInt64Features: return "PhysicalDeviceShaderAtomicInt64Features"; + case StructureType::ePhysicalDeviceShaderFloat16Int8Features: return "PhysicalDeviceShaderFloat16Int8Features"; + case StructureType::ePhysicalDeviceFloatControlsProperties: return "PhysicalDeviceFloatControlsProperties"; + case StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo: + return "DescriptorSetLayoutBindingFlagsCreateInfo"; + case StructureType::ePhysicalDeviceDescriptorIndexingFeatures: return "PhysicalDeviceDescriptorIndexingFeatures"; + case StructureType::ePhysicalDeviceDescriptorIndexingProperties: + return "PhysicalDeviceDescriptorIndexingProperties"; + case StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo: + return "DescriptorSetVariableDescriptorCountAllocateInfo"; + case StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport: + return "DescriptorSetVariableDescriptorCountLayoutSupport"; + case StructureType::ePhysicalDeviceDepthStencilResolveProperties: + return "PhysicalDeviceDepthStencilResolveProperties"; + case StructureType::eSubpassDescriptionDepthStencilResolve: return "SubpassDescriptionDepthStencilResolve"; + case StructureType::ePhysicalDeviceScalarBlockLayoutFeatures: return "PhysicalDeviceScalarBlockLayoutFeatures"; + case StructureType::eImageStencilUsageCreateInfo: return "ImageStencilUsageCreateInfo"; + case StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties: + return "PhysicalDeviceSamplerFilterMinmaxProperties"; + case StructureType::eSamplerReductionModeCreateInfo: return "SamplerReductionModeCreateInfo"; + case StructureType::ePhysicalDeviceVulkanMemoryModelFeatures: return "PhysicalDeviceVulkanMemoryModelFeatures"; + case StructureType::ePhysicalDeviceImagelessFramebufferFeatures: + return "PhysicalDeviceImagelessFramebufferFeatures"; + case StructureType::eFramebufferAttachmentsCreateInfo: return "FramebufferAttachmentsCreateInfo"; + case StructureType::eFramebufferAttachmentImageInfo: return "FramebufferAttachmentImageInfo"; + case StructureType::eRenderPassAttachmentBeginInfo: return "RenderPassAttachmentBeginInfo"; + case StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures: + return "PhysicalDeviceUniformBufferStandardLayoutFeatures"; + case StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures: + return "PhysicalDeviceShaderSubgroupExtendedTypesFeatures"; + case StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures: + return "PhysicalDeviceSeparateDepthStencilLayoutsFeatures"; + case StructureType::eAttachmentReferenceStencilLayout: return "AttachmentReferenceStencilLayout"; + case StructureType::eAttachmentDescriptionStencilLayout: return "AttachmentDescriptionStencilLayout"; + case StructureType::ePhysicalDeviceHostQueryResetFeatures: return "PhysicalDeviceHostQueryResetFeatures"; + case StructureType::ePhysicalDeviceTimelineSemaphoreFeatures: return "PhysicalDeviceTimelineSemaphoreFeatures"; + case StructureType::ePhysicalDeviceTimelineSemaphoreProperties: + return "PhysicalDeviceTimelineSemaphoreProperties"; + case StructureType::eSemaphoreTypeCreateInfo: return "SemaphoreTypeCreateInfo"; + case StructureType::eTimelineSemaphoreSubmitInfo: return "TimelineSemaphoreSubmitInfo"; + case StructureType::eSemaphoreWaitInfo: return "SemaphoreWaitInfo"; + case StructureType::eSemaphoreSignalInfo: return "SemaphoreSignalInfo"; + case StructureType::ePhysicalDeviceBufferDeviceAddressFeatures: + return "PhysicalDeviceBufferDeviceAddressFeatures"; + case StructureType::eBufferDeviceAddressInfo: return "BufferDeviceAddressInfo"; + case StructureType::eBufferOpaqueCaptureAddressCreateInfo: return "BufferOpaqueCaptureAddressCreateInfo"; + case StructureType::eMemoryOpaqueCaptureAddressAllocateInfo: return "MemoryOpaqueCaptureAddressAllocateInfo"; + case StructureType::eDeviceMemoryOpaqueCaptureAddressInfo: return "DeviceMemoryOpaqueCaptureAddressInfo"; + case StructureType::eSwapchainCreateInfoKHR: return "SwapchainCreateInfoKHR"; + case StructureType::ePresentInfoKHR: return "PresentInfoKHR"; + case StructureType::eDeviceGroupPresentCapabilitiesKHR: return "DeviceGroupPresentCapabilitiesKHR"; + case StructureType::eImageSwapchainCreateInfoKHR: return "ImageSwapchainCreateInfoKHR"; + case StructureType::eBindImageMemorySwapchainInfoKHR: return "BindImageMemorySwapchainInfoKHR"; + case StructureType::eAcquireNextImageInfoKHR: return "AcquireNextImageInfoKHR"; + case StructureType::eDeviceGroupPresentInfoKHR: return "DeviceGroupPresentInfoKHR"; + case StructureType::eDeviceGroupSwapchainCreateInfoKHR: return "DeviceGroupSwapchainCreateInfoKHR"; + case StructureType::eDisplayModeCreateInfoKHR: return "DisplayModeCreateInfoKHR"; + case StructureType::eDisplaySurfaceCreateInfoKHR: return "DisplaySurfaceCreateInfoKHR"; + case StructureType::eDisplayPresentInfoKHR: return "DisplayPresentInfoKHR"; +#if defined( VK_USE_PLATFORM_XLIB_KHR ) + case StructureType::eXlibSurfaceCreateInfoKHR: return "XlibSurfaceCreateInfoKHR"; +#endif /*VK_USE_PLATFORM_XLIB_KHR*/ +#if defined( VK_USE_PLATFORM_XCB_KHR ) + case StructureType::eXcbSurfaceCreateInfoKHR: return "XcbSurfaceCreateInfoKHR"; +#endif /*VK_USE_PLATFORM_XCB_KHR*/ +#if defined( VK_USE_PLATFORM_WAYLAND_KHR ) + case StructureType::eWaylandSurfaceCreateInfoKHR: return "WaylandSurfaceCreateInfoKHR"; +#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + case StructureType::eAndroidSurfaceCreateInfoKHR: return "AndroidSurfaceCreateInfoKHR"; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + case StructureType::eWin32SurfaceCreateInfoKHR: return "Win32SurfaceCreateInfoKHR"; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + case StructureType::eDebugReportCallbackCreateInfoEXT: return "DebugReportCallbackCreateInfoEXT"; + case StructureType::ePipelineRasterizationStateRasterizationOrderAMD: + return "PipelineRasterizationStateRasterizationOrderAMD"; + case StructureType::eDebugMarkerObjectNameInfoEXT: return "DebugMarkerObjectNameInfoEXT"; + case StructureType::eDebugMarkerObjectTagInfoEXT: return "DebugMarkerObjectTagInfoEXT"; + case StructureType::eDebugMarkerMarkerInfoEXT: return "DebugMarkerMarkerInfoEXT"; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + case StructureType::eVideoProfileKHR: return "VideoProfileKHR"; + case StructureType::eVideoCapabilitiesKHR: return "VideoCapabilitiesKHR"; + case StructureType::eVideoPictureResourceKHR: return "VideoPictureResourceKHR"; + case StructureType::eVideoGetMemoryPropertiesKHR: return "VideoGetMemoryPropertiesKHR"; + case StructureType::eVideoBindMemoryKHR: return "VideoBindMemoryKHR"; + case StructureType::eVideoSessionCreateInfoKHR: return "VideoSessionCreateInfoKHR"; + case StructureType::eVideoSessionParametersCreateInfoKHR: return "VideoSessionParametersCreateInfoKHR"; + case StructureType::eVideoSessionParametersUpdateInfoKHR: return "VideoSessionParametersUpdateInfoKHR"; + case StructureType::eVideoBeginCodingInfoKHR: return "VideoBeginCodingInfoKHR"; + case StructureType::eVideoEndCodingInfoKHR: return "VideoEndCodingInfoKHR"; + case StructureType::eVideoCodingControlInfoKHR: return "VideoCodingControlInfoKHR"; + case StructureType::eVideoReferenceSlotKHR: return "VideoReferenceSlotKHR"; + case StructureType::eVideoQueueFamilyProperties2KHR: return "VideoQueueFamilyProperties2KHR"; + case StructureType::eVideoProfilesKHR: return "VideoProfilesKHR"; + case StructureType::ePhysicalDeviceVideoFormatInfoKHR: return "PhysicalDeviceVideoFormatInfoKHR"; + case StructureType::eVideoFormatPropertiesKHR: return "VideoFormatPropertiesKHR"; + case StructureType::eVideoDecodeInfoKHR: return "VideoDecodeInfoKHR"; + case StructureType::eVideoEncodeInfoKHR: return "VideoEncodeInfoKHR"; + case StructureType::eVideoEncodeRateControlInfoKHR: return "VideoEncodeRateControlInfoKHR"; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + case StructureType::eDedicatedAllocationImageCreateInfoNV: return "DedicatedAllocationImageCreateInfoNV"; + case StructureType::eDedicatedAllocationBufferCreateInfoNV: return "DedicatedAllocationBufferCreateInfoNV"; + case StructureType::eDedicatedAllocationMemoryAllocateInfoNV: return "DedicatedAllocationMemoryAllocateInfoNV"; + case StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT: + return "PhysicalDeviceTransformFeedbackFeaturesEXT"; + case StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT: + return "PhysicalDeviceTransformFeedbackPropertiesEXT"; + case StructureType::ePipelineRasterizationStateStreamCreateInfoEXT: + return "PipelineRasterizationStateStreamCreateInfoEXT"; + case StructureType::eImageViewHandleInfoNVX: return "ImageViewHandleInfoNVX"; + case StructureType::eImageViewAddressPropertiesNVX: return "ImageViewAddressPropertiesNVX"; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + case StructureType::eVideoEncodeH264CapabilitiesEXT: return "VideoEncodeH264CapabilitiesEXT"; + case StructureType::eVideoEncodeH264SessionCreateInfoEXT: return "VideoEncodeH264SessionCreateInfoEXT"; + case StructureType::eVideoEncodeH264SessionParametersCreateInfoEXT: + return "VideoEncodeH264SessionParametersCreateInfoEXT"; + case StructureType::eVideoEncodeH264SessionParametersAddInfoEXT: + return "VideoEncodeH264SessionParametersAddInfoEXT"; + case StructureType::eVideoEncodeH264VclFrameInfoEXT: return "VideoEncodeH264VclFrameInfoEXT"; + case StructureType::eVideoEncodeH264DpbSlotInfoEXT: return "VideoEncodeH264DpbSlotInfoEXT"; + case StructureType::eVideoEncodeH264NaluSliceEXT: return "VideoEncodeH264NaluSliceEXT"; + case StructureType::eVideoEncodeH264EmitPictureParametersEXT: return "VideoEncodeH264EmitPictureParametersEXT"; + case StructureType::eVideoEncodeH264ProfileEXT: return "VideoEncodeH264ProfileEXT"; + case StructureType::eVideoDecodeH264CapabilitiesEXT: return "VideoDecodeH264CapabilitiesEXT"; + case StructureType::eVideoDecodeH264SessionCreateInfoEXT: return "VideoDecodeH264SessionCreateInfoEXT"; + case StructureType::eVideoDecodeH264PictureInfoEXT: return "VideoDecodeH264PictureInfoEXT"; + case StructureType::eVideoDecodeH264MvcEXT: return "VideoDecodeH264MvcEXT"; + case StructureType::eVideoDecodeH264ProfileEXT: return "VideoDecodeH264ProfileEXT"; + case StructureType::eVideoDecodeH264SessionParametersCreateInfoEXT: + return "VideoDecodeH264SessionParametersCreateInfoEXT"; + case StructureType::eVideoDecodeH264SessionParametersAddInfoEXT: + return "VideoDecodeH264SessionParametersAddInfoEXT"; + case StructureType::eVideoDecodeH264DpbSlotInfoEXT: return "VideoDecodeH264DpbSlotInfoEXT"; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + case StructureType::eTextureLodGatherFormatPropertiesAMD: return "TextureLodGatherFormatPropertiesAMD"; +#if defined( VK_USE_PLATFORM_GGP ) + case StructureType::eStreamDescriptorSurfaceCreateInfoGGP: return "StreamDescriptorSurfaceCreateInfoGGP"; +#endif /*VK_USE_PLATFORM_GGP*/ + case StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV: + return "PhysicalDeviceCornerSampledImageFeaturesNV"; + case StructureType::eExternalMemoryImageCreateInfoNV: return "ExternalMemoryImageCreateInfoNV"; + case StructureType::eExportMemoryAllocateInfoNV: return "ExportMemoryAllocateInfoNV"; +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + case StructureType::eImportMemoryWin32HandleInfoNV: return "ImportMemoryWin32HandleInfoNV"; + case StructureType::eExportMemoryWin32HandleInfoNV: return "ExportMemoryWin32HandleInfoNV"; + case StructureType::eWin32KeyedMutexAcquireReleaseInfoNV: return "Win32KeyedMutexAcquireReleaseInfoNV"; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + case StructureType::eValidationFlagsEXT: return "ValidationFlagsEXT"; +#if defined( VK_USE_PLATFORM_VI_NN ) + case StructureType::eViSurfaceCreateInfoNN: return "ViSurfaceCreateInfoNN"; +#endif /*VK_USE_PLATFORM_VI_NN*/ + case StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT: + return "PhysicalDeviceTextureCompressionAstcHdrFeaturesEXT"; + case StructureType::eImageViewAstcDecodeModeEXT: return "ImageViewAstcDecodeModeEXT"; + case StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT: return "PhysicalDeviceAstcDecodeFeaturesEXT"; +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + case StructureType::eImportMemoryWin32HandleInfoKHR: return "ImportMemoryWin32HandleInfoKHR"; + case StructureType::eExportMemoryWin32HandleInfoKHR: return "ExportMemoryWin32HandleInfoKHR"; + case StructureType::eMemoryWin32HandlePropertiesKHR: return "MemoryWin32HandlePropertiesKHR"; + case StructureType::eMemoryGetWin32HandleInfoKHR: return "MemoryGetWin32HandleInfoKHR"; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + case StructureType::eImportMemoryFdInfoKHR: return "ImportMemoryFdInfoKHR"; + case StructureType::eMemoryFdPropertiesKHR: return "MemoryFdPropertiesKHR"; + case StructureType::eMemoryGetFdInfoKHR: return "MemoryGetFdInfoKHR"; +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + case StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR: return "Win32KeyedMutexAcquireReleaseInfoKHR"; + case StructureType::eImportSemaphoreWin32HandleInfoKHR: return "ImportSemaphoreWin32HandleInfoKHR"; + case StructureType::eExportSemaphoreWin32HandleInfoKHR: return "ExportSemaphoreWin32HandleInfoKHR"; + case StructureType::eD3D12FenceSubmitInfoKHR: return "D3D12FenceSubmitInfoKHR"; + case StructureType::eSemaphoreGetWin32HandleInfoKHR: return "SemaphoreGetWin32HandleInfoKHR"; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + case StructureType::eImportSemaphoreFdInfoKHR: return "ImportSemaphoreFdInfoKHR"; + case StructureType::eSemaphoreGetFdInfoKHR: return "SemaphoreGetFdInfoKHR"; + case StructureType::ePhysicalDevicePushDescriptorPropertiesKHR: + return "PhysicalDevicePushDescriptorPropertiesKHR"; + case StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT: + return "CommandBufferInheritanceConditionalRenderingInfoEXT"; + case StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT: + return "PhysicalDeviceConditionalRenderingFeaturesEXT"; + case StructureType::eConditionalRenderingBeginInfoEXT: return "ConditionalRenderingBeginInfoEXT"; + case StructureType::ePresentRegionsKHR: return "PresentRegionsKHR"; + case StructureType::ePipelineViewportWScalingStateCreateInfoNV: + return "PipelineViewportWScalingStateCreateInfoNV"; + case StructureType::eSurfaceCapabilities2EXT: return "SurfaceCapabilities2EXT"; + case StructureType::eDisplayPowerInfoEXT: return "DisplayPowerInfoEXT"; + case StructureType::eDeviceEventInfoEXT: return "DeviceEventInfoEXT"; + case StructureType::eDisplayEventInfoEXT: return "DisplayEventInfoEXT"; + case StructureType::eSwapchainCounterCreateInfoEXT: return "SwapchainCounterCreateInfoEXT"; + case StructureType::ePresentTimesInfoGOOGLE: return "PresentTimesInfoGOOGLE"; + case StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX: + return "PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX"; + case StructureType::ePipelineViewportSwizzleStateCreateInfoNV: return "PipelineViewportSwizzleStateCreateInfoNV"; + case StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT: + return "PhysicalDeviceDiscardRectanglePropertiesEXT"; + case StructureType::ePipelineDiscardRectangleStateCreateInfoEXT: + return "PipelineDiscardRectangleStateCreateInfoEXT"; + case StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT: + return "PhysicalDeviceConservativeRasterizationPropertiesEXT"; + case StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT: + return "PipelineRasterizationConservativeStateCreateInfoEXT"; + case StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT: return "PhysicalDeviceDepthClipEnableFeaturesEXT"; + case StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT: + return "PipelineRasterizationDepthClipStateCreateInfoEXT"; + case StructureType::eHdrMetadataEXT: return "HdrMetadataEXT"; + case StructureType::eSharedPresentSurfaceCapabilitiesKHR: return "SharedPresentSurfaceCapabilitiesKHR"; +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + case StructureType::eImportFenceWin32HandleInfoKHR: return "ImportFenceWin32HandleInfoKHR"; + case StructureType::eExportFenceWin32HandleInfoKHR: return "ExportFenceWin32HandleInfoKHR"; + case StructureType::eFenceGetWin32HandleInfoKHR: return "FenceGetWin32HandleInfoKHR"; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + case StructureType::eImportFenceFdInfoKHR: return "ImportFenceFdInfoKHR"; + case StructureType::eFenceGetFdInfoKHR: return "FenceGetFdInfoKHR"; + case StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR: + return "PhysicalDevicePerformanceQueryFeaturesKHR"; + case StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR: + return "PhysicalDevicePerformanceQueryPropertiesKHR"; + case StructureType::eQueryPoolPerformanceCreateInfoKHR: return "QueryPoolPerformanceCreateInfoKHR"; + case StructureType::ePerformanceQuerySubmitInfoKHR: return "PerformanceQuerySubmitInfoKHR"; + case StructureType::eAcquireProfilingLockInfoKHR: return "AcquireProfilingLockInfoKHR"; + case StructureType::ePerformanceCounterKHR: return "PerformanceCounterKHR"; + case StructureType::ePerformanceCounterDescriptionKHR: return "PerformanceCounterDescriptionKHR"; + case StructureType::ePhysicalDeviceSurfaceInfo2KHR: return "PhysicalDeviceSurfaceInfo2KHR"; + case StructureType::eSurfaceCapabilities2KHR: return "SurfaceCapabilities2KHR"; + case StructureType::eSurfaceFormat2KHR: return "SurfaceFormat2KHR"; + case StructureType::eDisplayProperties2KHR: return "DisplayProperties2KHR"; + case StructureType::eDisplayPlaneProperties2KHR: return "DisplayPlaneProperties2KHR"; + case StructureType::eDisplayModeProperties2KHR: return "DisplayModeProperties2KHR"; + case StructureType::eDisplayPlaneInfo2KHR: return "DisplayPlaneInfo2KHR"; + case StructureType::eDisplayPlaneCapabilities2KHR: return "DisplayPlaneCapabilities2KHR"; +#if defined( VK_USE_PLATFORM_IOS_MVK ) + case StructureType::eIosSurfaceCreateInfoMVK: return "IosSurfaceCreateInfoMVK"; +#endif /*VK_USE_PLATFORM_IOS_MVK*/ +#if defined( VK_USE_PLATFORM_MACOS_MVK ) + case StructureType::eMacosSurfaceCreateInfoMVK: return "MacosSurfaceCreateInfoMVK"; +#endif /*VK_USE_PLATFORM_MACOS_MVK*/ + case StructureType::eDebugUtilsObjectNameInfoEXT: return "DebugUtilsObjectNameInfoEXT"; + case StructureType::eDebugUtilsObjectTagInfoEXT: return "DebugUtilsObjectTagInfoEXT"; + case StructureType::eDebugUtilsLabelEXT: return "DebugUtilsLabelEXT"; + case StructureType::eDebugUtilsMessengerCallbackDataEXT: return "DebugUtilsMessengerCallbackDataEXT"; + case StructureType::eDebugUtilsMessengerCreateInfoEXT: return "DebugUtilsMessengerCreateInfoEXT"; +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + case StructureType::eAndroidHardwareBufferUsageANDROID: return "AndroidHardwareBufferUsageANDROID"; + case StructureType::eAndroidHardwareBufferPropertiesANDROID: return "AndroidHardwareBufferPropertiesANDROID"; + case StructureType::eAndroidHardwareBufferFormatPropertiesANDROID: + return "AndroidHardwareBufferFormatPropertiesANDROID"; + case StructureType::eImportAndroidHardwareBufferInfoANDROID: return "ImportAndroidHardwareBufferInfoANDROID"; + case StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID: + return "MemoryGetAndroidHardwareBufferInfoANDROID"; + case StructureType::eExternalFormatANDROID: return "ExternalFormatANDROID"; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + case StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT: + return "PhysicalDeviceInlineUniformBlockFeaturesEXT"; + case StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT: + return "PhysicalDeviceInlineUniformBlockPropertiesEXT"; + case StructureType::eWriteDescriptorSetInlineUniformBlockEXT: return "WriteDescriptorSetInlineUniformBlockEXT"; + case StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT: + return "DescriptorPoolInlineUniformBlockCreateInfoEXT"; + case StructureType::eSampleLocationsInfoEXT: return "SampleLocationsInfoEXT"; + case StructureType::eRenderPassSampleLocationsBeginInfoEXT: return "RenderPassSampleLocationsBeginInfoEXT"; + case StructureType::ePipelineSampleLocationsStateCreateInfoEXT: + return "PipelineSampleLocationsStateCreateInfoEXT"; + case StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT: + return "PhysicalDeviceSampleLocationsPropertiesEXT"; + case StructureType::eMultisamplePropertiesEXT: return "MultisamplePropertiesEXT"; + case StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT: + return "PhysicalDeviceBlendOperationAdvancedFeaturesEXT"; + case StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT: + return "PhysicalDeviceBlendOperationAdvancedPropertiesEXT"; + case StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT: + return "PipelineColorBlendAdvancedStateCreateInfoEXT"; + case StructureType::ePipelineCoverageToColorStateCreateInfoNV: return "PipelineCoverageToColorStateCreateInfoNV"; + case StructureType::eWriteDescriptorSetAccelerationStructureKHR: + return "WriteDescriptorSetAccelerationStructureKHR"; + case StructureType::eAccelerationStructureBuildGeometryInfoKHR: + return "AccelerationStructureBuildGeometryInfoKHR"; + case StructureType::eAccelerationStructureDeviceAddressInfoKHR: + return "AccelerationStructureDeviceAddressInfoKHR"; + case StructureType::eAccelerationStructureGeometryAabbsDataKHR: + return "AccelerationStructureGeometryAabbsDataKHR"; + case StructureType::eAccelerationStructureGeometryInstancesDataKHR: + return "AccelerationStructureGeometryInstancesDataKHR"; + case StructureType::eAccelerationStructureGeometryTrianglesDataKHR: + return "AccelerationStructureGeometryTrianglesDataKHR"; + case StructureType::eAccelerationStructureGeometryKHR: return "AccelerationStructureGeometryKHR"; + case StructureType::eAccelerationStructureVersionInfoKHR: return "AccelerationStructureVersionInfoKHR"; + case StructureType::eCopyAccelerationStructureInfoKHR: return "CopyAccelerationStructureInfoKHR"; + case StructureType::eCopyAccelerationStructureToMemoryInfoKHR: return "CopyAccelerationStructureToMemoryInfoKHR"; + case StructureType::eCopyMemoryToAccelerationStructureInfoKHR: return "CopyMemoryToAccelerationStructureInfoKHR"; + case StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR: + return "PhysicalDeviceAccelerationStructureFeaturesKHR"; + case StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR: + return "PhysicalDeviceAccelerationStructurePropertiesKHR"; + case StructureType::eAccelerationStructureCreateInfoKHR: return "AccelerationStructureCreateInfoKHR"; + case StructureType::eAccelerationStructureBuildSizesInfoKHR: return "AccelerationStructureBuildSizesInfoKHR"; + case StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR: + return "PhysicalDeviceRayTracingPipelineFeaturesKHR"; + case StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR: + return "PhysicalDeviceRayTracingPipelinePropertiesKHR"; + case StructureType::eRayTracingPipelineCreateInfoKHR: return "RayTracingPipelineCreateInfoKHR"; + case StructureType::eRayTracingShaderGroupCreateInfoKHR: return "RayTracingShaderGroupCreateInfoKHR"; + case StructureType::eRayTracingPipelineInterfaceCreateInfoKHR: return "RayTracingPipelineInterfaceCreateInfoKHR"; + case StructureType::ePhysicalDeviceRayQueryFeaturesKHR: return "PhysicalDeviceRayQueryFeaturesKHR"; + case StructureType::ePipelineCoverageModulationStateCreateInfoNV: + return "PipelineCoverageModulationStateCreateInfoNV"; + case StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV: return "PhysicalDeviceShaderSmBuiltinsFeaturesNV"; + case StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV: + return "PhysicalDeviceShaderSmBuiltinsPropertiesNV"; + case StructureType::eDrmFormatModifierPropertiesListEXT: return "DrmFormatModifierPropertiesListEXT"; + case StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT: + return "PhysicalDeviceImageDrmFormatModifierInfoEXT"; + case StructureType::eImageDrmFormatModifierListCreateInfoEXT: return "ImageDrmFormatModifierListCreateInfoEXT"; + case StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT: + return "ImageDrmFormatModifierExplicitCreateInfoEXT"; + case StructureType::eImageDrmFormatModifierPropertiesEXT: return "ImageDrmFormatModifierPropertiesEXT"; + case StructureType::eValidationCacheCreateInfoEXT: return "ValidationCacheCreateInfoEXT"; + case StructureType::eShaderModuleValidationCacheCreateInfoEXT: return "ShaderModuleValidationCacheCreateInfoEXT"; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + case StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR: + return "PhysicalDevicePortabilitySubsetFeaturesKHR"; + case StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR: + return "PhysicalDevicePortabilitySubsetPropertiesKHR"; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + case StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV: + return "PipelineViewportShadingRateImageStateCreateInfoNV"; + case StructureType::ePhysicalDeviceShadingRateImageFeaturesNV: return "PhysicalDeviceShadingRateImageFeaturesNV"; + case StructureType::ePhysicalDeviceShadingRateImagePropertiesNV: + return "PhysicalDeviceShadingRateImagePropertiesNV"; + case StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV: + return "PipelineViewportCoarseSampleOrderStateCreateInfoNV"; + case StructureType::eRayTracingPipelineCreateInfoNV: return "RayTracingPipelineCreateInfoNV"; + case StructureType::eAccelerationStructureCreateInfoNV: return "AccelerationStructureCreateInfoNV"; + case StructureType::eGeometryNV: return "GeometryNV"; + case StructureType::eGeometryTrianglesNV: return "GeometryTrianglesNV"; + case StructureType::eGeometryAabbNV: return "GeometryAabbNV"; + case StructureType::eBindAccelerationStructureMemoryInfoNV: return "BindAccelerationStructureMemoryInfoNV"; + case StructureType::eWriteDescriptorSetAccelerationStructureNV: + return "WriteDescriptorSetAccelerationStructureNV"; + case StructureType::eAccelerationStructureMemoryRequirementsInfoNV: + return "AccelerationStructureMemoryRequirementsInfoNV"; + case StructureType::ePhysicalDeviceRayTracingPropertiesNV: return "PhysicalDeviceRayTracingPropertiesNV"; + case StructureType::eRayTracingShaderGroupCreateInfoNV: return "RayTracingShaderGroupCreateInfoNV"; + case StructureType::eAccelerationStructureInfoNV: return "AccelerationStructureInfoNV"; + case StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV: + return "PhysicalDeviceRepresentativeFragmentTestFeaturesNV"; + case StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV: + return "PipelineRepresentativeFragmentTestStateCreateInfoNV"; + case StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT: + return "PhysicalDeviceImageViewImageFormatInfoEXT"; + case StructureType::eFilterCubicImageViewImageFormatPropertiesEXT: + return "FilterCubicImageViewImageFormatPropertiesEXT"; + case StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT: return "DeviceQueueGlobalPriorityCreateInfoEXT"; + case StructureType::eImportMemoryHostPointerInfoEXT: return "ImportMemoryHostPointerInfoEXT"; + case StructureType::eMemoryHostPointerPropertiesEXT: return "MemoryHostPointerPropertiesEXT"; + case StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT: + return "PhysicalDeviceExternalMemoryHostPropertiesEXT"; + case StructureType::ePhysicalDeviceShaderClockFeaturesKHR: return "PhysicalDeviceShaderClockFeaturesKHR"; + case StructureType::ePipelineCompilerControlCreateInfoAMD: return "PipelineCompilerControlCreateInfoAMD"; + case StructureType::eCalibratedTimestampInfoEXT: return "CalibratedTimestampInfoEXT"; + case StructureType::ePhysicalDeviceShaderCorePropertiesAMD: return "PhysicalDeviceShaderCorePropertiesAMD"; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + case StructureType::eVideoDecodeH265CapabilitiesEXT: return "VideoDecodeH265CapabilitiesEXT"; + case StructureType::eVideoDecodeH265SessionCreateInfoEXT: return "VideoDecodeH265SessionCreateInfoEXT"; + case StructureType::eVideoDecodeH265SessionParametersCreateInfoEXT: + return "VideoDecodeH265SessionParametersCreateInfoEXT"; + case StructureType::eVideoDecodeH265SessionParametersAddInfoEXT: + return "VideoDecodeH265SessionParametersAddInfoEXT"; + case StructureType::eVideoDecodeH265ProfileEXT: return "VideoDecodeH265ProfileEXT"; + case StructureType::eVideoDecodeH265PictureInfoEXT: return "VideoDecodeH265PictureInfoEXT"; + case StructureType::eVideoDecodeH265DpbSlotInfoEXT: return "VideoDecodeH265DpbSlotInfoEXT"; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + case StructureType::eDeviceMemoryOverallocationCreateInfoAMD: return "DeviceMemoryOverallocationCreateInfoAMD"; + case StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT: + return "PhysicalDeviceVertexAttributeDivisorPropertiesEXT"; + case StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT: + return "PipelineVertexInputDivisorStateCreateInfoEXT"; + case StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT: + return "PhysicalDeviceVertexAttributeDivisorFeaturesEXT"; +#if defined( VK_USE_PLATFORM_GGP ) + case StructureType::ePresentFrameTokenGGP: return "PresentFrameTokenGGP"; +#endif /*VK_USE_PLATFORM_GGP*/ + case StructureType::ePipelineCreationFeedbackCreateInfoEXT: return "PipelineCreationFeedbackCreateInfoEXT"; + case StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV: + return "PhysicalDeviceComputeShaderDerivativesFeaturesNV"; + case StructureType::ePhysicalDeviceMeshShaderFeaturesNV: return "PhysicalDeviceMeshShaderFeaturesNV"; + case StructureType::ePhysicalDeviceMeshShaderPropertiesNV: return "PhysicalDeviceMeshShaderPropertiesNV"; + case StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV: + return "PhysicalDeviceFragmentShaderBarycentricFeaturesNV"; + case StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV: + return "PhysicalDeviceShaderImageFootprintFeaturesNV"; + case StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV: + return "PipelineViewportExclusiveScissorStateCreateInfoNV"; + case StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV: return "PhysicalDeviceExclusiveScissorFeaturesNV"; + case StructureType::eCheckpointDataNV: return "CheckpointDataNV"; + case StructureType::eQueueFamilyCheckpointPropertiesNV: return "QueueFamilyCheckpointPropertiesNV"; + case StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL: + return "PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL"; + case StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL: return "QueryPoolPerformanceQueryCreateInfoINTEL"; + case StructureType::eInitializePerformanceApiInfoINTEL: return "InitializePerformanceApiInfoINTEL"; + case StructureType::ePerformanceMarkerInfoINTEL: return "PerformanceMarkerInfoINTEL"; + case StructureType::ePerformanceStreamMarkerInfoINTEL: return "PerformanceStreamMarkerInfoINTEL"; + case StructureType::ePerformanceOverrideInfoINTEL: return "PerformanceOverrideInfoINTEL"; + case StructureType::ePerformanceConfigurationAcquireInfoINTEL: return "PerformanceConfigurationAcquireInfoINTEL"; + case StructureType::ePhysicalDevicePciBusInfoPropertiesEXT: return "PhysicalDevicePciBusInfoPropertiesEXT"; + case StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD: return "DisplayNativeHdrSurfaceCapabilitiesAMD"; + case StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD: return "SwapchainDisplayNativeHdrCreateInfoAMD"; +#if defined( VK_USE_PLATFORM_FUCHSIA ) + case StructureType::eImagepipeSurfaceCreateInfoFUCHSIA: return "ImagepipeSurfaceCreateInfoFUCHSIA"; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + case StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR: + return "PhysicalDeviceShaderTerminateInvocationFeaturesKHR"; +#if defined( VK_USE_PLATFORM_METAL_EXT ) + case StructureType::eMetalSurfaceCreateInfoEXT: return "MetalSurfaceCreateInfoEXT"; +#endif /*VK_USE_PLATFORM_METAL_EXT*/ + case StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT: + return "PhysicalDeviceFragmentDensityMapFeaturesEXT"; + case StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT: + return "PhysicalDeviceFragmentDensityMapPropertiesEXT"; + case StructureType::eRenderPassFragmentDensityMapCreateInfoEXT: + return "RenderPassFragmentDensityMapCreateInfoEXT"; + case StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT: + return "PhysicalDeviceSubgroupSizeControlPropertiesEXT"; + case StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT: + return "PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT"; + case StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT: + return "PhysicalDeviceSubgroupSizeControlFeaturesEXT"; + case StructureType::eFragmentShadingRateAttachmentInfoKHR: return "FragmentShadingRateAttachmentInfoKHR"; + case StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR: + return "PipelineFragmentShadingRateStateCreateInfoKHR"; + case StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR: + return "PhysicalDeviceFragmentShadingRatePropertiesKHR"; + case StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR: + return "PhysicalDeviceFragmentShadingRateFeaturesKHR"; + case StructureType::ePhysicalDeviceFragmentShadingRateKHR: return "PhysicalDeviceFragmentShadingRateKHR"; + case StructureType::ePhysicalDeviceShaderCoreProperties2AMD: return "PhysicalDeviceShaderCoreProperties2AMD"; + case StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD: return "PhysicalDeviceCoherentMemoryFeaturesAMD"; + case StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT: + return "PhysicalDeviceShaderImageAtomicInt64FeaturesEXT"; + case StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT: return "PhysicalDeviceMemoryBudgetPropertiesEXT"; + case StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT: return "PhysicalDeviceMemoryPriorityFeaturesEXT"; + case StructureType::eMemoryPriorityAllocateInfoEXT: return "MemoryPriorityAllocateInfoEXT"; + case StructureType::eSurfaceProtectedCapabilitiesKHR: return "SurfaceProtectedCapabilitiesKHR"; + case StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV: + return "PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV"; + case StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT: + return "PhysicalDeviceBufferDeviceAddressFeaturesEXT"; + case StructureType::eBufferDeviceAddressCreateInfoEXT: return "BufferDeviceAddressCreateInfoEXT"; + case StructureType::ePhysicalDeviceToolPropertiesEXT: return "PhysicalDeviceToolPropertiesEXT"; + case StructureType::eValidationFeaturesEXT: return "ValidationFeaturesEXT"; + case StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV: + return "PhysicalDeviceCooperativeMatrixFeaturesNV"; + case StructureType::eCooperativeMatrixPropertiesNV: return "CooperativeMatrixPropertiesNV"; + case StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV: + return "PhysicalDeviceCooperativeMatrixPropertiesNV"; + case StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV: + return "PhysicalDeviceCoverageReductionModeFeaturesNV"; + case StructureType::ePipelineCoverageReductionStateCreateInfoNV: + return "PipelineCoverageReductionStateCreateInfoNV"; + case StructureType::eFramebufferMixedSamplesCombinationNV: return "FramebufferMixedSamplesCombinationNV"; + case StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT: + return "PhysicalDeviceFragmentShaderInterlockFeaturesEXT"; + case StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT: + return "PhysicalDeviceYcbcrImageArraysFeaturesEXT"; +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + case StructureType::eSurfaceFullScreenExclusiveInfoEXT: return "SurfaceFullScreenExclusiveInfoEXT"; + case StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT: + return "SurfaceCapabilitiesFullScreenExclusiveEXT"; + case StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT: return "SurfaceFullScreenExclusiveWin32InfoEXT"; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + case StructureType::eHeadlessSurfaceCreateInfoEXT: return "HeadlessSurfaceCreateInfoEXT"; + case StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT: + return "PhysicalDeviceLineRasterizationFeaturesEXT"; + case StructureType::ePipelineRasterizationLineStateCreateInfoEXT: + return "PipelineRasterizationLineStateCreateInfoEXT"; + case StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT: + return "PhysicalDeviceLineRasterizationPropertiesEXT"; + case StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT: + return "PhysicalDeviceShaderAtomicFloatFeaturesEXT"; + case StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT: return "PhysicalDeviceIndexTypeUint8FeaturesEXT"; + case StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT: + return "PhysicalDeviceExtendedDynamicStateFeaturesEXT"; + case StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR: + return "PhysicalDevicePipelineExecutablePropertiesFeaturesKHR"; + case StructureType::ePipelineInfoKHR: return "PipelineInfoKHR"; + case StructureType::ePipelineExecutablePropertiesKHR: return "PipelineExecutablePropertiesKHR"; + case StructureType::ePipelineExecutableInfoKHR: return "PipelineExecutableInfoKHR"; + case StructureType::ePipelineExecutableStatisticKHR: return "PipelineExecutableStatisticKHR"; + case StructureType::ePipelineExecutableInternalRepresentationKHR: + return "PipelineExecutableInternalRepresentationKHR"; + case StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT: + return "PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT"; + case StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV: + return "PhysicalDeviceDeviceGeneratedCommandsPropertiesNV"; + case StructureType::eGraphicsShaderGroupCreateInfoNV: return "GraphicsShaderGroupCreateInfoNV"; + case StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV: return "GraphicsPipelineShaderGroupsCreateInfoNV"; + case StructureType::eIndirectCommandsLayoutTokenNV: return "IndirectCommandsLayoutTokenNV"; + case StructureType::eIndirectCommandsLayoutCreateInfoNV: return "IndirectCommandsLayoutCreateInfoNV"; + case StructureType::eGeneratedCommandsInfoNV: return "GeneratedCommandsInfoNV"; + case StructureType::eGeneratedCommandsMemoryRequirementsInfoNV: + return "GeneratedCommandsMemoryRequirementsInfoNV"; + case StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV: + return "PhysicalDeviceDeviceGeneratedCommandsFeaturesNV"; + case StructureType::ePhysicalDeviceInheritedViewportScissorFeaturesNV: + return "PhysicalDeviceInheritedViewportScissorFeaturesNV"; + case StructureType::eCommandBufferInheritanceViewportScissorInfoNV: + return "CommandBufferInheritanceViewportScissorInfoNV"; + case StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT: + return "PhysicalDeviceTexelBufferAlignmentFeaturesEXT"; + case StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT: + return "PhysicalDeviceTexelBufferAlignmentPropertiesEXT"; + case StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM: + return "CommandBufferInheritanceRenderPassTransformInfoQCOM"; + case StructureType::eRenderPassTransformBeginInfoQCOM: return "RenderPassTransformBeginInfoQCOM"; + case StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT: + return "PhysicalDeviceDeviceMemoryReportFeaturesEXT"; + case StructureType::eDeviceDeviceMemoryReportCreateInfoEXT: return "DeviceDeviceMemoryReportCreateInfoEXT"; + case StructureType::eDeviceMemoryReportCallbackDataEXT: return "DeviceMemoryReportCallbackDataEXT"; + case StructureType::ePhysicalDeviceRobustness2FeaturesEXT: return "PhysicalDeviceRobustness2FeaturesEXT"; + case StructureType::ePhysicalDeviceRobustness2PropertiesEXT: return "PhysicalDeviceRobustness2PropertiesEXT"; + case StructureType::eSamplerCustomBorderColorCreateInfoEXT: return "SamplerCustomBorderColorCreateInfoEXT"; + case StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT: + return "PhysicalDeviceCustomBorderColorPropertiesEXT"; + case StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT: + return "PhysicalDeviceCustomBorderColorFeaturesEXT"; + case StructureType::ePipelineLibraryCreateInfoKHR: return "PipelineLibraryCreateInfoKHR"; + case StructureType::ePhysicalDevicePrivateDataFeaturesEXT: return "PhysicalDevicePrivateDataFeaturesEXT"; + case StructureType::eDevicePrivateDataCreateInfoEXT: return "DevicePrivateDataCreateInfoEXT"; + case StructureType::ePrivateDataSlotCreateInfoEXT: return "PrivateDataSlotCreateInfoEXT"; + case StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT: + return "PhysicalDevicePipelineCreationCacheControlFeaturesEXT"; + case StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV: + return "PhysicalDeviceDiagnosticsConfigFeaturesNV"; + case StructureType::eDeviceDiagnosticsConfigCreateInfoNV: return "DeviceDiagnosticsConfigCreateInfoNV"; + case StructureType::eMemoryBarrier2KHR: return "MemoryBarrier2KHR"; + case StructureType::eBufferMemoryBarrier2KHR: return "BufferMemoryBarrier2KHR"; + case StructureType::eImageMemoryBarrier2KHR: return "ImageMemoryBarrier2KHR"; + case StructureType::eDependencyInfoKHR: return "DependencyInfoKHR"; + case StructureType::eSubmitInfo2KHR: return "SubmitInfo2KHR"; + case StructureType::eSemaphoreSubmitInfoKHR: return "SemaphoreSubmitInfoKHR"; + case StructureType::eCommandBufferSubmitInfoKHR: return "CommandBufferSubmitInfoKHR"; + case StructureType::ePhysicalDeviceSynchronization2FeaturesKHR: + return "PhysicalDeviceSynchronization2FeaturesKHR"; + case StructureType::eQueueFamilyCheckpointProperties2Nv: return "QueueFamilyCheckpointProperties2Nv"; + case StructureType::eCheckpointData2Nv: return "CheckpointData2Nv"; + case StructureType::ePhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR: + return "PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR"; + case StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV: + return "PhysicalDeviceFragmentShadingRateEnumsPropertiesNV"; + case StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV: + return "PhysicalDeviceFragmentShadingRateEnumsFeaturesNV"; + case StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV: + return "PipelineFragmentShadingRateEnumStateCreateInfoNV"; + case StructureType::ePhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT: + return "PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT"; + case StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT: + return "PhysicalDeviceFragmentDensityMap2FeaturesEXT"; + case StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT: + return "PhysicalDeviceFragmentDensityMap2PropertiesEXT"; + case StructureType::eCopyCommandTransformInfoQCOM: return "CopyCommandTransformInfoQCOM"; + case StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT: return "PhysicalDeviceImageRobustnessFeaturesEXT"; + case StructureType::ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR: + return "PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR"; + case StructureType::eCopyBufferInfo2KHR: return "CopyBufferInfo2KHR"; + case StructureType::eCopyImageInfo2KHR: return "CopyImageInfo2KHR"; + case StructureType::eCopyBufferToImageInfo2KHR: return "CopyBufferToImageInfo2KHR"; + case StructureType::eCopyImageToBufferInfo2KHR: return "CopyImageToBufferInfo2KHR"; + case StructureType::eBlitImageInfo2KHR: return "BlitImageInfo2KHR"; + case StructureType::eResolveImageInfo2KHR: return "ResolveImageInfo2KHR"; + case StructureType::eBufferCopy2KHR: return "BufferCopy2KHR"; + case StructureType::eImageCopy2KHR: return "ImageCopy2KHR"; + case StructureType::eImageBlit2KHR: return "ImageBlit2KHR"; + case StructureType::eBufferImageCopy2KHR: return "BufferImageCopy2KHR"; + case StructureType::eImageResolve2KHR: return "ImageResolve2KHR"; + case StructureType::ePhysicalDevice4444FormatsFeaturesEXT: return "PhysicalDevice4444FormatsFeaturesEXT"; +#if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) + case StructureType::eDirectfbSurfaceCreateInfoEXT: return "DirectfbSurfaceCreateInfoEXT"; +#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ + case StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE: + return "PhysicalDeviceMutableDescriptorTypeFeaturesVALVE"; + case StructureType::eMutableDescriptorTypeCreateInfoVALVE: return "MutableDescriptorTypeCreateInfoVALVE"; + case StructureType::ePhysicalDeviceVertexInputDynamicStateFeaturesEXT: + return "PhysicalDeviceVertexInputDynamicStateFeaturesEXT"; + case StructureType::eVertexInputBindingDescription2EXT: return "VertexInputBindingDescription2EXT"; + case StructureType::eVertexInputAttributeDescription2EXT: return "VertexInputAttributeDescription2EXT"; +#if defined( VK_USE_PLATFORM_FUCHSIA ) + case StructureType::eImportMemoryZirconHandleInfoFUCHSIA: return "ImportMemoryZirconHandleInfoFUCHSIA"; + case StructureType::eMemoryZirconHandlePropertiesFUCHSIA: return "MemoryZirconHandlePropertiesFUCHSIA"; + case StructureType::eMemoryGetZirconHandleInfoFUCHSIA: return "MemoryGetZirconHandleInfoFUCHSIA"; + case StructureType::eImportSemaphoreZirconHandleInfoFUCHSIA: return "ImportSemaphoreZirconHandleInfoFUCHSIA"; + case StructureType::eSemaphoreGetZirconHandleInfoFUCHSIA: return "SemaphoreGetZirconHandleInfoFUCHSIA"; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + case StructureType::ePhysicalDeviceExtendedDynamicState2FeaturesEXT: + return "PhysicalDeviceExtendedDynamicState2FeaturesEXT"; +#if defined( VK_USE_PLATFORM_SCREEN_QNX ) + case StructureType::eScreenSurfaceCreateInfoQNX: return "ScreenSurfaceCreateInfoQNX"; +#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + case StructureType::ePhysicalDeviceColorWriteEnableFeaturesEXT: + return "PhysicalDeviceColorWriteEnableFeaturesEXT"; + case StructureType::ePipelineColorWriteCreateInfoEXT: return "PipelineColorWriteCreateInfoEXT"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class SubgroupFeatureFlagBits : VkSubgroupFeatureFlags + { + eBasic = VK_SUBGROUP_FEATURE_BASIC_BIT, + eVote = VK_SUBGROUP_FEATURE_VOTE_BIT, + eArithmetic = VK_SUBGROUP_FEATURE_ARITHMETIC_BIT, + eBallot = VK_SUBGROUP_FEATURE_BALLOT_BIT, + eShuffle = VK_SUBGROUP_FEATURE_SHUFFLE_BIT, eShuffleRelative = VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT, - eClustered = VK_SUBGROUP_FEATURE_CLUSTERED_BIT, - eQuad = VK_SUBGROUP_FEATURE_QUAD_BIT, - ePartitionedNV = VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV + eClustered = VK_SUBGROUP_FEATURE_CLUSTERED_BIT, + eQuad = VK_SUBGROUP_FEATURE_QUAD_BIT, + ePartitionedNV = VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV }; VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlagBits value ) { switch ( value ) { - case SubgroupFeatureFlagBits::eBasic : return "Basic"; - case SubgroupFeatureFlagBits::eVote : return "Vote"; - case SubgroupFeatureFlagBits::eArithmetic : return "Arithmetic"; - case SubgroupFeatureFlagBits::eBallot : return "Ballot"; - case SubgroupFeatureFlagBits::eShuffle : return "Shuffle"; - case SubgroupFeatureFlagBits::eShuffleRelative : return "ShuffleRelative"; - case SubgroupFeatureFlagBits::eClustered : return "Clustered"; - case SubgroupFeatureFlagBits::eQuad : return "Quad"; - case SubgroupFeatureFlagBits::ePartitionedNV : return "PartitionedNV"; - default: return "invalid"; + case SubgroupFeatureFlagBits::eBasic: return "Basic"; + case SubgroupFeatureFlagBits::eVote: return "Vote"; + case SubgroupFeatureFlagBits::eArithmetic: return "Arithmetic"; + case SubgroupFeatureFlagBits::eBallot: return "Ballot"; + case SubgroupFeatureFlagBits::eShuffle: return "Shuffle"; + case SubgroupFeatureFlagBits::eShuffleRelative: return "ShuffleRelative"; + case SubgroupFeatureFlagBits::eClustered: return "Clustered"; + case SubgroupFeatureFlagBits::eQuad: return "Quad"; + case SubgroupFeatureFlagBits::ePartitionedNV: return "PartitionedNV"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + + enum class SubmitFlagBitsKHR : VkSubmitFlagsKHR + { + eProtected = VK_SUBMIT_PROTECTED_BIT_KHR + }; + + VULKAN_HPP_INLINE std::string to_string( SubmitFlagBitsKHR value ) + { + switch ( value ) + { + case SubmitFlagBitsKHR::eProtected: return "Protected"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class SubpassContents { - eInline = VK_SUBPASS_CONTENTS_INLINE, + eInline = VK_SUBPASS_CONTENTS_INLINE, eSecondaryCommandBuffers = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS }; @@ -8148,96 +11813,100 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case SubpassContents::eInline : return "Inline"; - case SubpassContents::eSecondaryCommandBuffers : return "SecondaryCommandBuffers"; - default: return "invalid"; + case SubpassContents::eInline: return "Inline"; + case SubpassContents::eSecondaryCommandBuffers: return "SecondaryCommandBuffers"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class SubpassDescriptionFlagBits + enum class SubpassDescriptionFlagBits : VkSubpassDescriptionFlags { - ePerViewAttributesNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX, - ePerViewPositionXOnlyNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX + ePerViewAttributesNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX, + ePerViewPositionXOnlyNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX, + eFragmentRegionQCOM = VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, + eShaderResolveQCOM = VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM }; VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlagBits value ) { switch ( value ) { - case SubpassDescriptionFlagBits::ePerViewAttributesNVX : return "PerViewAttributesNVX"; - case SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX : return "PerViewPositionXOnlyNVX"; - default: return "invalid"; + case SubpassDescriptionFlagBits::ePerViewAttributesNVX: return "PerViewAttributesNVX"; + case SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX: return "PerViewPositionXOnlyNVX"; + case SubpassDescriptionFlagBits::eFragmentRegionQCOM: return "FragmentRegionQCOM"; + case SubpassDescriptionFlagBits::eShaderResolveQCOM: return "ShaderResolveQCOM"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class SurfaceCounterFlagBitsEXT + enum class SurfaceCounterFlagBitsEXT : VkSurfaceCounterFlagsEXT { - eVblank = VK_SURFACE_COUNTER_VBLANK_EXT + eVblank = VK_SURFACE_COUNTER_VBLANK_BIT_EXT }; VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagBitsEXT value ) { switch ( value ) { - case SurfaceCounterFlagBitsEXT::eVblank : return "Vblank"; - default: return "invalid"; + case SurfaceCounterFlagBitsEXT::eVblank: return "Vblank"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class SurfaceTransformFlagBitsKHR + enum class SurfaceTransformFlagBitsKHR : VkSurfaceTransformFlagsKHR { - eIdentity = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, - eRotate90 = VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, - eRotate180 = VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, - eRotate270 = VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, - eHorizontalMirror = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR, - eHorizontalMirrorRotate90 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR, + eIdentity = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, + eRotate90 = VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, + eRotate180 = VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, + eRotate270 = VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, + eHorizontalMirror = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR, + eHorizontalMirrorRotate90 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR, eHorizontalMirrorRotate180 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR, eHorizontalMirrorRotate270 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR, - eInherit = VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR + eInherit = VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR }; VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagBitsKHR value ) { switch ( value ) { - case SurfaceTransformFlagBitsKHR::eIdentity : return "Identity"; - case SurfaceTransformFlagBitsKHR::eRotate90 : return "Rotate90"; - case SurfaceTransformFlagBitsKHR::eRotate180 : return "Rotate180"; - case SurfaceTransformFlagBitsKHR::eRotate270 : return "Rotate270"; - case SurfaceTransformFlagBitsKHR::eHorizontalMirror : return "HorizontalMirror"; - case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 : return "HorizontalMirrorRotate90"; - case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 : return "HorizontalMirrorRotate180"; - case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 : return "HorizontalMirrorRotate270"; - case SurfaceTransformFlagBitsKHR::eInherit : return "Inherit"; - default: return "invalid"; + case SurfaceTransformFlagBitsKHR::eIdentity: return "Identity"; + case SurfaceTransformFlagBitsKHR::eRotate90: return "Rotate90"; + case SurfaceTransformFlagBitsKHR::eRotate180: return "Rotate180"; + case SurfaceTransformFlagBitsKHR::eRotate270: return "Rotate270"; + case SurfaceTransformFlagBitsKHR::eHorizontalMirror: return "HorizontalMirror"; + case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90: return "HorizontalMirrorRotate90"; + case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180: return "HorizontalMirrorRotate180"; + case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270: return "HorizontalMirrorRotate270"; + case SurfaceTransformFlagBitsKHR::eInherit: return "Inherit"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class SwapchainCreateFlagBitsKHR + enum class SwapchainCreateFlagBitsKHR : VkSwapchainCreateFlagsKHR { eSplitInstanceBindRegions = VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR, - eProtected = VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR, - eMutableFormat = VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR + eProtected = VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR, + eMutableFormat = VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR }; VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagBitsKHR value ) { switch ( value ) { - case SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions : return "SplitInstanceBindRegions"; - case SwapchainCreateFlagBitsKHR::eProtected : return "Protected"; - case SwapchainCreateFlagBitsKHR::eMutableFormat : return "MutableFormat"; - default: return "invalid"; + case SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions: return "SplitInstanceBindRegions"; + case SwapchainCreateFlagBitsKHR::eProtected: return "Protected"; + case SwapchainCreateFlagBitsKHR::eMutableFormat: return "MutableFormat"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class SystemAllocationScope { - eCommand = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND, - eObject = VK_SYSTEM_ALLOCATION_SCOPE_OBJECT, - eCache = VK_SYSTEM_ALLOCATION_SCOPE_CACHE, - eDevice = VK_SYSTEM_ALLOCATION_SCOPE_DEVICE, + eCommand = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND, + eObject = VK_SYSTEM_ALLOCATION_SCOPE_OBJECT, + eCache = VK_SYSTEM_ALLOCATION_SCOPE_CACHE, + eDevice = VK_SYSTEM_ALLOCATION_SCOPE_DEVICE, eInstance = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE }; @@ -8245,12 +11914,12 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case SystemAllocationScope::eCommand : return "Command"; - case SystemAllocationScope::eObject : return "Object"; - case SystemAllocationScope::eCache : return "Cache"; - case SystemAllocationScope::eDevice : return "Device"; - case SystemAllocationScope::eInstance : return "Instance"; - default: return "invalid"; + case SystemAllocationScope::eCommand: return "Command"; + case SystemAllocationScope::eObject: return "Object"; + case SystemAllocationScope::eCache: return "Cache"; + case SystemAllocationScope::eDevice: return "Device"; + case SystemAllocationScope::eInstance: return "Instance"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } @@ -8265,17 +11934,17 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case TessellationDomainOrigin::eUpperLeft : return "UpperLeft"; - case TessellationDomainOrigin::eLowerLeft : return "LowerLeft"; - default: return "invalid"; + case TessellationDomainOrigin::eUpperLeft: return "UpperLeft"; + case TessellationDomainOrigin::eLowerLeft: return "LowerLeft"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class TimeDomainEXT { - eDevice = VK_TIME_DOMAIN_DEVICE_EXT, - eClockMonotonic = VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT, - eClockMonotonicRaw = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT, + eDevice = VK_TIME_DOMAIN_DEVICE_EXT, + eClockMonotonic = VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT, + eClockMonotonicRaw = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT, eQueryPerformanceCounter = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT }; @@ -8283,37 +11952,37 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case TimeDomainEXT::eDevice : return "Device"; - case TimeDomainEXT::eClockMonotonic : return "ClockMonotonic"; - case TimeDomainEXT::eClockMonotonicRaw : return "ClockMonotonicRaw"; - case TimeDomainEXT::eQueryPerformanceCounter : return "QueryPerformanceCounter"; - default: return "invalid"; + case TimeDomainEXT::eDevice: return "Device"; + case TimeDomainEXT::eClockMonotonic: return "ClockMonotonic"; + case TimeDomainEXT::eClockMonotonicRaw: return "ClockMonotonicRaw"; + case TimeDomainEXT::eQueryPerformanceCounter: return "QueryPerformanceCounter"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - enum class ToolPurposeFlagBitsEXT + enum class ToolPurposeFlagBitsEXT : VkToolPurposeFlagsEXT { - eValidation = VK_TOOL_PURPOSE_VALIDATION_BIT_EXT, - eProfiling = VK_TOOL_PURPOSE_PROFILING_BIT_EXT, - eTracing = VK_TOOL_PURPOSE_TRACING_BIT_EXT, + eValidation = VK_TOOL_PURPOSE_VALIDATION_BIT_EXT, + eProfiling = VK_TOOL_PURPOSE_PROFILING_BIT_EXT, + eTracing = VK_TOOL_PURPOSE_TRACING_BIT_EXT, eAdditionalFeatures = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT, - eModifyingFeatures = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT, - eDebugReporting = VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT, - eDebugMarkers = VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT + eModifyingFeatures = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT, + eDebugReporting = VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT, + eDebugMarkers = VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT }; VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagBitsEXT value ) { switch ( value ) { - case ToolPurposeFlagBitsEXT::eValidation : return "Validation"; - case ToolPurposeFlagBitsEXT::eProfiling : return "Profiling"; - case ToolPurposeFlagBitsEXT::eTracing : return "Tracing"; - case ToolPurposeFlagBitsEXT::eAdditionalFeatures : return "AdditionalFeatures"; - case ToolPurposeFlagBitsEXT::eModifyingFeatures : return "ModifyingFeatures"; - case ToolPurposeFlagBitsEXT::eDebugReporting : return "DebugReporting"; - case ToolPurposeFlagBitsEXT::eDebugMarkers : return "DebugMarkers"; - default: return "invalid"; + case ToolPurposeFlagBitsEXT::eValidation: return "Validation"; + case ToolPurposeFlagBitsEXT::eProfiling: return "Profiling"; + case ToolPurposeFlagBitsEXT::eTracing: return "Tracing"; + case ToolPurposeFlagBitsEXT::eAdditionalFeatures: return "AdditionalFeatures"; + case ToolPurposeFlagBitsEXT::eModifyingFeatures: return "ModifyingFeatures"; + case ToolPurposeFlagBitsEXT::eDebugReporting: return "DebugReporting"; + case ToolPurposeFlagBitsEXT::eDebugMarkers: return "DebugMarkers"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } @@ -8326,14 +11995,14 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case ValidationCacheHeaderVersionEXT::eOne : return "One"; - default: return "invalid"; + case ValidationCacheHeaderVersionEXT::eOne: return "One"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class ValidationCheckEXT { - eAll = VK_VALIDATION_CHECK_ALL_EXT, + eAll = VK_VALIDATION_CHECK_ALL_EXT, eShaders = VK_VALIDATION_CHECK_SHADERS_EXT }; @@ -8341,77 +12010,87 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case ValidationCheckEXT::eAll : return "All"; - case ValidationCheckEXT::eShaders : return "Shaders"; - default: return "invalid"; + case ValidationCheckEXT::eAll: return "All"; + case ValidationCheckEXT::eShaders: return "Shaders"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class ValidationFeatureDisableEXT { - eAll = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT, - eShaders = VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT, - eThreadSafety = VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT, - eApiParameters = VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT, + eAll = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT, + eShaders = VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT, + eThreadSafety = VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT, + eApiParameters = VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT, eObjectLifetimes = VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT, - eCoreChecks = VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT, - eUniqueHandles = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT + eCoreChecks = VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT, + eUniqueHandles = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT }; VULKAN_HPP_INLINE std::string to_string( ValidationFeatureDisableEXT value ) { switch ( value ) { - case ValidationFeatureDisableEXT::eAll : return "All"; - case ValidationFeatureDisableEXT::eShaders : return "Shaders"; - case ValidationFeatureDisableEXT::eThreadSafety : return "ThreadSafety"; - case ValidationFeatureDisableEXT::eApiParameters : return "ApiParameters"; - case ValidationFeatureDisableEXT::eObjectLifetimes : return "ObjectLifetimes"; - case ValidationFeatureDisableEXT::eCoreChecks : return "CoreChecks"; - case ValidationFeatureDisableEXT::eUniqueHandles : return "UniqueHandles"; - default: return "invalid"; + case ValidationFeatureDisableEXT::eAll: return "All"; + case ValidationFeatureDisableEXT::eShaders: return "Shaders"; + case ValidationFeatureDisableEXT::eThreadSafety: return "ThreadSafety"; + case ValidationFeatureDisableEXT::eApiParameters: return "ApiParameters"; + case ValidationFeatureDisableEXT::eObjectLifetimes: return "ObjectLifetimes"; + case ValidationFeatureDisableEXT::eCoreChecks: return "CoreChecks"; + case ValidationFeatureDisableEXT::eUniqueHandles: return "UniqueHandles"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class ValidationFeatureEnableEXT { - eGpuAssisted = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT, + eGpuAssisted = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT, eGpuAssistedReserveBindingSlot = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT, - eBestPractices = VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT + eBestPractices = VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT, + eDebugPrintf = VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT, + eSynchronizationValidation = VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT }; VULKAN_HPP_INLINE std::string to_string( ValidationFeatureEnableEXT value ) { switch ( value ) { - case ValidationFeatureEnableEXT::eGpuAssisted : return "GpuAssisted"; - case ValidationFeatureEnableEXT::eGpuAssistedReserveBindingSlot : return "GpuAssistedReserveBindingSlot"; - case ValidationFeatureEnableEXT::eBestPractices : return "BestPractices"; - default: return "invalid"; + case ValidationFeatureEnableEXT::eGpuAssisted: return "GpuAssisted"; + case ValidationFeatureEnableEXT::eGpuAssistedReserveBindingSlot: return "GpuAssistedReserveBindingSlot"; + case ValidationFeatureEnableEXT::eBestPractices: return "BestPractices"; + case ValidationFeatureEnableEXT::eDebugPrintf: return "DebugPrintf"; + case ValidationFeatureEnableEXT::eSynchronizationValidation: return "SynchronizationValidation"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class VendorId { - eVIV = VK_VENDOR_ID_VIV, - eVSI = VK_VENDOR_ID_VSI, - eKazan = VK_VENDOR_ID_KAZAN + eVIV = VK_VENDOR_ID_VIV, + eVSI = VK_VENDOR_ID_VSI, + eKazan = VK_VENDOR_ID_KAZAN, + eCodeplay = VK_VENDOR_ID_CODEPLAY, + eMESA = VK_VENDOR_ID_MESA, + ePocl = VK_VENDOR_ID_POCL }; VULKAN_HPP_INLINE std::string to_string( VendorId value ) { switch ( value ) { - case VendorId::eVIV : return "VIV"; - case VendorId::eVSI : return "VSI"; - case VendorId::eKazan : return "Kazan"; - default: return "invalid"; + case VendorId::eVIV: return "VIV"; + case VendorId::eVSI: return "VSI"; + case VendorId::eKazan: return "Kazan"; + case VendorId::eCodeplay: return "Codeplay"; + case VendorId::eMESA: return "MESA"; + case VendorId::ePocl: return "Pocl"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } enum class VertexInputRate { - eVertex = VK_VERTEX_INPUT_RATE_VERTEX, + eVertex = VK_VERTEX_INPUT_RATE_VERTEX, eInstance = VK_VERTEX_INPUT_RATE_INSTANCE }; @@ -8419,12 +12098,378 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case VertexInputRate::eVertex : return "Vertex"; - case VertexInputRate::eInstance : return "Instance"; - default: return "invalid"; + case VertexInputRate::eVertex: return "Vertex"; + case VertexInputRate::eInstance: return "Instance"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + enum class VideoCapabilitiesFlagBitsKHR : VkVideoCapabilitiesFlagsKHR + { + eProtectedContent = VK_VIDEO_CAPABILITIES_PROTECTED_CONTENT_BIT_KHR, + eSeparateReferenceImages = VK_VIDEO_CAPABILITIES_SEPARATE_REFERENCE_IMAGES_BIT_KHR + }; + + VULKAN_HPP_INLINE std::string to_string( VideoCapabilitiesFlagBitsKHR value ) + { + switch ( value ) + { + case VideoCapabilitiesFlagBitsKHR::eProtectedContent: return "ProtectedContent"; + case VideoCapabilitiesFlagBitsKHR::eSeparateReferenceImages: return "SeparateReferenceImages"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + enum class VideoChromaSubsamplingFlagBitsKHR : VkVideoChromaSubsamplingFlagsKHR + { + eInvalid = VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR, + eMonochrome = VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR, + e420 = VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR, + e422 = VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR, + e444 = VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR + }; + + VULKAN_HPP_INLINE std::string to_string( VideoChromaSubsamplingFlagBitsKHR value ) + { + switch ( value ) + { + case VideoChromaSubsamplingFlagBitsKHR::eInvalid: return "Invalid"; + case VideoChromaSubsamplingFlagBitsKHR::eMonochrome: return "Monochrome"; + case VideoChromaSubsamplingFlagBitsKHR::e420: return "420"; + case VideoChromaSubsamplingFlagBitsKHR::e422: return "422"; + case VideoChromaSubsamplingFlagBitsKHR::e444: return "444"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + enum class VideoCodecOperationFlagBitsKHR : VkVideoCodecOperationFlagsKHR + { + // clang-format off + eInvalid = VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + , eEncodeH264EXT = VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT + , eDecodeH264EXT = VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT + , eDecodeH265EXT = VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + // clang-format on + }; + + VULKAN_HPP_INLINE std::string to_string( VideoCodecOperationFlagBitsKHR value ) + { + switch ( value ) + { + case VideoCodecOperationFlagBitsKHR::eInvalid: return "Invalid"; +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + case VideoCodecOperationFlagBitsKHR::eEncodeH264EXT: return "EncodeH264EXT"; + case VideoCodecOperationFlagBitsKHR::eDecodeH264EXT: return "DecodeH264EXT"; + case VideoCodecOperationFlagBitsKHR::eDecodeH265EXT: return "DecodeH265EXT"; +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + enum class VideoCodingControlFlagBitsKHR : VkVideoCodingControlFlagsKHR + { + eDefault = VK_VIDEO_CODING_CONTROL_DEFAULT_KHR, + eReset = VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR + }; + + VULKAN_HPP_INLINE std::string to_string( VideoCodingControlFlagBitsKHR value ) + { + switch ( value ) + { + case VideoCodingControlFlagBitsKHR::eDefault: return "Default"; + case VideoCodingControlFlagBitsKHR::eReset: return "Reset"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + enum class VideoCodingQualityPresetFlagBitsKHR : VkVideoCodingQualityPresetFlagsKHR + { + eDefault = VK_VIDEO_CODING_QUALITY_PRESET_DEFAULT_BIT_KHR, + eNormal = VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR, + ePower = VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR, + eQuality = VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR + }; + + VULKAN_HPP_INLINE std::string to_string( VideoCodingQualityPresetFlagBitsKHR value ) + { + switch ( value ) + { + case VideoCodingQualityPresetFlagBitsKHR::eDefault: return "Default"; + case VideoCodingQualityPresetFlagBitsKHR::eNormal: return "Normal"; + case VideoCodingQualityPresetFlagBitsKHR::ePower: return "Power"; + case VideoCodingQualityPresetFlagBitsKHR::eQuality: return "Quality"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + enum class VideoComponentBitDepthFlagBitsKHR : VkVideoComponentBitDepthFlagsKHR + { + eInvalid = VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR, + e8 = VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR, + e10 = VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR, + e12 = VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR + }; + + VULKAN_HPP_INLINE std::string to_string( VideoComponentBitDepthFlagBitsKHR value ) + { + switch ( value ) + { + case VideoComponentBitDepthFlagBitsKHR::eInvalid: return "Invalid"; + case VideoComponentBitDepthFlagBitsKHR::e8: return "8"; + case VideoComponentBitDepthFlagBitsKHR::e10: return "10"; + case VideoComponentBitDepthFlagBitsKHR::e12: return "12"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + enum class VideoDecodeFlagBitsKHR : VkVideoDecodeFlagsKHR + { + eDefault = VK_VIDEO_DECODE_DEFAULT_KHR, + eReserved0 = VK_VIDEO_DECODE_RESERVED_0_BIT_KHR + }; + + VULKAN_HPP_INLINE std::string to_string( VideoDecodeFlagBitsKHR value ) + { + switch ( value ) + { + case VideoDecodeFlagBitsKHR::eDefault: return "Default"; + case VideoDecodeFlagBitsKHR::eReserved0: return "Reserved0"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + enum class VideoDecodeH264FieldLayoutFlagBitsEXT : VkVideoDecodeH264FieldLayoutFlagsEXT + { + eVkVideoDecodeH264ProgressivePicturesOnly = VK_VIDEO_DECODE_H264_PROGRESSIVE_PICTURES_ONLY_EXT, + eVkVideoDecodeH264FieldLayoutLineInterlacedPlane = VK_VIDEO_DECODE_H264_FIELD_LAYOUT_LINE_INTERLACED_PLANE_BIT_EXT, + eVkVideoDecodeH264FieldLayoutSeparateInterlacedPlane = + VK_VIDEO_DECODE_H264_FIELD_LAYOUT_SEPARATE_INTERLACED_PLANE_BIT_EXT + }; + + VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264FieldLayoutFlagBitsEXT value ) + { + switch ( value ) + { + case VideoDecodeH264FieldLayoutFlagBitsEXT::eVkVideoDecodeH264ProgressivePicturesOnly: + return "VkVideoDecodeH264ProgressivePicturesOnly"; + case VideoDecodeH264FieldLayoutFlagBitsEXT::eVkVideoDecodeH264FieldLayoutLineInterlacedPlane: + return "VkVideoDecodeH264FieldLayoutLineInterlacedPlane"; + case VideoDecodeH264FieldLayoutFlagBitsEXT::eVkVideoDecodeH264FieldLayoutSeparateInterlacedPlane: + return "VkVideoDecodeH264FieldLayoutSeparateInterlacedPlane"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + enum class VideoEncodeFlagBitsKHR : VkVideoEncodeFlagsKHR + { + eDefault = VK_VIDEO_ENCODE_DEFAULT_KHR, + eReserved0 = VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR + }; + + VULKAN_HPP_INLINE std::string to_string( VideoEncodeFlagBitsKHR value ) + { + switch ( value ) + { + case VideoEncodeFlagBitsKHR::eDefault: return "Default"; + case VideoEncodeFlagBitsKHR::eReserved0: return "Reserved0"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + enum class VideoEncodeH264CapabilitiesFlagBitsEXT : VkVideoEncodeH264CapabilitiesFlagsEXT + { + eVkVideoEncodeH264CapabilityCabac = VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT, + eVkVideoEncodeH264CapabilityCavlc = VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT, + eVkVideoEncodeH264CapabilityWeightedBiPredImplicit = + VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT, + eVkVideoEncodeH264CapabilityTransform8X8 = VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT, + eVkVideoEncodeH264CapabilityChromaQpOffset = VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT, + eVkVideoEncodeH264CapabilitySecondChromaQpOffset = VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT, + eVkVideoEncodeH264CapabilityDeblockingFilterDisabled = + VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT, + eVkVideoEncodeH264CapabilityDeblockingFilterEnabled = + VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT, + eVkVideoEncodeH264CapabilityDeblockingFilterPartial = + VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT, + eVkVideoEncodeH264CapabilityMultipleSlicePerFrame = + VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT, + eVkVideoEncodeH264CapabilityEvenlyDistributedSliceSize = + VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT + }; + + VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CapabilitiesFlagBitsEXT value ) + { + switch ( value ) + { + case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityCabac: + return "VkVideoEncodeH264CapabilityCabac"; + case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityCavlc: + return "VkVideoEncodeH264CapabilityCavlc"; + case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityWeightedBiPredImplicit: + return "VkVideoEncodeH264CapabilityWeightedBiPredImplicit"; + case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityTransform8X8: + return "VkVideoEncodeH264CapabilityTransform8X8"; + case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityChromaQpOffset: + return "VkVideoEncodeH264CapabilityChromaQpOffset"; + case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilitySecondChromaQpOffset: + return "VkVideoEncodeH264CapabilitySecondChromaQpOffset"; + case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterDisabled: + return "VkVideoEncodeH264CapabilityDeblockingFilterDisabled"; + case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterEnabled: + return "VkVideoEncodeH264CapabilityDeblockingFilterEnabled"; + case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterPartial: + return "VkVideoEncodeH264CapabilityDeblockingFilterPartial"; + case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityMultipleSlicePerFrame: + return "VkVideoEncodeH264CapabilityMultipleSlicePerFrame"; + case VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityEvenlyDistributedSliceSize: + return "VkVideoEncodeH264CapabilityEvenlyDistributedSliceSize"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + enum class VideoEncodeH264CreateFlagBitsEXT : VkVideoEncodeH264CreateFlagsEXT + { + eVkVideoEncodeH264CreateDefault = VK_VIDEO_ENCODE_H264_CREATE_DEFAULT_EXT, + eVkVideoEncodeH264CreateReserved0 = VK_VIDEO_ENCODE_H264_CREATE_RESERVED_0_BIT_EXT + }; + + VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CreateFlagBitsEXT value ) + { + switch ( value ) + { + case VideoEncodeH264CreateFlagBitsEXT::eVkVideoEncodeH264CreateDefault: return "VkVideoEncodeH264CreateDefault"; + case VideoEncodeH264CreateFlagBitsEXT::eVkVideoEncodeH264CreateReserved0: + return "VkVideoEncodeH264CreateReserved0"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + enum class VideoEncodeH264InputModeFlagBitsEXT : VkVideoEncodeH264InputModeFlagsEXT + { + eVkVideoEncodeH264InputModeFrame = VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT, + eVkVideoEncodeH264InputModeSlice = VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT, + eVkVideoEncodeH264InputModeNonVcl = VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT + }; + + VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264InputModeFlagBitsEXT value ) + { + switch ( value ) + { + case VideoEncodeH264InputModeFlagBitsEXT::eVkVideoEncodeH264InputModeFrame: + return "VkVideoEncodeH264InputModeFrame"; + case VideoEncodeH264InputModeFlagBitsEXT::eVkVideoEncodeH264InputModeSlice: + return "VkVideoEncodeH264InputModeSlice"; + case VideoEncodeH264InputModeFlagBitsEXT::eVkVideoEncodeH264InputModeNonVcl: + return "VkVideoEncodeH264InputModeNonVcl"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + enum class VideoEncodeH264OutputModeFlagBitsEXT : VkVideoEncodeH264OutputModeFlagsEXT + { + eVkVideoEncodeH264OutputModeFrame = VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT, + eVkVideoEncodeH264OutputModeSlice = VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT, + eVkVideoEncodeH264OutputModeNonVcl = VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT + }; + + VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264OutputModeFlagBitsEXT value ) + { + switch ( value ) + { + case VideoEncodeH264OutputModeFlagBitsEXT::eVkVideoEncodeH264OutputModeFrame: + return "VkVideoEncodeH264OutputModeFrame"; + case VideoEncodeH264OutputModeFlagBitsEXT::eVkVideoEncodeH264OutputModeSlice: + return "VkVideoEncodeH264OutputModeSlice"; + case VideoEncodeH264OutputModeFlagBitsEXT::eVkVideoEncodeH264OutputModeNonVcl: + return "VkVideoEncodeH264OutputModeNonVcl"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + enum class VideoEncodeRateControlFlagBitsKHR : VkVideoEncodeRateControlFlagsKHR + { + eDefault = VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR, + eReset = VK_VIDEO_ENCODE_RATE_CONTROL_RESET_BIT_KHR + }; + + VULKAN_HPP_INLINE std::string to_string( VideoEncodeRateControlFlagBitsKHR value ) + { + switch ( value ) + { + case VideoEncodeRateControlFlagBitsKHR::eDefault: return "Default"; + case VideoEncodeRateControlFlagBitsKHR::eReset: return "Reset"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + enum class VideoEncodeRateControlModeFlagBitsKHR : VkVideoEncodeRateControlModeFlagsKHR + { + eNone = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR, + eCbr = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR, + eVbr = VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR + }; + + VULKAN_HPP_INLINE std::string to_string( VideoEncodeRateControlModeFlagBitsKHR value ) + { + switch ( value ) + { + case VideoEncodeRateControlModeFlagBitsKHR::eNone: return "None"; + case VideoEncodeRateControlModeFlagBitsKHR::eCbr: return "Cbr"; + case VideoEncodeRateControlModeFlagBitsKHR::eVbr: return "Vbr"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + enum class VideoSessionCreateFlagBitsKHR : VkVideoSessionCreateFlagsKHR + { + eDefault = VK_VIDEO_SESSION_CREATE_DEFAULT_KHR, + eProtectedContent = VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR + }; + + VULKAN_HPP_INLINE std::string to_string( VideoSessionCreateFlagBitsKHR value ) + { + switch ( value ) + { + case VideoSessionCreateFlagBitsKHR::eDefault: return "Default"; + case VideoSessionCreateFlagBitsKHR::eProtectedContent: return "ProtectedContent"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + enum class ViewportCoordinateSwizzleNV { ePositiveX = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV, @@ -8441,44 +12486,146 @@ namespace VULKAN_HPP_NAMESPACE { switch ( value ) { - case ViewportCoordinateSwizzleNV::ePositiveX : return "PositiveX"; - case ViewportCoordinateSwizzleNV::eNegativeX : return "NegativeX"; - case ViewportCoordinateSwizzleNV::ePositiveY : return "PositiveY"; - case ViewportCoordinateSwizzleNV::eNegativeY : return "NegativeY"; - case ViewportCoordinateSwizzleNV::ePositiveZ : return "PositiveZ"; - case ViewportCoordinateSwizzleNV::eNegativeZ : return "NegativeZ"; - case ViewportCoordinateSwizzleNV::ePositiveW : return "PositiveW"; - case ViewportCoordinateSwizzleNV::eNegativeW : return "NegativeW"; - default: return "invalid"; + case ViewportCoordinateSwizzleNV::ePositiveX: return "PositiveX"; + case ViewportCoordinateSwizzleNV::eNegativeX: return "NegativeX"; + case ViewportCoordinateSwizzleNV::ePositiveY: return "PositiveY"; + case ViewportCoordinateSwizzleNV::eNegativeY: return "NegativeY"; + case ViewportCoordinateSwizzleNV::ePositiveZ: return "PositiveZ"; + case ViewportCoordinateSwizzleNV::eNegativeZ: return "NegativeZ"; + case ViewportCoordinateSwizzleNV::ePositiveW: return "PositiveW"; + case ViewportCoordinateSwizzleNV::eNegativeW: return "NegativeW"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; } } - template - struct cpp_type + template + struct IndexTypeValue + {}; + + template <> + struct IndexTypeValue { + static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint16; }; - using AccessFlags = Flags; + template <> + struct CppType + { + using Type = uint16_t; + }; - template <> struct FlagTraits + template <> + struct IndexTypeValue { - enum + static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint32; + }; + + template <> + struct CppType + { + using Type = uint32_t; + }; + + template <> + struct IndexTypeValue + { + static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint8EXT; + }; + + template <> + struct CppType + { + using Type = uint8_t; + }; + + using AccelerationStructureCreateFlagsKHR = Flags; + + template <> + struct FlagTraits + { + enum : VkFlags { - allFlags = VkFlags(AccessFlagBits::eIndirectCommandRead) | VkFlags(AccessFlagBits::eIndexRead) | VkFlags(AccessFlagBits::eVertexAttributeRead) | VkFlags(AccessFlagBits::eUniformRead) | VkFlags(AccessFlagBits::eInputAttachmentRead) | VkFlags(AccessFlagBits::eShaderRead) | VkFlags(AccessFlagBits::eShaderWrite) | VkFlags(AccessFlagBits::eColorAttachmentRead) | VkFlags(AccessFlagBits::eColorAttachmentWrite) | VkFlags(AccessFlagBits::eDepthStencilAttachmentRead) | VkFlags(AccessFlagBits::eDepthStencilAttachmentWrite) | VkFlags(AccessFlagBits::eTransferRead) | VkFlags(AccessFlagBits::eTransferWrite) | VkFlags(AccessFlagBits::eHostRead) | VkFlags(AccessFlagBits::eHostWrite) | VkFlags(AccessFlagBits::eMemoryRead) | VkFlags(AccessFlagBits::eMemoryWrite) | VkFlags(AccessFlagBits::eTransformFeedbackWriteEXT) | VkFlags(AccessFlagBits::eTransformFeedbackCounterReadEXT) | VkFlags(AccessFlagBits::eTransformFeedbackCounterWriteEXT) | VkFlags(AccessFlagBits::eConditionalRenderingReadEXT) | VkFlags(AccessFlagBits::eCommandProcessReadNVX) | VkFlags(AccessFlagBits::eCommandProcessWriteNVX) | VkFlags(AccessFlagBits::eColorAttachmentReadNoncoherentEXT) | VkFlags(AccessFlagBits::eShadingRateImageReadNV) | VkFlags(AccessFlagBits::eAccelerationStructureReadNV) | VkFlags(AccessFlagBits::eAccelerationStructureWriteNV) | VkFlags(AccessFlagBits::eFragmentDensityMapReadEXT) + allFlags = VkFlags( AccelerationStructureCreateFlagBitsKHR::eDeviceAddressCaptureReplay ) + }; + }; + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator|( + AccelerationStructureCreateFlagBitsKHR bit0, AccelerationStructureCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + { + return AccelerationStructureCreateFlagsKHR( bit0 ) | bit1; + } + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator&( + AccelerationStructureCreateFlagBitsKHR bit0, AccelerationStructureCreateFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT + { + return AccelerationStructureCreateFlagsKHR( bit0 ) & bit1; + } + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator^( + AccelerationStructureCreateFlagBitsKHR bit0, AccelerationStructureCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + { + return AccelerationStructureCreateFlagsKHR( bit0 ) ^ bit1; + } + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR + operator~( AccelerationStructureCreateFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT + { + return ~( AccelerationStructureCreateFlagsKHR( bits ) ); + } + + VULKAN_HPP_INLINE std::string to_string( AccelerationStructureCreateFlagsKHR value ) + { + if ( !value ) + return "{}"; + std::string result; + + if ( value & AccelerationStructureCreateFlagBitsKHR::eDeviceAddressCaptureReplay ) + result += "DeviceAddressCaptureReplay | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + + using AccessFlags = Flags; + + template <> + struct FlagTraits + { + enum : VkFlags + { + allFlags = + VkFlags( AccessFlagBits::eIndirectCommandRead ) | VkFlags( AccessFlagBits::eIndexRead ) | + VkFlags( AccessFlagBits::eVertexAttributeRead ) | VkFlags( AccessFlagBits::eUniformRead ) | + VkFlags( AccessFlagBits::eInputAttachmentRead ) | VkFlags( AccessFlagBits::eShaderRead ) | + VkFlags( AccessFlagBits::eShaderWrite ) | VkFlags( AccessFlagBits::eColorAttachmentRead ) | + VkFlags( AccessFlagBits::eColorAttachmentWrite ) | VkFlags( AccessFlagBits::eDepthStencilAttachmentRead ) | + VkFlags( AccessFlagBits::eDepthStencilAttachmentWrite ) | VkFlags( AccessFlagBits::eTransferRead ) | + VkFlags( AccessFlagBits::eTransferWrite ) | VkFlags( AccessFlagBits::eHostRead ) | + VkFlags( AccessFlagBits::eHostWrite ) | VkFlags( AccessFlagBits::eMemoryRead ) | + VkFlags( AccessFlagBits::eMemoryWrite ) | VkFlags( AccessFlagBits::eTransformFeedbackWriteEXT ) | + VkFlags( AccessFlagBits::eTransformFeedbackCounterReadEXT ) | + VkFlags( AccessFlagBits::eTransformFeedbackCounterWriteEXT ) | + VkFlags( AccessFlagBits::eConditionalRenderingReadEXT ) | + VkFlags( AccessFlagBits::eColorAttachmentReadNoncoherentEXT ) | + VkFlags( AccessFlagBits::eAccelerationStructureReadKHR ) | + VkFlags( AccessFlagBits::eAccelerationStructureWriteKHR ) | VkFlags( AccessFlagBits::eShadingRateImageReadNV ) | + VkFlags( AccessFlagBits::eFragmentDensityMapReadEXT ) | VkFlags( AccessFlagBits::eCommandPreprocessReadNV ) | + VkFlags( AccessFlagBits::eCommandPreprocessWriteNV ) | VkFlags( AccessFlagBits::eNoneKHR ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator|( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator|( AccessFlagBits bit0, + AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return AccessFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator&( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator&(AccessFlagBits bit0, + AccessFlagBits bit1)VULKAN_HPP_NOEXCEPT { return AccessFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator^( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator^( AccessFlagBits bit0, + AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return AccessFlags( bit0 ) ^ bit1; } @@ -8488,126 +12635,316 @@ namespace VULKAN_HPP_NAMESPACE return ~( AccessFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( AccessFlags value ) + VULKAN_HPP_INLINE std::string to_string( AccessFlags value ) + { + if ( !value ) + return "{}"; + std::string result; + + if ( value & AccessFlagBits::eIndirectCommandRead ) + result += "IndirectCommandRead | "; + if ( value & AccessFlagBits::eIndexRead ) + result += "IndexRead | "; + if ( value & AccessFlagBits::eVertexAttributeRead ) + result += "VertexAttributeRead | "; + if ( value & AccessFlagBits::eUniformRead ) + result += "UniformRead | "; + if ( value & AccessFlagBits::eInputAttachmentRead ) + result += "InputAttachmentRead | "; + if ( value & AccessFlagBits::eShaderRead ) + result += "ShaderRead | "; + if ( value & AccessFlagBits::eShaderWrite ) + result += "ShaderWrite | "; + if ( value & AccessFlagBits::eColorAttachmentRead ) + result += "ColorAttachmentRead | "; + if ( value & AccessFlagBits::eColorAttachmentWrite ) + result += "ColorAttachmentWrite | "; + if ( value & AccessFlagBits::eDepthStencilAttachmentRead ) + result += "DepthStencilAttachmentRead | "; + if ( value & AccessFlagBits::eDepthStencilAttachmentWrite ) + result += "DepthStencilAttachmentWrite | "; + if ( value & AccessFlagBits::eTransferRead ) + result += "TransferRead | "; + if ( value & AccessFlagBits::eTransferWrite ) + result += "TransferWrite | "; + if ( value & AccessFlagBits::eHostRead ) + result += "HostRead | "; + if ( value & AccessFlagBits::eHostWrite ) + result += "HostWrite | "; + if ( value & AccessFlagBits::eMemoryRead ) + result += "MemoryRead | "; + if ( value & AccessFlagBits::eMemoryWrite ) + result += "MemoryWrite | "; + if ( value & AccessFlagBits::eTransformFeedbackWriteEXT ) + result += "TransformFeedbackWriteEXT | "; + if ( value & AccessFlagBits::eTransformFeedbackCounterReadEXT ) + result += "TransformFeedbackCounterReadEXT | "; + if ( value & AccessFlagBits::eTransformFeedbackCounterWriteEXT ) + result += "TransformFeedbackCounterWriteEXT | "; + if ( value & AccessFlagBits::eConditionalRenderingReadEXT ) + result += "ConditionalRenderingReadEXT | "; + if ( value & AccessFlagBits::eColorAttachmentReadNoncoherentEXT ) + result += "ColorAttachmentReadNoncoherentEXT | "; + if ( value & AccessFlagBits::eAccelerationStructureReadKHR ) + result += "AccelerationStructureReadKHR | "; + if ( value & AccessFlagBits::eAccelerationStructureWriteKHR ) + result += "AccelerationStructureWriteKHR | "; + if ( value & AccessFlagBits::eShadingRateImageReadNV ) + result += "ShadingRateImageReadNV | "; + if ( value & AccessFlagBits::eFragmentDensityMapReadEXT ) + result += "FragmentDensityMapReadEXT | "; + if ( value & AccessFlagBits::eCommandPreprocessReadNV ) + result += "CommandPreprocessReadNV | "; + if ( value & AccessFlagBits::eCommandPreprocessWriteNV ) + result += "CommandPreprocessWriteNV | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + + using AccessFlags2KHR = Flags; + + template <> + struct FlagTraits + { + enum : VkFlags64 + { + allFlags = + VkFlags64( AccessFlagBits2KHR::eNone ) | VkFlags64( AccessFlagBits2KHR::eIndirectCommandRead ) | + VkFlags64( AccessFlagBits2KHR::eIndexRead ) | VkFlags64( AccessFlagBits2KHR::eVertexAttributeRead ) | + VkFlags64( AccessFlagBits2KHR::eUniformRead ) | VkFlags64( AccessFlagBits2KHR::eInputAttachmentRead ) | + VkFlags64( AccessFlagBits2KHR::eShaderRead ) | VkFlags64( AccessFlagBits2KHR::eShaderWrite ) | + VkFlags64( AccessFlagBits2KHR::eColorAttachmentRead ) | VkFlags64( AccessFlagBits2KHR::eColorAttachmentWrite ) | + VkFlags64( AccessFlagBits2KHR::eDepthStencilAttachmentRead ) | + VkFlags64( AccessFlagBits2KHR::eDepthStencilAttachmentWrite ) | VkFlags64( AccessFlagBits2KHR::eTransferRead ) | + VkFlags64( AccessFlagBits2KHR::eTransferWrite ) | VkFlags64( AccessFlagBits2KHR::eHostRead ) | + VkFlags64( AccessFlagBits2KHR::eHostWrite ) | VkFlags64( AccessFlagBits2KHR::eMemoryRead ) | + VkFlags64( AccessFlagBits2KHR::eMemoryWrite ) | VkFlags64( AccessFlagBits2KHR::eShaderSampledRead ) | + VkFlags64( AccessFlagBits2KHR::eShaderStorageRead ) | VkFlags64( AccessFlagBits2KHR::eShaderStorageWrite ) +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + | VkFlags64( AccessFlagBits2KHR::eVideoDecodeRead ) | VkFlags64( AccessFlagBits2KHR::eVideoDecodeWrite ) | + VkFlags64( AccessFlagBits2KHR::eVideoEncodeRead ) | VkFlags64( AccessFlagBits2KHR::eVideoEncodeWrite ) +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + | VkFlags64( AccessFlagBits2KHR::eTransformFeedbackWriteExt ) | + VkFlags64( AccessFlagBits2KHR::eTransformFeedbackCounterReadExt ) | + VkFlags64( AccessFlagBits2KHR::eTransformFeedbackCounterWriteExt ) | + VkFlags64( AccessFlagBits2KHR::eConditionalRenderingReadExt ) | + VkFlags64( AccessFlagBits2KHR::eCommandPreprocessReadNv ) | + VkFlags64( AccessFlagBits2KHR::eCommandPreprocessWriteNv ) | + VkFlags64( AccessFlagBits2KHR::eFragmentShadingRateAttachmentRead ) | + VkFlags64( AccessFlagBits2KHR::eAccelerationStructureRead ) | + VkFlags64( AccessFlagBits2KHR::eAccelerationStructureWrite ) | + VkFlags64( AccessFlagBits2KHR::eFragmentDensityMapReadExt ) | + VkFlags64( AccessFlagBits2KHR::eColorAttachmentReadNoncoherentExt ) + }; + }; + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator|( AccessFlagBits2KHR bit0, + AccessFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT + { + return AccessFlags2KHR( bit0 ) | bit1; + } + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator&(AccessFlagBits2KHR bit0, + AccessFlagBits2KHR bit1)VULKAN_HPP_NOEXCEPT + { + return AccessFlags2KHR( bit0 ) & bit1; + } + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator^( AccessFlagBits2KHR bit0, + AccessFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT + { + return AccessFlags2KHR( bit0 ) ^ bit1; + } + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags2KHR operator~( AccessFlagBits2KHR bits ) VULKAN_HPP_NOEXCEPT { - if ( !value ) return "{}"; + return ~( AccessFlags2KHR( bits ) ); + } + + VULKAN_HPP_INLINE std::string to_string( AccessFlags2KHR value ) + { + if ( !value ) + return "{}"; std::string result; - if ( value & AccessFlagBits::eIndirectCommandRead ) result += "IndirectCommandRead | "; - if ( value & AccessFlagBits::eIndexRead ) result += "IndexRead | "; - if ( value & AccessFlagBits::eVertexAttributeRead ) result += "VertexAttributeRead | "; - if ( value & AccessFlagBits::eUniformRead ) result += "UniformRead | "; - if ( value & AccessFlagBits::eInputAttachmentRead ) result += "InputAttachmentRead | "; - if ( value & AccessFlagBits::eShaderRead ) result += "ShaderRead | "; - if ( value & AccessFlagBits::eShaderWrite ) result += "ShaderWrite | "; - if ( value & AccessFlagBits::eColorAttachmentRead ) result += "ColorAttachmentRead | "; - if ( value & AccessFlagBits::eColorAttachmentWrite ) result += "ColorAttachmentWrite | "; - if ( value & AccessFlagBits::eDepthStencilAttachmentRead ) result += "DepthStencilAttachmentRead | "; - if ( value & AccessFlagBits::eDepthStencilAttachmentWrite ) result += "DepthStencilAttachmentWrite | "; - if ( value & AccessFlagBits::eTransferRead ) result += "TransferRead | "; - if ( value & AccessFlagBits::eTransferWrite ) result += "TransferWrite | "; - if ( value & AccessFlagBits::eHostRead ) result += "HostRead | "; - if ( value & AccessFlagBits::eHostWrite ) result += "HostWrite | "; - if ( value & AccessFlagBits::eMemoryRead ) result += "MemoryRead | "; - if ( value & AccessFlagBits::eMemoryWrite ) result += "MemoryWrite | "; - if ( value & AccessFlagBits::eTransformFeedbackWriteEXT ) result += "TransformFeedbackWriteEXT | "; - if ( value & AccessFlagBits::eTransformFeedbackCounterReadEXT ) result += "TransformFeedbackCounterReadEXT | "; - if ( value & AccessFlagBits::eTransformFeedbackCounterWriteEXT ) result += "TransformFeedbackCounterWriteEXT | "; - if ( value & AccessFlagBits::eConditionalRenderingReadEXT ) result += "ConditionalRenderingReadEXT | "; - if ( value & AccessFlagBits::eCommandProcessReadNVX ) result += "CommandProcessReadNVX | "; - if ( value & AccessFlagBits::eCommandProcessWriteNVX ) result += "CommandProcessWriteNVX | "; - if ( value & AccessFlagBits::eColorAttachmentReadNoncoherentEXT ) result += "ColorAttachmentReadNoncoherentEXT | "; - if ( value & AccessFlagBits::eShadingRateImageReadNV ) result += "ShadingRateImageReadNV | "; - if ( value & AccessFlagBits::eAccelerationStructureReadNV ) result += "AccelerationStructureReadNV | "; - if ( value & AccessFlagBits::eAccelerationStructureWriteNV ) result += "AccelerationStructureWriteNV | "; - if ( value & AccessFlagBits::eFragmentDensityMapReadEXT ) result += "FragmentDensityMapReadEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - using AcquireProfilingLockFlagsKHR = Flags; - - VULKAN_HPP_INLINE std::string to_string( AcquireProfilingLockFlagsKHR ) + if ( value & AccessFlagBits2KHR::eIndirectCommandRead ) + result += "IndirectCommandRead | "; + if ( value & AccessFlagBits2KHR::eIndexRead ) + result += "IndexRead | "; + if ( value & AccessFlagBits2KHR::eVertexAttributeRead ) + result += "VertexAttributeRead | "; + if ( value & AccessFlagBits2KHR::eUniformRead ) + result += "UniformRead | "; + if ( value & AccessFlagBits2KHR::eInputAttachmentRead ) + result += "InputAttachmentRead | "; + if ( value & AccessFlagBits2KHR::eShaderRead ) + result += "ShaderRead | "; + if ( value & AccessFlagBits2KHR::eShaderWrite ) + result += "ShaderWrite | "; + if ( value & AccessFlagBits2KHR::eColorAttachmentRead ) + result += "ColorAttachmentRead | "; + if ( value & AccessFlagBits2KHR::eColorAttachmentWrite ) + result += "ColorAttachmentWrite | "; + if ( value & AccessFlagBits2KHR::eDepthStencilAttachmentRead ) + result += "DepthStencilAttachmentRead | "; + if ( value & AccessFlagBits2KHR::eDepthStencilAttachmentWrite ) + result += "DepthStencilAttachmentWrite | "; + if ( value & AccessFlagBits2KHR::eTransferRead ) + result += "TransferRead | "; + if ( value & AccessFlagBits2KHR::eTransferWrite ) + result += "TransferWrite | "; + if ( value & AccessFlagBits2KHR::eHostRead ) + result += "HostRead | "; + if ( value & AccessFlagBits2KHR::eHostWrite ) + result += "HostWrite | "; + if ( value & AccessFlagBits2KHR::eMemoryRead ) + result += "MemoryRead | "; + if ( value & AccessFlagBits2KHR::eMemoryWrite ) + result += "MemoryWrite | "; + if ( value & AccessFlagBits2KHR::eShaderSampledRead ) + result += "ShaderSampledRead | "; + if ( value & AccessFlagBits2KHR::eShaderStorageRead ) + result += "ShaderStorageRead | "; + if ( value & AccessFlagBits2KHR::eShaderStorageWrite ) + result += "ShaderStorageWrite | "; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & AccessFlagBits2KHR::eVideoDecodeRead ) + result += "VideoDecodeRead | "; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & AccessFlagBits2KHR::eVideoDecodeWrite ) + result += "VideoDecodeWrite | "; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & AccessFlagBits2KHR::eVideoEncodeRead ) + result += "VideoEncodeRead | "; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & AccessFlagBits2KHR::eVideoEncodeWrite ) + result += "VideoEncodeWrite | "; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + if ( value & AccessFlagBits2KHR::eTransformFeedbackWriteExt ) + result += "TransformFeedbackWriteExt | "; + if ( value & AccessFlagBits2KHR::eTransformFeedbackCounterReadExt ) + result += "TransformFeedbackCounterReadExt | "; + if ( value & AccessFlagBits2KHR::eTransformFeedbackCounterWriteExt ) + result += "TransformFeedbackCounterWriteExt | "; + if ( value & AccessFlagBits2KHR::eConditionalRenderingReadExt ) + result += "ConditionalRenderingReadExt | "; + if ( value & AccessFlagBits2KHR::eCommandPreprocessReadNv ) + result += "CommandPreprocessReadNv | "; + if ( value & AccessFlagBits2KHR::eCommandPreprocessWriteNv ) + result += "CommandPreprocessWriteNv | "; + if ( value & AccessFlagBits2KHR::eFragmentShadingRateAttachmentRead ) + result += "FragmentShadingRateAttachmentRead | "; + if ( value & AccessFlagBits2KHR::eAccelerationStructureRead ) + result += "AccelerationStructureRead | "; + if ( value & AccessFlagBits2KHR::eAccelerationStructureWrite ) + result += "AccelerationStructureWrite | "; + if ( value & AccessFlagBits2KHR::eFragmentDensityMapReadExt ) + result += "FragmentDensityMapReadExt | "; + if ( value & AccessFlagBits2KHR::eColorAttachmentReadNoncoherentExt ) + result += "ColorAttachmentReadNoncoherentExt | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + + using AcquireProfilingLockFlagsKHR = Flags; + + VULKAN_HPP_INLINE std::string to_string( AcquireProfilingLockFlagsKHR ) { return "{}"; } -#ifdef VK_USE_PLATFORM_ANDROID_KHR - enum class AndroidSurfaceCreateFlagBitsKHR - {}; +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + enum class AndroidSurfaceCreateFlagBitsKHR : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagBitsKHR ) { return "(void)"; } - using AndroidSurfaceCreateFlagsKHR = Flags; + using AndroidSurfaceCreateFlagsKHR = Flags; - VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagsKHR ) + VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagsKHR ) { return "{}"; } #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - using AttachmentDescriptionFlags = Flags; + using AttachmentDescriptionFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(AttachmentDescriptionFlagBits::eMayAlias) + allFlags = VkFlags( AttachmentDescriptionFlagBits::eMayAlias ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator|( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags + operator|( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return AttachmentDescriptionFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator&( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags + operator&(AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1)VULKAN_HPP_NOEXCEPT { return AttachmentDescriptionFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator^( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags + operator^( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return AttachmentDescriptionFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator~( AttachmentDescriptionFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator~( AttachmentDescriptionFlagBits bits ) + VULKAN_HPP_NOEXCEPT { return ~( AttachmentDescriptionFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlags value ) + VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & AttachmentDescriptionFlagBits::eMayAlias ) result += "MayAlias | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & AttachmentDescriptionFlagBits::eMayAlias ) + result += "MayAlias | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using BufferCreateFlags = Flags; + using BufferCreateFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(BufferCreateFlagBits::eSparseBinding) | VkFlags(BufferCreateFlagBits::eSparseResidency) | VkFlags(BufferCreateFlagBits::eSparseAliased) | VkFlags(BufferCreateFlagBits::eProtected) | VkFlags(BufferCreateFlagBits::eDeviceAddressCaptureReplay) + allFlags = VkFlags( BufferCreateFlagBits::eSparseBinding ) | VkFlags( BufferCreateFlagBits::eSparseResidency ) | + VkFlags( BufferCreateFlagBits::eSparseAliased ) | VkFlags( BufferCreateFlagBits::eProtected ) | + VkFlags( BufferCreateFlagBits::eDeviceAddressCaptureReplay ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator|( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator|( BufferCreateFlagBits bit0, + BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return BufferCreateFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator&( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator&(BufferCreateFlagBits bit0, + BufferCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT { return BufferCreateFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator^( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator^( BufferCreateFlagBits bit0, + BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return BufferCreateFlags( bit0 ) ^ bit1; } @@ -8617,40 +12954,65 @@ namespace VULKAN_HPP_NAMESPACE return ~( BufferCreateFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( BufferCreateFlags value ) + VULKAN_HPP_INLINE std::string to_string( BufferCreateFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & BufferCreateFlagBits::eSparseBinding ) result += "SparseBinding | "; - if ( value & BufferCreateFlagBits::eSparseResidency ) result += "SparseResidency | "; - if ( value & BufferCreateFlagBits::eSparseAliased ) result += "SparseAliased | "; - if ( value & BufferCreateFlagBits::eProtected ) result += "Protected | "; - if ( value & BufferCreateFlagBits::eDeviceAddressCaptureReplay ) result += "DeviceAddressCaptureReplay | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & BufferCreateFlagBits::eSparseBinding ) + result += "SparseBinding | "; + if ( value & BufferCreateFlagBits::eSparseResidency ) + result += "SparseResidency | "; + if ( value & BufferCreateFlagBits::eSparseAliased ) + result += "SparseAliased | "; + if ( value & BufferCreateFlagBits::eProtected ) + result += "Protected | "; + if ( value & BufferCreateFlagBits::eDeviceAddressCaptureReplay ) + result += "DeviceAddressCaptureReplay | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using BufferUsageFlags = Flags; + using BufferUsageFlags = Flags; - template <> struct FlagTraits - { - enum - { - allFlags = VkFlags(BufferUsageFlagBits::eTransferSrc) | VkFlags(BufferUsageFlagBits::eTransferDst) | VkFlags(BufferUsageFlagBits::eUniformTexelBuffer) | VkFlags(BufferUsageFlagBits::eStorageTexelBuffer) | VkFlags(BufferUsageFlagBits::eUniformBuffer) | VkFlags(BufferUsageFlagBits::eStorageBuffer) | VkFlags(BufferUsageFlagBits::eIndexBuffer) | VkFlags(BufferUsageFlagBits::eVertexBuffer) | VkFlags(BufferUsageFlagBits::eIndirectBuffer) | VkFlags(BufferUsageFlagBits::eShaderDeviceAddress) | VkFlags(BufferUsageFlagBits::eTransformFeedbackBufferEXT) | VkFlags(BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT) | VkFlags(BufferUsageFlagBits::eConditionalRenderingEXT) | VkFlags(BufferUsageFlagBits::eRayTracingNV) + template <> + struct FlagTraits + { + enum : VkFlags + { + allFlags = + VkFlags( BufferUsageFlagBits::eTransferSrc ) | VkFlags( BufferUsageFlagBits::eTransferDst ) | + VkFlags( BufferUsageFlagBits::eUniformTexelBuffer ) | VkFlags( BufferUsageFlagBits::eStorageTexelBuffer ) | + VkFlags( BufferUsageFlagBits::eUniformBuffer ) | VkFlags( BufferUsageFlagBits::eStorageBuffer ) | + VkFlags( BufferUsageFlagBits::eIndexBuffer ) | VkFlags( BufferUsageFlagBits::eVertexBuffer ) | + VkFlags( BufferUsageFlagBits::eIndirectBuffer ) | VkFlags( BufferUsageFlagBits::eShaderDeviceAddress ) +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + | VkFlags( BufferUsageFlagBits::eVideoDecodeSrcKHR ) | VkFlags( BufferUsageFlagBits::eVideoDecodeDstKHR ) | + VkFlags( BufferUsageFlagBits::eVideoEncodeDstKHR ) | VkFlags( BufferUsageFlagBits::eVideoEncodeSrcKHR ) +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + | VkFlags( BufferUsageFlagBits::eTransformFeedbackBufferEXT ) | + VkFlags( BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT ) | + VkFlags( BufferUsageFlagBits::eConditionalRenderingEXT ) | + VkFlags( BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR ) | + VkFlags( BufferUsageFlagBits::eAccelerationStructureStorageKHR ) | + VkFlags( BufferUsageFlagBits::eShaderBindingTableKHR ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator|( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator|( BufferUsageFlagBits bit0, + BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return BufferUsageFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator&( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator&(BufferUsageFlagBits bit0, + BufferUsageFlagBits bit1)VULKAN_HPP_NOEXCEPT { return BufferUsageFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator^( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator^( BufferUsageFlagBits bit0, + BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return BufferUsageFlags( bit0 ) ^ bit1; } @@ -8660,399 +13022,531 @@ namespace VULKAN_HPP_NAMESPACE return ~( BufferUsageFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( BufferUsageFlags value ) + VULKAN_HPP_INLINE std::string to_string( BufferUsageFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & BufferUsageFlagBits::eTransferSrc ) result += "TransferSrc | "; - if ( value & BufferUsageFlagBits::eTransferDst ) result += "TransferDst | "; - if ( value & BufferUsageFlagBits::eUniformTexelBuffer ) result += "UniformTexelBuffer | "; - if ( value & BufferUsageFlagBits::eStorageTexelBuffer ) result += "StorageTexelBuffer | "; - if ( value & BufferUsageFlagBits::eUniformBuffer ) result += "UniformBuffer | "; - if ( value & BufferUsageFlagBits::eStorageBuffer ) result += "StorageBuffer | "; - if ( value & BufferUsageFlagBits::eIndexBuffer ) result += "IndexBuffer | "; - if ( value & BufferUsageFlagBits::eVertexBuffer ) result += "VertexBuffer | "; - if ( value & BufferUsageFlagBits::eIndirectBuffer ) result += "IndirectBuffer | "; - if ( value & BufferUsageFlagBits::eShaderDeviceAddress ) result += "ShaderDeviceAddress | "; - if ( value & BufferUsageFlagBits::eTransformFeedbackBufferEXT ) result += "TransformFeedbackBufferEXT | "; - if ( value & BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT ) result += "TransformFeedbackCounterBufferEXT | "; - if ( value & BufferUsageFlagBits::eConditionalRenderingEXT ) result += "ConditionalRenderingEXT | "; - if ( value & BufferUsageFlagBits::eRayTracingNV ) result += "RayTracingNV | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & BufferUsageFlagBits::eTransferSrc ) + result += "TransferSrc | "; + if ( value & BufferUsageFlagBits::eTransferDst ) + result += "TransferDst | "; + if ( value & BufferUsageFlagBits::eUniformTexelBuffer ) + result += "UniformTexelBuffer | "; + if ( value & BufferUsageFlagBits::eStorageTexelBuffer ) + result += "StorageTexelBuffer | "; + if ( value & BufferUsageFlagBits::eUniformBuffer ) + result += "UniformBuffer | "; + if ( value & BufferUsageFlagBits::eStorageBuffer ) + result += "StorageBuffer | "; + if ( value & BufferUsageFlagBits::eIndexBuffer ) + result += "IndexBuffer | "; + if ( value & BufferUsageFlagBits::eVertexBuffer ) + result += "VertexBuffer | "; + if ( value & BufferUsageFlagBits::eIndirectBuffer ) + result += "IndirectBuffer | "; + if ( value & BufferUsageFlagBits::eShaderDeviceAddress ) + result += "ShaderDeviceAddress | "; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & BufferUsageFlagBits::eVideoDecodeSrcKHR ) + result += "VideoDecodeSrcKHR | "; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & BufferUsageFlagBits::eVideoDecodeDstKHR ) + result += "VideoDecodeDstKHR | "; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & BufferUsageFlagBits::eVideoEncodeDstKHR ) + result += "VideoEncodeDstKHR | "; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & BufferUsageFlagBits::eVideoEncodeSrcKHR ) + result += "VideoEncodeSrcKHR | "; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + if ( value & BufferUsageFlagBits::eTransformFeedbackBufferEXT ) + result += "TransformFeedbackBufferEXT | "; + if ( value & BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT ) + result += "TransformFeedbackCounterBufferEXT | "; + if ( value & BufferUsageFlagBits::eConditionalRenderingEXT ) + result += "ConditionalRenderingEXT | "; + if ( value & BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR ) + result += "AccelerationStructureBuildInputReadOnlyKHR | "; + if ( value & BufferUsageFlagBits::eAccelerationStructureStorageKHR ) + result += "AccelerationStructureStorageKHR | "; + if ( value & BufferUsageFlagBits::eShaderBindingTableKHR ) + result += "ShaderBindingTableKHR | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + + enum class BufferViewCreateFlagBits : VkFlags + { + }; + + VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlagBits ) + { + return "(void)"; } - using BufferViewCreateFlags = Flags; + using BufferViewCreateFlags = Flags; - VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlags ) + VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlags ) { return "{}"; } - using BuildAccelerationStructureFlagsNV = Flags; + using BuildAccelerationStructureFlagsKHR = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(BuildAccelerationStructureFlagBitsNV::eAllowUpdate) | VkFlags(BuildAccelerationStructureFlagBitsNV::eAllowCompaction) | VkFlags(BuildAccelerationStructureFlagBitsNV::ePreferFastTrace) | VkFlags(BuildAccelerationStructureFlagBitsNV::ePreferFastBuild) | VkFlags(BuildAccelerationStructureFlagBitsNV::eLowMemory) + allFlags = VkFlags( BuildAccelerationStructureFlagBitsKHR::eAllowUpdate ) | + VkFlags( BuildAccelerationStructureFlagBitsKHR::eAllowCompaction ) | + VkFlags( BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace ) | + VkFlags( BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild ) | + VkFlags( BuildAccelerationStructureFlagBitsKHR::eLowMemory ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsNV operator|( BuildAccelerationStructureFlagBitsNV bit0, BuildAccelerationStructureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator|( + BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { - return BuildAccelerationStructureFlagsNV( bit0 ) | bit1; + return BuildAccelerationStructureFlagsKHR( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsNV operator&( BuildAccelerationStructureFlagBitsNV bit0, BuildAccelerationStructureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR + operator&(BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT { - return BuildAccelerationStructureFlagsNV( bit0 ) & bit1; + return BuildAccelerationStructureFlagsKHR( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsNV operator^( BuildAccelerationStructureFlagBitsNV bit0, BuildAccelerationStructureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator^( + BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { - return BuildAccelerationStructureFlagsNV( bit0 ) ^ bit1; + return BuildAccelerationStructureFlagsKHR( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsNV operator~( BuildAccelerationStructureFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR + operator~( BuildAccelerationStructureFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT { - return ~( BuildAccelerationStructureFlagsNV( bits ) ); + return ~( BuildAccelerationStructureFlagsKHR( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagsNV value ) + using BuildAccelerationStructureFlagsNV = BuildAccelerationStructureFlagsKHR; + + VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagsKHR value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & BuildAccelerationStructureFlagBitsNV::eAllowUpdate ) result += "AllowUpdate | "; - if ( value & BuildAccelerationStructureFlagBitsNV::eAllowCompaction ) result += "AllowCompaction | "; - if ( value & BuildAccelerationStructureFlagBitsNV::ePreferFastTrace ) result += "PreferFastTrace | "; - if ( value & BuildAccelerationStructureFlagBitsNV::ePreferFastBuild ) result += "PreferFastBuild | "; - if ( value & BuildAccelerationStructureFlagBitsNV::eLowMemory ) result += "LowMemory | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowUpdate ) + result += "AllowUpdate | "; + if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowCompaction ) + result += "AllowCompaction | "; + if ( value & BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace ) + result += "PreferFastTrace | "; + if ( value & BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild ) + result += "PreferFastBuild | "; + if ( value & BuildAccelerationStructureFlagBitsKHR::eLowMemory ) + result += "LowMemory | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using ColorComponentFlags = Flags; + using ColorComponentFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(ColorComponentFlagBits::eR) | VkFlags(ColorComponentFlagBits::eG) | VkFlags(ColorComponentFlagBits::eB) | VkFlags(ColorComponentFlagBits::eA) + allFlags = VkFlags( ColorComponentFlagBits::eR ) | VkFlags( ColorComponentFlagBits::eG ) | + VkFlags( ColorComponentFlagBits::eB ) | VkFlags( ColorComponentFlagBits::eA ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator|( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags + operator|( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ColorComponentFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator&( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator&(ColorComponentFlagBits bit0, + ColorComponentFlagBits bit1)VULKAN_HPP_NOEXCEPT { return ColorComponentFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator^( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags + operator^( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ColorComponentFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator~( ColorComponentFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator~( ColorComponentFlagBits bits ) + VULKAN_HPP_NOEXCEPT { return ~( ColorComponentFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( ColorComponentFlags value ) + VULKAN_HPP_INLINE std::string to_string( ColorComponentFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & ColorComponentFlagBits::eR ) result += "R | "; - if ( value & ColorComponentFlagBits::eG ) result += "G | "; - if ( value & ColorComponentFlagBits::eB ) result += "B | "; - if ( value & ColorComponentFlagBits::eA ) result += "A | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & ColorComponentFlagBits::eR ) + result += "R | "; + if ( value & ColorComponentFlagBits::eG ) + result += "G | "; + if ( value & ColorComponentFlagBits::eB ) + result += "B | "; + if ( value & ColorComponentFlagBits::eA ) + result += "A | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using CommandBufferResetFlags = Flags; + using CommandBufferResetFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(CommandBufferResetFlagBits::eReleaseResources) + allFlags = VkFlags( CommandBufferResetFlagBits::eReleaseResources ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator|( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags + operator|( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return CommandBufferResetFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator&( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags + operator&(CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1)VULKAN_HPP_NOEXCEPT { return CommandBufferResetFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator^( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags + operator^( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return CommandBufferResetFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator~( CommandBufferResetFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator~( CommandBufferResetFlagBits bits ) + VULKAN_HPP_NOEXCEPT { return ~( CommandBufferResetFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlags value ) + VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & CommandBufferResetFlagBits::eReleaseResources ) result += "ReleaseResources | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & CommandBufferResetFlagBits::eReleaseResources ) + result += "ReleaseResources | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using CommandBufferUsageFlags = Flags; + using CommandBufferUsageFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(CommandBufferUsageFlagBits::eOneTimeSubmit) | VkFlags(CommandBufferUsageFlagBits::eRenderPassContinue) | VkFlags(CommandBufferUsageFlagBits::eSimultaneousUse) + allFlags = VkFlags( CommandBufferUsageFlagBits::eOneTimeSubmit ) | + VkFlags( CommandBufferUsageFlagBits::eRenderPassContinue ) | + VkFlags( CommandBufferUsageFlagBits::eSimultaneousUse ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator|( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags + operator|( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return CommandBufferUsageFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator&( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags + operator&(CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1)VULKAN_HPP_NOEXCEPT { return CommandBufferUsageFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator^( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags + operator^( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return CommandBufferUsageFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator~( CommandBufferUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator~( CommandBufferUsageFlagBits bits ) + VULKAN_HPP_NOEXCEPT { return ~( CommandBufferUsageFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlags value ) + VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & CommandBufferUsageFlagBits::eOneTimeSubmit ) result += "OneTimeSubmit | "; - if ( value & CommandBufferUsageFlagBits::eRenderPassContinue ) result += "RenderPassContinue | "; - if ( value & CommandBufferUsageFlagBits::eSimultaneousUse ) result += "SimultaneousUse | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & CommandBufferUsageFlagBits::eOneTimeSubmit ) + result += "OneTimeSubmit | "; + if ( value & CommandBufferUsageFlagBits::eRenderPassContinue ) + result += "RenderPassContinue | "; + if ( value & CommandBufferUsageFlagBits::eSimultaneousUse ) + result += "SimultaneousUse | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using CommandPoolCreateFlags = Flags; + using CommandPoolCreateFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(CommandPoolCreateFlagBits::eTransient) | VkFlags(CommandPoolCreateFlagBits::eResetCommandBuffer) | VkFlags(CommandPoolCreateFlagBits::eProtected) + allFlags = VkFlags( CommandPoolCreateFlagBits::eTransient ) | + VkFlags( CommandPoolCreateFlagBits::eResetCommandBuffer ) | + VkFlags( CommandPoolCreateFlagBits::eProtected ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator|( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags + operator|( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return CommandPoolCreateFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator&( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags + operator&(CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT { return CommandPoolCreateFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator^( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags + operator^( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return CommandPoolCreateFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator~( CommandPoolCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator~( CommandPoolCreateFlagBits bits ) + VULKAN_HPP_NOEXCEPT { return ~( CommandPoolCreateFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlags value ) + VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & CommandPoolCreateFlagBits::eTransient ) result += "Transient | "; - if ( value & CommandPoolCreateFlagBits::eResetCommandBuffer ) result += "ResetCommandBuffer | "; - if ( value & CommandPoolCreateFlagBits::eProtected ) result += "Protected | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & CommandPoolCreateFlagBits::eTransient ) + result += "Transient | "; + if ( value & CommandPoolCreateFlagBits::eResetCommandBuffer ) + result += "ResetCommandBuffer | "; + if ( value & CommandPoolCreateFlagBits::eProtected ) + result += "Protected | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using CommandPoolResetFlags = Flags; + using CommandPoolResetFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(CommandPoolResetFlagBits::eReleaseResources) + allFlags = VkFlags( CommandPoolResetFlagBits::eReleaseResources ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator|( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags + operator|( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return CommandPoolResetFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator&( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags + operator&(CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1)VULKAN_HPP_NOEXCEPT { return CommandPoolResetFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator^( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags + operator^( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return CommandPoolResetFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator~( CommandPoolResetFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator~( CommandPoolResetFlagBits bits ) + VULKAN_HPP_NOEXCEPT { return ~( CommandPoolResetFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlags value ) + VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & CommandPoolResetFlagBits::eReleaseResources ) result += "ReleaseResources | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & CommandPoolResetFlagBits::eReleaseResources ) + result += "ReleaseResources | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - enum class CommandPoolTrimFlagBits - {}; + enum class CommandPoolTrimFlagBits : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlagBits ) { return "(void)"; } - using CommandPoolTrimFlags = Flags; + using CommandPoolTrimFlags = Flags; using CommandPoolTrimFlagsKHR = CommandPoolTrimFlags; - VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlags ) + VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlags ) { return "{}"; } - using CompositeAlphaFlagsKHR = Flags; + using CompositeAlphaFlagsKHR = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(CompositeAlphaFlagBitsKHR::eOpaque) | VkFlags(CompositeAlphaFlagBitsKHR::ePreMultiplied) | VkFlags(CompositeAlphaFlagBitsKHR::ePostMultiplied) | VkFlags(CompositeAlphaFlagBitsKHR::eInherit) + allFlags = VkFlags( CompositeAlphaFlagBitsKHR::eOpaque ) | VkFlags( CompositeAlphaFlagBitsKHR::ePreMultiplied ) | + VkFlags( CompositeAlphaFlagBitsKHR::ePostMultiplied ) | VkFlags( CompositeAlphaFlagBitsKHR::eInherit ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator|( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR + operator|( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { return CompositeAlphaFlagsKHR( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator&( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR + operator&(CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT { return CompositeAlphaFlagsKHR( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator^( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR + operator^( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { return CompositeAlphaFlagsKHR( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator~( CompositeAlphaFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator~( CompositeAlphaFlagBitsKHR bits ) + VULKAN_HPP_NOEXCEPT { return ~( CompositeAlphaFlagsKHR( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagsKHR value ) + VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagsKHR value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & CompositeAlphaFlagBitsKHR::eOpaque ) result += "Opaque | "; - if ( value & CompositeAlphaFlagBitsKHR::ePreMultiplied ) result += "PreMultiplied | "; - if ( value & CompositeAlphaFlagBitsKHR::ePostMultiplied ) result += "PostMultiplied | "; - if ( value & CompositeAlphaFlagBitsKHR::eInherit ) result += "Inherit | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & CompositeAlphaFlagBitsKHR::eOpaque ) + result += "Opaque | "; + if ( value & CompositeAlphaFlagBitsKHR::ePreMultiplied ) + result += "PreMultiplied | "; + if ( value & CompositeAlphaFlagBitsKHR::ePostMultiplied ) + result += "PostMultiplied | "; + if ( value & CompositeAlphaFlagBitsKHR::eInherit ) + result += "Inherit | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using ConditionalRenderingFlagsEXT = Flags; + using ConditionalRenderingFlagsEXT = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(ConditionalRenderingFlagBitsEXT::eInverted) + allFlags = VkFlags( ConditionalRenderingFlagBitsEXT::eInverted ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator|( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT + operator|( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT { return ConditionalRenderingFlagsEXT( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator&( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT + operator&(ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT { return ConditionalRenderingFlagsEXT( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator^( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT + operator^( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT { return ConditionalRenderingFlagsEXT( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator~( ConditionalRenderingFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator~( ConditionalRenderingFlagBitsEXT bits ) + VULKAN_HPP_NOEXCEPT { return ~( ConditionalRenderingFlagsEXT( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagsEXT value ) + VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagsEXT value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & ConditionalRenderingFlagBitsEXT::eInverted ) result += "Inverted | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & ConditionalRenderingFlagBitsEXT::eInverted ) + result += "Inverted | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using CullModeFlags = Flags; + using CullModeFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(CullModeFlagBits::eNone) | VkFlags(CullModeFlagBits::eFront) | VkFlags(CullModeFlagBits::eBack) | VkFlags(CullModeFlagBits::eFrontAndBack) + allFlags = VkFlags( CullModeFlagBits::eNone ) | VkFlags( CullModeFlagBits::eFront ) | + VkFlags( CullModeFlagBits::eBack ) | VkFlags( CullModeFlagBits::eFrontAndBack ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator|( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator|( CullModeFlagBits bit0, + CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return CullModeFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator&( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator&(CullModeFlagBits bit0, + CullModeFlagBits bit1)VULKAN_HPP_NOEXCEPT { return CullModeFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator^( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator^( CullModeFlagBits bit0, + CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return CullModeFlags( bit0 ) ^ bit1; } @@ -9062,193 +13556,240 @@ namespace VULKAN_HPP_NAMESPACE return ~( CullModeFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( CullModeFlags value ) + VULKAN_HPP_INLINE std::string to_string( CullModeFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & CullModeFlagBits::eFront ) result += "Front | "; - if ( value & CullModeFlagBits::eBack ) result += "Back | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & CullModeFlagBits::eFront ) + result += "Front | "; + if ( value & CullModeFlagBits::eBack ) + result += "Back | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using DebugReportFlagsEXT = Flags; + using DebugReportFlagsEXT = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(DebugReportFlagBitsEXT::eInformation) | VkFlags(DebugReportFlagBitsEXT::eWarning) | VkFlags(DebugReportFlagBitsEXT::ePerformanceWarning) | VkFlags(DebugReportFlagBitsEXT::eError) | VkFlags(DebugReportFlagBitsEXT::eDebug) + allFlags = VkFlags( DebugReportFlagBitsEXT::eInformation ) | VkFlags( DebugReportFlagBitsEXT::eWarning ) | + VkFlags( DebugReportFlagBitsEXT::ePerformanceWarning ) | VkFlags( DebugReportFlagBitsEXT::eError ) | + VkFlags( DebugReportFlagBitsEXT::eDebug ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator|( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT + operator|( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT { return DebugReportFlagsEXT( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator&( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator&(DebugReportFlagBitsEXT bit0, + DebugReportFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT { return DebugReportFlagsEXT( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator^( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT + operator^( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT { return DebugReportFlagsEXT( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator~( DebugReportFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator~( DebugReportFlagBitsEXT bits ) + VULKAN_HPP_NOEXCEPT { return ~( DebugReportFlagsEXT( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( DebugReportFlagsEXT value ) + VULKAN_HPP_INLINE std::string to_string( DebugReportFlagsEXT value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & DebugReportFlagBitsEXT::eInformation ) result += "Information | "; - if ( value & DebugReportFlagBitsEXT::eWarning ) result += "Warning | "; - if ( value & DebugReportFlagBitsEXT::ePerformanceWarning ) result += "PerformanceWarning | "; - if ( value & DebugReportFlagBitsEXT::eError ) result += "Error | "; - if ( value & DebugReportFlagBitsEXT::eDebug ) result += "Debug | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & DebugReportFlagBitsEXT::eInformation ) + result += "Information | "; + if ( value & DebugReportFlagBitsEXT::eWarning ) + result += "Warning | "; + if ( value & DebugReportFlagBitsEXT::ePerformanceWarning ) + result += "PerformanceWarning | "; + if ( value & DebugReportFlagBitsEXT::eError ) + result += "Error | "; + if ( value & DebugReportFlagBitsEXT::eDebug ) + result += "Debug | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using DebugUtilsMessageSeverityFlagsEXT = Flags; + using DebugUtilsMessageSeverityFlagsEXT = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eVerbose) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eInfo) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eWarning) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eError) + allFlags = VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eVerbose ) | + VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eInfo ) | + VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eWarning ) | + VkFlags( DebugUtilsMessageSeverityFlagBitsEXT::eError ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator|( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator|( + DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT { return DebugUtilsMessageSeverityFlagsEXT( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator&( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT + operator&(DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT { return DebugUtilsMessageSeverityFlagsEXT( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator^( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator^( + DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT { return DebugUtilsMessageSeverityFlagsEXT( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator~( DebugUtilsMessageSeverityFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT + operator~( DebugUtilsMessageSeverityFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT { return ~( DebugUtilsMessageSeverityFlagsEXT( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagsEXT value ) + VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagsEXT value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eVerbose ) result += "Verbose | "; - if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eInfo ) result += "Info | "; - if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eWarning ) result += "Warning | "; - if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eError ) result += "Error | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eVerbose ) + result += "Verbose | "; + if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eInfo ) + result += "Info | "; + if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eWarning ) + result += "Warning | "; + if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eError ) + result += "Error | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using DebugUtilsMessageTypeFlagsEXT = Flags; + using DebugUtilsMessageTypeFlagsEXT = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(DebugUtilsMessageTypeFlagBitsEXT::eGeneral) | VkFlags(DebugUtilsMessageTypeFlagBitsEXT::eValidation) | VkFlags(DebugUtilsMessageTypeFlagBitsEXT::ePerformance) + allFlags = VkFlags( DebugUtilsMessageTypeFlagBitsEXT::eGeneral ) | + VkFlags( DebugUtilsMessageTypeFlagBitsEXT::eValidation ) | + VkFlags( DebugUtilsMessageTypeFlagBitsEXT::ePerformance ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator|( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT + operator|( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT { return DebugUtilsMessageTypeFlagsEXT( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator&( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT + operator&(DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT { return DebugUtilsMessageTypeFlagsEXT( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator^( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT + operator^( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT { return DebugUtilsMessageTypeFlagsEXT( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator~( DebugUtilsMessageTypeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT + operator~( DebugUtilsMessageTypeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT { return ~( DebugUtilsMessageTypeFlagsEXT( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagsEXT value ) + VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagsEXT value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & DebugUtilsMessageTypeFlagBitsEXT::eGeneral ) result += "General | "; - if ( value & DebugUtilsMessageTypeFlagBitsEXT::eValidation ) result += "Validation | "; - if ( value & DebugUtilsMessageTypeFlagBitsEXT::ePerformance ) result += "Performance | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & DebugUtilsMessageTypeFlagBitsEXT::eGeneral ) + result += "General | "; + if ( value & DebugUtilsMessageTypeFlagBitsEXT::eValidation ) + result += "Validation | "; + if ( value & DebugUtilsMessageTypeFlagBitsEXT::ePerformance ) + result += "Performance | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - enum class DebugUtilsMessengerCallbackDataFlagBitsEXT - {}; + enum class DebugUtilsMessengerCallbackDataFlagBitsEXT : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagBitsEXT ) { return "(void)"; } - using DebugUtilsMessengerCallbackDataFlagsEXT = Flags; + using DebugUtilsMessengerCallbackDataFlagsEXT = Flags; - VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagsEXT ) + VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagsEXT ) { return "{}"; } - enum class DebugUtilsMessengerCreateFlagBitsEXT - {}; + enum class DebugUtilsMessengerCreateFlagBitsEXT : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagBitsEXT ) { return "(void)"; } - using DebugUtilsMessengerCreateFlagsEXT = Flags; + using DebugUtilsMessengerCreateFlagsEXT = Flags; - VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagsEXT ) + VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagsEXT ) { return "{}"; } - using DependencyFlags = Flags; + using DependencyFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(DependencyFlagBits::eByRegion) | VkFlags(DependencyFlagBits::eDeviceGroup) | VkFlags(DependencyFlagBits::eViewLocal) + allFlags = VkFlags( DependencyFlagBits::eByRegion ) | VkFlags( DependencyFlagBits::eDeviceGroup ) | + VkFlags( DependencyFlagBits::eViewLocal ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator|( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator|( DependencyFlagBits bit0, + DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return DependencyFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator&( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator&(DependencyFlagBits bit0, + DependencyFlagBits bit1)VULKAN_HPP_NOEXCEPT { return DependencyFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator^( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator^( DependencyFlagBits bit0, + DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return DependencyFlags( bit0 ) ^ bit1; } @@ -9258,719 +13799,1042 @@ namespace VULKAN_HPP_NAMESPACE return ~( DependencyFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( DependencyFlags value ) + VULKAN_HPP_INLINE std::string to_string( DependencyFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & DependencyFlagBits::eByRegion ) result += "ByRegion | "; - if ( value & DependencyFlagBits::eDeviceGroup ) result += "DeviceGroup | "; - if ( value & DependencyFlagBits::eViewLocal ) result += "ViewLocal | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & DependencyFlagBits::eByRegion ) + result += "ByRegion | "; + if ( value & DependencyFlagBits::eDeviceGroup ) + result += "DeviceGroup | "; + if ( value & DependencyFlagBits::eViewLocal ) + result += "ViewLocal | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using DescriptorBindingFlags = Flags; + using DescriptorBindingFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(DescriptorBindingFlagBits::eUpdateAfterBind) | VkFlags(DescriptorBindingFlagBits::eUpdateUnusedWhilePending) | VkFlags(DescriptorBindingFlagBits::ePartiallyBound) | VkFlags(DescriptorBindingFlagBits::eVariableDescriptorCount) + allFlags = VkFlags( DescriptorBindingFlagBits::eUpdateAfterBind ) | + VkFlags( DescriptorBindingFlagBits::eUpdateUnusedWhilePending ) | + VkFlags( DescriptorBindingFlagBits::ePartiallyBound ) | + VkFlags( DescriptorBindingFlagBits::eVariableDescriptorCount ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator|( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags + operator|( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return DescriptorBindingFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator&( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags + operator&(DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1)VULKAN_HPP_NOEXCEPT { return DescriptorBindingFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator^( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags + operator^( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return DescriptorBindingFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator~( DescriptorBindingFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator~( DescriptorBindingFlagBits bits ) + VULKAN_HPP_NOEXCEPT { return ~( DescriptorBindingFlags( bits ) ); } using DescriptorBindingFlagsEXT = DescriptorBindingFlags; - VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlags value ) + VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & DescriptorBindingFlagBits::eUpdateAfterBind ) result += "UpdateAfterBind | "; - if ( value & DescriptorBindingFlagBits::eUpdateUnusedWhilePending ) result += "UpdateUnusedWhilePending | "; - if ( value & DescriptorBindingFlagBits::ePartiallyBound ) result += "PartiallyBound | "; - if ( value & DescriptorBindingFlagBits::eVariableDescriptorCount ) result += "VariableDescriptorCount | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & DescriptorBindingFlagBits::eUpdateAfterBind ) + result += "UpdateAfterBind | "; + if ( value & DescriptorBindingFlagBits::eUpdateUnusedWhilePending ) + result += "UpdateUnusedWhilePending | "; + if ( value & DescriptorBindingFlagBits::ePartiallyBound ) + result += "PartiallyBound | "; + if ( value & DescriptorBindingFlagBits::eVariableDescriptorCount ) + result += "VariableDescriptorCount | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using DescriptorPoolCreateFlags = Flags; + using DescriptorPoolCreateFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(DescriptorPoolCreateFlagBits::eFreeDescriptorSet) | VkFlags(DescriptorPoolCreateFlagBits::eUpdateAfterBind) + allFlags = VkFlags( DescriptorPoolCreateFlagBits::eFreeDescriptorSet ) | + VkFlags( DescriptorPoolCreateFlagBits::eUpdateAfterBind ) | + VkFlags( DescriptorPoolCreateFlagBits::eHostOnlyVALVE ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator|( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags + operator|( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return DescriptorPoolCreateFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator&( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags + operator&(DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT { return DescriptorPoolCreateFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator^( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags + operator^( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return DescriptorPoolCreateFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator~( DescriptorPoolCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator~( DescriptorPoolCreateFlagBits bits ) + VULKAN_HPP_NOEXCEPT { return ~( DescriptorPoolCreateFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlags value ) + VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & DescriptorPoolCreateFlagBits::eFreeDescriptorSet ) result += "FreeDescriptorSet | "; - if ( value & DescriptorPoolCreateFlagBits::eUpdateAfterBind ) result += "UpdateAfterBind | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & DescriptorPoolCreateFlagBits::eFreeDescriptorSet ) + result += "FreeDescriptorSet | "; + if ( value & DescriptorPoolCreateFlagBits::eUpdateAfterBind ) + result += "UpdateAfterBind | "; + if ( value & DescriptorPoolCreateFlagBits::eHostOnlyVALVE ) + result += "HostOnlyVALVE | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - enum class DescriptorPoolResetFlagBits - {}; + enum class DescriptorPoolResetFlagBits : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlagBits ) { return "(void)"; } - using DescriptorPoolResetFlags = Flags; + using DescriptorPoolResetFlags = Flags; - VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlags ) + VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlags ) { return "{}"; } - using DescriptorSetLayoutCreateFlags = Flags; + using DescriptorSetLayoutCreateFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool) | VkFlags(DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR) + allFlags = VkFlags( DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool ) | + VkFlags( DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR ) | + VkFlags( DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolVALVE ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator|( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags + operator|( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return DescriptorSetLayoutCreateFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator&( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags + operator&(DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT { return DescriptorSetLayoutCreateFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator^( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags + operator^( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return DescriptorSetLayoutCreateFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator~( DescriptorSetLayoutCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags + operator~( DescriptorSetLayoutCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT { return ~( DescriptorSetLayoutCreateFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlags value ) + VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool ) result += "UpdateAfterBindPool | "; - if ( value & DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR ) result += "PushDescriptorKHR | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool ) + result += "UpdateAfterBindPool | "; + if ( value & DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR ) + result += "PushDescriptorKHR | "; + if ( value & DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolVALVE ) + result += "HostOnlyPoolVALVE | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - enum class DescriptorUpdateTemplateCreateFlagBits - {}; + enum class DescriptorUpdateTemplateCreateFlagBits : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlagBits ) { return "(void)"; } - using DescriptorUpdateTemplateCreateFlags = Flags; + using DescriptorUpdateTemplateCreateFlags = Flags; using DescriptorUpdateTemplateCreateFlagsKHR = DescriptorUpdateTemplateCreateFlags; - VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlags ) + VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlags ) { return "{}"; } - using DeviceCreateFlags = Flags; + using DeviceCreateFlags = Flags; - VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlags ) + VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlags ) { return "{}"; } - using DeviceGroupPresentModeFlagsKHR = Flags; + using DeviceDiagnosticsConfigFlagsNV = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(DeviceGroupPresentModeFlagBitsKHR::eLocal) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eRemote) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eSum) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice) + allFlags = VkFlags( DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo ) | + VkFlags( DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking ) | + VkFlags( DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator|( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV + operator|( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT + { + return DeviceDiagnosticsConfigFlagsNV( bit0 ) | bit1; + } + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV + operator&(DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1)VULKAN_HPP_NOEXCEPT + { + return DeviceDiagnosticsConfigFlagsNV( bit0 ) & bit1; + } + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV + operator^( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT + { + return DeviceDiagnosticsConfigFlagsNV( bit0 ) ^ bit1; + } + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV + operator~( DeviceDiagnosticsConfigFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT + { + return ~( DeviceDiagnosticsConfigFlagsNV( bits ) ); + } + + VULKAN_HPP_INLINE std::string to_string( DeviceDiagnosticsConfigFlagsNV value ) + { + if ( !value ) + return "{}"; + std::string result; + + if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo ) + result += "EnableShaderDebugInfo | "; + if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking ) + result += "EnableResourceTracking | "; + if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints ) + result += "EnableAutomaticCheckpoints | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + + using DeviceGroupPresentModeFlagsKHR = Flags; + + template <> + struct FlagTraits + { + enum : VkFlags + { + allFlags = VkFlags( DeviceGroupPresentModeFlagBitsKHR::eLocal ) | + VkFlags( DeviceGroupPresentModeFlagBitsKHR::eRemote ) | + VkFlags( DeviceGroupPresentModeFlagBitsKHR::eSum ) | + VkFlags( DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice ) + }; + }; + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR + operator|( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { return DeviceGroupPresentModeFlagsKHR( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator&( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR + operator&(DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT { return DeviceGroupPresentModeFlagsKHR( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator^( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR + operator^( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { return DeviceGroupPresentModeFlagsKHR( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator~( DeviceGroupPresentModeFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR + operator~( DeviceGroupPresentModeFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT { return ~( DeviceGroupPresentModeFlagsKHR( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagsKHR value ) + VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagsKHR value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocal ) result += "Local | "; - if ( value & DeviceGroupPresentModeFlagBitsKHR::eRemote ) result += "Remote | "; - if ( value & DeviceGroupPresentModeFlagBitsKHR::eSum ) result += "Sum | "; - if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice ) result += "LocalMultiDevice | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocal ) + result += "Local | "; + if ( value & DeviceGroupPresentModeFlagBitsKHR::eRemote ) + result += "Remote | "; + if ( value & DeviceGroupPresentModeFlagBitsKHR::eSum ) + result += "Sum | "; + if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice ) + result += "LocalMultiDevice | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using DeviceQueueCreateFlags = Flags; + enum class DeviceMemoryReportFlagBitsEXT : VkFlags + { + }; - template <> struct FlagTraits + VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportFlagBitsEXT ) { - enum + return "(void)"; + } + + using DeviceMemoryReportFlagsEXT = Flags; + + VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportFlagsEXT ) + { + return "{}"; + } + + using DeviceQueueCreateFlags = Flags; + + template <> + struct FlagTraits + { + enum : VkFlags { - allFlags = VkFlags(DeviceQueueCreateFlagBits::eProtected) + allFlags = VkFlags( DeviceQueueCreateFlagBits::eProtected ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator|( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags + operator|( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return DeviceQueueCreateFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator&( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags + operator&(DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT { return DeviceQueueCreateFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator^( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags + operator^( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return DeviceQueueCreateFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator~( DeviceQueueCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator~( DeviceQueueCreateFlagBits bits ) + VULKAN_HPP_NOEXCEPT { return ~( DeviceQueueCreateFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlags value ) + VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & DeviceQueueCreateFlagBits::eProtected ) result += "Protected | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & DeviceQueueCreateFlagBits::eProtected ) + result += "Protected | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - enum class DisplayModeCreateFlagBitsKHR - {}; +#if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) + enum class DirectFBSurfaceCreateFlagBitsEXT : VkFlags + { + }; + + VULKAN_HPP_INLINE std::string to_string( DirectFBSurfaceCreateFlagBitsEXT ) + { + return "(void)"; + } + + using DirectFBSurfaceCreateFlagsEXT = Flags; + + VULKAN_HPP_INLINE std::string to_string( DirectFBSurfaceCreateFlagsEXT ) + { + return "{}"; + } +#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ + + enum class DisplayModeCreateFlagBitsKHR : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagBitsKHR ) { return "(void)"; } - using DisplayModeCreateFlagsKHR = Flags; + using DisplayModeCreateFlagsKHR = Flags; - VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagsKHR ) + VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagsKHR ) { return "{}"; } - using DisplayPlaneAlphaFlagsKHR = Flags; + using DisplayPlaneAlphaFlagsKHR = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(DisplayPlaneAlphaFlagBitsKHR::eOpaque) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::eGlobal) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::ePerPixel) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied) + allFlags = VkFlags( DisplayPlaneAlphaFlagBitsKHR::eOpaque ) | VkFlags( DisplayPlaneAlphaFlagBitsKHR::eGlobal ) | + VkFlags( DisplayPlaneAlphaFlagBitsKHR::ePerPixel ) | + VkFlags( DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator|( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR + operator|( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { return DisplayPlaneAlphaFlagsKHR( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator&( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR + operator&(DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT { return DisplayPlaneAlphaFlagsKHR( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator^( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR + operator^( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { return DisplayPlaneAlphaFlagsKHR( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator~( DisplayPlaneAlphaFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator~( DisplayPlaneAlphaFlagBitsKHR bits ) + VULKAN_HPP_NOEXCEPT { return ~( DisplayPlaneAlphaFlagsKHR( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagsKHR value ) + VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagsKHR value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & DisplayPlaneAlphaFlagBitsKHR::eOpaque ) result += "Opaque | "; - if ( value & DisplayPlaneAlphaFlagBitsKHR::eGlobal ) result += "Global | "; - if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixel ) result += "PerPixel | "; - if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied ) result += "PerPixelPremultiplied | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & DisplayPlaneAlphaFlagBitsKHR::eOpaque ) + result += "Opaque | "; + if ( value & DisplayPlaneAlphaFlagBitsKHR::eGlobal ) + result += "Global | "; + if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixel ) + result += "PerPixel | "; + if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied ) + result += "PerPixelPremultiplied | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - enum class DisplaySurfaceCreateFlagBitsKHR - {}; + enum class DisplaySurfaceCreateFlagBitsKHR : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagBitsKHR ) { return "(void)"; } - using DisplaySurfaceCreateFlagsKHR = Flags; + using DisplaySurfaceCreateFlagsKHR = Flags; - VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagsKHR ) + VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagsKHR ) { return "{}"; } - enum class EventCreateFlagBits - {}; + using EventCreateFlags = Flags; - VULKAN_HPP_INLINE std::string to_string( EventCreateFlagBits ) + template <> + struct FlagTraits { - return "(void)"; + enum : VkFlags + { + allFlags = VkFlags( EventCreateFlagBits::eDeviceOnlyKHR ) + }; + }; + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator|( EventCreateFlagBits bit0, + EventCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + { + return EventCreateFlags( bit0 ) | bit1; } - using EventCreateFlags = Flags; + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator&(EventCreateFlagBits bit0, + EventCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT + { + return EventCreateFlags( bit0 ) & bit1; + } - VULKAN_HPP_INLINE std::string to_string( EventCreateFlags ) + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator^( EventCreateFlagBits bit0, + EventCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { - return "{}"; + return EventCreateFlags( bit0 ) ^ bit1; } - using ExternalFenceFeatureFlags = Flags; + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR EventCreateFlags operator~( EventCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT + { + return ~( EventCreateFlags( bits ) ); + } - template <> struct FlagTraits + VULKAN_HPP_INLINE std::string to_string( EventCreateFlags value ) { - enum + if ( !value ) + return "{}"; + std::string result; + + if ( value & EventCreateFlagBits::eDeviceOnlyKHR ) + result += "DeviceOnlyKHR | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + + using ExternalFenceFeatureFlags = Flags; + + template <> + struct FlagTraits + { + enum : VkFlags { - allFlags = VkFlags(ExternalFenceFeatureFlagBits::eExportable) | VkFlags(ExternalFenceFeatureFlagBits::eImportable) + allFlags = + VkFlags( ExternalFenceFeatureFlagBits::eExportable ) | VkFlags( ExternalFenceFeatureFlagBits::eImportable ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator|( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags + operator|( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ExternalFenceFeatureFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator&( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags + operator&(ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1)VULKAN_HPP_NOEXCEPT { return ExternalFenceFeatureFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator^( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags + operator^( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ExternalFenceFeatureFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator~( ExternalFenceFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator~( ExternalFenceFeatureFlagBits bits ) + VULKAN_HPP_NOEXCEPT { return ~( ExternalFenceFeatureFlags( bits ) ); } using ExternalFenceFeatureFlagsKHR = ExternalFenceFeatureFlags; - VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlags value ) + VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & ExternalFenceFeatureFlagBits::eExportable ) result += "Exportable | "; - if ( value & ExternalFenceFeatureFlagBits::eImportable ) result += "Importable | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & ExternalFenceFeatureFlagBits::eExportable ) + result += "Exportable | "; + if ( value & ExternalFenceFeatureFlagBits::eImportable ) + result += "Importable | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using ExternalFenceHandleTypeFlags = Flags; + using ExternalFenceHandleTypeFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueFd) | VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueWin32) | VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt) | VkFlags(ExternalFenceHandleTypeFlagBits::eSyncFd) + allFlags = VkFlags( ExternalFenceHandleTypeFlagBits::eOpaqueFd ) | + VkFlags( ExternalFenceHandleTypeFlagBits::eOpaqueWin32 ) | + VkFlags( ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt ) | + VkFlags( ExternalFenceHandleTypeFlagBits::eSyncFd ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator|( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags + operator|( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ExternalFenceHandleTypeFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator&( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags + operator&(ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1)VULKAN_HPP_NOEXCEPT { return ExternalFenceHandleTypeFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator^( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags + operator^( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ExternalFenceHandleTypeFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator~( ExternalFenceHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator~( ExternalFenceHandleTypeFlagBits bits ) + VULKAN_HPP_NOEXCEPT { return ~( ExternalFenceHandleTypeFlags( bits ) ); } using ExternalFenceHandleTypeFlagsKHR = ExternalFenceHandleTypeFlags; - VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlags value ) + VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | "; - if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | "; - if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | "; - if ( value & ExternalFenceHandleTypeFlagBits::eSyncFd ) result += "SyncFd | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueFd ) + result += "OpaqueFd | "; + if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32 ) + result += "OpaqueWin32 | "; + if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt ) + result += "OpaqueWin32Kmt | "; + if ( value & ExternalFenceHandleTypeFlagBits::eSyncFd ) + result += "SyncFd | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using ExternalMemoryFeatureFlags = Flags; + using ExternalMemoryFeatureFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(ExternalMemoryFeatureFlagBits::eDedicatedOnly) | VkFlags(ExternalMemoryFeatureFlagBits::eExportable) | VkFlags(ExternalMemoryFeatureFlagBits::eImportable) + allFlags = VkFlags( ExternalMemoryFeatureFlagBits::eDedicatedOnly ) | + VkFlags( ExternalMemoryFeatureFlagBits::eExportable ) | + VkFlags( ExternalMemoryFeatureFlagBits::eImportable ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator|( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags + operator|( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ExternalMemoryFeatureFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator&( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags + operator&(ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1)VULKAN_HPP_NOEXCEPT { return ExternalMemoryFeatureFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator^( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags + operator^( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ExternalMemoryFeatureFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator~( ExternalMemoryFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator~( ExternalMemoryFeatureFlagBits bits ) + VULKAN_HPP_NOEXCEPT { return ~( ExternalMemoryFeatureFlags( bits ) ); } using ExternalMemoryFeatureFlagsKHR = ExternalMemoryFeatureFlags; - VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlags value ) + VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & ExternalMemoryFeatureFlagBits::eDedicatedOnly ) result += "DedicatedOnly | "; - if ( value & ExternalMemoryFeatureFlagBits::eExportable ) result += "Exportable | "; - if ( value & ExternalMemoryFeatureFlagBits::eImportable ) result += "Importable | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & ExternalMemoryFeatureFlagBits::eDedicatedOnly ) + result += "DedicatedOnly | "; + if ( value & ExternalMemoryFeatureFlagBits::eExportable ) + result += "Exportable | "; + if ( value & ExternalMemoryFeatureFlagBits::eImportable ) + result += "Importable | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using ExternalMemoryFeatureFlagsNV = Flags; + using ExternalMemoryFeatureFlagsNV = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly) | VkFlags(ExternalMemoryFeatureFlagBitsNV::eExportable) | VkFlags(ExternalMemoryFeatureFlagBitsNV::eImportable) + allFlags = VkFlags( ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly ) | + VkFlags( ExternalMemoryFeatureFlagBitsNV::eExportable ) | + VkFlags( ExternalMemoryFeatureFlagBitsNV::eImportable ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator|( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV + operator|( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT { return ExternalMemoryFeatureFlagsNV( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator&( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV + operator&(ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1)VULKAN_HPP_NOEXCEPT { return ExternalMemoryFeatureFlagsNV( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator^( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV + operator^( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT { return ExternalMemoryFeatureFlagsNV( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator~( ExternalMemoryFeatureFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator~( ExternalMemoryFeatureFlagBitsNV bits ) + VULKAN_HPP_NOEXCEPT { return ~( ExternalMemoryFeatureFlagsNV( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagsNV value ) + VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagsNV value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly ) result += "DedicatedOnly | "; - if ( value & ExternalMemoryFeatureFlagBitsNV::eExportable ) result += "Exportable | "; - if ( value & ExternalMemoryFeatureFlagBitsNV::eImportable ) result += "Importable | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly ) + result += "DedicatedOnly | "; + if ( value & ExternalMemoryFeatureFlagBitsNV::eExportable ) + result += "Exportable | "; + if ( value & ExternalMemoryFeatureFlagBitsNV::eImportable ) + result += "Importable | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using ExternalMemoryHandleTypeFlags = Flags; + using ExternalMemoryHandleTypeFlags = Flags; - template <> struct FlagTraits - { - enum - { - allFlags = VkFlags(ExternalMemoryHandleTypeFlagBits::eOpaqueFd) | VkFlags(ExternalMemoryHandleTypeFlagBits::eOpaqueWin32) | VkFlags(ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D11Texture) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D12Heap) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D12Resource) | VkFlags(ExternalMemoryHandleTypeFlagBits::eDmaBufEXT) | VkFlags(ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID) | VkFlags(ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT) | VkFlags(ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT) + template <> + struct FlagTraits + { + enum : VkFlags + { + allFlags = VkFlags( ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) | + VkFlags( ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 ) | + VkFlags( ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt ) | + VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D11Texture ) | + VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt ) | + VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D12Heap ) | + VkFlags( ExternalMemoryHandleTypeFlagBits::eD3D12Resource ) | + VkFlags( ExternalMemoryHandleTypeFlagBits::eDmaBufEXT ) +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + | VkFlags( ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID ) +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + | VkFlags( ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT ) | + VkFlags( ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT ) +#if defined( VK_USE_PLATFORM_FUCHSIA ) + | VkFlags( ExternalMemoryHandleTypeFlagBits::eZirconVmoFUCHSIA ) +#endif /*VK_USE_PLATFORM_FUCHSIA*/ }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator|( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags + operator|( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ExternalMemoryHandleTypeFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator&( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags + operator&(ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1)VULKAN_HPP_NOEXCEPT { return ExternalMemoryHandleTypeFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator^( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags + operator^( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ExternalMemoryHandleTypeFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator~( ExternalMemoryHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags + operator~( ExternalMemoryHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT { return ~( ExternalMemoryHandleTypeFlags( bits ) ); } using ExternalMemoryHandleTypeFlagsKHR = ExternalMemoryHandleTypeFlags; - VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlags value ) + VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11Texture ) result += "D3D11Texture | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt ) result += "D3D11TextureKmt | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Heap ) result += "D3D12Heap | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Resource ) result += "D3D12Resource | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eDmaBufEXT ) result += "DmaBufEXT | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID ) result += "AndroidHardwareBufferANDROID | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT ) result += "HostAllocationEXT | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT ) result += "HostMappedForeignMemoryEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) + result += "OpaqueFd | "; + if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 ) + result += "OpaqueWin32 | "; + if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt ) + result += "OpaqueWin32Kmt | "; + if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11Texture ) + result += "D3D11Texture | "; + if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt ) + result += "D3D11TextureKmt | "; + if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Heap ) + result += "D3D12Heap | "; + if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Resource ) + result += "D3D12Resource | "; + if ( value & ExternalMemoryHandleTypeFlagBits::eDmaBufEXT ) + result += "DmaBufEXT | "; +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + if ( value & ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID ) + result += "AndroidHardwareBufferANDROID | "; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + if ( value & ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT ) + result += "HostAllocationEXT | "; + if ( value & ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT ) + result += "HostMappedForeignMemoryEXT | "; +#if defined( VK_USE_PLATFORM_FUCHSIA ) + if ( value & ExternalMemoryHandleTypeFlagBits::eZirconVmoFUCHSIA ) + result += "ZirconVmoFUCHSIA | "; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using ExternalMemoryHandleTypeFlagsNV = Flags; + using ExternalMemoryHandleTypeFlagsNV = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt) + allFlags = VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 ) | + VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt ) | + VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image ) | + VkFlags( ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator|( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV + operator|( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT { return ExternalMemoryHandleTypeFlagsNV( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator&( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV + operator&(ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1)VULKAN_HPP_NOEXCEPT { return ExternalMemoryHandleTypeFlagsNV( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator^( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV + operator^( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT { return ExternalMemoryHandleTypeFlagsNV( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator~( ExternalMemoryHandleTypeFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV + operator~( ExternalMemoryHandleTypeFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT { return ~( ExternalMemoryHandleTypeFlagsNV( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagsNV value ) + VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagsNV value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 ) result += "OpaqueWin32 | "; - if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | "; - if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image ) result += "D3D11Image | "; - if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt ) result += "D3D11ImageKmt | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 ) + result += "OpaqueWin32 | "; + if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt ) + result += "OpaqueWin32Kmt | "; + if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image ) + result += "D3D11Image | "; + if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt ) + result += "D3D11ImageKmt | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using ExternalSemaphoreFeatureFlags = Flags; + using ExternalSemaphoreFeatureFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(ExternalSemaphoreFeatureFlagBits::eExportable) | VkFlags(ExternalSemaphoreFeatureFlagBits::eImportable) + allFlags = VkFlags( ExternalSemaphoreFeatureFlagBits::eExportable ) | + VkFlags( ExternalSemaphoreFeatureFlagBits::eImportable ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator|( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags + operator|( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ExternalSemaphoreFeatureFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator&( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags + operator&(ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1)VULKAN_HPP_NOEXCEPT { return ExternalSemaphoreFeatureFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator^( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags + operator^( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ExternalSemaphoreFeatureFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator~( ExternalSemaphoreFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags + operator~( ExternalSemaphoreFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT { return ~( ExternalSemaphoreFeatureFlags( bits ) ); } using ExternalSemaphoreFeatureFlagsKHR = ExternalSemaphoreFeatureFlags; - VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlags value ) + VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & ExternalSemaphoreFeatureFlagBits::eExportable ) result += "Exportable | "; - if ( value & ExternalSemaphoreFeatureFlagBits::eImportable ) result += "Importable | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & ExternalSemaphoreFeatureFlagBits::eExportable ) + result += "Exportable | "; + if ( value & ExternalSemaphoreFeatureFlagBits::eImportable ) + result += "Importable | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using ExternalSemaphoreHandleTypeFlags = Flags; + using ExternalSemaphoreHandleTypeFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eSyncFd) + allFlags = VkFlags( ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) | + VkFlags( ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 ) | + VkFlags( ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt ) | + VkFlags( ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence ) | + VkFlags( ExternalSemaphoreHandleTypeFlagBits::eSyncFd ) +#if defined( VK_USE_PLATFORM_FUCHSIA ) + | VkFlags( ExternalSemaphoreHandleTypeFlagBits::eZirconEventFUCHSIA ) +#endif /*VK_USE_PLATFORM_FUCHSIA*/ }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator|( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags + operator|( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ExternalSemaphoreHandleTypeFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator&( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags + operator&(ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1)VULKAN_HPP_NOEXCEPT { return ExternalSemaphoreHandleTypeFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator^( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags + operator^( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ExternalSemaphoreHandleTypeFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator~( ExternalSemaphoreHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags + operator~( ExternalSemaphoreHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT { return ~( ExternalSemaphoreHandleTypeFlags( bits ) ); } using ExternalSemaphoreHandleTypeFlagsKHR = ExternalSemaphoreHandleTypeFlags; - VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlags value ) + VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | "; - if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | "; - if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | "; - if ( value & ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence ) result += "D3D12Fence | "; - if ( value & ExternalSemaphoreHandleTypeFlagBits::eSyncFd ) result += "SyncFd | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) + result += "OpaqueFd | "; + if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 ) + result += "OpaqueWin32 | "; + if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt ) + result += "OpaqueWin32Kmt | "; + if ( value & ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence ) + result += "D3D12Fence | "; + if ( value & ExternalSemaphoreHandleTypeFlagBits::eSyncFd ) + result += "SyncFd | "; +#if defined( VK_USE_PLATFORM_FUCHSIA ) + if ( value & ExternalSemaphoreHandleTypeFlagBits::eZirconEventFUCHSIA ) + result += "ZirconEventFUCHSIA | "; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using FenceCreateFlags = Flags; + using FenceCreateFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(FenceCreateFlagBits::eSignaled) + allFlags = VkFlags( FenceCreateFlagBits::eSignaled ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator|( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator|( FenceCreateFlagBits bit0, + FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return FenceCreateFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator&( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator&(FenceCreateFlagBits bit0, + FenceCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT { return FenceCreateFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator^( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator^( FenceCreateFlagBits bit0, + FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return FenceCreateFlags( bit0 ) ^ bit1; } @@ -9980,36 +14844,42 @@ namespace VULKAN_HPP_NAMESPACE return ~( FenceCreateFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( FenceCreateFlags value ) + VULKAN_HPP_INLINE std::string to_string( FenceCreateFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & FenceCreateFlagBits::eSignaled ) result += "Signaled | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & FenceCreateFlagBits::eSignaled ) + result += "Signaled | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using FenceImportFlags = Flags; + using FenceImportFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(FenceImportFlagBits::eTemporary) + allFlags = VkFlags( FenceImportFlagBits::eTemporary ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator|( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator|( FenceImportFlagBits bit0, + FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return FenceImportFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator&( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator&(FenceImportFlagBits bit0, + FenceImportFlagBits bit1)VULKAN_HPP_NOEXCEPT { return FenceImportFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator^( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator^( FenceImportFlagBits bit0, + FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return FenceImportFlags( bit0 ) ^ bit1; } @@ -10021,36 +14891,66 @@ namespace VULKAN_HPP_NAMESPACE using FenceImportFlagsKHR = FenceImportFlags; - VULKAN_HPP_INLINE std::string to_string( FenceImportFlags value ) + VULKAN_HPP_INLINE std::string to_string( FenceImportFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & FenceImportFlagBits::eTemporary ) result += "Temporary | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & FenceImportFlagBits::eTemporary ) + result += "Temporary | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using FormatFeatureFlags = Flags; + using FormatFeatureFlags = Flags; - template <> struct FlagTraits - { - enum - { - allFlags = VkFlags(FormatFeatureFlagBits::eSampledImage) | VkFlags(FormatFeatureFlagBits::eStorageImage) | VkFlags(FormatFeatureFlagBits::eStorageImageAtomic) | VkFlags(FormatFeatureFlagBits::eUniformTexelBuffer) | VkFlags(FormatFeatureFlagBits::eStorageTexelBuffer) | VkFlags(FormatFeatureFlagBits::eStorageTexelBufferAtomic) | VkFlags(FormatFeatureFlagBits::eVertexBuffer) | VkFlags(FormatFeatureFlagBits::eColorAttachment) | VkFlags(FormatFeatureFlagBits::eColorAttachmentBlend) | VkFlags(FormatFeatureFlagBits::eDepthStencilAttachment) | VkFlags(FormatFeatureFlagBits::eBlitSrc) | VkFlags(FormatFeatureFlagBits::eBlitDst) | VkFlags(FormatFeatureFlagBits::eSampledImageFilterLinear) | VkFlags(FormatFeatureFlagBits::eTransferSrc) | VkFlags(FormatFeatureFlagBits::eTransferDst) | VkFlags(FormatFeatureFlagBits::eMidpointChromaSamples) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable) | VkFlags(FormatFeatureFlagBits::eDisjoint) | VkFlags(FormatFeatureFlagBits::eCositedChromaSamples) | VkFlags(FormatFeatureFlagBits::eSampledImageFilterMinmax) | VkFlags(FormatFeatureFlagBits::eSampledImageFilterCubicIMG) | VkFlags(FormatFeatureFlagBits::eFragmentDensityMapEXT) + template <> + struct FlagTraits + { + enum : VkFlags + { + allFlags = + VkFlags( FormatFeatureFlagBits::eSampledImage ) | VkFlags( FormatFeatureFlagBits::eStorageImage ) | + VkFlags( FormatFeatureFlagBits::eStorageImageAtomic ) | VkFlags( FormatFeatureFlagBits::eUniformTexelBuffer ) | + VkFlags( FormatFeatureFlagBits::eStorageTexelBuffer ) | + VkFlags( FormatFeatureFlagBits::eStorageTexelBufferAtomic ) | VkFlags( FormatFeatureFlagBits::eVertexBuffer ) | + VkFlags( FormatFeatureFlagBits::eColorAttachment ) | VkFlags( FormatFeatureFlagBits::eColorAttachmentBlend ) | + VkFlags( FormatFeatureFlagBits::eDepthStencilAttachment ) | VkFlags( FormatFeatureFlagBits::eBlitSrc ) | + VkFlags( FormatFeatureFlagBits::eBlitDst ) | VkFlags( FormatFeatureFlagBits::eSampledImageFilterLinear ) | + VkFlags( FormatFeatureFlagBits::eTransferSrc ) | VkFlags( FormatFeatureFlagBits::eTransferDst ) | + VkFlags( FormatFeatureFlagBits::eMidpointChromaSamples ) | + VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter ) | + VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter ) | + VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit ) | + VkFlags( FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable ) | + VkFlags( FormatFeatureFlagBits::eDisjoint ) | VkFlags( FormatFeatureFlagBits::eCositedChromaSamples ) | + VkFlags( FormatFeatureFlagBits::eSampledImageFilterMinmax ) | + VkFlags( FormatFeatureFlagBits::eSampledImageFilterCubicIMG ) +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + | VkFlags( FormatFeatureFlagBits::eVideoDecodeOutputKHR ) | + VkFlags( FormatFeatureFlagBits::eVideoDecodeDpbKHR ) | VkFlags( FormatFeatureFlagBits::eVideoEncodeInputKHR ) | + VkFlags( FormatFeatureFlagBits::eVideoEncodeDpbKHR ) +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + | VkFlags( FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR ) | + VkFlags( FormatFeatureFlagBits::eFragmentDensityMapEXT ) | + VkFlags( FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator|( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator|( FormatFeatureFlagBits bit0, + FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return FormatFeatureFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator&( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator&(FormatFeatureFlagBits bit0, + FormatFeatureFlagBits bit1)VULKAN_HPP_NOEXCEPT { return FormatFeatureFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator^( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator^( FormatFeatureFlagBits bit0, + FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return FormatFeatureFlags( bit0 ) ^ bit1; } @@ -10060,213 +14960,301 @@ namespace VULKAN_HPP_NAMESPACE return ~( FormatFeatureFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlags value ) + VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & FormatFeatureFlagBits::eSampledImage ) result += "SampledImage | "; - if ( value & FormatFeatureFlagBits::eStorageImage ) result += "StorageImage | "; - if ( value & FormatFeatureFlagBits::eStorageImageAtomic ) result += "StorageImageAtomic | "; - if ( value & FormatFeatureFlagBits::eUniformTexelBuffer ) result += "UniformTexelBuffer | "; - if ( value & FormatFeatureFlagBits::eStorageTexelBuffer ) result += "StorageTexelBuffer | "; - if ( value & FormatFeatureFlagBits::eStorageTexelBufferAtomic ) result += "StorageTexelBufferAtomic | "; - if ( value & FormatFeatureFlagBits::eVertexBuffer ) result += "VertexBuffer | "; - if ( value & FormatFeatureFlagBits::eColorAttachment ) result += "ColorAttachment | "; - if ( value & FormatFeatureFlagBits::eColorAttachmentBlend ) result += "ColorAttachmentBlend | "; - if ( value & FormatFeatureFlagBits::eDepthStencilAttachment ) result += "DepthStencilAttachment | "; - if ( value & FormatFeatureFlagBits::eBlitSrc ) result += "BlitSrc | "; - if ( value & FormatFeatureFlagBits::eBlitDst ) result += "BlitDst | "; - if ( value & FormatFeatureFlagBits::eSampledImageFilterLinear ) result += "SampledImageFilterLinear | "; - if ( value & FormatFeatureFlagBits::eTransferSrc ) result += "TransferSrc | "; - if ( value & FormatFeatureFlagBits::eTransferDst ) result += "TransferDst | "; - if ( value & FormatFeatureFlagBits::eMidpointChromaSamples ) result += "MidpointChromaSamples | "; - if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter ) result += "SampledImageYcbcrConversionLinearFilter | "; - if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter ) result += "SampledImageYcbcrConversionSeparateReconstructionFilter | "; - if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit ) result += "SampledImageYcbcrConversionChromaReconstructionExplicit | "; - if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable ) result += "SampledImageYcbcrConversionChromaReconstructionExplicitForceable | "; - if ( value & FormatFeatureFlagBits::eDisjoint ) result += "Disjoint | "; - if ( value & FormatFeatureFlagBits::eCositedChromaSamples ) result += "CositedChromaSamples | "; - if ( value & FormatFeatureFlagBits::eSampledImageFilterMinmax ) result += "SampledImageFilterMinmax | "; - if ( value & FormatFeatureFlagBits::eSampledImageFilterCubicIMG ) result += "SampledImageFilterCubicIMG | "; - if ( value & FormatFeatureFlagBits::eFragmentDensityMapEXT ) result += "FragmentDensityMapEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - using FramebufferCreateFlags = Flags; - - template <> struct FlagTraits + if ( value & FormatFeatureFlagBits::eSampledImage ) + result += "SampledImage | "; + if ( value & FormatFeatureFlagBits::eStorageImage ) + result += "StorageImage | "; + if ( value & FormatFeatureFlagBits::eStorageImageAtomic ) + result += "StorageImageAtomic | "; + if ( value & FormatFeatureFlagBits::eUniformTexelBuffer ) + result += "UniformTexelBuffer | "; + if ( value & FormatFeatureFlagBits::eStorageTexelBuffer ) + result += "StorageTexelBuffer | "; + if ( value & FormatFeatureFlagBits::eStorageTexelBufferAtomic ) + result += "StorageTexelBufferAtomic | "; + if ( value & FormatFeatureFlagBits::eVertexBuffer ) + result += "VertexBuffer | "; + if ( value & FormatFeatureFlagBits::eColorAttachment ) + result += "ColorAttachment | "; + if ( value & FormatFeatureFlagBits::eColorAttachmentBlend ) + result += "ColorAttachmentBlend | "; + if ( value & FormatFeatureFlagBits::eDepthStencilAttachment ) + result += "DepthStencilAttachment | "; + if ( value & FormatFeatureFlagBits::eBlitSrc ) + result += "BlitSrc | "; + if ( value & FormatFeatureFlagBits::eBlitDst ) + result += "BlitDst | "; + if ( value & FormatFeatureFlagBits::eSampledImageFilterLinear ) + result += "SampledImageFilterLinear | "; + if ( value & FormatFeatureFlagBits::eTransferSrc ) + result += "TransferSrc | "; + if ( value & FormatFeatureFlagBits::eTransferDst ) + result += "TransferDst | "; + if ( value & FormatFeatureFlagBits::eMidpointChromaSamples ) + result += "MidpointChromaSamples | "; + if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter ) + result += "SampledImageYcbcrConversionLinearFilter | "; + if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter ) + result += "SampledImageYcbcrConversionSeparateReconstructionFilter | "; + if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit ) + result += "SampledImageYcbcrConversionChromaReconstructionExplicit | "; + if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable ) + result += "SampledImageYcbcrConversionChromaReconstructionExplicitForceable | "; + if ( value & FormatFeatureFlagBits::eDisjoint ) + result += "Disjoint | "; + if ( value & FormatFeatureFlagBits::eCositedChromaSamples ) + result += "CositedChromaSamples | "; + if ( value & FormatFeatureFlagBits::eSampledImageFilterMinmax ) + result += "SampledImageFilterMinmax | "; + if ( value & FormatFeatureFlagBits::eSampledImageFilterCubicIMG ) + result += "SampledImageFilterCubicIMG | "; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & FormatFeatureFlagBits::eVideoDecodeOutputKHR ) + result += "VideoDecodeOutputKHR | "; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & FormatFeatureFlagBits::eVideoDecodeDpbKHR ) + result += "VideoDecodeDpbKHR | "; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & FormatFeatureFlagBits::eVideoEncodeInputKHR ) + result += "VideoEncodeInputKHR | "; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & FormatFeatureFlagBits::eVideoEncodeDpbKHR ) + result += "VideoEncodeDpbKHR | "; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + if ( value & FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR ) + result += "AccelerationStructureVertexBufferKHR | "; + if ( value & FormatFeatureFlagBits::eFragmentDensityMapEXT ) + result += "FragmentDensityMapEXT | "; + if ( value & FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR ) + result += "FragmentShadingRateAttachmentKHR | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + + using FramebufferCreateFlags = Flags; + + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(FramebufferCreateFlagBits::eImageless) + allFlags = VkFlags( FramebufferCreateFlagBits::eImageless ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator|( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags + operator|( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return FramebufferCreateFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator&( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags + operator&(FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT { return FramebufferCreateFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator^( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags + operator^( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return FramebufferCreateFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator~( FramebufferCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator~( FramebufferCreateFlagBits bits ) + VULKAN_HPP_NOEXCEPT { return ~( FramebufferCreateFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlags value ) + VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & FramebufferCreateFlagBits::eImageless ) result += "Imageless | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & FramebufferCreateFlagBits::eImageless ) + result += "Imageless | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using GeometryFlagsNV = Flags; + using GeometryFlagsKHR = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(GeometryFlagBitsNV::eOpaque) | VkFlags(GeometryFlagBitsNV::eNoDuplicateAnyHitInvocation) + allFlags = VkFlags( GeometryFlagBitsKHR::eOpaque ) | VkFlags( GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsNV operator|( GeometryFlagBitsNV bit0, GeometryFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator|( GeometryFlagBitsKHR bit0, + GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { - return GeometryFlagsNV( bit0 ) | bit1; + return GeometryFlagsKHR( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsNV operator&( GeometryFlagBitsNV bit0, GeometryFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator&(GeometryFlagBitsKHR bit0, + GeometryFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT { - return GeometryFlagsNV( bit0 ) & bit1; + return GeometryFlagsKHR( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsNV operator^( GeometryFlagBitsNV bit0, GeometryFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator^( GeometryFlagBitsKHR bit0, + GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { - return GeometryFlagsNV( bit0 ) ^ bit1; + return GeometryFlagsKHR( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsNV operator~( GeometryFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator~( GeometryFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT { - return ~( GeometryFlagsNV( bits ) ); + return ~( GeometryFlagsKHR( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( GeometryFlagsNV value ) + using GeometryFlagsNV = GeometryFlagsKHR; + + VULKAN_HPP_INLINE std::string to_string( GeometryFlagsKHR value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & GeometryFlagBitsNV::eOpaque ) result += "Opaque | "; - if ( value & GeometryFlagBitsNV::eNoDuplicateAnyHitInvocation ) result += "NoDuplicateAnyHitInvocation | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & GeometryFlagBitsKHR::eOpaque ) + result += "Opaque | "; + if ( value & GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation ) + result += "NoDuplicateAnyHitInvocation | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using GeometryInstanceFlagsNV = Flags; + using GeometryInstanceFlagsKHR = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(GeometryInstanceFlagBitsNV::eTriangleCullDisable) | VkFlags(GeometryInstanceFlagBitsNV::eTriangleFrontCounterclockwise) | VkFlags(GeometryInstanceFlagBitsNV::eForceOpaque) | VkFlags(GeometryInstanceFlagBitsNV::eForceNoOpaque) + allFlags = VkFlags( GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable ) | + VkFlags( GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise ) | + VkFlags( GeometryInstanceFlagBitsKHR::eForceOpaque ) | + VkFlags( GeometryInstanceFlagBitsKHR::eForceNoOpaque ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsNV operator|( GeometryInstanceFlagBitsNV bit0, GeometryInstanceFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR + operator|( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { - return GeometryInstanceFlagsNV( bit0 ) | bit1; + return GeometryInstanceFlagsKHR( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsNV operator&( GeometryInstanceFlagBitsNV bit0, GeometryInstanceFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR + operator&(GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT { - return GeometryInstanceFlagsNV( bit0 ) & bit1; + return GeometryInstanceFlagsKHR( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsNV operator^( GeometryInstanceFlagBitsNV bit0, GeometryInstanceFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR + operator^( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { - return GeometryInstanceFlagsNV( bit0 ) ^ bit1; + return GeometryInstanceFlagsKHR( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsNV operator~( GeometryInstanceFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator~( GeometryInstanceFlagBitsKHR bits ) + VULKAN_HPP_NOEXCEPT { - return ~( GeometryInstanceFlagsNV( bits ) ); + return ~( GeometryInstanceFlagsKHR( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagsNV value ) + using GeometryInstanceFlagsNV = GeometryInstanceFlagsKHR; + + VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagsKHR value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & GeometryInstanceFlagBitsNV::eTriangleCullDisable ) result += "TriangleCullDisable | "; - if ( value & GeometryInstanceFlagBitsNV::eTriangleFrontCounterclockwise ) result += "TriangleFrontCounterclockwise | "; - if ( value & GeometryInstanceFlagBitsNV::eForceOpaque ) result += "ForceOpaque | "; - if ( value & GeometryInstanceFlagBitsNV::eForceNoOpaque ) result += "ForceNoOpaque | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable ) + result += "TriangleFacingCullDisable | "; + if ( value & GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise ) + result += "TriangleFrontCounterclockwise | "; + if ( value & GeometryInstanceFlagBitsKHR::eForceOpaque ) + result += "ForceOpaque | "; + if ( value & GeometryInstanceFlagBitsKHR::eForceNoOpaque ) + result += "ForceNoOpaque | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - enum class HeadlessSurfaceCreateFlagBitsEXT - {}; + enum class HeadlessSurfaceCreateFlagBitsEXT : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagBitsEXT ) { return "(void)"; } - using HeadlessSurfaceCreateFlagsEXT = Flags; + using HeadlessSurfaceCreateFlagsEXT = Flags; - VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagsEXT ) + VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagsEXT ) { return "{}"; } -#ifdef VK_USE_PLATFORM_IOS_MVK - enum class IOSSurfaceCreateFlagBitsMVK - {}; +#if defined( VK_USE_PLATFORM_IOS_MVK ) + enum class IOSSurfaceCreateFlagBitsMVK : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagBitsMVK ) { return "(void)"; } - using IOSSurfaceCreateFlagsMVK = Flags; + using IOSSurfaceCreateFlagsMVK = Flags; - VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagsMVK ) + VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagsMVK ) { return "{}"; } #endif /*VK_USE_PLATFORM_IOS_MVK*/ - using ImageAspectFlags = Flags; + using ImageAspectFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(ImageAspectFlagBits::eColor) | VkFlags(ImageAspectFlagBits::eDepth) | VkFlags(ImageAspectFlagBits::eStencil) | VkFlags(ImageAspectFlagBits::eMetadata) | VkFlags(ImageAspectFlagBits::ePlane0) | VkFlags(ImageAspectFlagBits::ePlane1) | VkFlags(ImageAspectFlagBits::ePlane2) | VkFlags(ImageAspectFlagBits::eMemoryPlane0EXT) | VkFlags(ImageAspectFlagBits::eMemoryPlane1EXT) | VkFlags(ImageAspectFlagBits::eMemoryPlane2EXT) | VkFlags(ImageAspectFlagBits::eMemoryPlane3EXT) + allFlags = VkFlags( ImageAspectFlagBits::eColor ) | VkFlags( ImageAspectFlagBits::eDepth ) | + VkFlags( ImageAspectFlagBits::eStencil ) | VkFlags( ImageAspectFlagBits::eMetadata ) | + VkFlags( ImageAspectFlagBits::ePlane0 ) | VkFlags( ImageAspectFlagBits::ePlane1 ) | + VkFlags( ImageAspectFlagBits::ePlane2 ) | VkFlags( ImageAspectFlagBits::eMemoryPlane0EXT ) | + VkFlags( ImageAspectFlagBits::eMemoryPlane1EXT ) | VkFlags( ImageAspectFlagBits::eMemoryPlane2EXT ) | + VkFlags( ImageAspectFlagBits::eMemoryPlane3EXT ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator|( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator|( ImageAspectFlagBits bit0, + ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ImageAspectFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator&( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator&(ImageAspectFlagBits bit0, + ImageAspectFlagBits bit1)VULKAN_HPP_NOEXCEPT { return ImageAspectFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator^( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator^( ImageAspectFlagBits bit0, + ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ImageAspectFlags( bit0 ) ^ bit1; } @@ -10276,46 +15264,71 @@ namespace VULKAN_HPP_NAMESPACE return ~( ImageAspectFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( ImageAspectFlags value ) + VULKAN_HPP_INLINE std::string to_string( ImageAspectFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & ImageAspectFlagBits::eColor ) result += "Color | "; - if ( value & ImageAspectFlagBits::eDepth ) result += "Depth | "; - if ( value & ImageAspectFlagBits::eStencil ) result += "Stencil | "; - if ( value & ImageAspectFlagBits::eMetadata ) result += "Metadata | "; - if ( value & ImageAspectFlagBits::ePlane0 ) result += "Plane0 | "; - if ( value & ImageAspectFlagBits::ePlane1 ) result += "Plane1 | "; - if ( value & ImageAspectFlagBits::ePlane2 ) result += "Plane2 | "; - if ( value & ImageAspectFlagBits::eMemoryPlane0EXT ) result += "MemoryPlane0EXT | "; - if ( value & ImageAspectFlagBits::eMemoryPlane1EXT ) result += "MemoryPlane1EXT | "; - if ( value & ImageAspectFlagBits::eMemoryPlane2EXT ) result += "MemoryPlane2EXT | "; - if ( value & ImageAspectFlagBits::eMemoryPlane3EXT ) result += "MemoryPlane3EXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - using ImageCreateFlags = Flags; + if ( value & ImageAspectFlagBits::eColor ) + result += "Color | "; + if ( value & ImageAspectFlagBits::eDepth ) + result += "Depth | "; + if ( value & ImageAspectFlagBits::eStencil ) + result += "Stencil | "; + if ( value & ImageAspectFlagBits::eMetadata ) + result += "Metadata | "; + if ( value & ImageAspectFlagBits::ePlane0 ) + result += "Plane0 | "; + if ( value & ImageAspectFlagBits::ePlane1 ) + result += "Plane1 | "; + if ( value & ImageAspectFlagBits::ePlane2 ) + result += "Plane2 | "; + if ( value & ImageAspectFlagBits::eMemoryPlane0EXT ) + result += "MemoryPlane0EXT | "; + if ( value & ImageAspectFlagBits::eMemoryPlane1EXT ) + result += "MemoryPlane1EXT | "; + if ( value & ImageAspectFlagBits::eMemoryPlane2EXT ) + result += "MemoryPlane2EXT | "; + if ( value & ImageAspectFlagBits::eMemoryPlane3EXT ) + result += "MemoryPlane3EXT | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + + using ImageCreateFlags = Flags; - template <> struct FlagTraits - { - enum - { - allFlags = VkFlags(ImageCreateFlagBits::eSparseBinding) | VkFlags(ImageCreateFlagBits::eSparseResidency) | VkFlags(ImageCreateFlagBits::eSparseAliased) | VkFlags(ImageCreateFlagBits::eMutableFormat) | VkFlags(ImageCreateFlagBits::eCubeCompatible) | VkFlags(ImageCreateFlagBits::eAlias) | VkFlags(ImageCreateFlagBits::eSplitInstanceBindRegions) | VkFlags(ImageCreateFlagBits::e2DArrayCompatible) | VkFlags(ImageCreateFlagBits::eBlockTexelViewCompatible) | VkFlags(ImageCreateFlagBits::eExtendedUsage) | VkFlags(ImageCreateFlagBits::eProtected) | VkFlags(ImageCreateFlagBits::eDisjoint) | VkFlags(ImageCreateFlagBits::eCornerSampledNV) | VkFlags(ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT) | VkFlags(ImageCreateFlagBits::eSubsampledEXT) + template <> + struct FlagTraits + { + enum : VkFlags + { + allFlags = VkFlags( ImageCreateFlagBits::eSparseBinding ) | VkFlags( ImageCreateFlagBits::eSparseResidency ) | + VkFlags( ImageCreateFlagBits::eSparseAliased ) | VkFlags( ImageCreateFlagBits::eMutableFormat ) | + VkFlags( ImageCreateFlagBits::eCubeCompatible ) | VkFlags( ImageCreateFlagBits::eAlias ) | + VkFlags( ImageCreateFlagBits::eSplitInstanceBindRegions ) | + VkFlags( ImageCreateFlagBits::e2DArrayCompatible ) | + VkFlags( ImageCreateFlagBits::eBlockTexelViewCompatible ) | + VkFlags( ImageCreateFlagBits::eExtendedUsage ) | VkFlags( ImageCreateFlagBits::eProtected ) | + VkFlags( ImageCreateFlagBits::eDisjoint ) | VkFlags( ImageCreateFlagBits::eCornerSampledNV ) | + VkFlags( ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT ) | + VkFlags( ImageCreateFlagBits::eSubsampledEXT ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator|( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator|( ImageCreateFlagBits bit0, + ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ImageCreateFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator&( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator&(ImageCreateFlagBits bit0, + ImageCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT { return ImageCreateFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator^( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator^( ImageCreateFlagBits bit0, + ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ImageCreateFlags( bit0 ) ^ bit1; } @@ -10325,67 +15338,98 @@ namespace VULKAN_HPP_NAMESPACE return ~( ImageCreateFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( ImageCreateFlags value ) + VULKAN_HPP_INLINE std::string to_string( ImageCreateFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & ImageCreateFlagBits::eSparseBinding ) result += "SparseBinding | "; - if ( value & ImageCreateFlagBits::eSparseResidency ) result += "SparseResidency | "; - if ( value & ImageCreateFlagBits::eSparseAliased ) result += "SparseAliased | "; - if ( value & ImageCreateFlagBits::eMutableFormat ) result += "MutableFormat | "; - if ( value & ImageCreateFlagBits::eCubeCompatible ) result += "CubeCompatible | "; - if ( value & ImageCreateFlagBits::eAlias ) result += "Alias | "; - if ( value & ImageCreateFlagBits::eSplitInstanceBindRegions ) result += "SplitInstanceBindRegions | "; - if ( value & ImageCreateFlagBits::e2DArrayCompatible ) result += "2DArrayCompatible | "; - if ( value & ImageCreateFlagBits::eBlockTexelViewCompatible ) result += "BlockTexelViewCompatible | "; - if ( value & ImageCreateFlagBits::eExtendedUsage ) result += "ExtendedUsage | "; - if ( value & ImageCreateFlagBits::eProtected ) result += "Protected | "; - if ( value & ImageCreateFlagBits::eDisjoint ) result += "Disjoint | "; - if ( value & ImageCreateFlagBits::eCornerSampledNV ) result += "CornerSampledNV | "; - if ( value & ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT ) result += "SampleLocationsCompatibleDepthEXT | "; - if ( value & ImageCreateFlagBits::eSubsampledEXT ) result += "SubsampledEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - -#ifdef VK_USE_PLATFORM_FUCHSIA - enum class ImagePipeSurfaceCreateFlagBitsFUCHSIA - {}; + if ( value & ImageCreateFlagBits::eSparseBinding ) + result += "SparseBinding | "; + if ( value & ImageCreateFlagBits::eSparseResidency ) + result += "SparseResidency | "; + if ( value & ImageCreateFlagBits::eSparseAliased ) + result += "SparseAliased | "; + if ( value & ImageCreateFlagBits::eMutableFormat ) + result += "MutableFormat | "; + if ( value & ImageCreateFlagBits::eCubeCompatible ) + result += "CubeCompatible | "; + if ( value & ImageCreateFlagBits::eAlias ) + result += "Alias | "; + if ( value & ImageCreateFlagBits::eSplitInstanceBindRegions ) + result += "SplitInstanceBindRegions | "; + if ( value & ImageCreateFlagBits::e2DArrayCompatible ) + result += "2DArrayCompatible | "; + if ( value & ImageCreateFlagBits::eBlockTexelViewCompatible ) + result += "BlockTexelViewCompatible | "; + if ( value & ImageCreateFlagBits::eExtendedUsage ) + result += "ExtendedUsage | "; + if ( value & ImageCreateFlagBits::eProtected ) + result += "Protected | "; + if ( value & ImageCreateFlagBits::eDisjoint ) + result += "Disjoint | "; + if ( value & ImageCreateFlagBits::eCornerSampledNV ) + result += "CornerSampledNV | "; + if ( value & ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT ) + result += "SampleLocationsCompatibleDepthEXT | "; + if ( value & ImageCreateFlagBits::eSubsampledEXT ) + result += "SubsampledEXT | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + enum class ImagePipeSurfaceCreateFlagBitsFUCHSIA : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagBitsFUCHSIA ) { return "(void)"; } - using ImagePipeSurfaceCreateFlagsFUCHSIA = Flags; + using ImagePipeSurfaceCreateFlagsFUCHSIA = Flags; - VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagsFUCHSIA ) + VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagsFUCHSIA ) { return "{}"; } #endif /*VK_USE_PLATFORM_FUCHSIA*/ - using ImageUsageFlags = Flags; + using ImageUsageFlags = Flags; - template <> struct FlagTraits - { - enum - { - allFlags = VkFlags(ImageUsageFlagBits::eTransferSrc) | VkFlags(ImageUsageFlagBits::eTransferDst) | VkFlags(ImageUsageFlagBits::eSampled) | VkFlags(ImageUsageFlagBits::eStorage) | VkFlags(ImageUsageFlagBits::eColorAttachment) | VkFlags(ImageUsageFlagBits::eDepthStencilAttachment) | VkFlags(ImageUsageFlagBits::eTransientAttachment) | VkFlags(ImageUsageFlagBits::eInputAttachment) | VkFlags(ImageUsageFlagBits::eShadingRateImageNV) | VkFlags(ImageUsageFlagBits::eFragmentDensityMapEXT) + template <> + struct FlagTraits + { + enum : VkFlags + { + allFlags = + VkFlags( ImageUsageFlagBits::eTransferSrc ) | VkFlags( ImageUsageFlagBits::eTransferDst ) | + VkFlags( ImageUsageFlagBits::eSampled ) | VkFlags( ImageUsageFlagBits::eStorage ) | + VkFlags( ImageUsageFlagBits::eColorAttachment ) | VkFlags( ImageUsageFlagBits::eDepthStencilAttachment ) | + VkFlags( ImageUsageFlagBits::eTransientAttachment ) | VkFlags( ImageUsageFlagBits::eInputAttachment ) +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + | VkFlags( ImageUsageFlagBits::eVideoDecodeDstKHR ) | VkFlags( ImageUsageFlagBits::eVideoDecodeSrcKHR ) | + VkFlags( ImageUsageFlagBits::eVideoDecodeDpbKHR ) | VkFlags( ImageUsageFlagBits::eVideoEncodeDstKHR ) | + VkFlags( ImageUsageFlagBits::eVideoEncodeSrcKHR ) | VkFlags( ImageUsageFlagBits::eVideoEncodeDpbKHR ) +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + | VkFlags( ImageUsageFlagBits::eShadingRateImageNV ) | VkFlags( ImageUsageFlagBits::eFragmentDensityMapEXT ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator|( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator|( ImageUsageFlagBits bit0, + ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ImageUsageFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator&( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator&(ImageUsageFlagBits bit0, + ImageUsageFlagBits bit1)VULKAN_HPP_NOEXCEPT { return ImageUsageFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator^( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator^( ImageUsageFlagBits bit0, + ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ImageUsageFlags( bit0 ) ^ bit1; } @@ -10395,193 +15439,309 @@ namespace VULKAN_HPP_NAMESPACE return ~( ImageUsageFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( ImageUsageFlags value ) + VULKAN_HPP_INLINE std::string to_string( ImageUsageFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & ImageUsageFlagBits::eTransferSrc ) result += "TransferSrc | "; - if ( value & ImageUsageFlagBits::eTransferDst ) result += "TransferDst | "; - if ( value & ImageUsageFlagBits::eSampled ) result += "Sampled | "; - if ( value & ImageUsageFlagBits::eStorage ) result += "Storage | "; - if ( value & ImageUsageFlagBits::eColorAttachment ) result += "ColorAttachment | "; - if ( value & ImageUsageFlagBits::eDepthStencilAttachment ) result += "DepthStencilAttachment | "; - if ( value & ImageUsageFlagBits::eTransientAttachment ) result += "TransientAttachment | "; - if ( value & ImageUsageFlagBits::eInputAttachment ) result += "InputAttachment | "; - if ( value & ImageUsageFlagBits::eShadingRateImageNV ) result += "ShadingRateImageNV | "; - if ( value & ImageUsageFlagBits::eFragmentDensityMapEXT ) result += "FragmentDensityMapEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - using ImageViewCreateFlags = Flags; + if ( value & ImageUsageFlagBits::eTransferSrc ) + result += "TransferSrc | "; + if ( value & ImageUsageFlagBits::eTransferDst ) + result += "TransferDst | "; + if ( value & ImageUsageFlagBits::eSampled ) + result += "Sampled | "; + if ( value & ImageUsageFlagBits::eStorage ) + result += "Storage | "; + if ( value & ImageUsageFlagBits::eColorAttachment ) + result += "ColorAttachment | "; + if ( value & ImageUsageFlagBits::eDepthStencilAttachment ) + result += "DepthStencilAttachment | "; + if ( value & ImageUsageFlagBits::eTransientAttachment ) + result += "TransientAttachment | "; + if ( value & ImageUsageFlagBits::eInputAttachment ) + result += "InputAttachment | "; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & ImageUsageFlagBits::eVideoDecodeDstKHR ) + result += "VideoDecodeDstKHR | "; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & ImageUsageFlagBits::eVideoDecodeSrcKHR ) + result += "VideoDecodeSrcKHR | "; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & ImageUsageFlagBits::eVideoDecodeDpbKHR ) + result += "VideoDecodeDpbKHR | "; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & ImageUsageFlagBits::eVideoEncodeDstKHR ) + result += "VideoEncodeDstKHR | "; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & ImageUsageFlagBits::eVideoEncodeSrcKHR ) + result += "VideoEncodeSrcKHR | "; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & ImageUsageFlagBits::eVideoEncodeDpbKHR ) + result += "VideoEncodeDpbKHR | "; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + if ( value & ImageUsageFlagBits::eShadingRateImageNV ) + result += "ShadingRateImageNV | "; + if ( value & ImageUsageFlagBits::eFragmentDensityMapEXT ) + result += "FragmentDensityMapEXT | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + + using ImageViewCreateFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT) + allFlags = VkFlags( ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT ) | + VkFlags( ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator|( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags + operator|( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ImageViewCreateFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator&( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator&(ImageViewCreateFlagBits bit0, + ImageViewCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT { return ImageViewCreateFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator^( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags + operator^( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ImageViewCreateFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator~( ImageViewCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator~( ImageViewCreateFlagBits bits ) + VULKAN_HPP_NOEXCEPT { return ~( ImageViewCreateFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlags value ) + VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT ) result += "FragmentDensityMapDynamicEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT ) + result += "FragmentDensityMapDynamicEXT | "; + if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT ) + result += "FragmentDensityMapDeferredEXT | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using IndirectCommandsLayoutUsageFlagsNVX = Flags; + using IndirectCommandsLayoutUsageFlagsNV = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(IndirectCommandsLayoutUsageFlagBitsNVX::eUnorderedSequences) | VkFlags(IndirectCommandsLayoutUsageFlagBitsNVX::eSparseSequences) | VkFlags(IndirectCommandsLayoutUsageFlagBitsNVX::eEmptyExecutions) | VkFlags(IndirectCommandsLayoutUsageFlagBitsNVX::eIndexedSequences) + allFlags = VkFlags( IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess ) | + VkFlags( IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences ) | + VkFlags( IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNVX operator|( IndirectCommandsLayoutUsageFlagBitsNVX bit0, IndirectCommandsLayoutUsageFlagBitsNVX bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator|( + IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT { - return IndirectCommandsLayoutUsageFlagsNVX( bit0 ) | bit1; + return IndirectCommandsLayoutUsageFlagsNV( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNVX operator&( IndirectCommandsLayoutUsageFlagBitsNVX bit0, IndirectCommandsLayoutUsageFlagBitsNVX bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV + operator&(IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1)VULKAN_HPP_NOEXCEPT { - return IndirectCommandsLayoutUsageFlagsNVX( bit0 ) & bit1; + return IndirectCommandsLayoutUsageFlagsNV( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNVX operator^( IndirectCommandsLayoutUsageFlagBitsNVX bit0, IndirectCommandsLayoutUsageFlagBitsNVX bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator^( + IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT { - return IndirectCommandsLayoutUsageFlagsNVX( bit0 ) ^ bit1; + return IndirectCommandsLayoutUsageFlagsNV( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNVX operator~( IndirectCommandsLayoutUsageFlagBitsNVX bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV + operator~( IndirectCommandsLayoutUsageFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT { - return ~( IndirectCommandsLayoutUsageFlagsNVX( bits ) ); + return ~( IndirectCommandsLayoutUsageFlagsNV( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagsNVX value ) + VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagsNV value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & IndirectCommandsLayoutUsageFlagBitsNVX::eUnorderedSequences ) result += "UnorderedSequences | "; - if ( value & IndirectCommandsLayoutUsageFlagBitsNVX::eSparseSequences ) result += "SparseSequences | "; - if ( value & IndirectCommandsLayoutUsageFlagBitsNVX::eEmptyExecutions ) result += "EmptyExecutions | "; - if ( value & IndirectCommandsLayoutUsageFlagBitsNVX::eIndexedSequences ) result += "IndexedSequences | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess ) + result += "ExplicitPreprocess | "; + if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences ) + result += "IndexedSequences | "; + if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences ) + result += "UnorderedSequences | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + + using IndirectStateFlagsNV = Flags; + + template <> + struct FlagTraits + { + enum : VkFlags + { + allFlags = VkFlags( IndirectStateFlagBitsNV::eFlagFrontface ) + }; + }; + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV + operator|( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT + { + return IndirectStateFlagsNV( bit0 ) | bit1; + } + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator&(IndirectStateFlagBitsNV bit0, + IndirectStateFlagBitsNV bit1)VULKAN_HPP_NOEXCEPT + { + return IndirectStateFlagsNV( bit0 ) & bit1; } - using InstanceCreateFlags = Flags; + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV + operator^( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT + { + return IndirectStateFlagsNV( bit0 ) ^ bit1; + } - VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlags ) + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator~( IndirectStateFlagBitsNV bits ) + VULKAN_HPP_NOEXCEPT + { + return ~( IndirectStateFlagsNV( bits ) ); + } + + VULKAN_HPP_INLINE std::string to_string( IndirectStateFlagsNV value ) + { + if ( !value ) + return "{}"; + std::string result; + + if ( value & IndirectStateFlagBitsNV::eFlagFrontface ) + result += "FlagFrontface | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + + using InstanceCreateFlags = Flags; + + VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlags ) { return "{}"; } -#ifdef VK_USE_PLATFORM_MACOS_MVK - enum class MacOSSurfaceCreateFlagBitsMVK - {}; +#if defined( VK_USE_PLATFORM_MACOS_MVK ) + enum class MacOSSurfaceCreateFlagBitsMVK : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagBitsMVK ) { return "(void)"; } - using MacOSSurfaceCreateFlagsMVK = Flags; + using MacOSSurfaceCreateFlagsMVK = Flags; - VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagsMVK ) + VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagsMVK ) { return "{}"; } #endif /*VK_USE_PLATFORM_MACOS_MVK*/ - using MemoryAllocateFlags = Flags; + using MemoryAllocateFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(MemoryAllocateFlagBits::eDeviceMask) | VkFlags(MemoryAllocateFlagBits::eDeviceAddress) | VkFlags(MemoryAllocateFlagBits::eDeviceAddressCaptureReplay) + allFlags = VkFlags( MemoryAllocateFlagBits::eDeviceMask ) | VkFlags( MemoryAllocateFlagBits::eDeviceAddress ) | + VkFlags( MemoryAllocateFlagBits::eDeviceAddressCaptureReplay ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator|( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags + operator|( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return MemoryAllocateFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator&( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator&(MemoryAllocateFlagBits bit0, + MemoryAllocateFlagBits bit1)VULKAN_HPP_NOEXCEPT { return MemoryAllocateFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator^( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags + operator^( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return MemoryAllocateFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator~( MemoryAllocateFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator~( MemoryAllocateFlagBits bits ) + VULKAN_HPP_NOEXCEPT { return ~( MemoryAllocateFlags( bits ) ); } using MemoryAllocateFlagsKHR = MemoryAllocateFlags; - VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlags value ) + VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & MemoryAllocateFlagBits::eDeviceMask ) result += "DeviceMask | "; - if ( value & MemoryAllocateFlagBits::eDeviceAddress ) result += "DeviceAddress | "; - if ( value & MemoryAllocateFlagBits::eDeviceAddressCaptureReplay ) result += "DeviceAddressCaptureReplay | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & MemoryAllocateFlagBits::eDeviceMask ) + result += "DeviceMask | "; + if ( value & MemoryAllocateFlagBits::eDeviceAddress ) + result += "DeviceAddress | "; + if ( value & MemoryAllocateFlagBits::eDeviceAddressCaptureReplay ) + result += "DeviceAddressCaptureReplay | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using MemoryHeapFlags = Flags; + using MemoryHeapFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(MemoryHeapFlagBits::eDeviceLocal) | VkFlags(MemoryHeapFlagBits::eMultiInstance) + allFlags = VkFlags( MemoryHeapFlagBits::eDeviceLocal ) | VkFlags( MemoryHeapFlagBits::eMultiInstance ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator|( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator|( MemoryHeapFlagBits bit0, + MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return MemoryHeapFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator&( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator&(MemoryHeapFlagBits bit0, + MemoryHeapFlagBits bit1)VULKAN_HPP_NOEXCEPT { return MemoryHeapFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator^( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator^( MemoryHeapFlagBits bit0, + MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return MemoryHeapFlags( bit0 ) ^ bit1; } @@ -10591,534 +15751,738 @@ namespace VULKAN_HPP_NAMESPACE return ~( MemoryHeapFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlags value ) + VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & MemoryHeapFlagBits::eDeviceLocal ) result += "DeviceLocal | "; - if ( value & MemoryHeapFlagBits::eMultiInstance ) result += "MultiInstance | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & MemoryHeapFlagBits::eDeviceLocal ) + result += "DeviceLocal | "; + if ( value & MemoryHeapFlagBits::eMultiInstance ) + result += "MultiInstance | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - enum class MemoryMapFlagBits - {}; + enum class MemoryMapFlagBits : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( MemoryMapFlagBits ) { return "(void)"; } - using MemoryMapFlags = Flags; + using MemoryMapFlags = Flags; - VULKAN_HPP_INLINE std::string to_string( MemoryMapFlags ) + VULKAN_HPP_INLINE std::string to_string( MemoryMapFlags ) { return "{}"; } - using MemoryPropertyFlags = Flags; + using MemoryPropertyFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(MemoryPropertyFlagBits::eDeviceLocal) | VkFlags(MemoryPropertyFlagBits::eHostVisible) | VkFlags(MemoryPropertyFlagBits::eHostCoherent) | VkFlags(MemoryPropertyFlagBits::eHostCached) | VkFlags(MemoryPropertyFlagBits::eLazilyAllocated) | VkFlags(MemoryPropertyFlagBits::eProtected) | VkFlags(MemoryPropertyFlagBits::eDeviceCoherentAMD) | VkFlags(MemoryPropertyFlagBits::eDeviceUncachedAMD) + allFlags = VkFlags( MemoryPropertyFlagBits::eDeviceLocal ) | VkFlags( MemoryPropertyFlagBits::eHostVisible ) | + VkFlags( MemoryPropertyFlagBits::eHostCoherent ) | VkFlags( MemoryPropertyFlagBits::eHostCached ) | + VkFlags( MemoryPropertyFlagBits::eLazilyAllocated ) | VkFlags( MemoryPropertyFlagBits::eProtected ) | + VkFlags( MemoryPropertyFlagBits::eDeviceCoherentAMD ) | + VkFlags( MemoryPropertyFlagBits::eDeviceUncachedAMD ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator|( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags + operator|( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return MemoryPropertyFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator&( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator&(MemoryPropertyFlagBits bit0, + MemoryPropertyFlagBits bit1)VULKAN_HPP_NOEXCEPT { return MemoryPropertyFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator^( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags + operator^( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return MemoryPropertyFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator~( MemoryPropertyFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator~( MemoryPropertyFlagBits bits ) + VULKAN_HPP_NOEXCEPT { return ~( MemoryPropertyFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlags value ) + VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & MemoryPropertyFlagBits::eDeviceLocal ) result += "DeviceLocal | "; - if ( value & MemoryPropertyFlagBits::eHostVisible ) result += "HostVisible | "; - if ( value & MemoryPropertyFlagBits::eHostCoherent ) result += "HostCoherent | "; - if ( value & MemoryPropertyFlagBits::eHostCached ) result += "HostCached | "; - if ( value & MemoryPropertyFlagBits::eLazilyAllocated ) result += "LazilyAllocated | "; - if ( value & MemoryPropertyFlagBits::eProtected ) result += "Protected | "; - if ( value & MemoryPropertyFlagBits::eDeviceCoherentAMD ) result += "DeviceCoherentAMD | "; - if ( value & MemoryPropertyFlagBits::eDeviceUncachedAMD ) result += "DeviceUncachedAMD | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & MemoryPropertyFlagBits::eDeviceLocal ) + result += "DeviceLocal | "; + if ( value & MemoryPropertyFlagBits::eHostVisible ) + result += "HostVisible | "; + if ( value & MemoryPropertyFlagBits::eHostCoherent ) + result += "HostCoherent | "; + if ( value & MemoryPropertyFlagBits::eHostCached ) + result += "HostCached | "; + if ( value & MemoryPropertyFlagBits::eLazilyAllocated ) + result += "LazilyAllocated | "; + if ( value & MemoryPropertyFlagBits::eProtected ) + result += "Protected | "; + if ( value & MemoryPropertyFlagBits::eDeviceCoherentAMD ) + result += "DeviceCoherentAMD | "; + if ( value & MemoryPropertyFlagBits::eDeviceUncachedAMD ) + result += "DeviceUncachedAMD | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } -#ifdef VK_USE_PLATFORM_METAL_EXT - enum class MetalSurfaceCreateFlagBitsEXT - {}; +#if defined( VK_USE_PLATFORM_METAL_EXT ) + enum class MetalSurfaceCreateFlagBitsEXT : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagBitsEXT ) { return "(void)"; } - using MetalSurfaceCreateFlagsEXT = Flags; + using MetalSurfaceCreateFlagsEXT = Flags; - VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagsEXT ) + VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagsEXT ) { return "{}"; } #endif /*VK_USE_PLATFORM_METAL_EXT*/ - using ObjectEntryUsageFlagsNVX = Flags; + using PeerMemoryFeatureFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(ObjectEntryUsageFlagBitsNVX::eGraphics) | VkFlags(ObjectEntryUsageFlagBitsNVX::eCompute) + allFlags = VkFlags( PeerMemoryFeatureFlagBits::eCopySrc ) | VkFlags( PeerMemoryFeatureFlagBits::eCopyDst ) | + VkFlags( PeerMemoryFeatureFlagBits::eGenericSrc ) | VkFlags( PeerMemoryFeatureFlagBits::eGenericDst ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ObjectEntryUsageFlagsNVX operator|( ObjectEntryUsageFlagBitsNVX bit0, ObjectEntryUsageFlagBitsNVX bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags + operator|( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { - return ObjectEntryUsageFlagsNVX( bit0 ) | bit1; + return PeerMemoryFeatureFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ObjectEntryUsageFlagsNVX operator&( ObjectEntryUsageFlagBitsNVX bit0, ObjectEntryUsageFlagBitsNVX bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags + operator&(PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1)VULKAN_HPP_NOEXCEPT { - return ObjectEntryUsageFlagsNVX( bit0 ) & bit1; + return PeerMemoryFeatureFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ObjectEntryUsageFlagsNVX operator^( ObjectEntryUsageFlagBitsNVX bit0, ObjectEntryUsageFlagBitsNVX bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags + operator^( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { - return ObjectEntryUsageFlagsNVX( bit0 ) ^ bit1; + return PeerMemoryFeatureFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ObjectEntryUsageFlagsNVX operator~( ObjectEntryUsageFlagBitsNVX bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator~( PeerMemoryFeatureFlagBits bits ) + VULKAN_HPP_NOEXCEPT { - return ~( ObjectEntryUsageFlagsNVX( bits ) ); + return ~( PeerMemoryFeatureFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( ObjectEntryUsageFlagsNVX value ) + using PeerMemoryFeatureFlagsKHR = PeerMemoryFeatureFlags; + + VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & ObjectEntryUsageFlagBitsNVX::eGraphics ) result += "Graphics | "; - if ( value & ObjectEntryUsageFlagBitsNVX::eCompute ) result += "Compute | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & PeerMemoryFeatureFlagBits::eCopySrc ) + result += "CopySrc | "; + if ( value & PeerMemoryFeatureFlagBits::eCopyDst ) + result += "CopyDst | "; + if ( value & PeerMemoryFeatureFlagBits::eGenericSrc ) + result += "GenericSrc | "; + if ( value & PeerMemoryFeatureFlagBits::eGenericDst ) + result += "GenericDst | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using PeerMemoryFeatureFlags = Flags; + using PerformanceCounterDescriptionFlagsKHR = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(PeerMemoryFeatureFlagBits::eCopySrc) | VkFlags(PeerMemoryFeatureFlagBits::eCopyDst) | VkFlags(PeerMemoryFeatureFlagBits::eGenericSrc) | VkFlags(PeerMemoryFeatureFlagBits::eGenericDst) + allFlags = VkFlags( PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting ) | + VkFlags( PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator|( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator|( + PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { - return PeerMemoryFeatureFlags( bit0 ) | bit1; + return PerformanceCounterDescriptionFlagsKHR( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator&( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator&( + PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT { - return PeerMemoryFeatureFlags( bit0 ) & bit1; + return PerformanceCounterDescriptionFlagsKHR( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator^( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator^( + PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { - return PeerMemoryFeatureFlags( bit0 ) ^ bit1; + return PerformanceCounterDescriptionFlagsKHR( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator~( PeerMemoryFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR + operator~( PerformanceCounterDescriptionFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT { - return ~( PeerMemoryFeatureFlags( bits ) ); + return ~( PerformanceCounterDescriptionFlagsKHR( bits ) ); } - using PeerMemoryFeatureFlagsKHR = PeerMemoryFeatureFlags; - - VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlags value ) + VULKAN_HPP_INLINE std::string to_string( PerformanceCounterDescriptionFlagsKHR value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & PeerMemoryFeatureFlagBits::eCopySrc ) result += "CopySrc | "; - if ( value & PeerMemoryFeatureFlagBits::eCopyDst ) result += "CopyDst | "; - if ( value & PeerMemoryFeatureFlagBits::eGenericSrc ) result += "GenericSrc | "; - if ( value & PeerMemoryFeatureFlagBits::eGenericDst ) result += "GenericDst | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting ) + result += "PerformanceImpacting | "; + if ( value & PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted ) + result += "ConcurrentlyImpacted | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using PerformanceCounterDescriptionFlagsKHR = Flags; + using PipelineCacheCreateFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting) | VkFlags(PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted) + allFlags = VkFlags( PipelineCacheCreateFlagBits::eExternallySynchronizedEXT ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator|( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags + operator|( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { - return PerformanceCounterDescriptionFlagsKHR( bit0 ) | bit1; + return PipelineCacheCreateFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator&( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags + operator&(PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT { - return PerformanceCounterDescriptionFlagsKHR( bit0 ) & bit1; + return PipelineCacheCreateFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator^( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags + operator^( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { - return PerformanceCounterDescriptionFlagsKHR( bit0 ) ^ bit1; + return PipelineCacheCreateFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator~( PerformanceCounterDescriptionFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator~( PipelineCacheCreateFlagBits bits ) + VULKAN_HPP_NOEXCEPT { - return ~( PerformanceCounterDescriptionFlagsKHR( bits ) ); + return ~( PipelineCacheCreateFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( PerformanceCounterDescriptionFlagsKHR value ) + VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting ) result += "PerformanceImpacting | "; - if ( value & PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted ) result += "ConcurrentlyImpacted | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & PipelineCacheCreateFlagBits::eExternallySynchronizedEXT ) + result += "ExternallySynchronizedEXT | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using PipelineCacheCreateFlags = Flags; + enum class PipelineColorBlendStateCreateFlagBits : VkFlags + { + }; - VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlags ) + VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlagBits ) { - return "{}"; + return "(void)"; } - using PipelineColorBlendStateCreateFlags = Flags; + using PipelineColorBlendStateCreateFlags = Flags; - VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlags ) + VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlags ) { return "{}"; } - using PipelineCompilerControlFlagsAMD = Flags; + using PipelineCompilerControlFlagsAMD = Flags; - VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagsAMD ) + VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagsAMD ) { return "{}"; } - enum class PipelineCoverageModulationStateCreateFlagBitsNV - {}; + enum class PipelineCoverageModulationStateCreateFlagBitsNV : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagBitsNV ) { return "(void)"; } - using PipelineCoverageModulationStateCreateFlagsNV = Flags; + using PipelineCoverageModulationStateCreateFlagsNV = Flags; - VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagsNV ) + VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagsNV ) { return "{}"; } - enum class PipelineCoverageReductionStateCreateFlagBitsNV - {}; + enum class PipelineCoverageReductionStateCreateFlagBitsNV : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagBitsNV ) { return "(void)"; } - using PipelineCoverageReductionStateCreateFlagsNV = Flags; + using PipelineCoverageReductionStateCreateFlagsNV = Flags; - VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagsNV ) + VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagsNV ) { return "{}"; } - enum class PipelineCoverageToColorStateCreateFlagBitsNV - {}; + enum class PipelineCoverageToColorStateCreateFlagBitsNV : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagBitsNV ) { return "(void)"; } - using PipelineCoverageToColorStateCreateFlagsNV = Flags; + using PipelineCoverageToColorStateCreateFlagsNV = Flags; - VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagsNV ) + VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagsNV ) { return "{}"; } - using PipelineCreateFlags = Flags; + using PipelineCreateFlags = Flags; - template <> struct FlagTraits - { - enum - { - allFlags = VkFlags(PipelineCreateFlagBits::eDisableOptimization) | VkFlags(PipelineCreateFlagBits::eAllowDerivatives) | VkFlags(PipelineCreateFlagBits::eDerivative) | VkFlags(PipelineCreateFlagBits::eViewIndexFromDeviceIndex) | VkFlags(PipelineCreateFlagBits::eDispatchBase) | VkFlags(PipelineCreateFlagBits::eDeferCompileNV) | VkFlags(PipelineCreateFlagBits::eCaptureStatisticsKHR) | VkFlags(PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR) + template <> + struct FlagTraits + { + enum : VkFlags + { + allFlags = + VkFlags( PipelineCreateFlagBits::eDisableOptimization ) | VkFlags( PipelineCreateFlagBits::eAllowDerivatives ) | + VkFlags( PipelineCreateFlagBits::eDerivative ) | VkFlags( PipelineCreateFlagBits::eViewIndexFromDeviceIndex ) | + VkFlags( PipelineCreateFlagBits::eDispatchBase ) | + VkFlags( PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR ) | + VkFlags( PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR ) | + VkFlags( PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR ) | + VkFlags( PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR ) | + VkFlags( PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR ) | + VkFlags( PipelineCreateFlagBits::eRayTracingSkipAabbsKHR ) | + VkFlags( PipelineCreateFlagBits::eRayTracingShaderGroupHandleCaptureReplayKHR ) | + VkFlags( PipelineCreateFlagBits::eDeferCompileNV ) | VkFlags( PipelineCreateFlagBits::eCaptureStatisticsKHR ) | + VkFlags( PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR ) | + VkFlags( PipelineCreateFlagBits::eIndirectBindableNV ) | VkFlags( PipelineCreateFlagBits::eLibraryKHR ) | + VkFlags( PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT ) | + VkFlags( PipelineCreateFlagBits::eEarlyReturnOnFailureEXT ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator|( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags + operator|( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return PipelineCreateFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator&( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator&(PipelineCreateFlagBits bit0, + PipelineCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT { return PipelineCreateFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator^( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags + operator^( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return PipelineCreateFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator~( PipelineCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator~( PipelineCreateFlagBits bits ) + VULKAN_HPP_NOEXCEPT { return ~( PipelineCreateFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlags value ) + VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & PipelineCreateFlagBits::eDisableOptimization ) result += "DisableOptimization | "; - if ( value & PipelineCreateFlagBits::eAllowDerivatives ) result += "AllowDerivatives | "; - if ( value & PipelineCreateFlagBits::eDerivative ) result += "Derivative | "; - if ( value & PipelineCreateFlagBits::eViewIndexFromDeviceIndex ) result += "ViewIndexFromDeviceIndex | "; - if ( value & PipelineCreateFlagBits::eDispatchBase ) result += "DispatchBase | "; - if ( value & PipelineCreateFlagBits::eDeferCompileNV ) result += "DeferCompileNV | "; - if ( value & PipelineCreateFlagBits::eCaptureStatisticsKHR ) result += "CaptureStatisticsKHR | "; - if ( value & PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR ) result += "CaptureInternalRepresentationsKHR | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - using PipelineCreationFeedbackFlagsEXT = Flags; + if ( value & PipelineCreateFlagBits::eDisableOptimization ) + result += "DisableOptimization | "; + if ( value & PipelineCreateFlagBits::eAllowDerivatives ) + result += "AllowDerivatives | "; + if ( value & PipelineCreateFlagBits::eDerivative ) + result += "Derivative | "; + if ( value & PipelineCreateFlagBits::eViewIndexFromDeviceIndex ) + result += "ViewIndexFromDeviceIndex | "; + if ( value & PipelineCreateFlagBits::eDispatchBase ) + result += "DispatchBase | "; + if ( value & PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR ) + result += "RayTracingNoNullAnyHitShadersKHR | "; + if ( value & PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR ) + result += "RayTracingNoNullClosestHitShadersKHR | "; + if ( value & PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR ) + result += "RayTracingNoNullMissShadersKHR | "; + if ( value & PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR ) + result += "RayTracingNoNullIntersectionShadersKHR | "; + if ( value & PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR ) + result += "RayTracingSkipTrianglesKHR | "; + if ( value & PipelineCreateFlagBits::eRayTracingSkipAabbsKHR ) + result += "RayTracingSkipAabbsKHR | "; + if ( value & PipelineCreateFlagBits::eRayTracingShaderGroupHandleCaptureReplayKHR ) + result += "RayTracingShaderGroupHandleCaptureReplayKHR | "; + if ( value & PipelineCreateFlagBits::eDeferCompileNV ) + result += "DeferCompileNV | "; + if ( value & PipelineCreateFlagBits::eCaptureStatisticsKHR ) + result += "CaptureStatisticsKHR | "; + if ( value & PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR ) + result += "CaptureInternalRepresentationsKHR | "; + if ( value & PipelineCreateFlagBits::eIndirectBindableNV ) + result += "IndirectBindableNV | "; + if ( value & PipelineCreateFlagBits::eLibraryKHR ) + result += "LibraryKHR | "; + if ( value & PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT ) + result += "FailOnPipelineCompileRequiredEXT | "; + if ( value & PipelineCreateFlagBits::eEarlyReturnOnFailureEXT ) + result += "EarlyReturnOnFailureEXT | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + + using PipelineCreationFeedbackFlagsEXT = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(PipelineCreationFeedbackFlagBitsEXT::eValid) | VkFlags(PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit) | VkFlags(PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration) + allFlags = VkFlags( PipelineCreationFeedbackFlagBitsEXT::eValid ) | + VkFlags( PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit ) | + VkFlags( PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator|( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT + operator|( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT { return PipelineCreationFeedbackFlagsEXT( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator&( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT + operator&(PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT { return PipelineCreationFeedbackFlagsEXT( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator^( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT + operator^( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT { return PipelineCreationFeedbackFlagsEXT( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator~( PipelineCreationFeedbackFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT + operator~( PipelineCreationFeedbackFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT { return ~( PipelineCreationFeedbackFlagsEXT( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagsEXT value ) + VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagsEXT value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & PipelineCreationFeedbackFlagBitsEXT::eValid ) result += "Valid | "; - if ( value & PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit ) result += "ApplicationPipelineCacheHit | "; - if ( value & PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration ) result += "BasePipelineAcceleration | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & PipelineCreationFeedbackFlagBitsEXT::eValid ) + result += "Valid | "; + if ( value & PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit ) + result += "ApplicationPipelineCacheHit | "; + if ( value & PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration ) + result += "BasePipelineAcceleration | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using PipelineDepthStencilStateCreateFlags = Flags; + enum class PipelineDepthStencilStateCreateFlagBits : VkFlags + { + }; - VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlags ) + VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlagBits ) + { + return "(void)"; + } + + using PipelineDepthStencilStateCreateFlags = Flags; + + VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlags ) { return "{}"; } - enum class PipelineDiscardRectangleStateCreateFlagBitsEXT - {}; + enum class PipelineDiscardRectangleStateCreateFlagBitsEXT : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagBitsEXT ) { return "(void)"; } - using PipelineDiscardRectangleStateCreateFlagsEXT = Flags; + using PipelineDiscardRectangleStateCreateFlagsEXT = Flags; - VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagsEXT ) + VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagsEXT ) { return "{}"; } - using PipelineDynamicStateCreateFlags = Flags; + enum class PipelineDynamicStateCreateFlagBits : VkFlags + { + }; - VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlags ) + VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlagBits ) + { + return "(void)"; + } + + using PipelineDynamicStateCreateFlags = Flags; + + VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlags ) { return "{}"; } - using PipelineInputAssemblyStateCreateFlags = Flags; + enum class PipelineInputAssemblyStateCreateFlagBits : VkFlags + { + }; - VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlags ) + VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlagBits ) + { + return "(void)"; + } + + using PipelineInputAssemblyStateCreateFlags = Flags; + + VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlags ) { return "{}"; } - using PipelineLayoutCreateFlags = Flags; + enum class PipelineLayoutCreateFlagBits : VkFlags + { + }; - VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlags ) + VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlagBits ) + { + return "(void)"; + } + + using PipelineLayoutCreateFlags = Flags; + + VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlags ) { return "{}"; } - using PipelineMultisampleStateCreateFlags = Flags; + enum class PipelineMultisampleStateCreateFlagBits : VkFlags + { + }; + + VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlagBits ) + { + return "(void)"; + } + + using PipelineMultisampleStateCreateFlags = Flags; - VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlags ) + VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlags ) { return "{}"; } - enum class PipelineRasterizationConservativeStateCreateFlagBitsEXT - {}; + enum class PipelineRasterizationConservativeStateCreateFlagBitsEXT : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagBitsEXT ) { return "(void)"; } - using PipelineRasterizationConservativeStateCreateFlagsEXT = Flags; + using PipelineRasterizationConservativeStateCreateFlagsEXT = + Flags; - VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagsEXT ) + VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagsEXT ) { return "{}"; } - enum class PipelineRasterizationDepthClipStateCreateFlagBitsEXT - {}; + enum class PipelineRasterizationDepthClipStateCreateFlagBitsEXT : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagBitsEXT ) { return "(void)"; } - using PipelineRasterizationDepthClipStateCreateFlagsEXT = Flags; + using PipelineRasterizationDepthClipStateCreateFlagsEXT = Flags; - VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagsEXT ) + VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagsEXT ) { return "{}"; } - using PipelineRasterizationStateCreateFlags = Flags; + enum class PipelineRasterizationStateCreateFlagBits : VkFlags + { + }; - VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlags ) + VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlagBits ) + { + return "(void)"; + } + + using PipelineRasterizationStateCreateFlags = Flags; + + VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlags ) { return "{}"; } - enum class PipelineRasterizationStateStreamCreateFlagBitsEXT - {}; + enum class PipelineRasterizationStateStreamCreateFlagBitsEXT : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagBitsEXT ) { return "(void)"; } - using PipelineRasterizationStateStreamCreateFlagsEXT = Flags; + using PipelineRasterizationStateStreamCreateFlagsEXT = Flags; - VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagsEXT ) + VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagsEXT ) { return "{}"; } - using PipelineShaderStageCreateFlags = Flags; + using PipelineShaderStageCreateFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT) | VkFlags(PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT) + allFlags = VkFlags( PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT ) | + VkFlags( PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator|( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags + operator|( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return PipelineShaderStageCreateFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator&( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags + operator&(PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT { return PipelineShaderStageCreateFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator^( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags + operator^( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return PipelineShaderStageCreateFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator~( PipelineShaderStageCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags + operator~( PipelineShaderStageCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT { return ~( PipelineShaderStageCreateFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlags value ) + VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT ) result += "AllowVaryingSubgroupSizeEXT | "; - if ( value & PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT ) result += "RequireFullSubgroupsEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT ) + result += "AllowVaryingSubgroupSizeEXT | "; + if ( value & PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT ) + result += "RequireFullSubgroupsEXT | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using PipelineStageFlags = Flags; + using PipelineStageFlags = Flags; - template <> struct FlagTraits - { - enum - { - allFlags = VkFlags(PipelineStageFlagBits::eTopOfPipe) | VkFlags(PipelineStageFlagBits::eDrawIndirect) | VkFlags(PipelineStageFlagBits::eVertexInput) | VkFlags(PipelineStageFlagBits::eVertexShader) | VkFlags(PipelineStageFlagBits::eTessellationControlShader) | VkFlags(PipelineStageFlagBits::eTessellationEvaluationShader) | VkFlags(PipelineStageFlagBits::eGeometryShader) | VkFlags(PipelineStageFlagBits::eFragmentShader) | VkFlags(PipelineStageFlagBits::eEarlyFragmentTests) | VkFlags(PipelineStageFlagBits::eLateFragmentTests) | VkFlags(PipelineStageFlagBits::eColorAttachmentOutput) | VkFlags(PipelineStageFlagBits::eComputeShader) | VkFlags(PipelineStageFlagBits::eTransfer) | VkFlags(PipelineStageFlagBits::eBottomOfPipe) | VkFlags(PipelineStageFlagBits::eHost) | VkFlags(PipelineStageFlagBits::eAllGraphics) | VkFlags(PipelineStageFlagBits::eAllCommands) | VkFlags(PipelineStageFlagBits::eTransformFeedbackEXT) | VkFlags(PipelineStageFlagBits::eConditionalRenderingEXT) | VkFlags(PipelineStageFlagBits::eCommandProcessNVX) | VkFlags(PipelineStageFlagBits::eShadingRateImageNV) | VkFlags(PipelineStageFlagBits::eRayTracingShaderNV) | VkFlags(PipelineStageFlagBits::eAccelerationStructureBuildNV) | VkFlags(PipelineStageFlagBits::eTaskShaderNV) | VkFlags(PipelineStageFlagBits::eMeshShaderNV) | VkFlags(PipelineStageFlagBits::eFragmentDensityProcessEXT) + template <> + struct FlagTraits + { + enum : VkFlags + { + allFlags = + VkFlags( PipelineStageFlagBits::eTopOfPipe ) | VkFlags( PipelineStageFlagBits::eDrawIndirect ) | + VkFlags( PipelineStageFlagBits::eVertexInput ) | VkFlags( PipelineStageFlagBits::eVertexShader ) | + VkFlags( PipelineStageFlagBits::eTessellationControlShader ) | + VkFlags( PipelineStageFlagBits::eTessellationEvaluationShader ) | + VkFlags( PipelineStageFlagBits::eGeometryShader ) | VkFlags( PipelineStageFlagBits::eFragmentShader ) | + VkFlags( PipelineStageFlagBits::eEarlyFragmentTests ) | VkFlags( PipelineStageFlagBits::eLateFragmentTests ) | + VkFlags( PipelineStageFlagBits::eColorAttachmentOutput ) | VkFlags( PipelineStageFlagBits::eComputeShader ) | + VkFlags( PipelineStageFlagBits::eTransfer ) | VkFlags( PipelineStageFlagBits::eBottomOfPipe ) | + VkFlags( PipelineStageFlagBits::eHost ) | VkFlags( PipelineStageFlagBits::eAllGraphics ) | + VkFlags( PipelineStageFlagBits::eAllCommands ) | VkFlags( PipelineStageFlagBits::eTransformFeedbackEXT ) | + VkFlags( PipelineStageFlagBits::eConditionalRenderingEXT ) | + VkFlags( PipelineStageFlagBits::eAccelerationStructureBuildKHR ) | + VkFlags( PipelineStageFlagBits::eRayTracingShaderKHR ) | VkFlags( PipelineStageFlagBits::eShadingRateImageNV ) | + VkFlags( PipelineStageFlagBits::eTaskShaderNV ) | VkFlags( PipelineStageFlagBits::eMeshShaderNV ) | + VkFlags( PipelineStageFlagBits::eFragmentDensityProcessEXT ) | + VkFlags( PipelineStageFlagBits::eCommandPreprocessNV ) | VkFlags( PipelineStageFlagBits::eNoneKHR ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator|( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator|( PipelineStageFlagBits bit0, + PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return PipelineStageFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator&( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator&(PipelineStageFlagBits bit0, + PipelineStageFlagBits bit1)VULKAN_HPP_NOEXCEPT { return PipelineStageFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator^( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator^( PipelineStageFlagBits bit0, + PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return PipelineStageFlags( bit0 ) ^ bit1; } @@ -11128,97 +16492,310 @@ namespace VULKAN_HPP_NAMESPACE return ~( PipelineStageFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( PipelineStageFlags value ) + VULKAN_HPP_INLINE std::string to_string( PipelineStageFlags value ) + { + if ( !value ) + return "{}"; + std::string result; + + if ( value & PipelineStageFlagBits::eTopOfPipe ) + result += "TopOfPipe | "; + if ( value & PipelineStageFlagBits::eDrawIndirect ) + result += "DrawIndirect | "; + if ( value & PipelineStageFlagBits::eVertexInput ) + result += "VertexInput | "; + if ( value & PipelineStageFlagBits::eVertexShader ) + result += "VertexShader | "; + if ( value & PipelineStageFlagBits::eTessellationControlShader ) + result += "TessellationControlShader | "; + if ( value & PipelineStageFlagBits::eTessellationEvaluationShader ) + result += "TessellationEvaluationShader | "; + if ( value & PipelineStageFlagBits::eGeometryShader ) + result += "GeometryShader | "; + if ( value & PipelineStageFlagBits::eFragmentShader ) + result += "FragmentShader | "; + if ( value & PipelineStageFlagBits::eEarlyFragmentTests ) + result += "EarlyFragmentTests | "; + if ( value & PipelineStageFlagBits::eLateFragmentTests ) + result += "LateFragmentTests | "; + if ( value & PipelineStageFlagBits::eColorAttachmentOutput ) + result += "ColorAttachmentOutput | "; + if ( value & PipelineStageFlagBits::eComputeShader ) + result += "ComputeShader | "; + if ( value & PipelineStageFlagBits::eTransfer ) + result += "Transfer | "; + if ( value & PipelineStageFlagBits::eBottomOfPipe ) + result += "BottomOfPipe | "; + if ( value & PipelineStageFlagBits::eHost ) + result += "Host | "; + if ( value & PipelineStageFlagBits::eAllGraphics ) + result += "AllGraphics | "; + if ( value & PipelineStageFlagBits::eAllCommands ) + result += "AllCommands | "; + if ( value & PipelineStageFlagBits::eTransformFeedbackEXT ) + result += "TransformFeedbackEXT | "; + if ( value & PipelineStageFlagBits::eConditionalRenderingEXT ) + result += "ConditionalRenderingEXT | "; + if ( value & PipelineStageFlagBits::eAccelerationStructureBuildKHR ) + result += "AccelerationStructureBuildKHR | "; + if ( value & PipelineStageFlagBits::eRayTracingShaderKHR ) + result += "RayTracingShaderKHR | "; + if ( value & PipelineStageFlagBits::eShadingRateImageNV ) + result += "ShadingRateImageNV | "; + if ( value & PipelineStageFlagBits::eTaskShaderNV ) + result += "TaskShaderNV | "; + if ( value & PipelineStageFlagBits::eMeshShaderNV ) + result += "MeshShaderNV | "; + if ( value & PipelineStageFlagBits::eFragmentDensityProcessEXT ) + result += "FragmentDensityProcessEXT | "; + if ( value & PipelineStageFlagBits::eCommandPreprocessNV ) + result += "CommandPreprocessNV | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + + using PipelineStageFlags2KHR = Flags; + + template <> + struct FlagTraits + { + enum : VkFlags64 + { + allFlags = + VkFlags64( PipelineStageFlagBits2KHR::eNone ) | VkFlags64( PipelineStageFlagBits2KHR::eTopOfPipe ) | + VkFlags64( PipelineStageFlagBits2KHR::eDrawIndirect ) | VkFlags64( PipelineStageFlagBits2KHR::eVertexInput ) | + VkFlags64( PipelineStageFlagBits2KHR::eVertexShader ) | + VkFlags64( PipelineStageFlagBits2KHR::eTessellationControlShader ) | + VkFlags64( PipelineStageFlagBits2KHR::eTessellationEvaluationShader ) | + VkFlags64( PipelineStageFlagBits2KHR::eGeometryShader ) | + VkFlags64( PipelineStageFlagBits2KHR::eFragmentShader ) | + VkFlags64( PipelineStageFlagBits2KHR::eEarlyFragmentTests ) | + VkFlags64( PipelineStageFlagBits2KHR::eLateFragmentTests ) | + VkFlags64( PipelineStageFlagBits2KHR::eColorAttachmentOutput ) | + VkFlags64( PipelineStageFlagBits2KHR::eComputeShader ) | VkFlags64( PipelineStageFlagBits2KHR::eAllTransfer ) | + VkFlags64( PipelineStageFlagBits2KHR::eBottomOfPipe ) | VkFlags64( PipelineStageFlagBits2KHR::eHost ) | + VkFlags64( PipelineStageFlagBits2KHR::eAllGraphics ) | VkFlags64( PipelineStageFlagBits2KHR::eAllCommands ) | + VkFlags64( PipelineStageFlagBits2KHR::eCopy ) | VkFlags64( PipelineStageFlagBits2KHR::eResolve ) | + VkFlags64( PipelineStageFlagBits2KHR::eBlit ) | VkFlags64( PipelineStageFlagBits2KHR::eClear ) | + VkFlags64( PipelineStageFlagBits2KHR::eIndexInput ) | + VkFlags64( PipelineStageFlagBits2KHR::eVertexAttributeInput ) | + VkFlags64( PipelineStageFlagBits2KHR::ePreRasterizationShaders ) +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + | VkFlags64( PipelineStageFlagBits2KHR::eVideoDecode ) | VkFlags64( PipelineStageFlagBits2KHR::eVideoEncode ) +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + | VkFlags64( PipelineStageFlagBits2KHR::eTransformFeedbackExt ) | + VkFlags64( PipelineStageFlagBits2KHR::eConditionalRenderingExt ) | + VkFlags64( PipelineStageFlagBits2KHR::eCommandPreprocessNv ) | + VkFlags64( PipelineStageFlagBits2KHR::eFragmentShadingRateAttachment ) | + VkFlags64( PipelineStageFlagBits2KHR::eAccelerationStructureBuild ) | + VkFlags64( PipelineStageFlagBits2KHR::eRayTracingShader ) | + VkFlags64( PipelineStageFlagBits2KHR::eFragmentDensityProcessExt ) | + VkFlags64( PipelineStageFlagBits2KHR::eTaskShaderNv ) | VkFlags64( PipelineStageFlagBits2KHR::eMeshShaderNv ) + }; + }; + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR + operator|( PipelineStageFlagBits2KHR bit0, PipelineStageFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT + { + return PipelineStageFlags2KHR( bit0 ) | bit1; + } + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR + operator&(PipelineStageFlagBits2KHR bit0, PipelineStageFlagBits2KHR bit1)VULKAN_HPP_NOEXCEPT + { + return PipelineStageFlags2KHR( bit0 ) & bit1; + } + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR + operator^( PipelineStageFlagBits2KHR bit0, PipelineStageFlagBits2KHR bit1 ) VULKAN_HPP_NOEXCEPT + { + return PipelineStageFlags2KHR( bit0 ) ^ bit1; + } + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags2KHR operator~( PipelineStageFlagBits2KHR bits ) + VULKAN_HPP_NOEXCEPT + { + return ~( PipelineStageFlags2KHR( bits ) ); + } + + VULKAN_HPP_INLINE std::string to_string( PipelineStageFlags2KHR value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & PipelineStageFlagBits::eTopOfPipe ) result += "TopOfPipe | "; - if ( value & PipelineStageFlagBits::eDrawIndirect ) result += "DrawIndirect | "; - if ( value & PipelineStageFlagBits::eVertexInput ) result += "VertexInput | "; - if ( value & PipelineStageFlagBits::eVertexShader ) result += "VertexShader | "; - if ( value & PipelineStageFlagBits::eTessellationControlShader ) result += "TessellationControlShader | "; - if ( value & PipelineStageFlagBits::eTessellationEvaluationShader ) result += "TessellationEvaluationShader | "; - if ( value & PipelineStageFlagBits::eGeometryShader ) result += "GeometryShader | "; - if ( value & PipelineStageFlagBits::eFragmentShader ) result += "FragmentShader | "; - if ( value & PipelineStageFlagBits::eEarlyFragmentTests ) result += "EarlyFragmentTests | "; - if ( value & PipelineStageFlagBits::eLateFragmentTests ) result += "LateFragmentTests | "; - if ( value & PipelineStageFlagBits::eColorAttachmentOutput ) result += "ColorAttachmentOutput | "; - if ( value & PipelineStageFlagBits::eComputeShader ) result += "ComputeShader | "; - if ( value & PipelineStageFlagBits::eTransfer ) result += "Transfer | "; - if ( value & PipelineStageFlagBits::eBottomOfPipe ) result += "BottomOfPipe | "; - if ( value & PipelineStageFlagBits::eHost ) result += "Host | "; - if ( value & PipelineStageFlagBits::eAllGraphics ) result += "AllGraphics | "; - if ( value & PipelineStageFlagBits::eAllCommands ) result += "AllCommands | "; - if ( value & PipelineStageFlagBits::eTransformFeedbackEXT ) result += "TransformFeedbackEXT | "; - if ( value & PipelineStageFlagBits::eConditionalRenderingEXT ) result += "ConditionalRenderingEXT | "; - if ( value & PipelineStageFlagBits::eCommandProcessNVX ) result += "CommandProcessNVX | "; - if ( value & PipelineStageFlagBits::eShadingRateImageNV ) result += "ShadingRateImageNV | "; - if ( value & PipelineStageFlagBits::eRayTracingShaderNV ) result += "RayTracingShaderNV | "; - if ( value & PipelineStageFlagBits::eAccelerationStructureBuildNV ) result += "AccelerationStructureBuildNV | "; - if ( value & PipelineStageFlagBits::eTaskShaderNV ) result += "TaskShaderNV | "; - if ( value & PipelineStageFlagBits::eMeshShaderNV ) result += "MeshShaderNV | "; - if ( value & PipelineStageFlagBits::eFragmentDensityProcessEXT ) result += "FragmentDensityProcessEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - using PipelineTessellationStateCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlags ) + if ( value & PipelineStageFlagBits2KHR::eTopOfPipe ) + result += "TopOfPipe | "; + if ( value & PipelineStageFlagBits2KHR::eDrawIndirect ) + result += "DrawIndirect | "; + if ( value & PipelineStageFlagBits2KHR::eVertexInput ) + result += "VertexInput | "; + if ( value & PipelineStageFlagBits2KHR::eVertexShader ) + result += "VertexShader | "; + if ( value & PipelineStageFlagBits2KHR::eTessellationControlShader ) + result += "TessellationControlShader | "; + if ( value & PipelineStageFlagBits2KHR::eTessellationEvaluationShader ) + result += "TessellationEvaluationShader | "; + if ( value & PipelineStageFlagBits2KHR::eGeometryShader ) + result += "GeometryShader | "; + if ( value & PipelineStageFlagBits2KHR::eFragmentShader ) + result += "FragmentShader | "; + if ( value & PipelineStageFlagBits2KHR::eEarlyFragmentTests ) + result += "EarlyFragmentTests | "; + if ( value & PipelineStageFlagBits2KHR::eLateFragmentTests ) + result += "LateFragmentTests | "; + if ( value & PipelineStageFlagBits2KHR::eColorAttachmentOutput ) + result += "ColorAttachmentOutput | "; + if ( value & PipelineStageFlagBits2KHR::eComputeShader ) + result += "ComputeShader | "; + if ( value & PipelineStageFlagBits2KHR::eAllTransfer ) + result += "AllTransfer | "; + if ( value & PipelineStageFlagBits2KHR::eBottomOfPipe ) + result += "BottomOfPipe | "; + if ( value & PipelineStageFlagBits2KHR::eHost ) + result += "Host | "; + if ( value & PipelineStageFlagBits2KHR::eAllGraphics ) + result += "AllGraphics | "; + if ( value & PipelineStageFlagBits2KHR::eAllCommands ) + result += "AllCommands | "; + if ( value & PipelineStageFlagBits2KHR::eCopy ) + result += "Copy | "; + if ( value & PipelineStageFlagBits2KHR::eResolve ) + result += "Resolve | "; + if ( value & PipelineStageFlagBits2KHR::eBlit ) + result += "Blit | "; + if ( value & PipelineStageFlagBits2KHR::eClear ) + result += "Clear | "; + if ( value & PipelineStageFlagBits2KHR::eIndexInput ) + result += "IndexInput | "; + if ( value & PipelineStageFlagBits2KHR::eVertexAttributeInput ) + result += "VertexAttributeInput | "; + if ( value & PipelineStageFlagBits2KHR::ePreRasterizationShaders ) + result += "PreRasterizationShaders | "; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & PipelineStageFlagBits2KHR::eVideoDecode ) + result += "VideoDecode | "; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & PipelineStageFlagBits2KHR::eVideoEncode ) + result += "VideoEncode | "; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + if ( value & PipelineStageFlagBits2KHR::eTransformFeedbackExt ) + result += "TransformFeedbackExt | "; + if ( value & PipelineStageFlagBits2KHR::eConditionalRenderingExt ) + result += "ConditionalRenderingExt | "; + if ( value & PipelineStageFlagBits2KHR::eCommandPreprocessNv ) + result += "CommandPreprocessNv | "; + if ( value & PipelineStageFlagBits2KHR::eFragmentShadingRateAttachment ) + result += "FragmentShadingRateAttachment | "; + if ( value & PipelineStageFlagBits2KHR::eAccelerationStructureBuild ) + result += "AccelerationStructureBuild | "; + if ( value & PipelineStageFlagBits2KHR::eRayTracingShader ) + result += "RayTracingShader | "; + if ( value & PipelineStageFlagBits2KHR::eFragmentDensityProcessExt ) + result += "FragmentDensityProcessExt | "; + if ( value & PipelineStageFlagBits2KHR::eTaskShaderNv ) + result += "TaskShaderNv | "; + if ( value & PipelineStageFlagBits2KHR::eMeshShaderNv ) + result += "MeshShaderNv | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + + enum class PipelineTessellationStateCreateFlagBits : VkFlags + { + }; + + VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlagBits ) + { + return "(void)"; + } + + using PipelineTessellationStateCreateFlags = Flags; + + VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlags ) { return "{}"; } - using PipelineVertexInputStateCreateFlags = Flags; + enum class PipelineVertexInputStateCreateFlagBits : VkFlags + { + }; + + VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlagBits ) + { + return "(void)"; + } + + using PipelineVertexInputStateCreateFlags = Flags; - VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlags ) + VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlags ) { return "{}"; } - using PipelineViewportStateCreateFlags = Flags; + enum class PipelineViewportStateCreateFlagBits : VkFlags + { + }; + + VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlagBits ) + { + return "(void)"; + } + + using PipelineViewportStateCreateFlags = Flags; - VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlags ) + VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlags ) { return "{}"; } - enum class PipelineViewportSwizzleStateCreateFlagBitsNV - {}; + enum class PipelineViewportSwizzleStateCreateFlagBitsNV : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagBitsNV ) { return "(void)"; } - using PipelineViewportSwizzleStateCreateFlagsNV = Flags; + using PipelineViewportSwizzleStateCreateFlagsNV = Flags; - VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagsNV ) + VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagsNV ) { return "{}"; } - using QueryControlFlags = Flags; + using PrivateDataSlotCreateFlagsEXT = Flags; - template <> struct FlagTraits + VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagsEXT ) { - enum + return "{}"; + } + + using QueryControlFlags = Flags; + + template <> + struct FlagTraits + { + enum : VkFlags { - allFlags = VkFlags(QueryControlFlagBits::ePrecise) + allFlags = VkFlags( QueryControlFlagBits::ePrecise ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator|( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator|( QueryControlFlagBits bit0, + QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return QueryControlFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator&( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator&(QueryControlFlagBits bit0, + QueryControlFlagBits bit1)VULKAN_HPP_NOEXCEPT { return QueryControlFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator^( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator^( QueryControlFlagBits bit0, + QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return QueryControlFlags( bit0 ) ^ bit1; } @@ -11228,92 +16805,129 @@ namespace VULKAN_HPP_NAMESPACE return ~( QueryControlFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( QueryControlFlags value ) + VULKAN_HPP_INLINE std::string to_string( QueryControlFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & QueryControlFlagBits::ePrecise ) result += "Precise | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & QueryControlFlagBits::ePrecise ) + result += "Precise | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using QueryPipelineStatisticFlags = Flags; + using QueryPipelineStatisticFlags = Flags; - template <> struct FlagTraits - { - enum - { - allFlags = VkFlags(QueryPipelineStatisticFlagBits::eInputAssemblyVertices) | VkFlags(QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives) | VkFlags(QueryPipelineStatisticFlagBits::eVertexShaderInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eGeometryShaderInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives) | VkFlags(QueryPipelineStatisticFlagBits::eClippingInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eClippingPrimitives) | VkFlags(QueryPipelineStatisticFlagBits::eFragmentShaderInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches) | VkFlags(QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eComputeShaderInvocations) + template <> + struct FlagTraits + { + enum : VkFlags + { + allFlags = VkFlags( QueryPipelineStatisticFlagBits::eInputAssemblyVertices ) | + VkFlags( QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives ) | + VkFlags( QueryPipelineStatisticFlagBits::eVertexShaderInvocations ) | + VkFlags( QueryPipelineStatisticFlagBits::eGeometryShaderInvocations ) | + VkFlags( QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives ) | + VkFlags( QueryPipelineStatisticFlagBits::eClippingInvocations ) | + VkFlags( QueryPipelineStatisticFlagBits::eClippingPrimitives ) | + VkFlags( QueryPipelineStatisticFlagBits::eFragmentShaderInvocations ) | + VkFlags( QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches ) | + VkFlags( QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations ) | + VkFlags( QueryPipelineStatisticFlagBits::eComputeShaderInvocations ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator|( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags + operator|( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return QueryPipelineStatisticFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator&( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags + operator&(QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1)VULKAN_HPP_NOEXCEPT { return QueryPipelineStatisticFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator^( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags + operator^( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return QueryPipelineStatisticFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator~( QueryPipelineStatisticFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator~( QueryPipelineStatisticFlagBits bits ) + VULKAN_HPP_NOEXCEPT { return ~( QueryPipelineStatisticFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlags value ) + VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyVertices ) result += "InputAssemblyVertices | "; - if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives ) result += "InputAssemblyPrimitives | "; - if ( value & QueryPipelineStatisticFlagBits::eVertexShaderInvocations ) result += "VertexShaderInvocations | "; - if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderInvocations ) result += "GeometryShaderInvocations | "; - if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives ) result += "GeometryShaderPrimitives | "; - if ( value & QueryPipelineStatisticFlagBits::eClippingInvocations ) result += "ClippingInvocations | "; - if ( value & QueryPipelineStatisticFlagBits::eClippingPrimitives ) result += "ClippingPrimitives | "; - if ( value & QueryPipelineStatisticFlagBits::eFragmentShaderInvocations ) result += "FragmentShaderInvocations | "; - if ( value & QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches ) result += "TessellationControlShaderPatches | "; - if ( value & QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations ) result += "TessellationEvaluationShaderInvocations | "; - if ( value & QueryPipelineStatisticFlagBits::eComputeShaderInvocations ) result += "ComputeShaderInvocations | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - using QueryPoolCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlags ) + if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyVertices ) + result += "InputAssemblyVertices | "; + if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives ) + result += "InputAssemblyPrimitives | "; + if ( value & QueryPipelineStatisticFlagBits::eVertexShaderInvocations ) + result += "VertexShaderInvocations | "; + if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderInvocations ) + result += "GeometryShaderInvocations | "; + if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives ) + result += "GeometryShaderPrimitives | "; + if ( value & QueryPipelineStatisticFlagBits::eClippingInvocations ) + result += "ClippingInvocations | "; + if ( value & QueryPipelineStatisticFlagBits::eClippingPrimitives ) + result += "ClippingPrimitives | "; + if ( value & QueryPipelineStatisticFlagBits::eFragmentShaderInvocations ) + result += "FragmentShaderInvocations | "; + if ( value & QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches ) + result += "TessellationControlShaderPatches | "; + if ( value & QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations ) + result += "TessellationEvaluationShaderInvocations | "; + if ( value & QueryPipelineStatisticFlagBits::eComputeShaderInvocations ) + result += "ComputeShaderInvocations | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + + using QueryPoolCreateFlags = Flags; + + VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlags ) { return "{}"; } - using QueryResultFlags = Flags; + using QueryResultFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(QueryResultFlagBits::e64) | VkFlags(QueryResultFlagBits::eWait) | VkFlags(QueryResultFlagBits::eWithAvailability) | VkFlags(QueryResultFlagBits::ePartial) + allFlags = VkFlags( QueryResultFlagBits::e64 ) | VkFlags( QueryResultFlagBits::eWait ) | + VkFlags( QueryResultFlagBits::eWithAvailability ) | VkFlags( QueryResultFlagBits::ePartial ) +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + | VkFlags( QueryResultFlagBits::eWithStatusKHR ) +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator|( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator|( QueryResultFlagBits bit0, + QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return QueryResultFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator&( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator&(QueryResultFlagBits bit0, + QueryResultFlagBits bit1)VULKAN_HPP_NOEXCEPT { return QueryResultFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator^( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator^( QueryResultFlagBits bit0, + QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return QueryResultFlags( bit0 ) ^ bit1; } @@ -11323,39 +16937,56 @@ namespace VULKAN_HPP_NAMESPACE return ~( QueryResultFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( QueryResultFlags value ) + VULKAN_HPP_INLINE std::string to_string( QueryResultFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & QueryResultFlagBits::e64 ) result += "64 | "; - if ( value & QueryResultFlagBits::eWait ) result += "Wait | "; - if ( value & QueryResultFlagBits::eWithAvailability ) result += "WithAvailability | "; - if ( value & QueryResultFlagBits::ePartial ) result += "Partial | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & QueryResultFlagBits::e64 ) + result += "64 | "; + if ( value & QueryResultFlagBits::eWait ) + result += "Wait | "; + if ( value & QueryResultFlagBits::eWithAvailability ) + result += "WithAvailability | "; + if ( value & QueryResultFlagBits::ePartial ) + result += "Partial | "; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & QueryResultFlagBits::eWithStatusKHR ) + result += "WithStatusKHR | "; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using QueueFlags = Flags; + using QueueFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(QueueFlagBits::eGraphics) | VkFlags(QueueFlagBits::eCompute) | VkFlags(QueueFlagBits::eTransfer) | VkFlags(QueueFlagBits::eSparseBinding) | VkFlags(QueueFlagBits::eProtected) + allFlags = VkFlags( QueueFlagBits::eGraphics ) | VkFlags( QueueFlagBits::eCompute ) | + VkFlags( QueueFlagBits::eTransfer ) | VkFlags( QueueFlagBits::eSparseBinding ) | + VkFlags( QueueFlagBits::eProtected ) +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + | VkFlags( QueueFlagBits::eVideoDecodeKHR ) | VkFlags( QueueFlagBits::eVideoEncodeKHR ) +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator|( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator|( QueueFlagBits bit0, + QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return QueueFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator&( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator&(QueueFlagBits bit0, QueueFlagBits bit1)VULKAN_HPP_NOEXCEPT { return QueueFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator^( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator^( QueueFlagBits bit0, + QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return QueueFlags( bit0 ) ^ bit1; } @@ -11365,47 +16996,106 @@ namespace VULKAN_HPP_NAMESPACE return ~( QueueFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( QueueFlags value ) + VULKAN_HPP_INLINE std::string to_string( QueueFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & QueueFlagBits::eGraphics ) result += "Graphics | "; - if ( value & QueueFlagBits::eCompute ) result += "Compute | "; - if ( value & QueueFlagBits::eTransfer ) result += "Transfer | "; - if ( value & QueueFlagBits::eSparseBinding ) result += "SparseBinding | "; - if ( value & QueueFlagBits::eProtected ) result += "Protected | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & QueueFlagBits::eGraphics ) + result += "Graphics | "; + if ( value & QueueFlagBits::eCompute ) + result += "Compute | "; + if ( value & QueueFlagBits::eTransfer ) + result += "Transfer | "; + if ( value & QueueFlagBits::eSparseBinding ) + result += "SparseBinding | "; + if ( value & QueueFlagBits::eProtected ) + result += "Protected | "; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & QueueFlagBits::eVideoDecodeKHR ) + result += "VideoDecodeKHR | "; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & QueueFlagBits::eVideoEncodeKHR ) + result += "VideoEncodeKHR | "; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + + using RenderPassCreateFlags = Flags; + + template <> + struct FlagTraits + { + enum : VkFlags + { + allFlags = VkFlags( RenderPassCreateFlagBits::eTransformQCOM ) + }; + }; + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags + operator|( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + { + return RenderPassCreateFlags( bit0 ) | bit1; + } + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags + operator&(RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT + { + return RenderPassCreateFlags( bit0 ) & bit1; } - using RenderPassCreateFlags = Flags; + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags + operator^( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + { + return RenderPassCreateFlags( bit0 ) ^ bit1; + } - VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlags ) + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator~( RenderPassCreateFlagBits bits ) + VULKAN_HPP_NOEXCEPT { - return "{}"; + return ~( RenderPassCreateFlags( bits ) ); + } + + VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlags value ) + { + if ( !value ) + return "{}"; + std::string result; + + if ( value & RenderPassCreateFlagBits::eTransformQCOM ) + result += "TransformQCOM | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using ResolveModeFlags = Flags; + using ResolveModeFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(ResolveModeFlagBits::eNone) | VkFlags(ResolveModeFlagBits::eSampleZero) | VkFlags(ResolveModeFlagBits::eAverage) | VkFlags(ResolveModeFlagBits::eMin) | VkFlags(ResolveModeFlagBits::eMax) + allFlags = VkFlags( ResolveModeFlagBits::eNone ) | VkFlags( ResolveModeFlagBits::eSampleZero ) | + VkFlags( ResolveModeFlagBits::eAverage ) | VkFlags( ResolveModeFlagBits::eMin ) | + VkFlags( ResolveModeFlagBits::eMax ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator|( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator|( ResolveModeFlagBits bit0, + ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ResolveModeFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator&( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator&(ResolveModeFlagBits bit0, + ResolveModeFlagBits bit1)VULKAN_HPP_NOEXCEPT { return ResolveModeFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator^( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator^( ResolveModeFlagBits bit0, + ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ResolveModeFlags( bit0 ) ^ bit1; } @@ -11417,39 +17107,51 @@ namespace VULKAN_HPP_NAMESPACE using ResolveModeFlagsKHR = ResolveModeFlags; - VULKAN_HPP_INLINE std::string to_string( ResolveModeFlags value ) + VULKAN_HPP_INLINE std::string to_string( ResolveModeFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & ResolveModeFlagBits::eSampleZero ) result += "SampleZero | "; - if ( value & ResolveModeFlagBits::eAverage ) result += "Average | "; - if ( value & ResolveModeFlagBits::eMin ) result += "Min | "; - if ( value & ResolveModeFlagBits::eMax ) result += "Max | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & ResolveModeFlagBits::eSampleZero ) + result += "SampleZero | "; + if ( value & ResolveModeFlagBits::eAverage ) + result += "Average | "; + if ( value & ResolveModeFlagBits::eMin ) + result += "Min | "; + if ( value & ResolveModeFlagBits::eMax ) + result += "Max | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using SampleCountFlags = Flags; + using SampleCountFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(SampleCountFlagBits::e1) | VkFlags(SampleCountFlagBits::e2) | VkFlags(SampleCountFlagBits::e4) | VkFlags(SampleCountFlagBits::e8) | VkFlags(SampleCountFlagBits::e16) | VkFlags(SampleCountFlagBits::e32) | VkFlags(SampleCountFlagBits::e64) + allFlags = VkFlags( SampleCountFlagBits::e1 ) | VkFlags( SampleCountFlagBits::e2 ) | + VkFlags( SampleCountFlagBits::e4 ) | VkFlags( SampleCountFlagBits::e8 ) | + VkFlags( SampleCountFlagBits::e16 ) | VkFlags( SampleCountFlagBits::e32 ) | + VkFlags( SampleCountFlagBits::e64 ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator|( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator|( SampleCountFlagBits bit0, + SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return SampleCountFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator&( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator&(SampleCountFlagBits bit0, + SampleCountFlagBits bit1)VULKAN_HPP_NOEXCEPT { return SampleCountFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator^( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator^( SampleCountFlagBits bit0, + SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return SampleCountFlags( bit0 ) ^ bit1; } @@ -11459,42 +17161,55 @@ namespace VULKAN_HPP_NAMESPACE return ~( SampleCountFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( SampleCountFlags value ) + VULKAN_HPP_INLINE std::string to_string( SampleCountFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & SampleCountFlagBits::e1 ) result += "1 | "; - if ( value & SampleCountFlagBits::e2 ) result += "2 | "; - if ( value & SampleCountFlagBits::e4 ) result += "4 | "; - if ( value & SampleCountFlagBits::e8 ) result += "8 | "; - if ( value & SampleCountFlagBits::e16 ) result += "16 | "; - if ( value & SampleCountFlagBits::e32 ) result += "32 | "; - if ( value & SampleCountFlagBits::e64 ) result += "64 | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - using SamplerCreateFlags = Flags; + if ( value & SampleCountFlagBits::e1 ) + result += "1 | "; + if ( value & SampleCountFlagBits::e2 ) + result += "2 | "; + if ( value & SampleCountFlagBits::e4 ) + result += "4 | "; + if ( value & SampleCountFlagBits::e8 ) + result += "8 | "; + if ( value & SampleCountFlagBits::e16 ) + result += "16 | "; + if ( value & SampleCountFlagBits::e32 ) + result += "32 | "; + if ( value & SampleCountFlagBits::e64 ) + result += "64 | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + + using SamplerCreateFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(SamplerCreateFlagBits::eSubsampledEXT) | VkFlags(SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT) + allFlags = VkFlags( SamplerCreateFlagBits::eSubsampledEXT ) | + VkFlags( SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator|( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator|( SamplerCreateFlagBits bit0, + SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return SamplerCreateFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator&( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator&(SamplerCreateFlagBits bit0, + SamplerCreateFlagBits bit1)VULKAN_HPP_NOEXCEPT { return SamplerCreateFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator^( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator^( SamplerCreateFlagBits bit0, + SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return SamplerCreateFlags( bit0 ) ^ bit1; } @@ -11504,85 +17219,126 @@ namespace VULKAN_HPP_NAMESPACE return ~( SamplerCreateFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlags value ) + VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & SamplerCreateFlagBits::eSubsampledEXT ) result += "SubsampledEXT | "; - if ( value & SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT ) result += "SubsampledCoarseReconstructionEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & SamplerCreateFlagBits::eSubsampledEXT ) + result += "SubsampledEXT | "; + if ( value & SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT ) + result += "SubsampledCoarseReconstructionEXT | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + +#if defined( VK_USE_PLATFORM_SCREEN_QNX ) + enum class ScreenSurfaceCreateFlagBitsQNX : VkFlags + { + }; + + VULKAN_HPP_INLINE std::string to_string( ScreenSurfaceCreateFlagBitsQNX ) + { + return "(void)"; } - using SemaphoreCreateFlags = Flags; + using ScreenSurfaceCreateFlagsQNX = Flags; - VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlags ) + VULKAN_HPP_INLINE std::string to_string( ScreenSurfaceCreateFlagsQNX ) { return "{}"; } +#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ - using SemaphoreImportFlags = Flags; + enum class SemaphoreCreateFlagBits : VkFlags + { + }; - template <> struct FlagTraits + VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlagBits ) { - enum + return "(void)"; + } + + using SemaphoreCreateFlags = Flags; + + VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlags ) + { + return "{}"; + } + + using SemaphoreImportFlags = Flags; + + template <> + struct FlagTraits + { + enum : VkFlags { - allFlags = VkFlags(SemaphoreImportFlagBits::eTemporary) + allFlags = VkFlags( SemaphoreImportFlagBits::eTemporary ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator|( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags + operator|( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return SemaphoreImportFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator&( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator&(SemaphoreImportFlagBits bit0, + SemaphoreImportFlagBits bit1)VULKAN_HPP_NOEXCEPT { return SemaphoreImportFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator^( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags + operator^( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return SemaphoreImportFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator~( SemaphoreImportFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator~( SemaphoreImportFlagBits bits ) + VULKAN_HPP_NOEXCEPT { return ~( SemaphoreImportFlags( bits ) ); } using SemaphoreImportFlagsKHR = SemaphoreImportFlags; - VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlags value ) + VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & SemaphoreImportFlagBits::eTemporary ) result += "Temporary | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & SemaphoreImportFlagBits::eTemporary ) + result += "Temporary | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using SemaphoreWaitFlags = Flags; + using SemaphoreWaitFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(SemaphoreWaitFlagBits::eAny) + allFlags = VkFlags( SemaphoreWaitFlagBits::eAny ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator|( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator|( SemaphoreWaitFlagBits bit0, + SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return SemaphoreWaitFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator&( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator&(SemaphoreWaitFlagBits bit0, + SemaphoreWaitFlagBits bit1)VULKAN_HPP_NOEXCEPT { return SemaphoreWaitFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator^( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator^( SemaphoreWaitFlagBits bit0, + SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return SemaphoreWaitFlags( bit0 ) ^ bit1; } @@ -11594,50 +17350,63 @@ namespace VULKAN_HPP_NAMESPACE using SemaphoreWaitFlagsKHR = SemaphoreWaitFlags; - VULKAN_HPP_INLINE std::string to_string( SemaphoreWaitFlags value ) + VULKAN_HPP_INLINE std::string to_string( SemaphoreWaitFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & SemaphoreWaitFlagBits::eAny ) result += "Any | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & SemaphoreWaitFlagBits::eAny ) + result += "Any | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using ShaderCorePropertiesFlagsAMD = Flags; + using ShaderCorePropertiesFlagsAMD = Flags; - VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagsAMD ) + VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagsAMD ) { return "{}"; } - using ShaderModuleCreateFlags = Flags; + using ShaderModuleCreateFlags = Flags; - VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlags ) + VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlags ) { return "{}"; } - using ShaderStageFlags = Flags; + using ShaderStageFlags = Flags; - template <> struct FlagTraits - { - enum - { - allFlags = VkFlags(ShaderStageFlagBits::eVertex) | VkFlags(ShaderStageFlagBits::eTessellationControl) | VkFlags(ShaderStageFlagBits::eTessellationEvaluation) | VkFlags(ShaderStageFlagBits::eGeometry) | VkFlags(ShaderStageFlagBits::eFragment) | VkFlags(ShaderStageFlagBits::eCompute) | VkFlags(ShaderStageFlagBits::eAllGraphics) | VkFlags(ShaderStageFlagBits::eAll) | VkFlags(ShaderStageFlagBits::eRaygenNV) | VkFlags(ShaderStageFlagBits::eAnyHitNV) | VkFlags(ShaderStageFlagBits::eClosestHitNV) | VkFlags(ShaderStageFlagBits::eMissNV) | VkFlags(ShaderStageFlagBits::eIntersectionNV) | VkFlags(ShaderStageFlagBits::eCallableNV) | VkFlags(ShaderStageFlagBits::eTaskNV) | VkFlags(ShaderStageFlagBits::eMeshNV) + template <> + struct FlagTraits + { + enum : VkFlags + { + allFlags = VkFlags( ShaderStageFlagBits::eVertex ) | VkFlags( ShaderStageFlagBits::eTessellationControl ) | + VkFlags( ShaderStageFlagBits::eTessellationEvaluation ) | VkFlags( ShaderStageFlagBits::eGeometry ) | + VkFlags( ShaderStageFlagBits::eFragment ) | VkFlags( ShaderStageFlagBits::eCompute ) | + VkFlags( ShaderStageFlagBits::eAllGraphics ) | VkFlags( ShaderStageFlagBits::eAll ) | + VkFlags( ShaderStageFlagBits::eRaygenKHR ) | VkFlags( ShaderStageFlagBits::eAnyHitKHR ) | + VkFlags( ShaderStageFlagBits::eClosestHitKHR ) | VkFlags( ShaderStageFlagBits::eMissKHR ) | + VkFlags( ShaderStageFlagBits::eIntersectionKHR ) | VkFlags( ShaderStageFlagBits::eCallableKHR ) | + VkFlags( ShaderStageFlagBits::eTaskNV ) | VkFlags( ShaderStageFlagBits::eMeshNV ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator|( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator|( ShaderStageFlagBits bit0, + ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ShaderStageFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator&( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator&(ShaderStageFlagBits bit0, + ShaderStageFlagBits bit1)VULKAN_HPP_NOEXCEPT { return ShaderStageFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator^( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator^( ShaderStageFlagBits bit0, + ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return ShaderStageFlags( bit0 ) ^ bit1; } @@ -11647,129 +17416,167 @@ namespace VULKAN_HPP_NAMESPACE return ~( ShaderStageFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( ShaderStageFlags value ) + VULKAN_HPP_INLINE std::string to_string( ShaderStageFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & ShaderStageFlagBits::eVertex ) result += "Vertex | "; - if ( value & ShaderStageFlagBits::eTessellationControl ) result += "TessellationControl | "; - if ( value & ShaderStageFlagBits::eTessellationEvaluation ) result += "TessellationEvaluation | "; - if ( value & ShaderStageFlagBits::eGeometry ) result += "Geometry | "; - if ( value & ShaderStageFlagBits::eFragment ) result += "Fragment | "; - if ( value & ShaderStageFlagBits::eCompute ) result += "Compute | "; - if ( value & ShaderStageFlagBits::eRaygenNV ) result += "RaygenNV | "; - if ( value & ShaderStageFlagBits::eAnyHitNV ) result += "AnyHitNV | "; - if ( value & ShaderStageFlagBits::eClosestHitNV ) result += "ClosestHitNV | "; - if ( value & ShaderStageFlagBits::eMissNV ) result += "MissNV | "; - if ( value & ShaderStageFlagBits::eIntersectionNV ) result += "IntersectionNV | "; - if ( value & ShaderStageFlagBits::eCallableNV ) result += "CallableNV | "; - if ( value & ShaderStageFlagBits::eTaskNV ) result += "TaskNV | "; - if ( value & ShaderStageFlagBits::eMeshNV ) result += "MeshNV | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - using SparseImageFormatFlags = Flags; + if ( value & ShaderStageFlagBits::eVertex ) + result += "Vertex | "; + if ( value & ShaderStageFlagBits::eTessellationControl ) + result += "TessellationControl | "; + if ( value & ShaderStageFlagBits::eTessellationEvaluation ) + result += "TessellationEvaluation | "; + if ( value & ShaderStageFlagBits::eGeometry ) + result += "Geometry | "; + if ( value & ShaderStageFlagBits::eFragment ) + result += "Fragment | "; + if ( value & ShaderStageFlagBits::eCompute ) + result += "Compute | "; + if ( value & ShaderStageFlagBits::eRaygenKHR ) + result += "RaygenKHR | "; + if ( value & ShaderStageFlagBits::eAnyHitKHR ) + result += "AnyHitKHR | "; + if ( value & ShaderStageFlagBits::eClosestHitKHR ) + result += "ClosestHitKHR | "; + if ( value & ShaderStageFlagBits::eMissKHR ) + result += "MissKHR | "; + if ( value & ShaderStageFlagBits::eIntersectionKHR ) + result += "IntersectionKHR | "; + if ( value & ShaderStageFlagBits::eCallableKHR ) + result += "CallableKHR | "; + if ( value & ShaderStageFlagBits::eTaskNV ) + result += "TaskNV | "; + if ( value & ShaderStageFlagBits::eMeshNV ) + result += "MeshNV | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + + using SparseImageFormatFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(SparseImageFormatFlagBits::eSingleMiptail) | VkFlags(SparseImageFormatFlagBits::eAlignedMipSize) | VkFlags(SparseImageFormatFlagBits::eNonstandardBlockSize) + allFlags = VkFlags( SparseImageFormatFlagBits::eSingleMiptail ) | + VkFlags( SparseImageFormatFlagBits::eAlignedMipSize ) | + VkFlags( SparseImageFormatFlagBits::eNonstandardBlockSize ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator|( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags + operator|( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return SparseImageFormatFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator&( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags + operator&(SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1)VULKAN_HPP_NOEXCEPT { return SparseImageFormatFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator^( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags + operator^( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return SparseImageFormatFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator~( SparseImageFormatFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator~( SparseImageFormatFlagBits bits ) + VULKAN_HPP_NOEXCEPT { return ~( SparseImageFormatFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlags value ) + VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & SparseImageFormatFlagBits::eSingleMiptail ) result += "SingleMiptail | "; - if ( value & SparseImageFormatFlagBits::eAlignedMipSize ) result += "AlignedMipSize | "; - if ( value & SparseImageFormatFlagBits::eNonstandardBlockSize ) result += "NonstandardBlockSize | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & SparseImageFormatFlagBits::eSingleMiptail ) + result += "SingleMiptail | "; + if ( value & SparseImageFormatFlagBits::eAlignedMipSize ) + result += "AlignedMipSize | "; + if ( value & SparseImageFormatFlagBits::eNonstandardBlockSize ) + result += "NonstandardBlockSize | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using SparseMemoryBindFlags = Flags; + using SparseMemoryBindFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(SparseMemoryBindFlagBits::eMetadata) + allFlags = VkFlags( SparseMemoryBindFlagBits::eMetadata ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator|( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags + operator|( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return SparseMemoryBindFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator&( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags + operator&(SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1)VULKAN_HPP_NOEXCEPT { return SparseMemoryBindFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator^( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags + operator^( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return SparseMemoryBindFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator~( SparseMemoryBindFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator~( SparseMemoryBindFlagBits bits ) + VULKAN_HPP_NOEXCEPT { return ~( SparseMemoryBindFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlags value ) + VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & SparseMemoryBindFlagBits::eMetadata ) result += "Metadata | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & SparseMemoryBindFlagBits::eMetadata ) + result += "Metadata | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using StencilFaceFlags = Flags; + using StencilFaceFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(StencilFaceFlagBits::eFront) | VkFlags(StencilFaceFlagBits::eBack) | VkFlags(StencilFaceFlagBits::eFrontAndBack) + allFlags = VkFlags( StencilFaceFlagBits::eFront ) | VkFlags( StencilFaceFlagBits::eBack ) | + VkFlags( StencilFaceFlagBits::eFrontAndBack ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator|( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator|( StencilFaceFlagBits bit0, + StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return StencilFaceFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator&( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator&(StencilFaceFlagBits bit0, + StencilFaceFlagBits bit1)VULKAN_HPP_NOEXCEPT { return StencilFaceFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator^( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator^( StencilFaceFlagBits bit0, + StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return StencilFaceFlags( bit0 ) ^ bit1; } @@ -11779,22047 +17586,26862 @@ namespace VULKAN_HPP_NAMESPACE return ~( StencilFaceFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( StencilFaceFlags value ) + VULKAN_HPP_INLINE std::string to_string( StencilFaceFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & StencilFaceFlagBits::eFront ) result += "Front | "; - if ( value & StencilFaceFlagBits::eBack ) result += "Back | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & StencilFaceFlagBits::eFront ) + result += "Front | "; + if ( value & StencilFaceFlagBits::eBack ) + result += "Back | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } -#ifdef VK_USE_PLATFORM_GGP - enum class StreamDescriptorSurfaceCreateFlagBitsGGP - {}; +#if defined( VK_USE_PLATFORM_GGP ) + enum class StreamDescriptorSurfaceCreateFlagBitsGGP : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagBitsGGP ) { return "(void)"; } - using StreamDescriptorSurfaceCreateFlagsGGP = Flags; + using StreamDescriptorSurfaceCreateFlagsGGP = Flags; - VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagsGGP ) + VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagsGGP ) { return "{}"; } #endif /*VK_USE_PLATFORM_GGP*/ - using SubgroupFeatureFlags = Flags; + using SubgroupFeatureFlags = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(SubgroupFeatureFlagBits::eBasic) | VkFlags(SubgroupFeatureFlagBits::eVote) | VkFlags(SubgroupFeatureFlagBits::eArithmetic) | VkFlags(SubgroupFeatureFlagBits::eBallot) | VkFlags(SubgroupFeatureFlagBits::eShuffle) | VkFlags(SubgroupFeatureFlagBits::eShuffleRelative) | VkFlags(SubgroupFeatureFlagBits::eClustered) | VkFlags(SubgroupFeatureFlagBits::eQuad) | VkFlags(SubgroupFeatureFlagBits::ePartitionedNV) + allFlags = VkFlags( SubgroupFeatureFlagBits::eBasic ) | VkFlags( SubgroupFeatureFlagBits::eVote ) | + VkFlags( SubgroupFeatureFlagBits::eArithmetic ) | VkFlags( SubgroupFeatureFlagBits::eBallot ) | + VkFlags( SubgroupFeatureFlagBits::eShuffle ) | VkFlags( SubgroupFeatureFlagBits::eShuffleRelative ) | + VkFlags( SubgroupFeatureFlagBits::eClustered ) | VkFlags( SubgroupFeatureFlagBits::eQuad ) | + VkFlags( SubgroupFeatureFlagBits::ePartitionedNV ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator|( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags + operator|( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return SubgroupFeatureFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator&( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator&(SubgroupFeatureFlagBits bit0, + SubgroupFeatureFlagBits bit1)VULKAN_HPP_NOEXCEPT { return SubgroupFeatureFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator^( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags + operator^( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return SubgroupFeatureFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator~( SubgroupFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator~( SubgroupFeatureFlagBits bits ) + VULKAN_HPP_NOEXCEPT { return ~( SubgroupFeatureFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlags value ) + VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & SubgroupFeatureFlagBits::eBasic ) result += "Basic | "; - if ( value & SubgroupFeatureFlagBits::eVote ) result += "Vote | "; - if ( value & SubgroupFeatureFlagBits::eArithmetic ) result += "Arithmetic | "; - if ( value & SubgroupFeatureFlagBits::eBallot ) result += "Ballot | "; - if ( value & SubgroupFeatureFlagBits::eShuffle ) result += "Shuffle | "; - if ( value & SubgroupFeatureFlagBits::eShuffleRelative ) result += "ShuffleRelative | "; - if ( value & SubgroupFeatureFlagBits::eClustered ) result += "Clustered | "; - if ( value & SubgroupFeatureFlagBits::eQuad ) result += "Quad | "; - if ( value & SubgroupFeatureFlagBits::ePartitionedNV ) result += "PartitionedNV | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & SubgroupFeatureFlagBits::eBasic ) + result += "Basic | "; + if ( value & SubgroupFeatureFlagBits::eVote ) + result += "Vote | "; + if ( value & SubgroupFeatureFlagBits::eArithmetic ) + result += "Arithmetic | "; + if ( value & SubgroupFeatureFlagBits::eBallot ) + result += "Ballot | "; + if ( value & SubgroupFeatureFlagBits::eShuffle ) + result += "Shuffle | "; + if ( value & SubgroupFeatureFlagBits::eShuffleRelative ) + result += "ShuffleRelative | "; + if ( value & SubgroupFeatureFlagBits::eClustered ) + result += "Clustered | "; + if ( value & SubgroupFeatureFlagBits::eQuad ) + result += "Quad | "; + if ( value & SubgroupFeatureFlagBits::ePartitionedNV ) + result += "PartitionedNV | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + + using SubmitFlagsKHR = Flags; + + template <> + struct FlagTraits + { + enum : VkFlags + { + allFlags = VkFlags( SubmitFlagBitsKHR::eProtected ) + }; + }; + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator|( SubmitFlagBitsKHR bit0, + SubmitFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + { + return SubmitFlagsKHR( bit0 ) | bit1; + } + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator&(SubmitFlagBitsKHR bit0, + SubmitFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT + { + return SubmitFlagsKHR( bit0 ) & bit1; } - using SubpassDescriptionFlags = Flags; + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator^( SubmitFlagBitsKHR bit0, + SubmitFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + { + return SubmitFlagsKHR( bit0 ) ^ bit1; + } - template <> struct FlagTraits + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubmitFlagsKHR operator~( SubmitFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT { - enum + return ~( SubmitFlagsKHR( bits ) ); + } + + VULKAN_HPP_INLINE std::string to_string( SubmitFlagsKHR value ) + { + if ( !value ) + return "{}"; + std::string result; + + if ( value & SubmitFlagBitsKHR::eProtected ) + result += "Protected | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + + using SubpassDescriptionFlags = Flags; + + template <> + struct FlagTraits + { + enum : VkFlags { - allFlags = VkFlags(SubpassDescriptionFlagBits::ePerViewAttributesNVX) | VkFlags(SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX) + allFlags = VkFlags( SubpassDescriptionFlagBits::ePerViewAttributesNVX ) | + VkFlags( SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX ) | + VkFlags( SubpassDescriptionFlagBits::eFragmentRegionQCOM ) | + VkFlags( SubpassDescriptionFlagBits::eShaderResolveQCOM ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator|( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags + operator|( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return SubpassDescriptionFlags( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator&( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags + operator&(SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1)VULKAN_HPP_NOEXCEPT { return SubpassDescriptionFlags( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator^( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags + operator^( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT { return SubpassDescriptionFlags( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator~( SubpassDescriptionFlagBits bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator~( SubpassDescriptionFlagBits bits ) + VULKAN_HPP_NOEXCEPT { return ~( SubpassDescriptionFlags( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlags value ) + VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlags value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & SubpassDescriptionFlagBits::ePerViewAttributesNVX ) result += "PerViewAttributesNVX | "; - if ( value & SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX ) result += "PerViewPositionXOnlyNVX | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & SubpassDescriptionFlagBits::ePerViewAttributesNVX ) + result += "PerViewAttributesNVX | "; + if ( value & SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX ) + result += "PerViewPositionXOnlyNVX | "; + if ( value & SubpassDescriptionFlagBits::eFragmentRegionQCOM ) + result += "FragmentRegionQCOM | "; + if ( value & SubpassDescriptionFlagBits::eShaderResolveQCOM ) + result += "ShaderResolveQCOM | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using SurfaceCounterFlagsEXT = Flags; + using SurfaceCounterFlagsEXT = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(SurfaceCounterFlagBitsEXT::eVblank) + allFlags = VkFlags( SurfaceCounterFlagBitsEXT::eVblank ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator|( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT + operator|( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT { return SurfaceCounterFlagsEXT( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator&( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT + operator&(SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT { return SurfaceCounterFlagsEXT( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator^( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT + operator^( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT { return SurfaceCounterFlagsEXT( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator~( SurfaceCounterFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator~( SurfaceCounterFlagBitsEXT bits ) + VULKAN_HPP_NOEXCEPT { return ~( SurfaceCounterFlagsEXT( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagsEXT value ) + VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagsEXT value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & SurfaceCounterFlagBitsEXT::eVblank ) result += "Vblank | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & SurfaceCounterFlagBitsEXT::eVblank ) + result += "Vblank | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using SurfaceTransformFlagsKHR = Flags; + using SurfaceTransformFlagsKHR = Flags; - template <> struct FlagTraits - { - enum - { - allFlags = VkFlags(SurfaceTransformFlagBitsKHR::eIdentity) | VkFlags(SurfaceTransformFlagBitsKHR::eRotate90) | VkFlags(SurfaceTransformFlagBitsKHR::eRotate180) | VkFlags(SurfaceTransformFlagBitsKHR::eRotate270) | VkFlags(SurfaceTransformFlagBitsKHR::eHorizontalMirror) | VkFlags(SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90) | VkFlags(SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180) | VkFlags(SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270) | VkFlags(SurfaceTransformFlagBitsKHR::eInherit) + template <> + struct FlagTraits + { + enum : VkFlags + { + allFlags = VkFlags( SurfaceTransformFlagBitsKHR::eIdentity ) | VkFlags( SurfaceTransformFlagBitsKHR::eRotate90 ) | + VkFlags( SurfaceTransformFlagBitsKHR::eRotate180 ) | + VkFlags( SurfaceTransformFlagBitsKHR::eRotate270 ) | + VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirror ) | + VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 ) | + VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 ) | + VkFlags( SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 ) | + VkFlags( SurfaceTransformFlagBitsKHR::eInherit ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator|( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR + operator|( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { return SurfaceTransformFlagsKHR( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator&( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR + operator&(SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT { return SurfaceTransformFlagsKHR( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator^( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR + operator^( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { return SurfaceTransformFlagsKHR( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator~( SurfaceTransformFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator~( SurfaceTransformFlagBitsKHR bits ) + VULKAN_HPP_NOEXCEPT { return ~( SurfaceTransformFlagsKHR( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagsKHR value ) + VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagsKHR value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & SurfaceTransformFlagBitsKHR::eIdentity ) result += "Identity | "; - if ( value & SurfaceTransformFlagBitsKHR::eRotate90 ) result += "Rotate90 | "; - if ( value & SurfaceTransformFlagBitsKHR::eRotate180 ) result += "Rotate180 | "; - if ( value & SurfaceTransformFlagBitsKHR::eRotate270 ) result += "Rotate270 | "; - if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirror ) result += "HorizontalMirror | "; - if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 ) result += "HorizontalMirrorRotate90 | "; - if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 ) result += "HorizontalMirrorRotate180 | "; - if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 ) result += "HorizontalMirrorRotate270 | "; - if ( value & SurfaceTransformFlagBitsKHR::eInherit ) result += "Inherit | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - using SwapchainCreateFlagsKHR = Flags; + if ( value & SurfaceTransformFlagBitsKHR::eIdentity ) + result += "Identity | "; + if ( value & SurfaceTransformFlagBitsKHR::eRotate90 ) + result += "Rotate90 | "; + if ( value & SurfaceTransformFlagBitsKHR::eRotate180 ) + result += "Rotate180 | "; + if ( value & SurfaceTransformFlagBitsKHR::eRotate270 ) + result += "Rotate270 | "; + if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirror ) + result += "HorizontalMirror | "; + if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 ) + result += "HorizontalMirrorRotate90 | "; + if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 ) + result += "HorizontalMirrorRotate180 | "; + if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 ) + result += "HorizontalMirrorRotate270 | "; + if ( value & SurfaceTransformFlagBitsKHR::eInherit ) + result += "Inherit | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } + + using SwapchainCreateFlagsKHR = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions) | VkFlags(SwapchainCreateFlagBitsKHR::eProtected) | VkFlags(SwapchainCreateFlagBitsKHR::eMutableFormat) + allFlags = VkFlags( SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions ) | + VkFlags( SwapchainCreateFlagBitsKHR::eProtected ) | + VkFlags( SwapchainCreateFlagBitsKHR::eMutableFormat ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator|( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR + operator|( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { return SwapchainCreateFlagsKHR( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator&( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR + operator&(SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT { return SwapchainCreateFlagsKHR( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator^( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR + operator^( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { return SwapchainCreateFlagsKHR( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator~( SwapchainCreateFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator~( SwapchainCreateFlagBitsKHR bits ) + VULKAN_HPP_NOEXCEPT { return ~( SwapchainCreateFlagsKHR( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagsKHR value ) + VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagsKHR value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions ) result += "SplitInstanceBindRegions | "; - if ( value & SwapchainCreateFlagBitsKHR::eProtected ) result += "Protected | "; - if ( value & SwapchainCreateFlagBitsKHR::eMutableFormat ) result += "MutableFormat | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions ) + result += "SplitInstanceBindRegions | "; + if ( value & SwapchainCreateFlagBitsKHR::eProtected ) + result += "Protected | "; + if ( value & SwapchainCreateFlagBitsKHR::eMutableFormat ) + result += "MutableFormat | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - using ToolPurposeFlagsEXT = Flags; + using ToolPurposeFlagsEXT = Flags; - template <> struct FlagTraits + template <> + struct FlagTraits { - enum + enum : VkFlags { - allFlags = VkFlags(ToolPurposeFlagBitsEXT::eValidation) | VkFlags(ToolPurposeFlagBitsEXT::eProfiling) | VkFlags(ToolPurposeFlagBitsEXT::eTracing) | VkFlags(ToolPurposeFlagBitsEXT::eAdditionalFeatures) | VkFlags(ToolPurposeFlagBitsEXT::eModifyingFeatures) | VkFlags(ToolPurposeFlagBitsEXT::eDebugReporting) | VkFlags(ToolPurposeFlagBitsEXT::eDebugMarkers) + allFlags = VkFlags( ToolPurposeFlagBitsEXT::eValidation ) | VkFlags( ToolPurposeFlagBitsEXT::eProfiling ) | + VkFlags( ToolPurposeFlagBitsEXT::eTracing ) | VkFlags( ToolPurposeFlagBitsEXT::eAdditionalFeatures ) | + VkFlags( ToolPurposeFlagBitsEXT::eModifyingFeatures ) | + VkFlags( ToolPurposeFlagBitsEXT::eDebugReporting ) | VkFlags( ToolPurposeFlagBitsEXT::eDebugMarkers ) }; }; - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator|( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT + operator|( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT { return ToolPurposeFlagsEXT( bit0 ) | bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator&( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator&(ToolPurposeFlagBitsEXT bit0, + ToolPurposeFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT { return ToolPurposeFlagsEXT( bit0 ) & bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator^( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT + operator^( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT { return ToolPurposeFlagsEXT( bit0 ) ^ bit1; } - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator~( ToolPurposeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator~( ToolPurposeFlagBitsEXT bits ) + VULKAN_HPP_NOEXCEPT { return ~( ToolPurposeFlagsEXT( bits ) ); } - VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagsEXT value ) + VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagsEXT value ) { - if ( !value ) return "{}"; + if ( !value ) + return "{}"; std::string result; - if ( value & ToolPurposeFlagBitsEXT::eValidation ) result += "Validation | "; - if ( value & ToolPurposeFlagBitsEXT::eProfiling ) result += "Profiling | "; - if ( value & ToolPurposeFlagBitsEXT::eTracing ) result += "Tracing | "; - if ( value & ToolPurposeFlagBitsEXT::eAdditionalFeatures ) result += "AdditionalFeatures | "; - if ( value & ToolPurposeFlagBitsEXT::eModifyingFeatures ) result += "ModifyingFeatures | "; - if ( value & ToolPurposeFlagBitsEXT::eDebugReporting ) result += "DebugReporting | "; - if ( value & ToolPurposeFlagBitsEXT::eDebugMarkers ) result += "DebugMarkers | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; + if ( value & ToolPurposeFlagBitsEXT::eValidation ) + result += "Validation | "; + if ( value & ToolPurposeFlagBitsEXT::eProfiling ) + result += "Profiling | "; + if ( value & ToolPurposeFlagBitsEXT::eTracing ) + result += "Tracing | "; + if ( value & ToolPurposeFlagBitsEXT::eAdditionalFeatures ) + result += "AdditionalFeatures | "; + if ( value & ToolPurposeFlagBitsEXT::eModifyingFeatures ) + result += "ModifyingFeatures | "; + if ( value & ToolPurposeFlagBitsEXT::eDebugReporting ) + result += "DebugReporting | "; + if ( value & ToolPurposeFlagBitsEXT::eDebugMarkers ) + result += "DebugMarkers | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } - enum class ValidationCacheCreateFlagBitsEXT - {}; + enum class ValidationCacheCreateFlagBitsEXT : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagBitsEXT ) { return "(void)"; } - using ValidationCacheCreateFlagsEXT = Flags; + using ValidationCacheCreateFlagsEXT = Flags; - VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagsEXT ) + VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagsEXT ) { return "{}"; } -#ifdef VK_USE_PLATFORM_VI_NN - enum class ViSurfaceCreateFlagBitsNN - {}; +#if defined( VK_USE_PLATFORM_VI_NN ) + enum class ViSurfaceCreateFlagBitsNN : VkFlags + { + }; VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagBitsNN ) { return "(void)"; } - using ViSurfaceCreateFlagsNN = Flags; + using ViSurfaceCreateFlagsNN = Flags; - VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagsNN ) + VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagsNN ) { return "{}"; } #endif /*VK_USE_PLATFORM_VI_NN*/ -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - enum class WaylandSurfaceCreateFlagBitsKHR - {}; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + enum class VideoBeginCodingFlagBitsKHR : VkFlags + { + }; - VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagBitsKHR ) + VULKAN_HPP_INLINE std::string to_string( VideoBeginCodingFlagBitsKHR ) { return "(void)"; } - using WaylandSurfaceCreateFlagsKHR = Flags; + using VideoBeginCodingFlagsKHR = Flags; - VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagsKHR ) + VULKAN_HPP_INLINE std::string to_string( VideoBeginCodingFlagsKHR ) { return "{}"; } -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - enum class Win32SurfaceCreateFlagBitsKHR - {}; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) - VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagBitsKHR ) + using VideoCapabilitiesFlagsKHR = Flags; + + template <> + struct FlagTraits { - return "(void)"; + enum : VkFlags + { + allFlags = VkFlags( VideoCapabilitiesFlagBitsKHR::eProtectedContent ) | + VkFlags( VideoCapabilitiesFlagBitsKHR::eSeparateReferenceImages ) + }; + }; + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilitiesFlagsKHR + operator|( VideoCapabilitiesFlagBitsKHR bit0, VideoCapabilitiesFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + { + return VideoCapabilitiesFlagsKHR( bit0 ) | bit1; } - using Win32SurfaceCreateFlagsKHR = Flags; + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilitiesFlagsKHR + operator&(VideoCapabilitiesFlagBitsKHR bit0, VideoCapabilitiesFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT + { + return VideoCapabilitiesFlagsKHR( bit0 ) & bit1; + } - VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagsKHR ) + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilitiesFlagsKHR + operator^( VideoCapabilitiesFlagBitsKHR bit0, VideoCapabilitiesFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { - return "{}"; + return VideoCapabilitiesFlagsKHR( bit0 ) ^ bit1; } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_XCB_KHR - enum class XcbSurfaceCreateFlagBitsKHR - {}; + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCapabilitiesFlagsKHR operator~( VideoCapabilitiesFlagBitsKHR bits ) + VULKAN_HPP_NOEXCEPT + { + return ~( VideoCapabilitiesFlagsKHR( bits ) ); + } - VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagBitsKHR ) + VULKAN_HPP_INLINE std::string to_string( VideoCapabilitiesFlagsKHR value ) { - return "(void)"; + if ( !value ) + return "{}"; + std::string result; + + if ( value & VideoCapabilitiesFlagBitsKHR::eProtectedContent ) + result += "ProtectedContent | "; + if ( value & VideoCapabilitiesFlagBitsKHR::eSeparateReferenceImages ) + result += "SeparateReferenceImages | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + + using VideoChromaSubsamplingFlagsKHR = Flags; - using XcbSurfaceCreateFlagsKHR = Flags; + template <> + struct FlagTraits + { + enum : VkFlags + { + allFlags = VkFlags( VideoChromaSubsamplingFlagBitsKHR::eInvalid ) | + VkFlags( VideoChromaSubsamplingFlagBitsKHR::eMonochrome ) | + VkFlags( VideoChromaSubsamplingFlagBitsKHR::e420 ) | + VkFlags( VideoChromaSubsamplingFlagBitsKHR::e422 ) | VkFlags( VideoChromaSubsamplingFlagBitsKHR::e444 ) + }; + }; - VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagsKHR ) + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoChromaSubsamplingFlagsKHR + operator|( VideoChromaSubsamplingFlagBitsKHR bit0, VideoChromaSubsamplingFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { - return "{}"; + return VideoChromaSubsamplingFlagsKHR( bit0 ) | bit1; } -#endif /*VK_USE_PLATFORM_XCB_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_KHR - enum class XlibSurfaceCreateFlagBitsKHR - {}; + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoChromaSubsamplingFlagsKHR + operator&(VideoChromaSubsamplingFlagBitsKHR bit0, VideoChromaSubsamplingFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT + { + return VideoChromaSubsamplingFlagsKHR( bit0 ) & bit1; + } - VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagBitsKHR ) + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoChromaSubsamplingFlagsKHR + operator^( VideoChromaSubsamplingFlagBitsKHR bit0, VideoChromaSubsamplingFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { - return "(void)"; + return VideoChromaSubsamplingFlagsKHR( bit0 ) ^ bit1; } - using XlibSurfaceCreateFlagsKHR = Flags; + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoChromaSubsamplingFlagsKHR + operator~( VideoChromaSubsamplingFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT + { + return ~( VideoChromaSubsamplingFlagsKHR( bits ) ); + } - VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagsKHR ) + VULKAN_HPP_INLINE std::string to_string( VideoChromaSubsamplingFlagsKHR value ) { - return "{}"; + if ( !value ) + return "{}"; + std::string result; + + if ( value & VideoChromaSubsamplingFlagBitsKHR::eMonochrome ) + result += "Monochrome | "; + if ( value & VideoChromaSubsamplingFlagBitsKHR::e420 ) + result += "420 | "; + if ( value & VideoChromaSubsamplingFlagBitsKHR::e422 ) + result += "422 | "; + if ( value & VideoChromaSubsamplingFlagBitsKHR::e444 ) + result += "444 | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ -} // namespace VULKAN_HPP_NAMESPACE +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ -#ifndef VULKAN_HPP_NO_EXCEPTIONS -namespace std -{ - template <> - struct is_error_code_enum : public true_type - {}; -} -#endif +#if defined( VK_ENABLE_BETA_EXTENSIONS ) -namespace VULKAN_HPP_NAMESPACE -{ -#ifndef VULKAN_HPP_NO_EXCEPTIONS - class ErrorCategoryImpl : public std::error_category + using VideoCodecOperationFlagsKHR = Flags; + + template <> + struct FlagTraits { - public: - virtual const char* name() const VULKAN_HPP_NOEXCEPT override { return VULKAN_HPP_NAMESPACE_STRING"::Result"; } - virtual std::string message(int ev) const override { return to_string(static_cast(ev)); } + enum : VkFlags + { + allFlags = VkFlags( VideoCodecOperationFlagBitsKHR::eInvalid ) +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + | VkFlags( VideoCodecOperationFlagBitsKHR::eEncodeH264EXT ) | + VkFlags( VideoCodecOperationFlagBitsKHR::eDecodeH264EXT ) | + VkFlags( VideoCodecOperationFlagBitsKHR::eDecodeH265EXT ) +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ + }; }; - class Error + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodecOperationFlagsKHR + operator|( VideoCodecOperationFlagBitsKHR bit0, VideoCodecOperationFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { - public: - Error() VULKAN_HPP_NOEXCEPT = default; - Error(const Error&) VULKAN_HPP_NOEXCEPT = default; - virtual ~Error() VULKAN_HPP_NOEXCEPT = default; + return VideoCodecOperationFlagsKHR( bit0 ) | bit1; + } - virtual const char* what() const VULKAN_HPP_NOEXCEPT = 0; - }; + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodecOperationFlagsKHR + operator&(VideoCodecOperationFlagBitsKHR bit0, VideoCodecOperationFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT + { + return VideoCodecOperationFlagsKHR( bit0 ) & bit1; + } - class LogicError : public Error, public std::logic_error + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodecOperationFlagsKHR + operator^( VideoCodecOperationFlagBitsKHR bit0, VideoCodecOperationFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { - public: - explicit LogicError( const std::string& what ) - : Error(), std::logic_error(what) {} - explicit LogicError( char const * what ) - : Error(), std::logic_error(what) {} + return VideoCodecOperationFlagsKHR( bit0 ) ^ bit1; + } - virtual const char* what() const VULKAN_HPP_NOEXCEPT { return std::logic_error::what(); } - }; + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodecOperationFlagsKHR operator~( VideoCodecOperationFlagBitsKHR bits ) + VULKAN_HPP_NOEXCEPT + { + return ~( VideoCodecOperationFlagsKHR( bits ) ); + } - class SystemError : public Error, public std::system_error + VULKAN_HPP_INLINE std::string to_string( VideoCodecOperationFlagsKHR value ) { - public: - SystemError( std::error_code ec ) - : Error(), std::system_error(ec) {} - SystemError( std::error_code ec, std::string const& what ) - : Error(), std::system_error(ec, what) {} - SystemError( std::error_code ec, char const * what ) - : Error(), std::system_error(ec, what) {} - SystemError( int ev, std::error_category const& ecat ) - : Error(), std::system_error(ev, ecat) {} - SystemError( int ev, std::error_category const& ecat, std::string const& what) - : Error(), std::system_error(ev, ecat, what) {} - SystemError( int ev, std::error_category const& ecat, char const * what) - : Error(), std::system_error(ev, ecat, what) {} + if ( !value ) + return "{}"; + std::string result; + +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & VideoCodecOperationFlagBitsKHR::eEncodeH264EXT ) + result += "EncodeH264EXT | "; +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & VideoCodecOperationFlagBitsKHR::eDecodeH264EXT ) + result += "DecodeH264EXT | "; +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & VideoCodecOperationFlagBitsKHR::eDecodeH265EXT ) + result += "DecodeH265EXT | "; +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) - virtual const char* what() const VULKAN_HPP_NOEXCEPT { return std::system_error::what(); } + using VideoCodingControlFlagsKHR = Flags; + + template <> + struct FlagTraits + { + enum : VkFlags + { + allFlags = VkFlags( VideoCodingControlFlagBitsKHR::eDefault ) | VkFlags( VideoCodingControlFlagBitsKHR::eReset ) + }; }; - VULKAN_HPP_INLINE const std::error_category& errorCategory() VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingControlFlagsKHR + operator|( VideoCodingControlFlagBitsKHR bit0, VideoCodingControlFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { - static ErrorCategoryImpl instance; - return instance; + return VideoCodingControlFlagsKHR( bit0 ) | bit1; } - VULKAN_HPP_INLINE std::error_code make_error_code(Result e) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingControlFlagsKHR + operator&(VideoCodingControlFlagBitsKHR bit0, VideoCodingControlFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT { - return std::error_code(static_cast(e), errorCategory()); + return VideoCodingControlFlagsKHR( bit0 ) & bit1; } - VULKAN_HPP_INLINE std::error_condition make_error_condition(Result e) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingControlFlagsKHR + operator^( VideoCodingControlFlagBitsKHR bit0, VideoCodingControlFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { - return std::error_condition(static_cast(e), errorCategory()); + return VideoCodingControlFlagsKHR( bit0 ) ^ bit1; } - class OutOfHostMemoryError : public SystemError + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingControlFlagsKHR operator~( VideoCodingControlFlagBitsKHR bits ) + VULKAN_HPP_NOEXCEPT { - public: - OutOfHostMemoryError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {} - OutOfHostMemoryError( char const * message ) - : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {} - }; + return ~( VideoCodingControlFlagsKHR( bits ) ); + } - class OutOfDeviceMemoryError : public SystemError + VULKAN_HPP_INLINE std::string to_string( VideoCodingControlFlagsKHR value ) { - public: - OutOfDeviceMemoryError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {} - OutOfDeviceMemoryError( char const * message ) - : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {} - }; + if ( !value ) + return "{}"; + std::string result; - class InitializationFailedError : public SystemError - { - public: - InitializationFailedError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {} - InitializationFailedError( char const * message ) - : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {} - }; + if ( value & VideoCodingControlFlagBitsKHR::eReset ) + result += "Reset | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - class DeviceLostError : public SystemError +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + + using VideoCodingQualityPresetFlagsKHR = Flags; + + template <> + struct FlagTraits { - public: - DeviceLostError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {} - DeviceLostError( char const * message ) - : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {} + enum : VkFlags + { + allFlags = VkFlags( VideoCodingQualityPresetFlagBitsKHR::eDefault ) | + VkFlags( VideoCodingQualityPresetFlagBitsKHR::eNormal ) | + VkFlags( VideoCodingQualityPresetFlagBitsKHR::ePower ) | + VkFlags( VideoCodingQualityPresetFlagBitsKHR::eQuality ) + }; }; - class MemoryMapFailedError : public SystemError + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingQualityPresetFlagsKHR + operator|( VideoCodingQualityPresetFlagBitsKHR bit0, VideoCodingQualityPresetFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { - public: - MemoryMapFailedError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {} - MemoryMapFailedError( char const * message ) - : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {} - }; + return VideoCodingQualityPresetFlagsKHR( bit0 ) | bit1; + } - class LayerNotPresentError : public SystemError + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingQualityPresetFlagsKHR + operator&(VideoCodingQualityPresetFlagBitsKHR bit0, VideoCodingQualityPresetFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT { - public: - LayerNotPresentError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {} - LayerNotPresentError( char const * message ) - : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {} - }; + return VideoCodingQualityPresetFlagsKHR( bit0 ) & bit1; + } - class ExtensionNotPresentError : public SystemError + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingQualityPresetFlagsKHR + operator^( VideoCodingQualityPresetFlagBitsKHR bit0, VideoCodingQualityPresetFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { - public: - ExtensionNotPresentError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {} - ExtensionNotPresentError( char const * message ) - : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {} - }; + return VideoCodingQualityPresetFlagsKHR( bit0 ) ^ bit1; + } - class FeatureNotPresentError : public SystemError + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoCodingQualityPresetFlagsKHR + operator~( VideoCodingQualityPresetFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT { - public: - FeatureNotPresentError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {} - FeatureNotPresentError( char const * message ) - : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {} - }; + return ~( VideoCodingQualityPresetFlagsKHR( bits ) ); + } - class IncompatibleDriverError : public SystemError + VULKAN_HPP_INLINE std::string to_string( VideoCodingQualityPresetFlagsKHR value ) { - public: - IncompatibleDriverError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {} - IncompatibleDriverError( char const * message ) - : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {} - }; + if ( !value ) + return "{}"; + std::string result; - class TooManyObjectsError : public SystemError + if ( value & VideoCodingQualityPresetFlagBitsKHR::eNormal ) + result += "Normal | "; + if ( value & VideoCodingQualityPresetFlagBitsKHR::ePower ) + result += "Power | "; + if ( value & VideoCodingQualityPresetFlagBitsKHR::eQuality ) + result += "Quality | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + + using VideoComponentBitDepthFlagsKHR = Flags; + + template <> + struct FlagTraits { - public: - TooManyObjectsError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {} - TooManyObjectsError( char const * message ) - : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {} + enum : VkFlags + { + allFlags = VkFlags( VideoComponentBitDepthFlagBitsKHR::eInvalid ) | + VkFlags( VideoComponentBitDepthFlagBitsKHR::e8 ) | VkFlags( VideoComponentBitDepthFlagBitsKHR::e10 ) | + VkFlags( VideoComponentBitDepthFlagBitsKHR::e12 ) + }; }; - class FormatNotSupportedError : public SystemError + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoComponentBitDepthFlagsKHR + operator|( VideoComponentBitDepthFlagBitsKHR bit0, VideoComponentBitDepthFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { - public: - FormatNotSupportedError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {} - FormatNotSupportedError( char const * message ) - : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {} - }; + return VideoComponentBitDepthFlagsKHR( bit0 ) | bit1; + } - class FragmentedPoolError : public SystemError + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoComponentBitDepthFlagsKHR + operator&(VideoComponentBitDepthFlagBitsKHR bit0, VideoComponentBitDepthFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT { - public: - FragmentedPoolError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {} - FragmentedPoolError( char const * message ) - : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {} - }; + return VideoComponentBitDepthFlagsKHR( bit0 ) & bit1; + } - class UnknownError : public SystemError + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoComponentBitDepthFlagsKHR + operator^( VideoComponentBitDepthFlagBitsKHR bit0, VideoComponentBitDepthFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { - public: - UnknownError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorUnknown ), message ) {} - UnknownError( char const * message ) - : SystemError( make_error_code( Result::eErrorUnknown ), message ) {} - }; + return VideoComponentBitDepthFlagsKHR( bit0 ) ^ bit1; + } - class OutOfPoolMemoryError : public SystemError + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoComponentBitDepthFlagsKHR + operator~( VideoComponentBitDepthFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT { - public: - OutOfPoolMemoryError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {} - OutOfPoolMemoryError( char const * message ) - : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {} - }; + return ~( VideoComponentBitDepthFlagsKHR( bits ) ); + } - class InvalidExternalHandleError : public SystemError + VULKAN_HPP_INLINE std::string to_string( VideoComponentBitDepthFlagsKHR value ) { - public: - InvalidExternalHandleError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {} - InvalidExternalHandleError( char const * message ) - : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {} - }; + if ( !value ) + return "{}"; + std::string result; - class FragmentationError : public SystemError + if ( value & VideoComponentBitDepthFlagBitsKHR::e8 ) + result += "8 | "; + if ( value & VideoComponentBitDepthFlagBitsKHR::e10 ) + result += "10 | "; + if ( value & VideoComponentBitDepthFlagBitsKHR::e12 ) + result += "12 | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + + using VideoDecodeFlagsKHR = Flags; + + template <> + struct FlagTraits { - public: - FragmentationError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {} - FragmentationError( char const * message ) - : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {} + enum : VkFlags + { + allFlags = VkFlags( VideoDecodeFlagBitsKHR::eDefault ) | VkFlags( VideoDecodeFlagBitsKHR::eReserved0 ) + }; }; - class InvalidOpaqueCaptureAddressError : public SystemError + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeFlagsKHR + operator|( VideoDecodeFlagBitsKHR bit0, VideoDecodeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { - public: - InvalidOpaqueCaptureAddressError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {} - InvalidOpaqueCaptureAddressError( char const * message ) - : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {} - }; + return VideoDecodeFlagsKHR( bit0 ) | bit1; + } - class SurfaceLostKHRError : public SystemError + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeFlagsKHR operator&(VideoDecodeFlagBitsKHR bit0, + VideoDecodeFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT { - public: - SurfaceLostKHRError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {} - SurfaceLostKHRError( char const * message ) - : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {} - }; + return VideoDecodeFlagsKHR( bit0 ) & bit1; + } - class NativeWindowInUseKHRError : public SystemError + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeFlagsKHR + operator^( VideoDecodeFlagBitsKHR bit0, VideoDecodeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { - public: - NativeWindowInUseKHRError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {} - NativeWindowInUseKHRError( char const * message ) - : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {} - }; + return VideoDecodeFlagsKHR( bit0 ) ^ bit1; + } - class OutOfDateKHRError : public SystemError + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeFlagsKHR operator~( VideoDecodeFlagBitsKHR bits ) + VULKAN_HPP_NOEXCEPT { - public: - OutOfDateKHRError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {} - OutOfDateKHRError( char const * message ) - : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {} - }; + return ~( VideoDecodeFlagsKHR( bits ) ); + } - class IncompatibleDisplayKHRError : public SystemError + VULKAN_HPP_INLINE std::string to_string( VideoDecodeFlagsKHR value ) { - public: - IncompatibleDisplayKHRError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {} - IncompatibleDisplayKHRError( char const * message ) - : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {} - }; + if ( !value ) + return "{}"; + std::string result; - class ValidationFailedEXTError : public SystemError + if ( value & VideoDecodeFlagBitsKHR::eReserved0 ) + result += "Reserved0 | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + enum class VideoDecodeH264CreateFlagBitsEXT : VkFlags { - public: - ValidationFailedEXTError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {} - ValidationFailedEXTError( char const * message ) - : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {} }; - class InvalidShaderNVError : public SystemError + VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264CreateFlagBitsEXT ) { - public: - InvalidShaderNVError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {} - InvalidShaderNVError( char const * message ) - : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {} - }; + return "(void)"; + } - class InvalidDrmFormatModifierPlaneLayoutEXTError : public SystemError + using VideoDecodeH264CreateFlagsEXT = Flags; + + VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264CreateFlagsEXT ) { - public: - InvalidDrmFormatModifierPlaneLayoutEXTError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) {} - InvalidDrmFormatModifierPlaneLayoutEXTError( char const * message ) - : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) {} - }; + return "{}"; + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - class NotPermittedEXTError : public SystemError +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + + using VideoDecodeH264FieldLayoutFlagsEXT = Flags; + + template <> + struct FlagTraits { - public: - NotPermittedEXTError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) {} - NotPermittedEXTError( char const * message ) - : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) {} + enum : VkFlags + { + allFlags = VkFlags( VideoDecodeH264FieldLayoutFlagBitsEXT::eVkVideoDecodeH264ProgressivePicturesOnly ) | + VkFlags( VideoDecodeH264FieldLayoutFlagBitsEXT::eVkVideoDecodeH264FieldLayoutLineInterlacedPlane ) | + VkFlags( VideoDecodeH264FieldLayoutFlagBitsEXT::eVkVideoDecodeH264FieldLayoutSeparateInterlacedPlane ) + }; }; - class FullScreenExclusiveModeLostEXTError : public SystemError + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264FieldLayoutFlagsEXT operator|( + VideoDecodeH264FieldLayoutFlagBitsEXT bit0, VideoDecodeH264FieldLayoutFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT { - public: - FullScreenExclusiveModeLostEXTError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {} - FullScreenExclusiveModeLostEXTError( char const * message ) - : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {} - }; + return VideoDecodeH264FieldLayoutFlagsEXT( bit0 ) | bit1; + } - [[noreturn]] static void throwResultException( Result result, char const * message ) + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264FieldLayoutFlagsEXT + operator&(VideoDecodeH264FieldLayoutFlagBitsEXT bit0, VideoDecodeH264FieldLayoutFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT { - switch ( result ) - { - case Result::eErrorOutOfHostMemory: throw OutOfHostMemoryError( message ); - case Result::eErrorOutOfDeviceMemory: throw OutOfDeviceMemoryError( message ); - case Result::eErrorInitializationFailed: throw InitializationFailedError( message ); - case Result::eErrorDeviceLost: throw DeviceLostError( message ); - case Result::eErrorMemoryMapFailed: throw MemoryMapFailedError( message ); - case Result::eErrorLayerNotPresent: throw LayerNotPresentError( message ); - case Result::eErrorExtensionNotPresent: throw ExtensionNotPresentError( message ); - case Result::eErrorFeatureNotPresent: throw FeatureNotPresentError( message ); - case Result::eErrorIncompatibleDriver: throw IncompatibleDriverError( message ); - case Result::eErrorTooManyObjects: throw TooManyObjectsError( message ); - case Result::eErrorFormatNotSupported: throw FormatNotSupportedError( message ); - case Result::eErrorFragmentedPool: throw FragmentedPoolError( message ); - case Result::eErrorUnknown: throw UnknownError( message ); - case Result::eErrorOutOfPoolMemory: throw OutOfPoolMemoryError( message ); - case Result::eErrorInvalidExternalHandle: throw InvalidExternalHandleError( message ); - case Result::eErrorFragmentation: throw FragmentationError( message ); - case Result::eErrorInvalidOpaqueCaptureAddress: throw InvalidOpaqueCaptureAddressError( message ); - case Result::eErrorSurfaceLostKHR: throw SurfaceLostKHRError( message ); - case Result::eErrorNativeWindowInUseKHR: throw NativeWindowInUseKHRError( message ); - case Result::eErrorOutOfDateKHR: throw OutOfDateKHRError( message ); - case Result::eErrorIncompatibleDisplayKHR: throw IncompatibleDisplayKHRError( message ); - case Result::eErrorValidationFailedEXT: throw ValidationFailedEXTError( message ); - case Result::eErrorInvalidShaderNV: throw InvalidShaderNVError( message ); - case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT: throw InvalidDrmFormatModifierPlaneLayoutEXTError( message ); - case Result::eErrorNotPermittedEXT: throw NotPermittedEXTError( message ); - case Result::eErrorFullScreenExclusiveModeLostEXT: throw FullScreenExclusiveModeLostEXTError( message ); - default: throw SystemError( make_error_code( result ) ); - } + return VideoDecodeH264FieldLayoutFlagsEXT( bit0 ) & bit1; } -#endif - template void ignore(T const&) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264FieldLayoutFlagsEXT operator^( + VideoDecodeH264FieldLayoutFlagBitsEXT bit0, VideoDecodeH264FieldLayoutFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + { + return VideoDecodeH264FieldLayoutFlagsEXT( bit0 ) ^ bit1; + } - template - struct ResultValue + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoDecodeH264FieldLayoutFlagsEXT + operator~( VideoDecodeH264FieldLayoutFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT { -#ifdef VULKAN_HPP_HAS_NOEXCEPT - ResultValue( Result r, T & v ) VULKAN_HPP_NOEXCEPT(VULKAN_HPP_NOEXCEPT(T(v))) -#else - ResultValue( Result r, T & v ) -#endif - : result( r ) - , value( v ) - {} + return ~( VideoDecodeH264FieldLayoutFlagsEXT( bits ) ); + } -#ifdef VULKAN_HPP_HAS_NOEXCEPT - ResultValue( Result r, T && v ) VULKAN_HPP_NOEXCEPT(VULKAN_HPP_NOEXCEPT(T(std::move(v)))) -#else - ResultValue( Result r, T && v ) -#endif - : result( r ) - , value( std::move( v ) ) - {} + VULKAN_HPP_INLINE std::string to_string( VideoDecodeH264FieldLayoutFlagsEXT value ) + { + if ( !value ) + return "{}"; + std::string result; - Result result; - T value; + if ( value & VideoDecodeH264FieldLayoutFlagBitsEXT::eVkVideoDecodeH264FieldLayoutLineInterlacedPlane ) + result += "VkVideoDecodeH264FieldLayoutLineInterlacedPlane | "; + if ( value & VideoDecodeH264FieldLayoutFlagBitsEXT::eVkVideoDecodeH264FieldLayoutSeparateInterlacedPlane ) + result += "VkVideoDecodeH264FieldLayoutSeparateInterlacedPlane | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - operator std::tuple() VULKAN_HPP_NOEXCEPT { return std::tuple(result, value); } +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + enum class VideoDecodeH265CreateFlagBitsEXT : VkFlags + { }; - template - struct ResultValueType + VULKAN_HPP_INLINE std::string to_string( VideoDecodeH265CreateFlagBitsEXT ) { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - typedef ResultValue type; -#else - typedef T type; -#endif - }; + return "(void)"; + } + + using VideoDecodeH265CreateFlagsEXT = Flags; + + VULKAN_HPP_INLINE std::string to_string( VideoDecodeH265CreateFlagsEXT ) + { + return "{}"; + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + + using VideoEncodeFlagsKHR = Flags; template <> - struct ResultValueType + struct FlagTraits { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - typedef Result type; -#else - typedef void type; -#endif + enum : VkFlags + { + allFlags = VkFlags( VideoEncodeFlagBitsKHR::eDefault ) | VkFlags( VideoEncodeFlagBitsKHR::eReserved0 ) + }; }; - VULKAN_HPP_INLINE ResultValueType::type createResultValue( Result result, char const * message ) + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeFlagsKHR + operator|( VideoEncodeFlagBitsKHR bit0, VideoEncodeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - ignore(message); - VULKAN_HPP_ASSERT( result == Result::eSuccess ); - return result; -#else - if ( result != Result::eSuccess ) - { - throwResultException( result, message ); - } -#endif + return VideoEncodeFlagsKHR( bit0 ) | bit1; } - template - VULKAN_HPP_INLINE typename ResultValueType::type createResultValue( Result result, T & data, char const * message ) + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeFlagsKHR operator&(VideoEncodeFlagBitsKHR bit0, + VideoEncodeFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - ignore(message); - VULKAN_HPP_ASSERT( result == Result::eSuccess ); - return ResultValue( result, std::move( data ) ); -#else - if ( result != Result::eSuccess ) - { - throwResultException( result, message ); - } - return std::move( data ); -#endif + return VideoEncodeFlagsKHR( bit0 ) & bit1; } - VULKAN_HPP_INLINE Result createResultValue( Result result, char const * message, std::initializer_list successCodes ) + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeFlagsKHR + operator^( VideoEncodeFlagBitsKHR bit0, VideoEncodeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - ignore(message); - VULKAN_HPP_ASSERT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() ); -#else - if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() ) - { - throwResultException( result, message ); - } -#endif - return result; + return VideoEncodeFlagsKHR( bit0 ) ^ bit1; } - template - VULKAN_HPP_INLINE ResultValue createResultValue( Result result, T & data, char const * message, std::initializer_list successCodes ) + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeFlagsKHR operator~( VideoEncodeFlagBitsKHR bits ) + VULKAN_HPP_NOEXCEPT { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - ignore(message); - VULKAN_HPP_ASSERT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() ); -#else - if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() ) - { - throwResultException( result, message ); - } -#endif - return ResultValue( result, data ); + return ~( VideoEncodeFlagsKHR( bits ) ); } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type createResultValue( Result result, T & data, char const * message, typename UniqueHandleTraits::deleter const& deleter ) + VULKAN_HPP_INLINE std::string to_string( VideoEncodeFlagsKHR value ) { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - ignore(message); - VULKAN_HPP_ASSERT( result == Result::eSuccess ); - return ResultValue>( result, UniqueHandle(data, deleter) ); -#else - if ( result != Result::eSuccess ) - { - throwResultException( result, message ); - } - return UniqueHandle(data, deleter); -#endif + if ( !value ) + return "{}"; + std::string result; + + if ( value & VideoEncodeFlagBitsKHR::eReserved0 ) + result += "Reserved0 | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } -#endif +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - struct AccelerationStructureCreateInfoNV; - struct AccelerationStructureInfoNV; - struct AccelerationStructureMemoryRequirementsInfoNV; - struct AcquireNextImageInfoKHR; - struct AcquireProfilingLockInfoKHR; - struct AllocationCallbacks; -#ifdef VK_USE_PLATFORM_ANDROID_KHR - struct AndroidHardwareBufferFormatPropertiesANDROID; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ -#ifdef VK_USE_PLATFORM_ANDROID_KHR - struct AndroidHardwareBufferPropertiesANDROID; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ -#ifdef VK_USE_PLATFORM_ANDROID_KHR - struct AndroidHardwareBufferUsageANDROID; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ -#ifdef VK_USE_PLATFORM_ANDROID_KHR - struct AndroidSurfaceCreateInfoKHR; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - struct ApplicationInfo; - struct AttachmentDescription; - struct AttachmentDescription2; - using AttachmentDescription2KHR = AttachmentDescription2; - struct AttachmentDescriptionStencilLayout; - using AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout; - struct AttachmentReference; - struct AttachmentReference2; - using AttachmentReference2KHR = AttachmentReference2; - struct AttachmentReferenceStencilLayout; - using AttachmentReferenceStencilLayoutKHR = AttachmentReferenceStencilLayout; - struct AttachmentSampleLocationsEXT; - struct BaseInStructure; - struct BaseOutStructure; - struct BindAccelerationStructureMemoryInfoNV; - struct BindBufferMemoryDeviceGroupInfo; - using BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo; - struct BindBufferMemoryInfo; - using BindBufferMemoryInfoKHR = BindBufferMemoryInfo; - struct BindImageMemoryDeviceGroupInfo; - using BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo; - struct BindImageMemoryInfo; - using BindImageMemoryInfoKHR = BindImageMemoryInfo; - struct BindImageMemorySwapchainInfoKHR; - struct BindImagePlaneMemoryInfo; - using BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo; - struct BindSparseInfo; - struct BufferCopy; - struct BufferCreateInfo; - struct BufferDeviceAddressCreateInfoEXT; - struct BufferDeviceAddressInfo; - using BufferDeviceAddressInfoKHR = BufferDeviceAddressInfo; - using BufferDeviceAddressInfoEXT = BufferDeviceAddressInfo; - struct BufferImageCopy; - struct BufferMemoryBarrier; - struct BufferMemoryRequirementsInfo2; - using BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2; - struct BufferOpaqueCaptureAddressCreateInfo; - using BufferOpaqueCaptureAddressCreateInfoKHR = BufferOpaqueCaptureAddressCreateInfo; - struct BufferViewCreateInfo; - struct CalibratedTimestampInfoEXT; - struct CheckpointDataNV; - struct ClearAttachment; - union ClearColorValue; - struct ClearDepthStencilValue; - struct ClearRect; - union ClearValue; - struct CmdProcessCommandsInfoNVX; - struct CmdReserveSpaceForCommandsInfoNVX; - struct CoarseSampleLocationNV; - struct CoarseSampleOrderCustomNV; - struct CommandBufferAllocateInfo; - struct CommandBufferBeginInfo; - struct CommandBufferInheritanceConditionalRenderingInfoEXT; - struct CommandBufferInheritanceInfo; - struct CommandPoolCreateInfo; - struct ComponentMapping; - struct ComputePipelineCreateInfo; - struct ConditionalRenderingBeginInfoEXT; - struct ConformanceVersion; - using ConformanceVersionKHR = ConformanceVersion; - struct CooperativeMatrixPropertiesNV; - struct CopyDescriptorSet; -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct D3D12FenceSubmitInfoKHR; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - struct DebugMarkerMarkerInfoEXT; - struct DebugMarkerObjectNameInfoEXT; - struct DebugMarkerObjectTagInfoEXT; - struct DebugReportCallbackCreateInfoEXT; - struct DebugUtilsLabelEXT; - struct DebugUtilsMessengerCallbackDataEXT; - struct DebugUtilsMessengerCreateInfoEXT; - struct DebugUtilsObjectNameInfoEXT; - struct DebugUtilsObjectTagInfoEXT; - struct DedicatedAllocationBufferCreateInfoNV; - struct DedicatedAllocationImageCreateInfoNV; - struct DedicatedAllocationMemoryAllocateInfoNV; - struct DescriptorBufferInfo; - struct DescriptorImageInfo; - struct DescriptorPoolCreateInfo; - struct DescriptorPoolInlineUniformBlockCreateInfoEXT; - struct DescriptorPoolSize; - struct DescriptorSetAllocateInfo; - struct DescriptorSetLayoutBinding; - struct DescriptorSetLayoutBindingFlagsCreateInfo; - using DescriptorSetLayoutBindingFlagsCreateInfoEXT = DescriptorSetLayoutBindingFlagsCreateInfo; - struct DescriptorSetLayoutCreateInfo; - struct DescriptorSetLayoutSupport; - using DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport; - struct DescriptorSetVariableDescriptorCountAllocateInfo; - using DescriptorSetVariableDescriptorCountAllocateInfoEXT = DescriptorSetVariableDescriptorCountAllocateInfo; - struct DescriptorSetVariableDescriptorCountLayoutSupport; - using DescriptorSetVariableDescriptorCountLayoutSupportEXT = DescriptorSetVariableDescriptorCountLayoutSupport; - struct DescriptorUpdateTemplateCreateInfo; - using DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo; - struct DescriptorUpdateTemplateEntry; - using DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry; - struct DeviceCreateInfo; - struct DeviceEventInfoEXT; - struct DeviceGeneratedCommandsFeaturesNVX; - struct DeviceGeneratedCommandsLimitsNVX; - struct DeviceGroupBindSparseInfo; - using DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo; - struct DeviceGroupCommandBufferBeginInfo; - using DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo; - struct DeviceGroupDeviceCreateInfo; - using DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo; - struct DeviceGroupPresentCapabilitiesKHR; - struct DeviceGroupPresentInfoKHR; - struct DeviceGroupRenderPassBeginInfo; - using DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo; - struct DeviceGroupSubmitInfo; - using DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo; - struct DeviceGroupSwapchainCreateInfoKHR; - struct DeviceMemoryOpaqueCaptureAddressInfo; - using DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo; - struct DeviceMemoryOverallocationCreateInfoAMD; - struct DeviceQueueCreateInfo; - struct DeviceQueueGlobalPriorityCreateInfoEXT; - struct DeviceQueueInfo2; - struct DispatchIndirectCommand; - struct DisplayEventInfoEXT; - struct DisplayModeCreateInfoKHR; - struct DisplayModeParametersKHR; - struct DisplayModeProperties2KHR; - struct DisplayModePropertiesKHR; - struct DisplayNativeHdrSurfaceCapabilitiesAMD; - struct DisplayPlaneCapabilities2KHR; - struct DisplayPlaneCapabilitiesKHR; - struct DisplayPlaneInfo2KHR; - struct DisplayPlaneProperties2KHR; - struct DisplayPlanePropertiesKHR; - struct DisplayPowerInfoEXT; - struct DisplayPresentInfoKHR; - struct DisplayProperties2KHR; - struct DisplayPropertiesKHR; - struct DisplaySurfaceCreateInfoKHR; - struct DrawIndexedIndirectCommand; - struct DrawIndirectCommand; - struct DrawMeshTasksIndirectCommandNV; - struct DrmFormatModifierPropertiesEXT; - struct DrmFormatModifierPropertiesListEXT; - struct EventCreateInfo; - struct ExportFenceCreateInfo; - using ExportFenceCreateInfoKHR = ExportFenceCreateInfo; -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ExportFenceWin32HandleInfoKHR; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - struct ExportMemoryAllocateInfo; - using ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo; - struct ExportMemoryAllocateInfoNV; -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ExportMemoryWin32HandleInfoKHR; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ExportMemoryWin32HandleInfoNV; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - struct ExportSemaphoreCreateInfo; - using ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo; -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ExportSemaphoreWin32HandleInfoKHR; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - struct ExtensionProperties; - struct Extent2D; - struct Extent3D; - struct ExternalBufferProperties; - using ExternalBufferPropertiesKHR = ExternalBufferProperties; - struct ExternalFenceProperties; - using ExternalFencePropertiesKHR = ExternalFenceProperties; -#ifdef VK_USE_PLATFORM_ANDROID_KHR - struct ExternalFormatANDROID; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - struct ExternalImageFormatProperties; - using ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties; - struct ExternalImageFormatPropertiesNV; - struct ExternalMemoryBufferCreateInfo; - using ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo; - struct ExternalMemoryImageCreateInfo; - using ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo; - struct ExternalMemoryImageCreateInfoNV; - struct ExternalMemoryProperties; - using ExternalMemoryPropertiesKHR = ExternalMemoryProperties; - struct ExternalSemaphoreProperties; - using ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties; - struct FenceCreateInfo; - struct FenceGetFdInfoKHR; -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct FenceGetWin32HandleInfoKHR; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - struct FilterCubicImageViewImageFormatPropertiesEXT; - struct FormatProperties; - struct FormatProperties2; - using FormatProperties2KHR = FormatProperties2; - struct FramebufferAttachmentImageInfo; - using FramebufferAttachmentImageInfoKHR = FramebufferAttachmentImageInfo; - struct FramebufferAttachmentsCreateInfo; - using FramebufferAttachmentsCreateInfoKHR = FramebufferAttachmentsCreateInfo; - struct FramebufferCreateInfo; - struct FramebufferMixedSamplesCombinationNV; - struct GeometryAABBNV; - struct GeometryDataNV; - struct GeometryNV; - struct GeometryTrianglesNV; - struct GraphicsPipelineCreateInfo; - struct HdrMetadataEXT; - struct HeadlessSurfaceCreateInfoEXT; -#ifdef VK_USE_PLATFORM_IOS_MVK - struct IOSSurfaceCreateInfoMVK; -#endif /*VK_USE_PLATFORM_IOS_MVK*/ - struct ImageBlit; - struct ImageCopy; - struct ImageCreateInfo; - struct ImageDrmFormatModifierExplicitCreateInfoEXT; - struct ImageDrmFormatModifierListCreateInfoEXT; - struct ImageDrmFormatModifierPropertiesEXT; - struct ImageFormatListCreateInfo; - using ImageFormatListCreateInfoKHR = ImageFormatListCreateInfo; - struct ImageFormatProperties; - struct ImageFormatProperties2; - using ImageFormatProperties2KHR = ImageFormatProperties2; - struct ImageMemoryBarrier; - struct ImageMemoryRequirementsInfo2; - using ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2; -#ifdef VK_USE_PLATFORM_FUCHSIA - struct ImagePipeSurfaceCreateInfoFUCHSIA; -#endif /*VK_USE_PLATFORM_FUCHSIA*/ - struct ImagePlaneMemoryRequirementsInfo; - using ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo; - struct ImageResolve; - struct ImageSparseMemoryRequirementsInfo2; - using ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2; - struct ImageStencilUsageCreateInfo; - using ImageStencilUsageCreateInfoEXT = ImageStencilUsageCreateInfo; - struct ImageSubresource; - struct ImageSubresourceLayers; - struct ImageSubresourceRange; - struct ImageSwapchainCreateInfoKHR; - struct ImageViewASTCDecodeModeEXT; - struct ImageViewCreateInfo; - struct ImageViewHandleInfoNVX; - struct ImageViewUsageCreateInfo; - using ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo; -#ifdef VK_USE_PLATFORM_ANDROID_KHR - struct ImportAndroidHardwareBufferInfoANDROID; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - struct ImportFenceFdInfoKHR; -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ImportFenceWin32HandleInfoKHR; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - struct ImportMemoryFdInfoKHR; - struct ImportMemoryHostPointerInfoEXT; -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ImportMemoryWin32HandleInfoKHR; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ImportMemoryWin32HandleInfoNV; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - struct ImportSemaphoreFdInfoKHR; -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ImportSemaphoreWin32HandleInfoKHR; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - struct IndirectCommandsLayoutCreateInfoNVX; - struct IndirectCommandsLayoutTokenNVX; - struct IndirectCommandsTokenNVX; - struct InitializePerformanceApiInfoINTEL; - struct InputAttachmentAspectReference; - using InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference; - struct InstanceCreateInfo; - struct LayerProperties; -#ifdef VK_USE_PLATFORM_MACOS_MVK - struct MacOSSurfaceCreateInfoMVK; -#endif /*VK_USE_PLATFORM_MACOS_MVK*/ - struct MappedMemoryRange; - struct MemoryAllocateFlagsInfo; - using MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo; - struct MemoryAllocateInfo; - struct MemoryBarrier; - struct MemoryDedicatedAllocateInfo; - using MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo; - struct MemoryDedicatedRequirements; - using MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements; - struct MemoryFdPropertiesKHR; -#ifdef VK_USE_PLATFORM_ANDROID_KHR - struct MemoryGetAndroidHardwareBufferInfoANDROID; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - struct MemoryGetFdInfoKHR; -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct MemoryGetWin32HandleInfoKHR; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - struct MemoryHeap; - struct MemoryHostPointerPropertiesEXT; - struct MemoryOpaqueCaptureAddressAllocateInfo; - using MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo; - struct MemoryPriorityAllocateInfoEXT; - struct MemoryRequirements; - struct MemoryRequirements2; - using MemoryRequirements2KHR = MemoryRequirements2; - struct MemoryType; -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct MemoryWin32HandlePropertiesKHR; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_METAL_EXT - struct MetalSurfaceCreateInfoEXT; -#endif /*VK_USE_PLATFORM_METAL_EXT*/ - struct MultisamplePropertiesEXT; - struct ObjectTableCreateInfoNVX; - struct ObjectTableDescriptorSetEntryNVX; - struct ObjectTableEntryNVX; - struct ObjectTableIndexBufferEntryNVX; - struct ObjectTablePipelineEntryNVX; - struct ObjectTablePushConstantEntryNVX; - struct ObjectTableVertexBufferEntryNVX; - struct Offset2D; - struct Offset3D; - struct PastPresentationTimingGOOGLE; - struct PerformanceConfigurationAcquireInfoINTEL; - struct PerformanceCounterDescriptionKHR; - struct PerformanceCounterKHR; - union PerformanceCounterResultKHR; - struct PerformanceMarkerInfoINTEL; - struct PerformanceOverrideInfoINTEL; - struct PerformanceQuerySubmitInfoKHR; - struct PerformanceStreamMarkerInfoINTEL; - union PerformanceValueDataINTEL; - struct PerformanceValueINTEL; - struct PhysicalDevice16BitStorageFeatures; - using PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures; - struct PhysicalDevice8BitStorageFeatures; - using PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures; - struct PhysicalDeviceASTCDecodeFeaturesEXT; - struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT; - struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT; - struct PhysicalDeviceBufferDeviceAddressFeatures; - using PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures; - struct PhysicalDeviceBufferDeviceAddressFeaturesEXT; - using PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT; - struct PhysicalDeviceCoherentMemoryFeaturesAMD; - struct PhysicalDeviceComputeShaderDerivativesFeaturesNV; - struct PhysicalDeviceConditionalRenderingFeaturesEXT; - struct PhysicalDeviceConservativeRasterizationPropertiesEXT; - struct PhysicalDeviceCooperativeMatrixFeaturesNV; - struct PhysicalDeviceCooperativeMatrixPropertiesNV; - struct PhysicalDeviceCornerSampledImageFeaturesNV; - struct PhysicalDeviceCoverageReductionModeFeaturesNV; - struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV; - struct PhysicalDeviceDepthClipEnableFeaturesEXT; - struct PhysicalDeviceDepthStencilResolveProperties; - using PhysicalDeviceDepthStencilResolvePropertiesKHR = PhysicalDeviceDepthStencilResolveProperties; - struct PhysicalDeviceDescriptorIndexingFeatures; - using PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures; - struct PhysicalDeviceDescriptorIndexingProperties; - using PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties; - struct PhysicalDeviceDiscardRectanglePropertiesEXT; - struct PhysicalDeviceDriverProperties; - using PhysicalDeviceDriverPropertiesKHR = PhysicalDeviceDriverProperties; - struct PhysicalDeviceExclusiveScissorFeaturesNV; - struct PhysicalDeviceExternalBufferInfo; - using PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo; - struct PhysicalDeviceExternalFenceInfo; - using PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo; - struct PhysicalDeviceExternalImageFormatInfo; - using PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo; - struct PhysicalDeviceExternalMemoryHostPropertiesEXT; - struct PhysicalDeviceExternalSemaphoreInfo; - using PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo; - struct PhysicalDeviceFeatures; - struct PhysicalDeviceFeatures2; - using PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2; - struct PhysicalDeviceFloatControlsProperties; - using PhysicalDeviceFloatControlsPropertiesKHR = PhysicalDeviceFloatControlsProperties; - struct PhysicalDeviceFragmentDensityMapFeaturesEXT; - struct PhysicalDeviceFragmentDensityMapPropertiesEXT; - struct PhysicalDeviceFragmentShaderBarycentricFeaturesNV; - struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT; - struct PhysicalDeviceGroupProperties; - using PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties; - struct PhysicalDeviceHostQueryResetFeatures; - using PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures; - struct PhysicalDeviceIDProperties; - using PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties; - struct PhysicalDeviceImageDrmFormatModifierInfoEXT; - struct PhysicalDeviceImageFormatInfo2; - using PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2; - struct PhysicalDeviceImageViewImageFormatInfoEXT; - struct PhysicalDeviceImagelessFramebufferFeatures; - using PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures; - struct PhysicalDeviceIndexTypeUint8FeaturesEXT; - struct PhysicalDeviceInlineUniformBlockFeaturesEXT; - struct PhysicalDeviceInlineUniformBlockPropertiesEXT; - struct PhysicalDeviceLimits; - struct PhysicalDeviceLineRasterizationFeaturesEXT; - struct PhysicalDeviceLineRasterizationPropertiesEXT; - struct PhysicalDeviceMaintenance3Properties; - using PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties; - struct PhysicalDeviceMemoryBudgetPropertiesEXT; - struct PhysicalDeviceMemoryPriorityFeaturesEXT; - struct PhysicalDeviceMemoryProperties; - struct PhysicalDeviceMemoryProperties2; - using PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2; - struct PhysicalDeviceMeshShaderFeaturesNV; - struct PhysicalDeviceMeshShaderPropertiesNV; - struct PhysicalDeviceMultiviewFeatures; - using PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures; - struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX; - struct PhysicalDeviceMultiviewProperties; - using PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties; - struct PhysicalDevicePCIBusInfoPropertiesEXT; - struct PhysicalDevicePerformanceQueryFeaturesKHR; - struct PhysicalDevicePerformanceQueryPropertiesKHR; - struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR; - struct PhysicalDevicePointClippingProperties; - using PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties; - struct PhysicalDeviceProperties; - struct PhysicalDeviceProperties2; - using PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2; - struct PhysicalDeviceProtectedMemoryFeatures; - struct PhysicalDeviceProtectedMemoryProperties; - struct PhysicalDevicePushDescriptorPropertiesKHR; - struct PhysicalDeviceRayTracingPropertiesNV; - struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV; - struct PhysicalDeviceSampleLocationsPropertiesEXT; - struct PhysicalDeviceSamplerFilterMinmaxProperties; - using PhysicalDeviceSamplerFilterMinmaxPropertiesEXT = PhysicalDeviceSamplerFilterMinmaxProperties; - struct PhysicalDeviceSamplerYcbcrConversionFeatures; - using PhysicalDeviceSamplerYcbcrConversionFeaturesKHR = PhysicalDeviceSamplerYcbcrConversionFeatures; - struct PhysicalDeviceScalarBlockLayoutFeatures; - using PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures; - struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures; - using PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = PhysicalDeviceSeparateDepthStencilLayoutsFeatures; - struct PhysicalDeviceShaderAtomicInt64Features; - using PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features; - struct PhysicalDeviceShaderClockFeaturesKHR; - struct PhysicalDeviceShaderCoreProperties2AMD; - struct PhysicalDeviceShaderCorePropertiesAMD; - struct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT; - struct PhysicalDeviceShaderDrawParametersFeatures; - using PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures; - struct PhysicalDeviceShaderFloat16Int8Features; - using PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features; - using PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features; - struct PhysicalDeviceShaderImageFootprintFeaturesNV; - struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL; - struct PhysicalDeviceShaderSMBuiltinsFeaturesNV; - struct PhysicalDeviceShaderSMBuiltinsPropertiesNV; - struct PhysicalDeviceShaderSubgroupExtendedTypesFeatures; - using PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = PhysicalDeviceShaderSubgroupExtendedTypesFeatures; - struct PhysicalDeviceShadingRateImageFeaturesNV; - struct PhysicalDeviceShadingRateImagePropertiesNV; - struct PhysicalDeviceSparseImageFormatInfo2; - using PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2; - struct PhysicalDeviceSparseProperties; - struct PhysicalDeviceSubgroupProperties; - struct PhysicalDeviceSubgroupSizeControlFeaturesEXT; - struct PhysicalDeviceSubgroupSizeControlPropertiesEXT; - struct PhysicalDeviceSurfaceInfo2KHR; - struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT; - struct PhysicalDeviceTexelBufferAlignmentPropertiesEXT; - struct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT; - struct PhysicalDeviceTimelineSemaphoreFeatures; - using PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures; - struct PhysicalDeviceTimelineSemaphoreProperties; - using PhysicalDeviceTimelineSemaphorePropertiesKHR = PhysicalDeviceTimelineSemaphoreProperties; - struct PhysicalDeviceToolPropertiesEXT; - struct PhysicalDeviceTransformFeedbackFeaturesEXT; - struct PhysicalDeviceTransformFeedbackPropertiesEXT; - struct PhysicalDeviceUniformBufferStandardLayoutFeatures; - using PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = PhysicalDeviceUniformBufferStandardLayoutFeatures; - struct PhysicalDeviceVariablePointersFeatures; - using PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures; - using PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures; - using PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures; - struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT; - struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT; - struct PhysicalDeviceVulkan11Features; - struct PhysicalDeviceVulkan11Properties; - struct PhysicalDeviceVulkan12Features; - struct PhysicalDeviceVulkan12Properties; - struct PhysicalDeviceVulkanMemoryModelFeatures; - using PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures; - struct PhysicalDeviceYcbcrImageArraysFeaturesEXT; - struct PipelineCacheCreateInfo; - struct PipelineColorBlendAdvancedStateCreateInfoEXT; - struct PipelineColorBlendAttachmentState; - struct PipelineColorBlendStateCreateInfo; - struct PipelineCompilerControlCreateInfoAMD; - struct PipelineCoverageModulationStateCreateInfoNV; - struct PipelineCoverageReductionStateCreateInfoNV; - struct PipelineCoverageToColorStateCreateInfoNV; - struct PipelineCreationFeedbackCreateInfoEXT; - struct PipelineCreationFeedbackEXT; - struct PipelineDepthStencilStateCreateInfo; - struct PipelineDiscardRectangleStateCreateInfoEXT; - struct PipelineDynamicStateCreateInfo; - struct PipelineExecutableInfoKHR; - struct PipelineExecutableInternalRepresentationKHR; - struct PipelineExecutablePropertiesKHR; - struct PipelineExecutableStatisticKHR; - union PipelineExecutableStatisticValueKHR; - struct PipelineInfoKHR; - struct PipelineInputAssemblyStateCreateInfo; - struct PipelineLayoutCreateInfo; - struct PipelineMultisampleStateCreateInfo; - struct PipelineRasterizationConservativeStateCreateInfoEXT; - struct PipelineRasterizationDepthClipStateCreateInfoEXT; - struct PipelineRasterizationLineStateCreateInfoEXT; - struct PipelineRasterizationStateCreateInfo; - struct PipelineRasterizationStateRasterizationOrderAMD; - struct PipelineRasterizationStateStreamCreateInfoEXT; - struct PipelineRepresentativeFragmentTestStateCreateInfoNV; - struct PipelineSampleLocationsStateCreateInfoEXT; - struct PipelineShaderStageCreateInfo; - struct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT; - struct PipelineTessellationDomainOriginStateCreateInfo; - using PipelineTessellationDomainOriginStateCreateInfoKHR = PipelineTessellationDomainOriginStateCreateInfo; - struct PipelineTessellationStateCreateInfo; - struct PipelineVertexInputDivisorStateCreateInfoEXT; - struct PipelineVertexInputStateCreateInfo; - struct PipelineViewportCoarseSampleOrderStateCreateInfoNV; - struct PipelineViewportExclusiveScissorStateCreateInfoNV; - struct PipelineViewportShadingRateImageStateCreateInfoNV; - struct PipelineViewportStateCreateInfo; - struct PipelineViewportSwizzleStateCreateInfoNV; - struct PipelineViewportWScalingStateCreateInfoNV; -#ifdef VK_USE_PLATFORM_GGP - struct PresentFrameTokenGGP; -#endif /*VK_USE_PLATFORM_GGP*/ - struct PresentInfoKHR; - struct PresentRegionKHR; - struct PresentRegionsKHR; - struct PresentTimeGOOGLE; - struct PresentTimesInfoGOOGLE; - struct ProtectedSubmitInfo; - struct PushConstantRange; - struct QueryPoolCreateInfo; - struct QueryPoolCreateInfoINTEL; - struct QueryPoolPerformanceCreateInfoKHR; - struct QueueFamilyCheckpointPropertiesNV; - struct QueueFamilyProperties; - struct QueueFamilyProperties2; - using QueueFamilyProperties2KHR = QueueFamilyProperties2; - struct RayTracingPipelineCreateInfoNV; - struct RayTracingShaderGroupCreateInfoNV; - struct Rect2D; - struct RectLayerKHR; - struct RefreshCycleDurationGOOGLE; - struct RenderPassAttachmentBeginInfo; - using RenderPassAttachmentBeginInfoKHR = RenderPassAttachmentBeginInfo; - struct RenderPassBeginInfo; - struct RenderPassCreateInfo; - struct RenderPassCreateInfo2; - using RenderPassCreateInfo2KHR = RenderPassCreateInfo2; - struct RenderPassFragmentDensityMapCreateInfoEXT; - struct RenderPassInputAttachmentAspectCreateInfo; - using RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo; - struct RenderPassMultiviewCreateInfo; - using RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo; - struct RenderPassSampleLocationsBeginInfoEXT; - struct SampleLocationEXT; - struct SampleLocationsInfoEXT; - struct SamplerCreateInfo; - struct SamplerReductionModeCreateInfo; - using SamplerReductionModeCreateInfoEXT = SamplerReductionModeCreateInfo; - struct SamplerYcbcrConversionCreateInfo; - using SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo; - struct SamplerYcbcrConversionImageFormatProperties; - using SamplerYcbcrConversionImageFormatPropertiesKHR = SamplerYcbcrConversionImageFormatProperties; - struct SamplerYcbcrConversionInfo; - using SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo; - struct SemaphoreCreateInfo; - struct SemaphoreGetFdInfoKHR; -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct SemaphoreGetWin32HandleInfoKHR; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - struct SemaphoreSignalInfo; - using SemaphoreSignalInfoKHR = SemaphoreSignalInfo; - struct SemaphoreTypeCreateInfo; - using SemaphoreTypeCreateInfoKHR = SemaphoreTypeCreateInfo; - struct SemaphoreWaitInfo; - using SemaphoreWaitInfoKHR = SemaphoreWaitInfo; - struct ShaderModuleCreateInfo; - struct ShaderModuleValidationCacheCreateInfoEXT; - struct ShaderResourceUsageAMD; - struct ShaderStatisticsInfoAMD; - struct ShadingRatePaletteNV; - struct SharedPresentSurfaceCapabilitiesKHR; - struct SparseBufferMemoryBindInfo; - struct SparseImageFormatProperties; - struct SparseImageFormatProperties2; - using SparseImageFormatProperties2KHR = SparseImageFormatProperties2; - struct SparseImageMemoryBind; - struct SparseImageMemoryBindInfo; - struct SparseImageMemoryRequirements; - struct SparseImageMemoryRequirements2; - using SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2; - struct SparseImageOpaqueMemoryBindInfo; - struct SparseMemoryBind; - struct SpecializationInfo; - struct SpecializationMapEntry; - struct StencilOpState; -#ifdef VK_USE_PLATFORM_GGP - struct StreamDescriptorSurfaceCreateInfoGGP; -#endif /*VK_USE_PLATFORM_GGP*/ - struct SubmitInfo; - struct SubpassBeginInfo; - using SubpassBeginInfoKHR = SubpassBeginInfo; - struct SubpassDependency; - struct SubpassDependency2; - using SubpassDependency2KHR = SubpassDependency2; - struct SubpassDescription; - struct SubpassDescription2; - using SubpassDescription2KHR = SubpassDescription2; - struct SubpassDescriptionDepthStencilResolve; - using SubpassDescriptionDepthStencilResolveKHR = SubpassDescriptionDepthStencilResolve; - struct SubpassEndInfo; - using SubpassEndInfoKHR = SubpassEndInfo; - struct SubpassSampleLocationsEXT; - struct SubresourceLayout; - struct SurfaceCapabilities2EXT; - struct SurfaceCapabilities2KHR; -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct SurfaceCapabilitiesFullScreenExclusiveEXT; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - struct SurfaceCapabilitiesKHR; - struct SurfaceFormat2KHR; - struct SurfaceFormatKHR; -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct SurfaceFullScreenExclusiveInfoEXT; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct SurfaceFullScreenExclusiveWin32InfoEXT; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - struct SurfaceProtectedCapabilitiesKHR; - struct SwapchainCounterCreateInfoEXT; - struct SwapchainCreateInfoKHR; - struct SwapchainDisplayNativeHdrCreateInfoAMD; - struct TextureLODGatherFormatPropertiesAMD; - struct TimelineSemaphoreSubmitInfo; - using TimelineSemaphoreSubmitInfoKHR = TimelineSemaphoreSubmitInfo; - struct ValidationCacheCreateInfoEXT; - struct ValidationFeaturesEXT; - struct ValidationFlagsEXT; - struct VertexInputAttributeDescription; - struct VertexInputBindingDescription; - struct VertexInputBindingDivisorDescriptionEXT; -#ifdef VK_USE_PLATFORM_VI_NN - struct ViSurfaceCreateInfoNN; -#endif /*VK_USE_PLATFORM_VI_NN*/ - struct Viewport; - struct ViewportSwizzleNV; - struct ViewportWScalingNV; -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - struct WaylandSurfaceCreateInfoKHR; -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct Win32KeyedMutexAcquireReleaseInfoKHR; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct Win32KeyedMutexAcquireReleaseInfoNV; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct Win32SurfaceCreateInfoKHR; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - struct WriteDescriptorSet; - struct WriteDescriptorSetAccelerationStructureNV; - struct WriteDescriptorSetInlineUniformBlockEXT; - struct XYColorEXT; -#ifdef VK_USE_PLATFORM_XCB_KHR - struct XcbSurfaceCreateInfoKHR; -#endif /*VK_USE_PLATFORM_XCB_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_KHR - struct XlibSurfaceCreateInfoKHR; -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) - class SurfaceKHR + using VideoEncodeH264CapabilitiesFlagsEXT = Flags; + + template <> + struct FlagTraits + { + enum : VkFlags + { + allFlags = + VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityCabac ) | + VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityCavlc ) | + VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityWeightedBiPredImplicit ) | + VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityTransform8X8 ) | + VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityChromaQpOffset ) | + VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilitySecondChromaQpOffset ) | + VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterDisabled ) | + VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterEnabled ) | + VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterPartial ) | + VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityMultipleSlicePerFrame ) | + VkFlags( VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityEvenlyDistributedSliceSize ) + }; + }; + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilitiesFlagsEXT operator|( + VideoEncodeH264CapabilitiesFlagBitsEXT bit0, VideoEncodeH264CapabilitiesFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT { - public: - using CType = VkSurfaceKHR; + return VideoEncodeH264CapabilitiesFlagsEXT( bit0 ) | bit1; + } - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eSurfaceKHR; + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilitiesFlagsEXT operator&( + VideoEncodeH264CapabilitiesFlagBitsEXT bit0, VideoEncodeH264CapabilitiesFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT + { + return VideoEncodeH264CapabilitiesFlagsEXT( bit0 ) & bit1; + } - public: - VULKAN_HPP_CONSTEXPR SurfaceKHR() VULKAN_HPP_NOEXCEPT - : m_surfaceKHR(VK_NULL_HANDLE) - {} + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilitiesFlagsEXT operator^( + VideoEncodeH264CapabilitiesFlagBitsEXT bit0, VideoEncodeH264CapabilitiesFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + { + return VideoEncodeH264CapabilitiesFlagsEXT( bit0 ) ^ bit1; + } - VULKAN_HPP_CONSTEXPR SurfaceKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_surfaceKHR(VK_NULL_HANDLE) - {} + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CapabilitiesFlagsEXT + operator~( VideoEncodeH264CapabilitiesFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT + { + return ~( VideoEncodeH264CapabilitiesFlagsEXT( bits ) ); + } - VULKAN_HPP_TYPESAFE_EXPLICIT SurfaceKHR( VkSurfaceKHR surfaceKHR ) VULKAN_HPP_NOEXCEPT - : m_surfaceKHR( surfaceKHR ) - {} + VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CapabilitiesFlagsEXT value ) + { + if ( !value ) + return "{}"; + std::string result; -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - SurfaceKHR & operator=(VkSurfaceKHR surfaceKHR) VULKAN_HPP_NOEXCEPT - { - m_surfaceKHR = surfaceKHR; - return *this; - } -#endif + if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityCabac ) + result += "VkVideoEncodeH264CapabilityCabac | "; + if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityCavlc ) + result += "VkVideoEncodeH264CapabilityCavlc | "; + if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityWeightedBiPredImplicit ) + result += "VkVideoEncodeH264CapabilityWeightedBiPredImplicit | "; + if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityTransform8X8 ) + result += "VkVideoEncodeH264CapabilityTransform8X8 | "; + if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityChromaQpOffset ) + result += "VkVideoEncodeH264CapabilityChromaQpOffset | "; + if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilitySecondChromaQpOffset ) + result += "VkVideoEncodeH264CapabilitySecondChromaQpOffset | "; + if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterDisabled ) + result += "VkVideoEncodeH264CapabilityDeblockingFilterDisabled | "; + if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterEnabled ) + result += "VkVideoEncodeH264CapabilityDeblockingFilterEnabled | "; + if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityDeblockingFilterPartial ) + result += "VkVideoEncodeH264CapabilityDeblockingFilterPartial | "; + if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityMultipleSlicePerFrame ) + result += "VkVideoEncodeH264CapabilityMultipleSlicePerFrame | "; + if ( value & VideoEncodeH264CapabilitiesFlagBitsEXT::eVkVideoEncodeH264CapabilityEvenlyDistributedSliceSize ) + result += "VkVideoEncodeH264CapabilityEvenlyDistributedSliceSize | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + + using VideoEncodeH264CreateFlagsEXT = Flags; - SurfaceKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + template <> + struct FlagTraits + { + enum : VkFlags { - m_surfaceKHR = VK_NULL_HANDLE; - return *this; - } + allFlags = VkFlags( VideoEncodeH264CreateFlagBitsEXT::eVkVideoEncodeH264CreateDefault ) | + VkFlags( VideoEncodeH264CreateFlagBitsEXT::eVkVideoEncodeH264CreateReserved0 ) + }; + }; - bool operator==( SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_surfaceKHR == rhs.m_surfaceKHR; - } + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CreateFlagsEXT + operator|( VideoEncodeH264CreateFlagBitsEXT bit0, VideoEncodeH264CreateFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + { + return VideoEncodeH264CreateFlagsEXT( bit0 ) | bit1; + } - bool operator!=(SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_surfaceKHR != rhs.m_surfaceKHR; - } + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CreateFlagsEXT + operator&(VideoEncodeH264CreateFlagBitsEXT bit0, VideoEncodeH264CreateFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT + { + return VideoEncodeH264CreateFlagsEXT( bit0 ) & bit1; + } - bool operator<(SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_surfaceKHR < rhs.m_surfaceKHR; - } + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CreateFlagsEXT + operator^( VideoEncodeH264CreateFlagBitsEXT bit0, VideoEncodeH264CreateFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + { + return VideoEncodeH264CreateFlagsEXT( bit0 ) ^ bit1; + } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSurfaceKHR() const VULKAN_HPP_NOEXCEPT - { - return m_surfaceKHR; - } + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264CreateFlagsEXT + operator~( VideoEncodeH264CreateFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT + { + return ~( VideoEncodeH264CreateFlagsEXT( bits ) ); + } - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_surfaceKHR != VK_NULL_HANDLE; - } + VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264CreateFlagsEXT value ) + { + if ( !value ) + return "{}"; + std::string result; - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_surfaceKHR == VK_NULL_HANDLE; - } + if ( value & VideoEncodeH264CreateFlagBitsEXT::eVkVideoEncodeH264CreateReserved0 ) + result += "VkVideoEncodeH264CreateReserved0 | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - private: - VkSurfaceKHR m_surfaceKHR; - }; - static_assert( sizeof( SurfaceKHR ) == sizeof( VkSurfaceKHR ), "handle and wrapper have different size!" ); +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + + using VideoEncodeH264InputModeFlagsEXT = Flags; template <> - struct cpp_type + struct FlagTraits { - using type = SurfaceKHR; + enum : VkFlags + { + allFlags = VkFlags( VideoEncodeH264InputModeFlagBitsEXT::eVkVideoEncodeH264InputModeFrame ) | + VkFlags( VideoEncodeH264InputModeFlagBitsEXT::eVkVideoEncodeH264InputModeSlice ) | + VkFlags( VideoEncodeH264InputModeFlagBitsEXT::eVkVideoEncodeH264InputModeNonVcl ) + }; }; - class DebugReportCallbackEXT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264InputModeFlagsEXT + operator|( VideoEncodeH264InputModeFlagBitsEXT bit0, VideoEncodeH264InputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT { - public: - using CType = VkDebugReportCallbackEXT; - - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDebugReportCallbackEXT; - - public: - VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT() VULKAN_HPP_NOEXCEPT - : m_debugReportCallbackEXT(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_debugReportCallbackEXT(VK_NULL_HANDLE) - {} + return VideoEncodeH264InputModeFlagsEXT( bit0 ) | bit1; + } - VULKAN_HPP_TYPESAFE_EXPLICIT DebugReportCallbackEXT( VkDebugReportCallbackEXT debugReportCallbackEXT ) VULKAN_HPP_NOEXCEPT - : m_debugReportCallbackEXT( debugReportCallbackEXT ) - {} + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264InputModeFlagsEXT + operator&(VideoEncodeH264InputModeFlagBitsEXT bit0, VideoEncodeH264InputModeFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT + { + return VideoEncodeH264InputModeFlagsEXT( bit0 ) & bit1; + } -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DebugReportCallbackEXT & operator=(VkDebugReportCallbackEXT debugReportCallbackEXT) VULKAN_HPP_NOEXCEPT - { - m_debugReportCallbackEXT = debugReportCallbackEXT; - return *this; - } -#endif + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264InputModeFlagsEXT + operator^( VideoEncodeH264InputModeFlagBitsEXT bit0, VideoEncodeH264InputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + { + return VideoEncodeH264InputModeFlagsEXT( bit0 ) ^ bit1; + } - DebugReportCallbackEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_debugReportCallbackEXT = VK_NULL_HANDLE; - return *this; - } + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264InputModeFlagsEXT + operator~( VideoEncodeH264InputModeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT + { + return ~( VideoEncodeH264InputModeFlagsEXT( bits ) ); + } - bool operator==( DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_debugReportCallbackEXT == rhs.m_debugReportCallbackEXT; - } + VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264InputModeFlagsEXT value ) + { + if ( !value ) + return "{}"; + std::string result; - bool operator!=(DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_debugReportCallbackEXT != rhs.m_debugReportCallbackEXT; - } + if ( value & VideoEncodeH264InputModeFlagBitsEXT::eVkVideoEncodeH264InputModeFrame ) + result += "VkVideoEncodeH264InputModeFrame | "; + if ( value & VideoEncodeH264InputModeFlagBitsEXT::eVkVideoEncodeH264InputModeSlice ) + result += "VkVideoEncodeH264InputModeSlice | "; + if ( value & VideoEncodeH264InputModeFlagBitsEXT::eVkVideoEncodeH264InputModeNonVcl ) + result += "VkVideoEncodeH264InputModeNonVcl | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - bool operator<(DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_debugReportCallbackEXT < rhs.m_debugReportCallbackEXT; - } +#if defined( VK_ENABLE_BETA_EXTENSIONS ) - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDebugReportCallbackEXT() const VULKAN_HPP_NOEXCEPT - { - return m_debugReportCallbackEXT; - } + using VideoEncodeH264OutputModeFlagsEXT = Flags; - explicit operator bool() const VULKAN_HPP_NOEXCEPT + template <> + struct FlagTraits + { + enum : VkFlags { - return m_debugReportCallbackEXT != VK_NULL_HANDLE; - } + allFlags = VkFlags( VideoEncodeH264OutputModeFlagBitsEXT::eVkVideoEncodeH264OutputModeFrame ) | + VkFlags( VideoEncodeH264OutputModeFlagBitsEXT::eVkVideoEncodeH264OutputModeSlice ) | + VkFlags( VideoEncodeH264OutputModeFlagBitsEXT::eVkVideoEncodeH264OutputModeNonVcl ) + }; + }; - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_debugReportCallbackEXT == VK_NULL_HANDLE; - } + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264OutputModeFlagsEXT operator|( + VideoEncodeH264OutputModeFlagBitsEXT bit0, VideoEncodeH264OutputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT + { + return VideoEncodeH264OutputModeFlagsEXT( bit0 ) | bit1; + } - private: - VkDebugReportCallbackEXT m_debugReportCallbackEXT; - }; - static_assert( sizeof( DebugReportCallbackEXT ) == sizeof( VkDebugReportCallbackEXT ), "handle and wrapper have different size!" ); + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264OutputModeFlagsEXT + operator&(VideoEncodeH264OutputModeFlagBitsEXT bit0, VideoEncodeH264OutputModeFlagBitsEXT bit1)VULKAN_HPP_NOEXCEPT + { + return VideoEncodeH264OutputModeFlagsEXT( bit0 ) & bit1; + } - template <> - struct cpp_type + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264OutputModeFlagsEXT operator^( + VideoEncodeH264OutputModeFlagBitsEXT bit0, VideoEncodeH264OutputModeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT { - using type = DebugReportCallbackEXT; - }; + return VideoEncodeH264OutputModeFlagsEXT( bit0 ) ^ bit1; + } - class DebugUtilsMessengerEXT + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH264OutputModeFlagsEXT + operator~( VideoEncodeH264OutputModeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT { - public: - using CType = VkDebugUtilsMessengerEXT; + return ~( VideoEncodeH264OutputModeFlagsEXT( bits ) ); + } - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDebugUtilsMessengerEXT; + VULKAN_HPP_INLINE std::string to_string( VideoEncodeH264OutputModeFlagsEXT value ) + { + if ( !value ) + return "{}"; + std::string result; - public: - VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT() VULKAN_HPP_NOEXCEPT - : m_debugUtilsMessengerEXT(VK_NULL_HANDLE) - {} + if ( value & VideoEncodeH264OutputModeFlagBitsEXT::eVkVideoEncodeH264OutputModeFrame ) + result += "VkVideoEncodeH264OutputModeFrame | "; + if ( value & VideoEncodeH264OutputModeFlagBitsEXT::eVkVideoEncodeH264OutputModeSlice ) + result += "VkVideoEncodeH264OutputModeSlice | "; + if ( value & VideoEncodeH264OutputModeFlagBitsEXT::eVkVideoEncodeH264OutputModeNonVcl ) + result += "VkVideoEncodeH264OutputModeNonVcl | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_debugUtilsMessengerEXT(VK_NULL_HANDLE) - {} +#if defined( VK_ENABLE_BETA_EXTENSIONS ) - VULKAN_HPP_TYPESAFE_EXPLICIT DebugUtilsMessengerEXT( VkDebugUtilsMessengerEXT debugUtilsMessengerEXT ) VULKAN_HPP_NOEXCEPT - : m_debugUtilsMessengerEXT( debugUtilsMessengerEXT ) - {} + using VideoEncodeRateControlFlagsKHR = Flags; -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DebugUtilsMessengerEXT & operator=(VkDebugUtilsMessengerEXT debugUtilsMessengerEXT) VULKAN_HPP_NOEXCEPT + template <> + struct FlagTraits + { + enum : VkFlags { - m_debugUtilsMessengerEXT = debugUtilsMessengerEXT; - return *this; - } -#endif + allFlags = + VkFlags( VideoEncodeRateControlFlagBitsKHR::eDefault ) | VkFlags( VideoEncodeRateControlFlagBitsKHR::eReset ) + }; + }; - DebugUtilsMessengerEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_debugUtilsMessengerEXT = VK_NULL_HANDLE; - return *this; - } + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlFlagsKHR + operator|( VideoEncodeRateControlFlagBitsKHR bit0, VideoEncodeRateControlFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + { + return VideoEncodeRateControlFlagsKHR( bit0 ) | bit1; + } - bool operator==( DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_debugUtilsMessengerEXT == rhs.m_debugUtilsMessengerEXT; - } + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlFlagsKHR + operator&(VideoEncodeRateControlFlagBitsKHR bit0, VideoEncodeRateControlFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT + { + return VideoEncodeRateControlFlagsKHR( bit0 ) & bit1; + } - bool operator!=(DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_debugUtilsMessengerEXT != rhs.m_debugUtilsMessengerEXT; - } + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlFlagsKHR + operator^( VideoEncodeRateControlFlagBitsKHR bit0, VideoEncodeRateControlFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + { + return VideoEncodeRateControlFlagsKHR( bit0 ) ^ bit1; + } - bool operator<(DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_debugUtilsMessengerEXT < rhs.m_debugUtilsMessengerEXT; - } + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlFlagsKHR + operator~( VideoEncodeRateControlFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT + { + return ~( VideoEncodeRateControlFlagsKHR( bits ) ); + } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDebugUtilsMessengerEXT() const VULKAN_HPP_NOEXCEPT - { - return m_debugUtilsMessengerEXT; - } + VULKAN_HPP_INLINE std::string to_string( VideoEncodeRateControlFlagsKHR value ) + { + if ( !value ) + return "{}"; + std::string result; - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_debugUtilsMessengerEXT != VK_NULL_HANDLE; - } + if ( value & VideoEncodeRateControlFlagBitsKHR::eReset ) + result += "Reset | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_debugUtilsMessengerEXT == VK_NULL_HANDLE; - } +#if defined( VK_ENABLE_BETA_EXTENSIONS ) - private: - VkDebugUtilsMessengerEXT m_debugUtilsMessengerEXT; - }; - static_assert( sizeof( DebugUtilsMessengerEXT ) == sizeof( VkDebugUtilsMessengerEXT ), "handle and wrapper have different size!" ); + using VideoEncodeRateControlModeFlagsKHR = Flags; template <> - struct cpp_type + struct FlagTraits { - using type = DebugUtilsMessengerEXT; + enum : VkFlags + { + allFlags = VkFlags( VideoEncodeRateControlModeFlagBitsKHR::eNone ) | + VkFlags( VideoEncodeRateControlModeFlagBitsKHR::eCbr ) | + VkFlags( VideoEncodeRateControlModeFlagBitsKHR::eVbr ) + }; }; - class DisplayKHR + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlModeFlagsKHR operator|( + VideoEncodeRateControlModeFlagBitsKHR bit0, VideoEncodeRateControlModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { - public: - using CType = VkDisplayKHR; - - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDisplayKHR; - - public: - VULKAN_HPP_CONSTEXPR DisplayKHR() VULKAN_HPP_NOEXCEPT - : m_displayKHR(VK_NULL_HANDLE) - {} + return VideoEncodeRateControlModeFlagsKHR( bit0 ) | bit1; + } - VULKAN_HPP_CONSTEXPR DisplayKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_displayKHR(VK_NULL_HANDLE) - {} + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlModeFlagsKHR + operator&(VideoEncodeRateControlModeFlagBitsKHR bit0, VideoEncodeRateControlModeFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT + { + return VideoEncodeRateControlModeFlagsKHR( bit0 ) & bit1; + } - VULKAN_HPP_TYPESAFE_EXPLICIT DisplayKHR( VkDisplayKHR displayKHR ) VULKAN_HPP_NOEXCEPT - : m_displayKHR( displayKHR ) - {} + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlModeFlagsKHR operator^( + VideoEncodeRateControlModeFlagBitsKHR bit0, VideoEncodeRateControlModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + { + return VideoEncodeRateControlModeFlagsKHR( bit0 ) ^ bit1; + } -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DisplayKHR & operator=(VkDisplayKHR displayKHR) VULKAN_HPP_NOEXCEPT - { - m_displayKHR = displayKHR; - return *this; - } -#endif + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeRateControlModeFlagsKHR + operator~( VideoEncodeRateControlModeFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT + { + return ~( VideoEncodeRateControlModeFlagsKHR( bits ) ); + } - DisplayKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_displayKHR = VK_NULL_HANDLE; - return *this; - } + VULKAN_HPP_INLINE std::string to_string( VideoEncodeRateControlModeFlagsKHR value ) + { + if ( !value ) + return "{}"; + std::string result; - bool operator==( DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_displayKHR == rhs.m_displayKHR; - } + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - bool operator!=(DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_displayKHR != rhs.m_displayKHR; - } +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + enum class VideoEndCodingFlagBitsKHR : VkFlags + { + }; - bool operator<(DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_displayKHR < rhs.m_displayKHR; - } + VULKAN_HPP_INLINE std::string to_string( VideoEndCodingFlagBitsKHR ) + { + return "(void)"; + } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDisplayKHR() const VULKAN_HPP_NOEXCEPT - { - return m_displayKHR; - } + using VideoEndCodingFlagsKHR = Flags; - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_displayKHR != VK_NULL_HANDLE; - } + VULKAN_HPP_INLINE std::string to_string( VideoEndCodingFlagsKHR ) + { + return "{}"; + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_displayKHR == VK_NULL_HANDLE; - } +#if defined( VK_ENABLE_BETA_EXTENSIONS ) - private: - VkDisplayKHR m_displayKHR; - }; - static_assert( sizeof( DisplayKHR ) == sizeof( VkDisplayKHR ), "handle and wrapper have different size!" ); + using VideoSessionCreateFlagsKHR = Flags; template <> - struct cpp_type + struct FlagTraits { - using type = DisplayKHR; + enum : VkFlags + { + allFlags = + VkFlags( VideoSessionCreateFlagBitsKHR::eDefault ) | VkFlags( VideoSessionCreateFlagBitsKHR::eProtectedContent ) + }; }; - class SwapchainKHR + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoSessionCreateFlagsKHR + operator|( VideoSessionCreateFlagBitsKHR bit0, VideoSessionCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT { - public: - using CType = VkSwapchainKHR; + return VideoSessionCreateFlagsKHR( bit0 ) | bit1; + } - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eSwapchainKHR; + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoSessionCreateFlagsKHR + operator&(VideoSessionCreateFlagBitsKHR bit0, VideoSessionCreateFlagBitsKHR bit1)VULKAN_HPP_NOEXCEPT + { + return VideoSessionCreateFlagsKHR( bit0 ) & bit1; + } - public: - VULKAN_HPP_CONSTEXPR SwapchainKHR() VULKAN_HPP_NOEXCEPT - : m_swapchainKHR(VK_NULL_HANDLE) - {} + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoSessionCreateFlagsKHR + operator^( VideoSessionCreateFlagBitsKHR bit0, VideoSessionCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT + { + return VideoSessionCreateFlagsKHR( bit0 ) ^ bit1; + } - VULKAN_HPP_CONSTEXPR SwapchainKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_swapchainKHR(VK_NULL_HANDLE) - {} + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoSessionCreateFlagsKHR operator~( VideoSessionCreateFlagBitsKHR bits ) + VULKAN_HPP_NOEXCEPT + { + return ~( VideoSessionCreateFlagsKHR( bits ) ); + } - VULKAN_HPP_TYPESAFE_EXPLICIT SwapchainKHR( VkSwapchainKHR swapchainKHR ) VULKAN_HPP_NOEXCEPT - : m_swapchainKHR( swapchainKHR ) - {} + VULKAN_HPP_INLINE std::string to_string( VideoSessionCreateFlagsKHR value ) + { + if ( !value ) + return "{}"; + std::string result; -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - SwapchainKHR & operator=(VkSwapchainKHR swapchainKHR) VULKAN_HPP_NOEXCEPT - { - m_swapchainKHR = swapchainKHR; - return *this; - } -#endif + if ( value & VideoSessionCreateFlagBitsKHR::eProtectedContent ) + result += "ProtectedContent | "; + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - SwapchainKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_swapchainKHR = VK_NULL_HANDLE; - return *this; - } +#if defined( VK_USE_PLATFORM_WAYLAND_KHR ) + enum class WaylandSurfaceCreateFlagBitsKHR : VkFlags + { + }; - bool operator==( SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_swapchainKHR == rhs.m_swapchainKHR; - } + VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagBitsKHR ) + { + return "(void)"; + } - bool operator!=(SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_swapchainKHR != rhs.m_swapchainKHR; - } + using WaylandSurfaceCreateFlagsKHR = Flags; - bool operator<(SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_swapchainKHR < rhs.m_swapchainKHR; - } + VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagsKHR ) + { + return "{}"; + } +#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSwapchainKHR() const VULKAN_HPP_NOEXCEPT - { - return m_swapchainKHR; - } +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + enum class Win32SurfaceCreateFlagBitsKHR : VkFlags + { + }; - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_swapchainKHR != VK_NULL_HANDLE; - } + VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagBitsKHR ) + { + return "(void)"; + } - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_swapchainKHR == VK_NULL_HANDLE; - } + using Win32SurfaceCreateFlagsKHR = Flags; - private: - VkSwapchainKHR m_swapchainKHR; - }; - static_assert( sizeof( SwapchainKHR ) == sizeof( VkSwapchainKHR ), "handle and wrapper have different size!" ); + VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagsKHR ) + { + return "{}"; + } +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - template <> - struct cpp_type +#if defined( VK_USE_PLATFORM_XCB_KHR ) + enum class XcbSurfaceCreateFlagBitsKHR : VkFlags { - using type = SwapchainKHR; }; - class Semaphore + VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagBitsKHR ) { - public: - using CType = VkSemaphore; - - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eSemaphore; + return "(void)"; + } - public: - VULKAN_HPP_CONSTEXPR Semaphore() VULKAN_HPP_NOEXCEPT - : m_semaphore(VK_NULL_HANDLE) - {} + using XcbSurfaceCreateFlagsKHR = Flags; - VULKAN_HPP_CONSTEXPR Semaphore( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_semaphore(VK_NULL_HANDLE) - {} + VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagsKHR ) + { + return "{}"; + } +#endif /*VK_USE_PLATFORM_XCB_KHR*/ - VULKAN_HPP_TYPESAFE_EXPLICIT Semaphore( VkSemaphore semaphore ) VULKAN_HPP_NOEXCEPT - : m_semaphore( semaphore ) - {} +#if defined( VK_USE_PLATFORM_XLIB_KHR ) + enum class XlibSurfaceCreateFlagBitsKHR : VkFlags + { + }; -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Semaphore & operator=(VkSemaphore semaphore) VULKAN_HPP_NOEXCEPT - { - m_semaphore = semaphore; - return *this; - } + VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagBitsKHR ) + { + return "(void)"; + } + + using XlibSurfaceCreateFlagsKHR = Flags; + + VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagsKHR ) + { + return "{}"; + } +#endif /*VK_USE_PLATFORM_XLIB_KHR*/ +} // namespace VULKAN_HPP_NAMESPACE + +#ifndef VULKAN_HPP_NO_EXCEPTIONS +namespace std +{ + template <> + struct is_error_code_enum : public true_type + {}; +} // namespace std #endif - Semaphore & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT +namespace VULKAN_HPP_NAMESPACE +{ +#ifndef VULKAN_HPP_NO_EXCEPTIONS + class ErrorCategoryImpl : public std::error_category + { + public: + virtual const char * name() const VULKAN_HPP_NOEXCEPT override { - m_semaphore = VK_NULL_HANDLE; - return *this; + return VULKAN_HPP_NAMESPACE_STRING "::Result"; } - - bool operator==( Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT + virtual std::string message( int ev ) const override { - return m_semaphore == rhs.m_semaphore; + return to_string( static_cast( ev ) ); } + }; - bool operator!=(Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_semaphore != rhs.m_semaphore; - } + class Error + { + public: + Error() VULKAN_HPP_NOEXCEPT = default; + Error( const Error & ) VULKAN_HPP_NOEXCEPT = default; + virtual ~Error() VULKAN_HPP_NOEXCEPT = default; - bool operator<(Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_semaphore < rhs.m_semaphore; - } + virtual const char * what() const VULKAN_HPP_NOEXCEPT = 0; + }; - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSemaphore() const VULKAN_HPP_NOEXCEPT - { - return m_semaphore; - } + class LogicError + : public Error + , public std::logic_error + { + public: + explicit LogicError( const std::string & what ) : Error(), std::logic_error( what ) {} + explicit LogicError( char const * what ) : Error(), std::logic_error( what ) {} - explicit operator bool() const VULKAN_HPP_NOEXCEPT + virtual const char * what() const VULKAN_HPP_NOEXCEPT { - return m_semaphore != VK_NULL_HANDLE; + return std::logic_error::what(); } + }; - bool operator!() const VULKAN_HPP_NOEXCEPT + class SystemError + : public Error + , public std::system_error + { + public: + SystemError( std::error_code ec ) : Error(), std::system_error( ec ) {} + SystemError( std::error_code ec, std::string const & what ) : Error(), std::system_error( ec, what ) {} + SystemError( std::error_code ec, char const * what ) : Error(), std::system_error( ec, what ) {} + SystemError( int ev, std::error_category const & ecat ) : Error(), std::system_error( ev, ecat ) {} + SystemError( int ev, std::error_category const & ecat, std::string const & what ) + : Error(), std::system_error( ev, ecat, what ) + {} + SystemError( int ev, std::error_category const & ecat, char const * what ) + : Error(), std::system_error( ev, ecat, what ) + {} + + virtual const char * what() const VULKAN_HPP_NOEXCEPT { - return m_semaphore == VK_NULL_HANDLE; + return std::system_error::what(); } + }; - private: - VkSemaphore m_semaphore; + VULKAN_HPP_INLINE const std::error_category & errorCategory() VULKAN_HPP_NOEXCEPT + { + static ErrorCategoryImpl instance; + return instance; + } + + VULKAN_HPP_INLINE std::error_code make_error_code( Result e ) VULKAN_HPP_NOEXCEPT + { + return std::error_code( static_cast( e ), errorCategory() ); + } + + VULKAN_HPP_INLINE std::error_condition make_error_condition( Result e ) VULKAN_HPP_NOEXCEPT + { + return std::error_condition( static_cast( e ), errorCategory() ); + } + + class OutOfHostMemoryError : public SystemError + { + public: + OutOfHostMemoryError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) + {} + OutOfHostMemoryError( char const * message ) + : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) + {} }; - static_assert( sizeof( Semaphore ) == sizeof( VkSemaphore ), "handle and wrapper have different size!" ); - template <> - struct cpp_type + class OutOfDeviceMemoryError : public SystemError { - using type = Semaphore; + public: + OutOfDeviceMemoryError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) + {} + OutOfDeviceMemoryError( char const * message ) + : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) + {} }; - class Fence + class InitializationFailedError : public SystemError { public: - using CType = VkFence; + InitializationFailedError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) + {} + InitializationFailedError( char const * message ) + : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) + {} + }; - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eFence; + class DeviceLostError : public SystemError + { + public: + DeviceLostError( std::string const & message ) : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) + {} + DeviceLostError( char const * message ) : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {} + }; + class MemoryMapFailedError : public SystemError + { public: - VULKAN_HPP_CONSTEXPR Fence() VULKAN_HPP_NOEXCEPT - : m_fence(VK_NULL_HANDLE) + MemoryMapFailedError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) + {} + MemoryMapFailedError( char const * message ) + : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {} + }; - VULKAN_HPP_CONSTEXPR Fence( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_fence(VK_NULL_HANDLE) + class LayerNotPresentError : public SystemError + { + public: + LayerNotPresentError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) + {} + LayerNotPresentError( char const * message ) + : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {} + }; - VULKAN_HPP_TYPESAFE_EXPLICIT Fence( VkFence fence ) VULKAN_HPP_NOEXCEPT - : m_fence( fence ) + class ExtensionNotPresentError : public SystemError + { + public: + ExtensionNotPresentError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) + {} + ExtensionNotPresentError( char const * message ) + : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {} + }; -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Fence & operator=(VkFence fence) VULKAN_HPP_NOEXCEPT - { - m_fence = fence; - return *this; - } -#endif + class FeatureNotPresentError : public SystemError + { + public: + FeatureNotPresentError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) + {} + FeatureNotPresentError( char const * message ) + : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) + {} + }; - Fence & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_fence = VK_NULL_HANDLE; - return *this; - } + class IncompatibleDriverError : public SystemError + { + public: + IncompatibleDriverError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) + {} + IncompatibleDriverError( char const * message ) + : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) + {} + }; - bool operator==( Fence const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_fence == rhs.m_fence; - } + class TooManyObjectsError : public SystemError + { + public: + TooManyObjectsError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) + {} + TooManyObjectsError( char const * message ) + : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) + {} + }; - bool operator!=(Fence const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_fence != rhs.m_fence; - } + class FormatNotSupportedError : public SystemError + { + public: + FormatNotSupportedError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) + {} + FormatNotSupportedError( char const * message ) + : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) + {} + }; - bool operator<(Fence const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_fence < rhs.m_fence; - } + class FragmentedPoolError : public SystemError + { + public: + FragmentedPoolError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) + {} + FragmentedPoolError( char const * message ) + : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) + {} + }; - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkFence() const VULKAN_HPP_NOEXCEPT - { - return m_fence; - } + class UnknownError : public SystemError + { + public: + UnknownError( std::string const & message ) : SystemError( make_error_code( Result::eErrorUnknown ), message ) {} + UnknownError( char const * message ) : SystemError( make_error_code( Result::eErrorUnknown ), message ) {} + }; - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_fence != VK_NULL_HANDLE; - } + class OutOfPoolMemoryError : public SystemError + { + public: + OutOfPoolMemoryError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) + {} + OutOfPoolMemoryError( char const * message ) + : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) + {} + }; - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_fence == VK_NULL_HANDLE; - } + class InvalidExternalHandleError : public SystemError + { + public: + InvalidExternalHandleError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) + {} + InvalidExternalHandleError( char const * message ) + : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) + {} + }; - private: - VkFence m_fence; + class FragmentationError : public SystemError + { + public: + FragmentationError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorFragmentation ), message ) + {} + FragmentationError( char const * message ) : SystemError( make_error_code( Result::eErrorFragmentation ), message ) + {} }; - static_assert( sizeof( Fence ) == sizeof( VkFence ), "handle and wrapper have different size!" ); - template <> - struct cpp_type + class InvalidOpaqueCaptureAddressError : public SystemError { - using type = Fence; + public: + InvalidOpaqueCaptureAddressError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) + {} + InvalidOpaqueCaptureAddressError( char const * message ) + : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) + {} }; - class PerformanceConfigurationINTEL + class SurfaceLostKHRError : public SystemError { public: - using CType = VkPerformanceConfigurationINTEL; + SurfaceLostKHRError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) + {} + SurfaceLostKHRError( char const * message ) + : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) + {} + }; + + class NativeWindowInUseKHRError : public SystemError + { + public: + NativeWindowInUseKHRError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) + {} + NativeWindowInUseKHRError( char const * message ) + : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) + {} + }; + + class OutOfDateKHRError : public SystemError + { + public: + OutOfDateKHRError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) + {} + OutOfDateKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {} + }; - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::ePerformanceConfigurationINTEL; + class IncompatibleDisplayKHRError : public SystemError + { + public: + IncompatibleDisplayKHRError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) + {} + IncompatibleDisplayKHRError( char const * message ) + : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) + {} + }; + class ValidationFailedEXTError : public SystemError + { public: - VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL() VULKAN_HPP_NOEXCEPT - : m_performanceConfigurationINTEL(VK_NULL_HANDLE) + ValidationFailedEXTError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) + {} + ValidationFailedEXTError( char const * message ) + : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {} + }; - VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_performanceConfigurationINTEL(VK_NULL_HANDLE) + class InvalidShaderNVError : public SystemError + { + public: + InvalidShaderNVError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {} + InvalidShaderNVError( char const * message ) + : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) + {} + }; - VULKAN_HPP_TYPESAFE_EXPLICIT PerformanceConfigurationINTEL( VkPerformanceConfigurationINTEL performanceConfigurationINTEL ) VULKAN_HPP_NOEXCEPT - : m_performanceConfigurationINTEL( performanceConfigurationINTEL ) + class InvalidDrmFormatModifierPlaneLayoutEXTError : public SystemError + { + public: + InvalidDrmFormatModifierPlaneLayoutEXTError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) + {} + InvalidDrmFormatModifierPlaneLayoutEXTError( char const * message ) + : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) + {} + }; + + class NotPermittedEXTError : public SystemError + { + public: + NotPermittedEXTError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) + {} + NotPermittedEXTError( char const * message ) + : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) + {} + }; + +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + class FullScreenExclusiveModeLostEXTError : public SystemError + { + public: + FullScreenExclusiveModeLostEXTError( std::string const & message ) + : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) + {} + FullScreenExclusiveModeLostEXTError( char const * message ) + : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {} + }; +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - PerformanceConfigurationINTEL & operator=(VkPerformanceConfigurationINTEL performanceConfigurationINTEL) VULKAN_HPP_NOEXCEPT + [[noreturn]] static void throwResultException( Result result, char const * message ) + { + switch ( result ) { - m_performanceConfigurationINTEL = performanceConfigurationINTEL; - return *this; + case Result::eErrorOutOfHostMemory: throw OutOfHostMemoryError( message ); + case Result::eErrorOutOfDeviceMemory: throw OutOfDeviceMemoryError( message ); + case Result::eErrorInitializationFailed: throw InitializationFailedError( message ); + case Result::eErrorDeviceLost: throw DeviceLostError( message ); + case Result::eErrorMemoryMapFailed: throw MemoryMapFailedError( message ); + case Result::eErrorLayerNotPresent: throw LayerNotPresentError( message ); + case Result::eErrorExtensionNotPresent: throw ExtensionNotPresentError( message ); + case Result::eErrorFeatureNotPresent: throw FeatureNotPresentError( message ); + case Result::eErrorIncompatibleDriver: throw IncompatibleDriverError( message ); + case Result::eErrorTooManyObjects: throw TooManyObjectsError( message ); + case Result::eErrorFormatNotSupported: throw FormatNotSupportedError( message ); + case Result::eErrorFragmentedPool: throw FragmentedPoolError( message ); + case Result::eErrorUnknown: throw UnknownError( message ); + case Result::eErrorOutOfPoolMemory: throw OutOfPoolMemoryError( message ); + case Result::eErrorInvalidExternalHandle: throw InvalidExternalHandleError( message ); + case Result::eErrorFragmentation: throw FragmentationError( message ); + case Result::eErrorInvalidOpaqueCaptureAddress: throw InvalidOpaqueCaptureAddressError( message ); + case Result::eErrorSurfaceLostKHR: throw SurfaceLostKHRError( message ); + case Result::eErrorNativeWindowInUseKHR: throw NativeWindowInUseKHRError( message ); + case Result::eErrorOutOfDateKHR: throw OutOfDateKHRError( message ); + case Result::eErrorIncompatibleDisplayKHR: throw IncompatibleDisplayKHRError( message ); + case Result::eErrorValidationFailedEXT: throw ValidationFailedEXTError( message ); + case Result::eErrorInvalidShaderNV: throw InvalidShaderNVError( message ); + case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT: + throw InvalidDrmFormatModifierPlaneLayoutEXTError( message ); + case Result::eErrorNotPermittedEXT: throw NotPermittedEXTError( message ); +# if defined( VK_USE_PLATFORM_WIN32_KHR ) + case Result::eErrorFullScreenExclusiveModeLostEXT: throw FullScreenExclusiveModeLostEXTError( message ); +# endif /*VK_USE_PLATFORM_WIN32_KHR*/ + default: throw SystemError( make_error_code( result ) ); } + } #endif - PerformanceConfigurationINTEL & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + template + void ignore( T const & ) VULKAN_HPP_NOEXCEPT + {} + + template + struct ResultValue + { +#ifdef VULKAN_HPP_HAS_NOEXCEPT + ResultValue( Result r, T & v ) VULKAN_HPP_NOEXCEPT( VULKAN_HPP_NOEXCEPT( T( v ) ) ) +#else + ResultValue( Result r, T & v ) +#endif + : result( r ), value( v ) + {} + +#ifdef VULKAN_HPP_HAS_NOEXCEPT + ResultValue( Result r, T && v ) VULKAN_HPP_NOEXCEPT( VULKAN_HPP_NOEXCEPT( T( std::move( v ) ) ) ) +#else + ResultValue( Result r, T && v ) +#endif + : result( r ), value( std::move( v ) ) + {} + + Result result; + T value; + + operator std::tuple() VULKAN_HPP_NOEXCEPT { - m_performanceConfigurationINTEL = VK_NULL_HANDLE; - return *this; + return std::tuple( result, value ); } - bool operator==( PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST ) + VULKAN_HPP_DEPRECATED( + "Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue." ) + operator T const &() const & VULKAN_HPP_NOEXCEPT { - return m_performanceConfigurationINTEL == rhs.m_performanceConfigurationINTEL; + return value; } - bool operator!=(PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_DEPRECATED( + "Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue." ) + operator T &() & VULKAN_HPP_NOEXCEPT { - return m_performanceConfigurationINTEL != rhs.m_performanceConfigurationINTEL; + return value; } - bool operator<(PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_DEPRECATED( + "Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue." ) + operator T const &&() const && VULKAN_HPP_NOEXCEPT { - return m_performanceConfigurationINTEL < rhs.m_performanceConfigurationINTEL; + return std::move( value ); } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPerformanceConfigurationINTEL() const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_DEPRECATED( + "Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue." ) + operator T &&() && VULKAN_HPP_NOEXCEPT { - return m_performanceConfigurationINTEL; + return std::move( value ); } +#endif + }; - explicit operator bool() const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_NO_SMART_HANDLE ) + template + struct ResultValue> + { +# ifdef VULKAN_HPP_HAS_NOEXCEPT + ResultValue( Result r, UniqueHandle && v ) VULKAN_HPP_NOEXCEPT +# else + ResultValue( Result r, UniqueHandle && v ) +# endif + : result( r ) + , value( std::move( v ) ) + {} + + std::tuple> asTuple() { - return m_performanceConfigurationINTEL != VK_NULL_HANDLE; + return std::make_tuple( result, std::move( value ) ); } - bool operator!() const VULKAN_HPP_NOEXCEPT +# if !defined( VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST ) + VULKAN_HPP_DEPRECATED( + "Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue." ) + operator UniqueHandle &() & VULKAN_HPP_NOEXCEPT { - return m_performanceConfigurationINTEL == VK_NULL_HANDLE; + return value; } - private: - VkPerformanceConfigurationINTEL m_performanceConfigurationINTEL; - }; - static_assert( sizeof( PerformanceConfigurationINTEL ) == sizeof( VkPerformanceConfigurationINTEL ), "handle and wrapper have different size!" ); + VULKAN_HPP_DEPRECATED( + "Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue." ) + operator UniqueHandle() VULKAN_HPP_NOEXCEPT + { + return std::move( value ); + } +# endif - template <> - struct cpp_type - { - using type = PerformanceConfigurationINTEL; + Result result; + UniqueHandle value; }; - class QueryPool + template + struct ResultValue>> { - public: - using CType = VkQueryPool; - - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eQueryPool; - - public: - VULKAN_HPP_CONSTEXPR QueryPool() VULKAN_HPP_NOEXCEPT - : m_queryPool(VK_NULL_HANDLE) +# ifdef VULKAN_HPP_HAS_NOEXCEPT + ResultValue( Result r, std::vector> && v ) VULKAN_HPP_NOEXCEPT +# else + ResultValue( Result r, std::vector> && v ) +# endif + : result( r ) + , value( std::move( v ) ) {} - VULKAN_HPP_CONSTEXPR QueryPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_queryPool(VK_NULL_HANDLE) - {} + std::tuple>> asTuple() + { + return std::make_tuple( result, std::move( value ) ); + } - VULKAN_HPP_TYPESAFE_EXPLICIT QueryPool( VkQueryPool queryPool ) VULKAN_HPP_NOEXCEPT - : m_queryPool( queryPool ) - {} + Result result; + std::vector> value; -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - QueryPool & operator=(VkQueryPool queryPool) VULKAN_HPP_NOEXCEPT +# if !defined( VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST ) + VULKAN_HPP_DEPRECATED( + "Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue." ) + operator std::tuple> &>() VULKAN_HPP_NOEXCEPT { - m_queryPool = queryPool; - return *this; + return std::tuple> &>( result, value ); } +# endif + }; #endif - QueryPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + template + struct ResultValueType + { +#ifdef VULKAN_HPP_NO_EXCEPTIONS + typedef ResultValue type; +#else + typedef T type; +#endif + }; + + template <> + struct ResultValueType + { +#ifdef VULKAN_HPP_NO_EXCEPTIONS + typedef Result type; +#else + typedef void type; +#endif + }; + + VULKAN_HPP_INLINE ResultValueType::type createResultValue( Result result, char const * message ) + { +#ifdef VULKAN_HPP_NO_EXCEPTIONS + ignore( message ); + VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess ); + return result; +#else + if ( result != Result::eSuccess ) { - m_queryPool = VK_NULL_HANDLE; - return *this; + throwResultException( result, message ); } +#endif + } - bool operator==( QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT + template + VULKAN_HPP_INLINE typename ResultValueType::type createResultValue( Result result, T & data, char const * message ) + { +#ifdef VULKAN_HPP_NO_EXCEPTIONS + ignore( message ); + VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess ); + return ResultValue( result, std::move( data ) ); +#else + if ( result != Result::eSuccess ) { - return m_queryPool == rhs.m_queryPool; + throwResultException( result, message ); } + return std::move( data ); +#endif + } - bool operator!=(QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_INLINE Result createResultValue( Result result, + char const * message, + std::initializer_list successCodes ) + { +#ifdef VULKAN_HPP_NO_EXCEPTIONS + ignore( message ); + ignore( successCodes ); // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty + VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() ); +#else + if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() ) { - return m_queryPool != rhs.m_queryPool; + throwResultException( result, message ); } +#endif + return result; + } - bool operator<(QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT + template + VULKAN_HPP_INLINE ResultValue + createResultValue( Result result, T & data, char const * message, std::initializer_list successCodes ) + { +#ifdef VULKAN_HPP_NO_EXCEPTIONS + ignore( message ); + ignore( successCodes ); // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty + VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() ); +#else + if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() ) { - return m_queryPool < rhs.m_queryPool; + throwResultException( result, message ); } +#endif + return ResultValue( result, std::move( data ) ); + } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkQueryPool() const VULKAN_HPP_NOEXCEPT +#ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_INLINE typename ResultValueType>::type createResultValue( + Result result, T & data, char const * message, typename UniqueHandleTraits::deleter const & deleter ) + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + ignore( message ); + VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess ); + return ResultValue>( result, UniqueHandle( data, deleter ) ); +# else + if ( result != Result::eSuccess ) { - return m_queryPool; + throwResultException( result, message ); } + return UniqueHandle( data, deleter ); +# endif + } - explicit operator bool() const VULKAN_HPP_NOEXCEPT + template + VULKAN_HPP_INLINE ResultValue> + createResultValue( Result result, + T & data, + char const * message, + std::initializer_list successCodes, + typename UniqueHandleTraits::deleter const & deleter ) + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + ignore( message ); + ignore( successCodes ); // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty + VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() ); +# else + if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() ) { - return m_queryPool != VK_NULL_HANDLE; + throwResultException( result, message ); } +# endif + return ResultValue>( result, UniqueHandle( data, deleter ) ); + } - bool operator!() const VULKAN_HPP_NOEXCEPT + template + VULKAN_HPP_INLINE typename ResultValueType>>::type + createResultValue( Result result, std::vector> && data, char const * message ) + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + ignore( message ); + VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess ); + return ResultValue>>( result, std::move( data ) ); +# else + if ( result != Result::eSuccess ) { - return m_queryPool == VK_NULL_HANDLE; + throwResultException( result, message ); } + return std::move( data ); +# endif + } - private: - VkQueryPool m_queryPool; - }; - static_assert( sizeof( QueryPool ) == sizeof( VkQueryPool ), "handle and wrapper have different size!" ); - - template <> - struct cpp_type - { - using type = QueryPool; - }; + template + VULKAN_HPP_INLINE ResultValue>> + createResultValue( Result result, + std::vector> && data, + char const * message, + std::initializer_list successCodes ) + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + ignore( message ); + ignore( successCodes ); // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty + VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() ); +# else + if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() ) + { + throwResultException( result, message ); + } +# endif + return ResultValue>>( result, std::move( data ) ); + } +#endif - class Buffer + struct AabbPositionsKHR { - public: - using CType = VkBuffer; +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR AabbPositionsKHR( float minX_ = {}, + float minY_ = {}, + float minZ_ = {}, + float maxX_ = {}, + float maxY_ = {}, + float maxZ_ = {} ) VULKAN_HPP_NOEXCEPT + : minX( minX_ ) + , minY( minY_ ) + , minZ( minZ_ ) + , maxX( maxX_ ) + , maxY( maxY_ ) + , maxZ( maxZ_ ) + {} - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eBuffer; + VULKAN_HPP_CONSTEXPR AabbPositionsKHR( AabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - public: - VULKAN_HPP_CONSTEXPR Buffer() VULKAN_HPP_NOEXCEPT - : m_buffer(VK_NULL_HANDLE) + AabbPositionsKHR( VkAabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : AabbPositionsKHR( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_CONSTEXPR Buffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_buffer(VK_NULL_HANDLE) - {} + VULKAN_HPP_CONSTEXPR_14 AabbPositionsKHR & operator=( AabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_TYPESAFE_EXPLICIT Buffer( VkBuffer buffer ) VULKAN_HPP_NOEXCEPT - : m_buffer( buffer ) - {} + AabbPositionsKHR & operator=( VkAabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Buffer & operator=(VkBuffer buffer) VULKAN_HPP_NOEXCEPT + AabbPositionsKHR & setMinX( float minX_ ) VULKAN_HPP_NOEXCEPT { - m_buffer = buffer; + minX = minX_; return *this; } -#endif - Buffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + AabbPositionsKHR & setMinY( float minY_ ) VULKAN_HPP_NOEXCEPT { - m_buffer = VK_NULL_HANDLE; + minY = minY_; return *this; } - bool operator==( Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT + AabbPositionsKHR & setMinZ( float minZ_ ) VULKAN_HPP_NOEXCEPT { - return m_buffer == rhs.m_buffer; + minZ = minZ_; + return *this; } - bool operator!=(Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT + AabbPositionsKHR & setMaxX( float maxX_ ) VULKAN_HPP_NOEXCEPT { - return m_buffer != rhs.m_buffer; + maxX = maxX_; + return *this; } - bool operator<(Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT + AabbPositionsKHR & setMaxY( float maxY_ ) VULKAN_HPP_NOEXCEPT { - return m_buffer < rhs.m_buffer; + maxY = maxY_; + return *this; } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkBuffer() const VULKAN_HPP_NOEXCEPT + AabbPositionsKHR & setMaxZ( float maxZ_ ) VULKAN_HPP_NOEXCEPT { - return m_buffer; + maxZ = maxZ_; + return *this; } - explicit operator bool() const VULKAN_HPP_NOEXCEPT + operator VkAabbPositionsKHR const &() const VULKAN_HPP_NOEXCEPT { - return m_buffer != VK_NULL_HANDLE; + return *reinterpret_cast( this ); } - bool operator!() const VULKAN_HPP_NOEXCEPT + operator VkAabbPositionsKHR &() VULKAN_HPP_NOEXCEPT { - return m_buffer == VK_NULL_HANDLE; + return *reinterpret_cast( this ); } - private: - VkBuffer m_buffer; - }; - static_assert( sizeof( Buffer ) == sizeof( VkBuffer ), "handle and wrapper have different size!" ); +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AabbPositionsKHR const & ) const = default; +#else + bool operator==( AabbPositionsKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( minX == rhs.minX ) && ( minY == rhs.minY ) && ( minZ == rhs.minZ ) && ( maxX == rhs.maxX ) && + ( maxY == rhs.maxY ) && ( maxZ == rhs.maxZ ); + } - template <> - struct cpp_type - { - using type = Buffer; + bool operator!=( AabbPositionsKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + float minX = {}; + float minY = {}; + float minZ = {}; + float maxX = {}; + float maxY = {}; + float maxZ = {}; }; + static_assert( sizeof( AabbPositionsKHR ) == sizeof( VkAabbPositionsKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + using AabbPositionsNV = AabbPositionsKHR; - class PipelineLayout + class AccelerationStructureKHR { public: - using CType = VkPipelineLayout; + using CType = VkAccelerationStructureKHR; - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::ePipelineLayout; + 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: - VULKAN_HPP_CONSTEXPR PipelineLayout() VULKAN_HPP_NOEXCEPT - : m_pipelineLayout(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR PipelineLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_pipelineLayout(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT PipelineLayout( VkPipelineLayout pipelineLayout ) VULKAN_HPP_NOEXCEPT - : m_pipelineLayout( pipelineLayout ) + VULKAN_HPP_CONSTEXPR AccelerationStructureKHR() = default; + VULKAN_HPP_CONSTEXPR AccelerationStructureKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT + AccelerationStructureKHR( VkAccelerationStructureKHR accelerationStructureKHR ) VULKAN_HPP_NOEXCEPT + : m_accelerationStructureKHR( accelerationStructureKHR ) {} -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - PipelineLayout & operator=(VkPipelineLayout pipelineLayout) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + AccelerationStructureKHR & operator=( VkAccelerationStructureKHR accelerationStructureKHR ) VULKAN_HPP_NOEXCEPT { - m_pipelineLayout = pipelineLayout; + m_accelerationStructureKHR = accelerationStructureKHR; return *this; } #endif - PipelineLayout & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + AccelerationStructureKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - m_pipelineLayout = VK_NULL_HANDLE; + m_accelerationStructureKHR = {}; return *this; } - bool operator==( PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AccelerationStructureKHR const & ) const = default; +#else + bool operator==( AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_pipelineLayout == rhs.m_pipelineLayout; + return m_accelerationStructureKHR == rhs.m_accelerationStructureKHR; } - bool operator!=(PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_pipelineLayout != rhs.m_pipelineLayout; + return m_accelerationStructureKHR != rhs.m_accelerationStructureKHR; } - bool operator<(PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT + bool operator<( AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_pipelineLayout < rhs.m_pipelineLayout; + return m_accelerationStructureKHR < rhs.m_accelerationStructureKHR; } +#endif - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipelineLayout() const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkAccelerationStructureKHR() const VULKAN_HPP_NOEXCEPT { - return m_pipelineLayout; + return m_accelerationStructureKHR; } explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return m_pipelineLayout != VK_NULL_HANDLE; + return m_accelerationStructureKHR != VK_NULL_HANDLE; } bool operator!() const VULKAN_HPP_NOEXCEPT { - return m_pipelineLayout == VK_NULL_HANDLE; + return m_accelerationStructureKHR == VK_NULL_HANDLE; } private: - VkPipelineLayout m_pipelineLayout; + VkAccelerationStructureKHR m_accelerationStructureKHR = {}; }; - static_assert( sizeof( PipelineLayout ) == sizeof( VkPipelineLayout ), "handle and wrapper have different size!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR ) == sizeof( VkAccelerationStructureKHR ), + "handle and wrapper have different size!" ); template <> - struct cpp_type + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - using type = PipelineLayout; + using type = VULKAN_HPP_NAMESPACE::AccelerationStructureKHR; }; - class DescriptorSet + template <> + struct CppType { - public: - using CType = VkDescriptorSet; + using Type = VULKAN_HPP_NAMESPACE::AccelerationStructureKHR; + }; - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDescriptorSet; + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::AccelerationStructureKHR; + }; - public: - VULKAN_HPP_CONSTEXPR DescriptorSet() VULKAN_HPP_NOEXCEPT - : m_descriptorSet(VK_NULL_HANDLE) + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + union DeviceOrHostAddressConstKHR + { + DeviceOrHostAddressConstKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + memcpy( static_cast( this ), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR ) ); + } + + DeviceOrHostAddressConstKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} ) + : deviceAddress( deviceAddress_ ) {} - VULKAN_HPP_CONSTEXPR DescriptorSet( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_descriptorSet(VK_NULL_HANDLE) + DeviceOrHostAddressConstKHR( const void * hostAddress_ ) : hostAddress( hostAddress_ ) {} + + DeviceOrHostAddressConstKHR & + setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT + { + deviceAddress = deviceAddress_; + return *this; + } + + DeviceOrHostAddressConstKHR & setHostAddress( const void * hostAddress_ ) VULKAN_HPP_NOEXCEPT + { + hostAddress = hostAddress_; + return *this; + } + + VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR & + operator=( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + memcpy( static_cast( this ), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR ) ); + return *this; + } + + operator VkDeviceOrHostAddressConstKHR const &() const + { + return *reinterpret_cast( this ); + } + + operator VkDeviceOrHostAddressConstKHR &() + { + return *reinterpret_cast( this ); + } + +#ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS + VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress; + const void * hostAddress; +#else + VkDeviceAddress deviceAddress; + const void * hostAddress; +#endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/ + }; + + struct AccelerationStructureGeometryTrianglesDataKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eAccelerationStructureGeometryTrianglesDataKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + AccelerationStructureGeometryTrianglesDataKHR( + VULKAN_HPP_NAMESPACE::Format vertexFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, + VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ = {}, + uint32_t maxVertex_ = {}, + VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16, + VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexData_ = {}, + VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR transformData_ = {} ) VULKAN_HPP_NOEXCEPT + : vertexFormat( vertexFormat_ ) + , vertexData( vertexData_ ) + , vertexStride( vertexStride_ ) + , maxVertex( maxVertex_ ) + , indexType( indexType_ ) + , indexData( indexData_ ) + , transformData( transformData_ ) {} - VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSet( VkDescriptorSet descriptorSet ) VULKAN_HPP_NOEXCEPT - : m_descriptorSet( descriptorSet ) + AccelerationStructureGeometryTrianglesDataKHR( AccelerationStructureGeometryTrianglesDataKHR const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + AccelerationStructureGeometryTrianglesDataKHR( VkAccelerationStructureGeometryTrianglesDataKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + : AccelerationStructureGeometryTrianglesDataKHR( + *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DescriptorSet & operator=(VkDescriptorSet descriptorSet) VULKAN_HPP_NOEXCEPT + AccelerationStructureGeometryTrianglesDataKHR & + operator=( AccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + AccelerationStructureGeometryTrianglesDataKHR & + operator=( VkAccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - m_descriptorSet = descriptorSet; + *this = *reinterpret_cast( &rhs ); return *this; } -#endif - DescriptorSet & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + AccelerationStructureGeometryTrianglesDataKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - m_descriptorSet = VK_NULL_HANDLE; + pNext = pNext_; return *this; } - bool operator==( DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureGeometryTrianglesDataKHR & + setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT { - return m_descriptorSet == rhs.m_descriptorSet; + vertexFormat = vertexFormat_; + return *this; } - bool operator!=(DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureGeometryTrianglesDataKHR & + setVertexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & vertexData_ ) VULKAN_HPP_NOEXCEPT { - return m_descriptorSet != rhs.m_descriptorSet; + vertexData = vertexData_; + return *this; } - bool operator<(DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureGeometryTrianglesDataKHR & + setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT { - return m_descriptorSet < rhs.m_descriptorSet; + vertexStride = vertexStride_; + return *this; } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorSet() const VULKAN_HPP_NOEXCEPT + AccelerationStructureGeometryTrianglesDataKHR & setMaxVertex( uint32_t maxVertex_ ) VULKAN_HPP_NOEXCEPT { - return m_descriptorSet; + maxVertex = maxVertex_; + return *this; } - explicit operator bool() const VULKAN_HPP_NOEXCEPT + AccelerationStructureGeometryTrianglesDataKHR & + setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT { - return m_descriptorSet != VK_NULL_HANDLE; + indexType = indexType_; + return *this; } - bool operator!() const VULKAN_HPP_NOEXCEPT + AccelerationStructureGeometryTrianglesDataKHR & + setIndexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & indexData_ ) VULKAN_HPP_NOEXCEPT { - return m_descriptorSet == VK_NULL_HANDLE; + indexData = indexData_; + return *this; } - private: - VkDescriptorSet m_descriptorSet; + AccelerationStructureGeometryTrianglesDataKHR & + setTransformData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & transformData_ ) VULKAN_HPP_NOEXCEPT + { + transformData = transformData_; + return *this; + } + + operator VkAccelerationStructureGeometryTrianglesDataKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkAccelerationStructureGeometryTrianglesDataKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryTrianglesDataKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined; + VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData = {}; + VULKAN_HPP_NAMESPACE::DeviceSize vertexStride = {}; + uint32_t maxVertex = {}; + VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16; + VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexData = {}; + VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR transformData = {}; }; - static_assert( sizeof( DescriptorSet ) == sizeof( VkDescriptorSet ), "handle and wrapper have different size!" ); + static_assert( sizeof( AccelerationStructureGeometryTrianglesDataKHR ) == + sizeof( VkAccelerationStructureGeometryTrianglesDataKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); template <> - struct cpp_type + struct CppType { - using type = DescriptorSet; + using Type = AccelerationStructureGeometryTrianglesDataKHR; }; - class Pipeline + struct AccelerationStructureGeometryAabbsDataKHR { - public: - using CType = VkPipeline; + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eAccelerationStructureGeometryAabbsDataKHR; - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::ePipeline; - - public: - VULKAN_HPP_CONSTEXPR Pipeline() VULKAN_HPP_NOEXCEPT - : m_pipeline(VK_NULL_HANDLE) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + AccelerationStructureGeometryAabbsDataKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {} ) VULKAN_HPP_NOEXCEPT + : data( data_ ) + , stride( stride_ ) {} - VULKAN_HPP_CONSTEXPR Pipeline( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_pipeline(VK_NULL_HANDLE) - {} + AccelerationStructureGeometryAabbsDataKHR( AccelerationStructureGeometryAabbsDataKHR const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_TYPESAFE_EXPLICIT Pipeline( VkPipeline pipeline ) VULKAN_HPP_NOEXCEPT - : m_pipeline( pipeline ) + AccelerationStructureGeometryAabbsDataKHR( VkAccelerationStructureGeometryAabbsDataKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + : AccelerationStructureGeometryAabbsDataKHR( + *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Pipeline & operator=(VkPipeline pipeline) VULKAN_HPP_NOEXCEPT + AccelerationStructureGeometryAabbsDataKHR & + operator=( AccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + AccelerationStructureGeometryAabbsDataKHR & + operator=( VkAccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - m_pipeline = pipeline; + *this = *reinterpret_cast( &rhs ); return *this; } -#endif - Pipeline & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + AccelerationStructureGeometryAabbsDataKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - m_pipeline = VK_NULL_HANDLE; + pNext = pNext_; return *this; } - bool operator==( Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureGeometryAabbsDataKHR & + setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT { - return m_pipeline == rhs.m_pipeline; + data = data_; + return *this; } - bool operator!=(Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureGeometryAabbsDataKHR & + setStride( VULKAN_HPP_NAMESPACE::DeviceSize stride_ ) VULKAN_HPP_NOEXCEPT { - return m_pipeline != rhs.m_pipeline; + stride = stride_; + return *this; } - bool operator<(Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT + operator VkAccelerationStructureGeometryAabbsDataKHR const &() const VULKAN_HPP_NOEXCEPT { - return m_pipeline < rhs.m_pipeline; + return *reinterpret_cast( this ); } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipeline() const VULKAN_HPP_NOEXCEPT + operator VkAccelerationStructureGeometryAabbsDataKHR &() VULKAN_HPP_NOEXCEPT { - return m_pipeline; + return *reinterpret_cast( this ); } - explicit operator bool() const VULKAN_HPP_NOEXCEPT + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryAabbsDataKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data = {}; + VULKAN_HPP_NAMESPACE::DeviceSize stride = {}; + }; + static_assert( sizeof( AccelerationStructureGeometryAabbsDataKHR ) == + sizeof( VkAccelerationStructureGeometryAabbsDataKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = AccelerationStructureGeometryAabbsDataKHR; + }; + + struct AccelerationStructureGeometryInstancesDataKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eAccelerationStructureGeometryInstancesDataKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + AccelerationStructureGeometryInstancesDataKHR( VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers_ = {}, + VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {} ) + VULKAN_HPP_NOEXCEPT + : arrayOfPointers( arrayOfPointers_ ) + , data( data_ ) + {} + + AccelerationStructureGeometryInstancesDataKHR( AccelerationStructureGeometryInstancesDataKHR const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + AccelerationStructureGeometryInstancesDataKHR( VkAccelerationStructureGeometryInstancesDataKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + : AccelerationStructureGeometryInstancesDataKHR( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + AccelerationStructureGeometryInstancesDataKHR & + operator=( AccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + AccelerationStructureGeometryInstancesDataKHR & + operator=( VkAccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - return m_pipeline != VK_NULL_HANDLE; + *this = *reinterpret_cast( &rhs ); + return *this; } - bool operator!() const VULKAN_HPP_NOEXCEPT + AccelerationStructureGeometryInstancesDataKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - return m_pipeline == VK_NULL_HANDLE; + pNext = pNext_; + return *this; } - private: - VkPipeline m_pipeline; + AccelerationStructureGeometryInstancesDataKHR & + setArrayOfPointers( VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers_ ) VULKAN_HPP_NOEXCEPT + { + arrayOfPointers = arrayOfPointers_; + return *this; + } + + AccelerationStructureGeometryInstancesDataKHR & + setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT + { + data = data_; + return *this; + } + + operator VkAccelerationStructureGeometryInstancesDataKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkAccelerationStructureGeometryInstancesDataKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryInstancesDataKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers = {}; + VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data = {}; }; - static_assert( sizeof( Pipeline ) == sizeof( VkPipeline ), "handle and wrapper have different size!" ); + static_assert( sizeof( AccelerationStructureGeometryInstancesDataKHR ) == + sizeof( VkAccelerationStructureGeometryInstancesDataKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); template <> - struct cpp_type + struct CppType { - using type = Pipeline; + using Type = AccelerationStructureGeometryInstancesDataKHR; }; - class ImageView + union AccelerationStructureGeometryDataKHR { - public: - using CType = VkImageView; - - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eImageView; + AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + { + memcpy( static_cast( this ), &rhs, sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR ) ); + } - public: - VULKAN_HPP_CONSTEXPR ImageView() VULKAN_HPP_NOEXCEPT - : m_imageView(VK_NULL_HANDLE) + AccelerationStructureGeometryDataKHR( + VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles_ = {} ) + : triangles( triangles_ ) {} - VULKAN_HPP_CONSTEXPR ImageView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_imageView(VK_NULL_HANDLE) + AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs_ ) + : aabbs( aabbs_ ) {} - VULKAN_HPP_TYPESAFE_EXPLICIT ImageView( VkImageView imageView ) VULKAN_HPP_NOEXCEPT - : m_imageView( imageView ) + AccelerationStructureGeometryDataKHR( + VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances_ ) + : instances( instances_ ) {} -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - ImageView & operator=(VkImageView imageView) VULKAN_HPP_NOEXCEPT + AccelerationStructureGeometryDataKHR & setTriangles( + VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const & triangles_ ) VULKAN_HPP_NOEXCEPT { - m_imageView = imageView; + triangles = triangles_; return *this; } -#endif - ImageView & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + AccelerationStructureGeometryDataKHR & + setAabbs( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const & aabbs_ ) VULKAN_HPP_NOEXCEPT { - m_imageView = VK_NULL_HANDLE; + aabbs = aabbs_; return *this; } - bool operator==( ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureGeometryDataKHR & setInstances( + VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const & instances_ ) VULKAN_HPP_NOEXCEPT { - return m_imageView == rhs.m_imageView; + instances = instances_; + return *this; } - bool operator!=(ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR & + operator=( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - return m_imageView != rhs.m_imageView; + memcpy( static_cast( this ), &rhs, sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR ) ); + return *this; } - bool operator<(ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT + operator VkAccelerationStructureGeometryDataKHR const &() const { - return m_imageView < rhs.m_imageView; + return *reinterpret_cast( this ); } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImageView() const VULKAN_HPP_NOEXCEPT + operator VkAccelerationStructureGeometryDataKHR &() { - return m_imageView; + return *reinterpret_cast( this ); } - explicit operator bool() const VULKAN_HPP_NOEXCEPT +#ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS + VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles; + VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs; + VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances; +#else + VkAccelerationStructureGeometryTrianglesDataKHR triangles; + VkAccelerationStructureGeometryAabbsDataKHR aabbs; + VkAccelerationStructureGeometryInstancesDataKHR instances; +#endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/ + }; + + struct AccelerationStructureGeometryKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + AccelerationStructureGeometryKHR( + VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles, + VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR geometry_ = {}, + VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ = {} ) VULKAN_HPP_NOEXCEPT + : geometryType( geometryType_ ) + , geometry( geometry_ ) + , flags( flags_ ) + {} + + AccelerationStructureGeometryKHR( AccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + AccelerationStructureGeometryKHR( VkAccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : AccelerationStructureGeometryKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + AccelerationStructureGeometryKHR & + operator=( AccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + AccelerationStructureGeometryKHR & operator=( VkAccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - return m_imageView != VK_NULL_HANDLE; + *this = *reinterpret_cast( &rhs ); + return *this; } - bool operator!() const VULKAN_HPP_NOEXCEPT + AccelerationStructureGeometryKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - return m_imageView == VK_NULL_HANDLE; + pNext = pNext_; + return *this; } - private: - VkImageView m_imageView; + AccelerationStructureGeometryKHR & + setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT + { + geometryType = geometryType_; + return *this; + } + + AccelerationStructureGeometryKHR & + setGeometry( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & geometry_ ) VULKAN_HPP_NOEXCEPT + { + geometry = geometry_; + return *this; + } + + AccelerationStructureGeometryKHR & setFlags( VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + operator VkAccelerationStructureGeometryKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkAccelerationStructureGeometryKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles; + VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR geometry = {}; + VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags = {}; }; - static_assert( sizeof( ImageView ) == sizeof( VkImageView ), "handle and wrapper have different size!" ); + static_assert( sizeof( AccelerationStructureGeometryKHR ) == sizeof( VkAccelerationStructureGeometryKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); template <> - struct cpp_type + struct CppType { - using type = ImageView; + using Type = AccelerationStructureGeometryKHR; }; - class Image + union DeviceOrHostAddressKHR { - public: - using CType = VkImage; - - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eImage; + DeviceOrHostAddressKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + memcpy( static_cast( this ), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR ) ); + } - public: - VULKAN_HPP_CONSTEXPR Image() VULKAN_HPP_NOEXCEPT - : m_image(VK_NULL_HANDLE) + DeviceOrHostAddressKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} ) : deviceAddress( deviceAddress_ ) {} - VULKAN_HPP_CONSTEXPR Image( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_image(VK_NULL_HANDLE) - {} + DeviceOrHostAddressKHR( void * hostAddress_ ) : hostAddress( hostAddress_ ) {} - VULKAN_HPP_TYPESAFE_EXPLICIT Image( VkImage image ) VULKAN_HPP_NOEXCEPT - : m_image( image ) - {} + DeviceOrHostAddressKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT + { + deviceAddress = deviceAddress_; + return *this; + } -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Image & operator=(VkImage image) VULKAN_HPP_NOEXCEPT + DeviceOrHostAddressKHR & setHostAddress( void * hostAddress_ ) VULKAN_HPP_NOEXCEPT { - m_image = image; + hostAddress = hostAddress_; return *this; } -#endif - Image & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR & + operator=( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - m_image = VK_NULL_HANDLE; + memcpy( static_cast( this ), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR ) ); return *this; } - bool operator==( Image const & rhs ) const VULKAN_HPP_NOEXCEPT + operator VkDeviceOrHostAddressKHR const &() const { - return m_image == rhs.m_image; + return *reinterpret_cast( this ); } - bool operator!=(Image const & rhs ) const VULKAN_HPP_NOEXCEPT + operator VkDeviceOrHostAddressKHR &() { - return m_image != rhs.m_image; + return *reinterpret_cast( this ); + } + +#ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS + VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress; + void * hostAddress; +#else + VkDeviceAddress deviceAddress; + void * hostAddress; +#endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/ + }; + + struct AccelerationStructureBuildGeometryInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eAccelerationStructureBuildGeometryInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + AccelerationStructureBuildGeometryInfoKHR( + VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ = + VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel, + VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ = {}, + VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode_ = + VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR::eBuild, + VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_ = {}, + VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_ = {}, + uint32_t geometryCount_ = {}, + const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * pGeometries_ = {}, + const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const * ppGeometries_ = {}, + VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData_ = {} ) VULKAN_HPP_NOEXCEPT + : type( type_ ) + , flags( flags_ ) + , mode( mode_ ) + , srcAccelerationStructure( srcAccelerationStructure_ ) + , dstAccelerationStructure( dstAccelerationStructure_ ) + , geometryCount( geometryCount_ ) + , pGeometries( pGeometries_ ) + , ppGeometries( ppGeometries_ ) + , scratchData( scratchData_ ) + {} + + AccelerationStructureBuildGeometryInfoKHR( AccelerationStructureBuildGeometryInfoKHR const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + AccelerationStructureBuildGeometryInfoKHR( VkAccelerationStructureBuildGeometryInfoKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + : AccelerationStructureBuildGeometryInfoKHR( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + AccelerationStructureBuildGeometryInfoKHR( + VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_, + VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_, + VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode_, + VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_, + VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries< + const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR> const & geometries_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries< + const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const> const & pGeometries_ = {}, + VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData_ = {} ) + : type( type_ ) + , flags( flags_ ) + , mode( mode_ ) + , srcAccelerationStructure( srcAccelerationStructure_ ) + , dstAccelerationStructure( dstAccelerationStructure_ ) + , geometryCount( static_cast( !geometries_.empty() ? geometries_.size() : pGeometries_.size() ) ) + , pGeometries( geometries_.data() ) + , ppGeometries( pGeometries_.data() ) + , scratchData( scratchData_ ) + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( ( !geometries_.empty() + !pGeometries_.empty() ) == 1 ); +# else + if ( ( !geometries_.empty() + !pGeometries_.empty() ) != 1 ) + { + throw LogicError( + VULKAN_HPP_NAMESPACE_STRING + "::AccelerationStructureBuildGeometryInfoKHR::AccelerationStructureBuildGeometryInfoKHR: ( !geometries_.empty() + !pGeometries_.empty() ) != 1" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - bool operator<(Image const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureBuildGeometryInfoKHR & + operator=( AccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + AccelerationStructureBuildGeometryInfoKHR & + operator=( VkAccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - return m_image < rhs.m_image; + *this = *reinterpret_cast( &rhs ); + return *this; } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImage() const VULKAN_HPP_NOEXCEPT + AccelerationStructureBuildGeometryInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - return m_image; + pNext = pNext_; + return *this; } - explicit operator bool() const VULKAN_HPP_NOEXCEPT + AccelerationStructureBuildGeometryInfoKHR & + setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ ) VULKAN_HPP_NOEXCEPT { - return m_image != VK_NULL_HANDLE; + type = type_; + return *this; } - bool operator!() const VULKAN_HPP_NOEXCEPT + AccelerationStructureBuildGeometryInfoKHR & + setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT { - return m_image == VK_NULL_HANDLE; + flags = flags_; + return *this; } - private: - VkImage m_image; + AccelerationStructureBuildGeometryInfoKHR & + setMode( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT + { + mode = mode_; + return *this; + } + + AccelerationStructureBuildGeometryInfoKHR & setSrcAccelerationStructure( + VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT + { + srcAccelerationStructure = srcAccelerationStructure_; + return *this; + } + + AccelerationStructureBuildGeometryInfoKHR & setDstAccelerationStructure( + VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT + { + dstAccelerationStructure = dstAccelerationStructure_; + return *this; + } + + AccelerationStructureBuildGeometryInfoKHR & setGeometryCount( uint32_t geometryCount_ ) VULKAN_HPP_NOEXCEPT + { + geometryCount = geometryCount_; + return *this; + } + + AccelerationStructureBuildGeometryInfoKHR & + setPGeometries( const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * pGeometries_ ) VULKAN_HPP_NOEXCEPT + { + pGeometries = pGeometries_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + AccelerationStructureBuildGeometryInfoKHR & setGeometries( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries< + const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR> const & geometries_ ) VULKAN_HPP_NOEXCEPT + { + geometryCount = static_cast( geometries_.size() ); + pGeometries = geometries_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + AccelerationStructureBuildGeometryInfoKHR & setPpGeometries( + const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const * ppGeometries_ ) VULKAN_HPP_NOEXCEPT + { + ppGeometries = ppGeometries_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + AccelerationStructureBuildGeometryInfoKHR & setPGeometries( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries< + const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const> const & pGeometries_ ) VULKAN_HPP_NOEXCEPT + { + geometryCount = static_cast( pGeometries_.size() ); + ppGeometries = pGeometries_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + AccelerationStructureBuildGeometryInfoKHR & + setScratchData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & scratchData_ ) VULKAN_HPP_NOEXCEPT + { + scratchData = scratchData_; + return *this; + } + + operator VkAccelerationStructureBuildGeometryInfoKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkAccelerationStructureBuildGeometryInfoKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureBuildGeometryInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type = + VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel; + VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags = {}; + VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode = + VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR::eBuild; + VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure = {}; + VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure = {}; + uint32_t geometryCount = {}; + const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * pGeometries = {}; + const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR * const * ppGeometries = {}; + VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData = {}; }; - static_assert( sizeof( Image ) == sizeof( VkImage ), "handle and wrapper have different size!" ); + static_assert( sizeof( AccelerationStructureBuildGeometryInfoKHR ) == + sizeof( VkAccelerationStructureBuildGeometryInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); template <> - struct cpp_type + struct CppType { - using type = Image; + using Type = AccelerationStructureBuildGeometryInfoKHR; }; - class AccelerationStructureNV + struct AccelerationStructureBuildRangeInfoKHR { - public: - using CType = VkAccelerationStructureNV; +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR AccelerationStructureBuildRangeInfoKHR( uint32_t primitiveCount_ = {}, + uint32_t primitiveOffset_ = {}, + uint32_t firstVertex_ = {}, + uint32_t transformOffset_ = {} ) VULKAN_HPP_NOEXCEPT + : primitiveCount( primitiveCount_ ) + , primitiveOffset( primitiveOffset_ ) + , firstVertex( firstVertex_ ) + , transformOffset( transformOffset_ ) + {} - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eAccelerationStructureNV; + VULKAN_HPP_CONSTEXPR AccelerationStructureBuildRangeInfoKHR( AccelerationStructureBuildRangeInfoKHR const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - public: - VULKAN_HPP_CONSTEXPR AccelerationStructureNV() VULKAN_HPP_NOEXCEPT - : m_accelerationStructureNV(VK_NULL_HANDLE) + AccelerationStructureBuildRangeInfoKHR( VkAccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : AccelerationStructureBuildRangeInfoKHR( + *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_CONSTEXPR AccelerationStructureNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_accelerationStructureNV(VK_NULL_HANDLE) - {} + VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildRangeInfoKHR & + operator=( AccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_TYPESAFE_EXPLICIT AccelerationStructureNV( VkAccelerationStructureNV accelerationStructureNV ) VULKAN_HPP_NOEXCEPT - : m_accelerationStructureNV( accelerationStructureNV ) - {} + AccelerationStructureBuildRangeInfoKHR & + operator=( VkAccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - AccelerationStructureNV & operator=(VkAccelerationStructureNV accelerationStructureNV) VULKAN_HPP_NOEXCEPT + AccelerationStructureBuildRangeInfoKHR & setPrimitiveCount( uint32_t primitiveCount_ ) VULKAN_HPP_NOEXCEPT { - m_accelerationStructureNV = accelerationStructureNV; + primitiveCount = primitiveCount_; return *this; } -#endif - AccelerationStructureNV & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + AccelerationStructureBuildRangeInfoKHR & setPrimitiveOffset( uint32_t primitiveOffset_ ) VULKAN_HPP_NOEXCEPT { - m_accelerationStructureNV = VK_NULL_HANDLE; + primitiveOffset = primitiveOffset_; return *this; } - bool operator==( AccelerationStructureNV const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureBuildRangeInfoKHR & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT { - return m_accelerationStructureNV == rhs.m_accelerationStructureNV; + firstVertex = firstVertex_; + return *this; } - bool operator!=(AccelerationStructureNV const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureBuildRangeInfoKHR & setTransformOffset( uint32_t transformOffset_ ) VULKAN_HPP_NOEXCEPT { - return m_accelerationStructureNV != rhs.m_accelerationStructureNV; + transformOffset = transformOffset_; + return *this; } - bool operator<(AccelerationStructureNV const & rhs ) const VULKAN_HPP_NOEXCEPT + operator VkAccelerationStructureBuildRangeInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return m_accelerationStructureNV < rhs.m_accelerationStructureNV; + return *reinterpret_cast( this ); } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkAccelerationStructureNV() const VULKAN_HPP_NOEXCEPT + operator VkAccelerationStructureBuildRangeInfoKHR &() VULKAN_HPP_NOEXCEPT { - return m_accelerationStructureNV; + return *reinterpret_cast( this ); } - explicit operator bool() const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AccelerationStructureBuildRangeInfoKHR const & ) const = default; +#else + bool operator==( AccelerationStructureBuildRangeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_accelerationStructureNV != VK_NULL_HANDLE; + return ( primitiveCount == rhs.primitiveCount ) && ( primitiveOffset == rhs.primitiveOffset ) && + ( firstVertex == rhs.firstVertex ) && ( transformOffset == rhs.transformOffset ); } - bool operator!() const VULKAN_HPP_NOEXCEPT + bool operator!=( AccelerationStructureBuildRangeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_accelerationStructureNV == VK_NULL_HANDLE; + return !operator==( rhs ); } +#endif - private: - VkAccelerationStructureNV m_accelerationStructureNV; + public: + uint32_t primitiveCount = {}; + uint32_t primitiveOffset = {}; + uint32_t firstVertex = {}; + uint32_t transformOffset = {}; }; - static_assert( sizeof( AccelerationStructureNV ) == sizeof( VkAccelerationStructureNV ), "handle and wrapper have different size!" ); + static_assert( sizeof( AccelerationStructureBuildRangeInfoKHR ) == sizeof( VkAccelerationStructureBuildRangeInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template <> - struct cpp_type + struct AccelerationStructureBuildSizesInfoKHR { - using type = AccelerationStructureNV; - }; + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eAccelerationStructureBuildSizesInfoKHR; - class DescriptorUpdateTemplate - { - public: - using CType = VkDescriptorUpdateTemplate; +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR AccelerationStructureBuildSizesInfoKHR( + VULKAN_HPP_NAMESPACE::DeviceSize accelerationStructureSize_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize updateScratchSize_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize_ = {} ) VULKAN_HPP_NOEXCEPT + : accelerationStructureSize( accelerationStructureSize_ ) + , updateScratchSize( updateScratchSize_ ) + , buildScratchSize( buildScratchSize_ ) + {} - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDescriptorUpdateTemplate; + VULKAN_HPP_CONSTEXPR AccelerationStructureBuildSizesInfoKHR( AccelerationStructureBuildSizesInfoKHR const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - public: - VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate() VULKAN_HPP_NOEXCEPT - : m_descriptorUpdateTemplate(VK_NULL_HANDLE) + AccelerationStructureBuildSizesInfoKHR( VkAccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : AccelerationStructureBuildSizesInfoKHR( + *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_descriptorUpdateTemplate(VK_NULL_HANDLE) - {} + VULKAN_HPP_CONSTEXPR_14 AccelerationStructureBuildSizesInfoKHR & + operator=( AccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorUpdateTemplate( VkDescriptorUpdateTemplate descriptorUpdateTemplate ) VULKAN_HPP_NOEXCEPT - : m_descriptorUpdateTemplate( descriptorUpdateTemplate ) - {} + AccelerationStructureBuildSizesInfoKHR & + operator=( VkAccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DescriptorUpdateTemplate & operator=(VkDescriptorUpdateTemplate descriptorUpdateTemplate) VULKAN_HPP_NOEXCEPT + AccelerationStructureBuildSizesInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - m_descriptorUpdateTemplate = descriptorUpdateTemplate; + pNext = pNext_; return *this; } -#endif - DescriptorUpdateTemplate & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + AccelerationStructureBuildSizesInfoKHR & + setAccelerationStructureSize( VULKAN_HPP_NAMESPACE::DeviceSize accelerationStructureSize_ ) VULKAN_HPP_NOEXCEPT { - m_descriptorUpdateTemplate = VK_NULL_HANDLE; + accelerationStructureSize = accelerationStructureSize_; return *this; } - bool operator==( DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureBuildSizesInfoKHR & + setUpdateScratchSize( VULKAN_HPP_NAMESPACE::DeviceSize updateScratchSize_ ) VULKAN_HPP_NOEXCEPT { - return m_descriptorUpdateTemplate == rhs.m_descriptorUpdateTemplate; + updateScratchSize = updateScratchSize_; + return *this; } - bool operator!=(DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureBuildSizesInfoKHR & + setBuildScratchSize( VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize_ ) VULKAN_HPP_NOEXCEPT { - return m_descriptorUpdateTemplate != rhs.m_descriptorUpdateTemplate; + buildScratchSize = buildScratchSize_; + return *this; } - bool operator<(DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT + operator VkAccelerationStructureBuildSizesInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return m_descriptorUpdateTemplate < rhs.m_descriptorUpdateTemplate; + return *reinterpret_cast( this ); } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorUpdateTemplate() const VULKAN_HPP_NOEXCEPT + operator VkAccelerationStructureBuildSizesInfoKHR &() VULKAN_HPP_NOEXCEPT { - return m_descriptorUpdateTemplate; + return *reinterpret_cast( this ); } - explicit operator bool() const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AccelerationStructureBuildSizesInfoKHR const & ) const = default; +#else + bool operator==( AccelerationStructureBuildSizesInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_descriptorUpdateTemplate != VK_NULL_HANDLE; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( accelerationStructureSize == rhs.accelerationStructureSize ) && + ( updateScratchSize == rhs.updateScratchSize ) && ( buildScratchSize == rhs.buildScratchSize ); } - bool operator!() const VULKAN_HPP_NOEXCEPT + bool operator!=( AccelerationStructureBuildSizesInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_descriptorUpdateTemplate == VK_NULL_HANDLE; + return !operator==( rhs ); } +#endif - private: - VkDescriptorUpdateTemplate m_descriptorUpdateTemplate; + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureBuildSizesInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceSize accelerationStructureSize = {}; + VULKAN_HPP_NAMESPACE::DeviceSize updateScratchSize = {}; + VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize = {}; }; - static_assert( sizeof( DescriptorUpdateTemplate ) == sizeof( VkDescriptorUpdateTemplate ), "handle and wrapper have different size!" ); + static_assert( sizeof( AccelerationStructureBuildSizesInfoKHR ) == sizeof( VkAccelerationStructureBuildSizesInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); template <> - struct cpp_type + struct CppType { - using type = DescriptorUpdateTemplate; + using Type = AccelerationStructureBuildSizesInfoKHR; }; - using DescriptorUpdateTemplateKHR = DescriptorUpdateTemplate; - class Event + class Buffer { public: - using CType = VkEvent; + using CType = VkBuffer; - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eEvent; + 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: - VULKAN_HPP_CONSTEXPR Event() VULKAN_HPP_NOEXCEPT - : m_event(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Event( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_event(VK_NULL_HANDLE) - {} + VULKAN_HPP_CONSTEXPR Buffer() = default; + VULKAN_HPP_CONSTEXPR Buffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT Buffer( VkBuffer buffer ) VULKAN_HPP_NOEXCEPT : m_buffer( buffer ) {} - VULKAN_HPP_TYPESAFE_EXPLICIT Event( VkEvent event ) VULKAN_HPP_NOEXCEPT - : m_event( event ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Event & operator=(VkEvent event) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + Buffer & operator=( VkBuffer buffer ) VULKAN_HPP_NOEXCEPT { - m_event = event; + m_buffer = buffer; return *this; } #endif - Event & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + Buffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - m_event = VK_NULL_HANDLE; + m_buffer = {}; return *this; } - bool operator==( Event const & rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( Buffer const & ) const = default; +#else + bool operator==( Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_event == rhs.m_event; + return m_buffer == rhs.m_buffer; } - bool operator!=(Event const & rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_event != rhs.m_event; + return m_buffer != rhs.m_buffer; } - bool operator<(Event const & rhs ) const VULKAN_HPP_NOEXCEPT + bool operator<( Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_event < rhs.m_event; + return m_buffer < rhs.m_buffer; } +#endif - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkEvent() const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkBuffer() const VULKAN_HPP_NOEXCEPT { - return m_event; + return m_buffer; } explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return m_event != VK_NULL_HANDLE; + return m_buffer != VK_NULL_HANDLE; } bool operator!() const VULKAN_HPP_NOEXCEPT { - return m_event == VK_NULL_HANDLE; + return m_buffer == VK_NULL_HANDLE; } private: - VkEvent m_event; + VkBuffer m_buffer = {}; }; - static_assert( sizeof( Event ) == sizeof( VkEvent ), "handle and wrapper have different size!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::Buffer ) == sizeof( VkBuffer ), + "handle and wrapper have different size!" ); template <> - struct cpp_type + struct VULKAN_HPP_DEPRECATED( "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - using type = Event; + using type = VULKAN_HPP_NAMESPACE::Buffer; }; - class CommandBuffer + template <> + struct CppType { - public: - using CType = VkCommandBuffer; + using Type = VULKAN_HPP_NAMESPACE::Buffer; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::Buffer; + }; - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eCommandBuffer; + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; - public: - VULKAN_HPP_CONSTEXPR CommandBuffer() VULKAN_HPP_NOEXCEPT - : m_commandBuffer(VK_NULL_HANDLE) - {} + struct AccelerationStructureCreateInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eAccelerationStructureCreateInfoKHR; - VULKAN_HPP_CONSTEXPR CommandBuffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_commandBuffer(VK_NULL_HANDLE) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + AccelerationStructureCreateInfoKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR createFlags_ = {}, + VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, + VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ = + VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel, + VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} ) VULKAN_HPP_NOEXCEPT + : createFlags( createFlags_ ) + , buffer( buffer_ ) + , offset( offset_ ) + , size( size_ ) + , type( type_ ) + , deviceAddress( deviceAddress_ ) {} - VULKAN_HPP_TYPESAFE_EXPLICIT CommandBuffer( VkCommandBuffer commandBuffer ) VULKAN_HPP_NOEXCEPT - : m_commandBuffer( commandBuffer ) + VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoKHR( AccelerationStructureCreateInfoKHR const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + AccelerationStructureCreateInfoKHR( VkAccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : AccelerationStructureCreateInfoKHR( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - CommandBuffer & operator=(VkCommandBuffer commandBuffer) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoKHR & + operator=( AccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + AccelerationStructureCreateInfoKHR & + operator=( VkAccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - m_commandBuffer = commandBuffer; + *this = *reinterpret_cast( &rhs ); return *this; } -#endif - CommandBuffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + AccelerationStructureCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - m_commandBuffer = VK_NULL_HANDLE; + pNext = pNext_; return *this; } - bool operator==( CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureCreateInfoKHR & + setCreateFlags( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR createFlags_ ) VULKAN_HPP_NOEXCEPT { - return m_commandBuffer == rhs.m_commandBuffer; + createFlags = createFlags_; + return *this; } - bool operator!=(CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureCreateInfoKHR & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT { - return m_commandBuffer != rhs.m_commandBuffer; + buffer = buffer_; + return *this; } - bool operator<(CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureCreateInfoKHR & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT { - return m_commandBuffer < rhs.m_commandBuffer; + offset = offset_; + return *this; } - template - Result begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo* pBeginInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type begin( const CommandBufferBeginInfo & beginInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void beginConditionalRenderingEXT( const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AccelerationStructureCreateInfoKHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT + { + size = size_; + return *this; + } - template - void beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AccelerationStructureCreateInfoKHR & + setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ ) VULKAN_HPP_NOEXCEPT + { + type = type_; + return *this; + } - template - void beginQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + AccelerationStructureCreateInfoKHR & + setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT + { + deviceAddress = deviceAddress_; + return *this; + } - template - void beginQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags, uint32_t index, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + operator VkAccelerationStructureCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - void beginRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void beginRenderPass( const RenderPassBeginInfo & renderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkAccelerationStructureCreateInfoKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - void beginRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void beginRenderPass2( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AccelerationStructureCreateInfoKHR const & ) const = default; +#else + bool operator==( AccelerationStructureCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( createFlags == rhs.createFlags ) && + ( buffer == rhs.buffer ) && ( offset == rhs.offset ) && ( size == rhs.size ) && ( type == rhs.type ) && + ( deviceAddress == rhs.deviceAddress ); + } - template - void beginRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( AccelerationStructureCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - void beginTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void beginTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy counterBuffers, ArrayProxy counterBufferOffsets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t firstSet, ArrayProxy descriptorSets, ArrayProxy dynamicOffsets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void bindIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::IndexType indexType, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void bindTransformFeedbackBuffersEXT( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, const VULKAN_HPP_NAMESPACE::DeviceSize* pSizes, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void bindTransformFeedbackBuffersEXT( uint32_t firstBinding, ArrayProxy buffers, ArrayProxy offsets, ArrayProxy sizes, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void bindVertexBuffers( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void bindVertexBuffers( uint32_t firstBinding, ArrayProxy buffers, ArrayProxy offsets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void blitImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageBlit* pRegions, VULKAN_HPP_NAMESPACE::Filter filter, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void blitImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy regions, VULKAN_HPP_NAMESPACE::Filter filter, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void buildAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV* pInfo, VULKAN_HPP_NAMESPACE::Buffer instanceData, VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, VULKAN_HPP_NAMESPACE::Bool32 update, VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void buildAccelerationStructureNV( const AccelerationStructureInfoNV & info, VULKAN_HPP_NAMESPACE::Buffer instanceData, VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, VULKAN_HPP_NAMESPACE::Bool32 update, VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void clearAttachments( uint32_t attachmentCount, const VULKAN_HPP_NAMESPACE::ClearAttachment* pAttachments, uint32_t rectCount, const VULKAN_HPP_NAMESPACE::ClearRect* pRects, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void clearAttachments( ArrayProxy attachments, ArrayProxy rects, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void clearColorImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const VULKAN_HPP_NAMESPACE::ClearColorValue* pColor, uint32_t rangeCount, const VULKAN_HPP_NAMESPACE::ImageSubresourceRange* pRanges, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void clearColorImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const ClearColorValue & color, ArrayProxy ranges, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VULKAN_HPP_NAMESPACE::ImageSubresourceRange* pRanges, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const ClearDepthStencilValue & depthStencil, ArrayProxy ranges, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void copyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeNV mode, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferCopy* pRegions, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, ArrayProxy regions, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferImageCopy* pRegions, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy regions, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void copyImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageCopy* pRegions, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy regions, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferImageCopy* pRegions, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, ArrayProxy regions, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - 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, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void debugMarkerEndEXT(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void dispatchBase( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void dispatchBaseKHR( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void drawIndexed( uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void drawIndexedIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - 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, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - 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, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - 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, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void drawIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void drawIndirectByteCountEXT( uint32_t instanceCount, uint32_t firstInstance, VULKAN_HPP_NAMESPACE::Buffer counterBuffer, VULKAN_HPP_NAMESPACE::DeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - 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, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - 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, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - 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, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - 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, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void drawMeshTasksIndirectNV( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void endConditionalRenderingEXT(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void endDebugUtilsLabelEXT(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, uint32_t index, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void endRenderPass(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void endRenderPass2( const SubpassEndInfo & subpassEndInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void endRenderPass2KHR( const SubpassEndInfo & subpassEndInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void endTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void endTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy counterBuffers, ArrayProxy counterBufferOffsets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void executeCommands( uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void executeCommands( ArrayProxy commandBuffers, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void fillBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize size, uint32_t data, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void nextSubpass2( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void nextSubpass2( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void nextSubpass2KHR( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void nextSubpass2KHR( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VULKAN_HPP_NAMESPACE::MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, ArrayProxy memoryBarriers, ArrayProxy bufferMemoryBarriers, ArrayProxy imageMemoryBarriers, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void processCommandsNVX( const VULKAN_HPP_NAMESPACE::CmdProcessCommandsInfoNVX* pProcessCommandsInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void processCommandsNVX( const CmdProcessCommandsInfoNVX & processCommandsInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, uint32_t offset, ArrayProxy values, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VULKAN_HPP_NAMESPACE::WriteDescriptorSet* pDescriptorWrites, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, ArrayProxy descriptorWrites, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR createFlags = {}; + VULKAN_HPP_NAMESPACE::Buffer buffer = {}; + VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; + VULKAN_HPP_NAMESPACE::DeviceSize size = {}; + VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type = + VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel; + VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {}; + }; + static_assert( sizeof( AccelerationStructureCreateInfoKHR ) == sizeof( VkAccelerationStructureCreateInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - void pushDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, const void* pData, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + template <> + struct CppType + { + using Type = AccelerationStructureCreateInfoKHR; + }; - template - void reserveSpaceForCommandsNVX( const VULKAN_HPP_NAMESPACE::CmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void reserveSpaceForCommandsNVX( const CmdReserveSpaceForCommandsInfoNVX & reserveSpaceInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + struct GeometryTrianglesNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryTrianglesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + GeometryTrianglesNV( VULKAN_HPP_NAMESPACE::Buffer vertexData_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset_ = {}, + uint32_t vertexCount_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ = {}, + VULKAN_HPP_NAMESPACE::Format vertexFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, + VULKAN_HPP_NAMESPACE::Buffer indexData_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize indexOffset_ = {}, + uint32_t indexCount_ = {}, + VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16, + VULKAN_HPP_NAMESPACE::Buffer transformData_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize transformOffset_ = {} ) VULKAN_HPP_NOEXCEPT + : vertexData( vertexData_ ) + , vertexOffset( vertexOffset_ ) + , vertexCount( vertexCount_ ) + , vertexStride( vertexStride_ ) + , vertexFormat( vertexFormat_ ) + , indexData( indexData_ ) + , indexOffset( indexOffset_ ) + , indexCount( indexCount_ ) + , indexType( indexType_ ) + , transformData( transformData_ ) + , transformOffset( transformOffset_ ) + {} - template - void resetEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + VULKAN_HPP_CONSTEXPR GeometryTrianglesNV( GeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - void resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + GeometryTrianglesNV( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT + : GeometryTrianglesNV( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - void resolveImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageResolve* pRegions, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void resolveImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy regions, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 GeometryTrianglesNV & + operator=( GeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - void setBlendConstants( const float blendConstants[4], Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + GeometryTrianglesNV & operator=( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - void setCheckpointNV( const void* pCheckpointMarker, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + GeometryTrianglesNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } - template - void setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, ArrayProxy customSampleOrders, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + GeometryTrianglesNV & setVertexData( VULKAN_HPP_NAMESPACE::Buffer vertexData_ ) VULKAN_HPP_NOEXCEPT + { + vertexData = vertexData_; + return *this; + } - template - void setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + GeometryTrianglesNV & setVertexOffset( VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset_ ) VULKAN_HPP_NOEXCEPT + { + vertexOffset = vertexOffset_; + return *this; + } - template - void setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + GeometryTrianglesNV & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT + { + vertexCount = vertexCount_; + return *this; + } - template - void setDeviceMask( uint32_t deviceMask, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + GeometryTrianglesNV & setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT + { + vertexStride = vertexStride_; + return *this; + } - template - void setDeviceMaskKHR( uint32_t deviceMask, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + GeometryTrianglesNV & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT + { + vertexFormat = vertexFormat_; + return *this; + } - template - void setDiscardRectangleEXT( uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setDiscardRectangleEXT( uint32_t firstDiscardRectangle, ArrayProxy discardRectangles, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + GeometryTrianglesNV & setIndexData( VULKAN_HPP_NAMESPACE::Buffer indexData_ ) VULKAN_HPP_NOEXCEPT + { + indexData = indexData_; + return *this; + } - template - void setEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + GeometryTrianglesNV & setIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize indexOffset_ ) VULKAN_HPP_NOEXCEPT + { + indexOffset = indexOffset_; + return *this; + } - template - void setExclusiveScissorNV( uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setExclusiveScissorNV( uint32_t firstExclusiveScissor, ArrayProxy exclusiveScissors, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + GeometryTrianglesNV & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT + { + indexCount = indexCount_; + return *this; + } - template - void setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + GeometryTrianglesNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT + { + indexType = indexType_; + return *this; + } - template - void setLineWidth( float lineWidth, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + GeometryTrianglesNV & setTransformData( VULKAN_HPP_NAMESPACE::Buffer transformData_ ) VULKAN_HPP_NOEXCEPT + { + transformData = transformData_; + return *this; + } - template - Result setPerformanceMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL* pMarkerInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + GeometryTrianglesNV & setTransformOffset( VULKAN_HPP_NAMESPACE::DeviceSize transformOffset_ ) VULKAN_HPP_NOEXCEPT + { + transformOffset = transformOffset_; + return *this; + } - template - Result setPerformanceOverrideINTEL( const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL* pOverrideInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkGeometryTrianglesNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - Result setPerformanceStreamMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL* pMarkerInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkGeometryTrianglesNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - void setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT* pSampleLocationsInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( GeometryTrianglesNV const & ) const = default; +#else + bool operator==( GeometryTrianglesNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( vertexData == rhs.vertexData ) && + ( vertexOffset == rhs.vertexOffset ) && ( vertexCount == rhs.vertexCount ) && + ( vertexStride == rhs.vertexStride ) && ( vertexFormat == rhs.vertexFormat ) && + ( indexData == rhs.indexData ) && ( indexOffset == rhs.indexOffset ) && ( indexCount == rhs.indexCount ) && + ( indexType == rhs.indexType ) && ( transformData == rhs.transformData ) && + ( transformOffset == rhs.transformOffset ); + } - template - void setScissor( uint32_t firstScissor, uint32_t scissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setScissor( uint32_t firstScissor, ArrayProxy scissors, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( GeometryTrianglesNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - void setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryTrianglesNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Buffer vertexData = {}; + VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset = {}; + uint32_t vertexCount = {}; + VULKAN_HPP_NAMESPACE::DeviceSize vertexStride = {}; + VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined; + VULKAN_HPP_NAMESPACE::Buffer indexData = {}; + VULKAN_HPP_NAMESPACE::DeviceSize indexOffset = {}; + uint32_t indexCount = {}; + VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16; + VULKAN_HPP_NAMESPACE::Buffer transformData = {}; + VULKAN_HPP_NAMESPACE::DeviceSize transformOffset = {}; + }; + static_assert( sizeof( GeometryTrianglesNV ) == sizeof( VkGeometryTrianglesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - template - void setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + template <> + struct CppType + { + using Type = GeometryTrianglesNV; + }; - template - void setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + struct GeometryAABBNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryAabbNV; - template - void setViewport( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::Viewport* pViewports, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setViewport( uint32_t firstViewport, ArrayProxy viewports, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR GeometryAABBNV( VULKAN_HPP_NAMESPACE::Buffer aabbData_ = {}, + uint32_t numAABBs_ = {}, + uint32_t stride_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {} ) VULKAN_HPP_NOEXCEPT + : aabbData( aabbData_ ) + , numAABBs( numAABBs_ ) + , stride( stride_ ) + , offset( offset_ ) + {} - template - void setViewportShadingRatePaletteNV( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setViewportShadingRatePaletteNV( uint32_t firstViewport, ArrayProxy shadingRatePalettes, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR GeometryAABBNV( GeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - void setViewportWScalingNV( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setViewportWScalingNV( uint32_t firstViewport, ArrayProxy viewportWScalings, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + GeometryAABBNV( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT + : GeometryAABBNV( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - 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, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + VULKAN_HPP_CONSTEXPR_14 GeometryAABBNV & operator=( GeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - void updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize dataSize, const void* pData, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, ArrayProxy data, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + GeometryAABBNV & operator=( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - void waitEvents( uint32_t eventCount, const VULKAN_HPP_NAMESPACE::Event* pEvents, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VULKAN_HPP_NAMESPACE::MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void waitEvents( ArrayProxy events, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, ArrayProxy memoryBarriers, ArrayProxy bufferMemoryBarriers, ArrayProxy imageMemoryBarriers, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + GeometryAABBNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } - template - void writeAccelerationStructuresPropertiesNV( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void writeAccelerationStructuresPropertiesNV( ArrayProxy accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + GeometryAABBNV & setAabbData( VULKAN_HPP_NAMESPACE::Buffer aabbData_ ) VULKAN_HPP_NOEXCEPT + { + aabbData = aabbData_; + return *this; + } - template - void writeBufferMarkerAMD( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, uint32_t marker, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + GeometryAABBNV & setNumAABBs( uint32_t numAABBs_ ) VULKAN_HPP_NOEXCEPT + { + numAABBs = numAABBs_; + return *this; + } - template - void writeTimestamp( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + GeometryAABBNV & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT + { + stride = stride_; + return *this; + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result end(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type end(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + GeometryAABBNV & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT + { + offset = offset_; + return *this; + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkGeometryAABBNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCommandBuffer() const VULKAN_HPP_NOEXCEPT + operator VkGeometryAABBNV &() VULKAN_HPP_NOEXCEPT { - return m_commandBuffer; + return *reinterpret_cast( this ); } - explicit operator bool() const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( GeometryAABBNV const & ) const = default; +#else + bool operator==( GeometryAABBNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_commandBuffer != VK_NULL_HANDLE; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( aabbData == rhs.aabbData ) && + ( numAABBs == rhs.numAABBs ) && ( stride == rhs.stride ) && ( offset == rhs.offset ); } - bool operator!() const VULKAN_HPP_NOEXCEPT + bool operator!=( GeometryAABBNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_commandBuffer == VK_NULL_HANDLE; + return !operator==( rhs ); } +#endif - private: - VkCommandBuffer m_commandBuffer; + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryAabbNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Buffer aabbData = {}; + uint32_t numAABBs = {}; + uint32_t stride = {}; + VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; }; - static_assert( sizeof( CommandBuffer ) == sizeof( VkCommandBuffer ), "handle and wrapper have different size!" ); + static_assert( sizeof( GeometryAABBNV ) == sizeof( VkGeometryAABBNV ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); template <> - struct cpp_type + struct CppType { - using type = CommandBuffer; + using Type = GeometryAABBNV; }; - class DeviceMemory + struct GeometryDataNV { - public: - using CType = VkDeviceMemory; - - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDeviceMemory; - - public: - VULKAN_HPP_CONSTEXPR DeviceMemory() VULKAN_HPP_NOEXCEPT - : m_deviceMemory(VK_NULL_HANDLE) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR GeometryDataNV( VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles_ = {}, + VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs_ = {} ) VULKAN_HPP_NOEXCEPT + : triangles( triangles_ ) + , aabbs( aabbs_ ) {} - VULKAN_HPP_CONSTEXPR DeviceMemory( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_deviceMemory(VK_NULL_HANDLE) - {} + VULKAN_HPP_CONSTEXPR GeometryDataNV( GeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_TYPESAFE_EXPLICIT DeviceMemory( VkDeviceMemory deviceMemory ) VULKAN_HPP_NOEXCEPT - : m_deviceMemory( deviceMemory ) + GeometryDataNV( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT + : GeometryDataNV( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DeviceMemory & operator=(VkDeviceMemory deviceMemory) VULKAN_HPP_NOEXCEPT - { - m_deviceMemory = deviceMemory; - return *this; - } -#endif + VULKAN_HPP_CONSTEXPR_14 GeometryDataNV & operator=( GeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DeviceMemory & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + GeometryDataNV & operator=( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT { - m_deviceMemory = VK_NULL_HANDLE; + *this = *reinterpret_cast( &rhs ); return *this; } - bool operator==( DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT + GeometryDataNV & setTriangles( VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const & triangles_ ) VULKAN_HPP_NOEXCEPT { - return m_deviceMemory == rhs.m_deviceMemory; + triangles = triangles_; + return *this; } - bool operator!=(DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT + GeometryDataNV & setAabbs( VULKAN_HPP_NAMESPACE::GeometryAABBNV const & aabbs_ ) VULKAN_HPP_NOEXCEPT { - return m_deviceMemory != rhs.m_deviceMemory; + aabbs = aabbs_; + return *this; } - bool operator<(DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT + operator VkGeometryDataNV const &() const VULKAN_HPP_NOEXCEPT { - return m_deviceMemory < rhs.m_deviceMemory; + return *reinterpret_cast( this ); } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDeviceMemory() const VULKAN_HPP_NOEXCEPT + operator VkGeometryDataNV &() VULKAN_HPP_NOEXCEPT { - return m_deviceMemory; + return *reinterpret_cast( this ); } - explicit operator bool() const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( GeometryDataNV const & ) const = default; +#else + bool operator==( GeometryDataNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_deviceMemory != VK_NULL_HANDLE; + return ( triangles == rhs.triangles ) && ( aabbs == rhs.aabbs ); } - bool operator!() const VULKAN_HPP_NOEXCEPT + bool operator!=( GeometryDataNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_deviceMemory == VK_NULL_HANDLE; + return !operator==( rhs ); } +#endif - private: - VkDeviceMemory m_deviceMemory; + public: + VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles = {}; + VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs = {}; }; - static_assert( sizeof( DeviceMemory ) == sizeof( VkDeviceMemory ), "handle and wrapper have different size!" ); + static_assert( sizeof( GeometryDataNV ) == sizeof( VkGeometryDataNV ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - template <> - struct cpp_type + struct GeometryNV { - using type = DeviceMemory; - }; + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryNV; - class BufferView - { - public: - using CType = VkBufferView; +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR GeometryNV( + VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles, + VULKAN_HPP_NAMESPACE::GeometryDataNV geometry_ = {}, + VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ = {} ) VULKAN_HPP_NOEXCEPT + : geometryType( geometryType_ ) + , geometry( geometry_ ) + , flags( flags_ ) + {} - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eBufferView; + VULKAN_HPP_CONSTEXPR GeometryNV( GeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - public: - VULKAN_HPP_CONSTEXPR BufferView() VULKAN_HPP_NOEXCEPT - : m_bufferView(VK_NULL_HANDLE) + GeometryNV( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT + : GeometryNV( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_CONSTEXPR BufferView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_bufferView(VK_NULL_HANDLE) - {} + VULKAN_HPP_CONSTEXPR_14 GeometryNV & operator=( GeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_TYPESAFE_EXPLICIT BufferView( VkBufferView bufferView ) VULKAN_HPP_NOEXCEPT - : m_bufferView( bufferView ) - {} + GeometryNV & operator=( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - BufferView & operator=(VkBufferView bufferView) VULKAN_HPP_NOEXCEPT + GeometryNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - m_bufferView = bufferView; + pNext = pNext_; return *this; } -#endif - BufferView & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + GeometryNV & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT { - m_bufferView = VK_NULL_HANDLE; + geometryType = geometryType_; return *this; } - bool operator==( BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT + GeometryNV & setGeometry( VULKAN_HPP_NAMESPACE::GeometryDataNV const & geometry_ ) VULKAN_HPP_NOEXCEPT { - return m_bufferView == rhs.m_bufferView; + geometry = geometry_; + return *this; } - bool operator!=(BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT + GeometryNV & setFlags( VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT { - return m_bufferView != rhs.m_bufferView; + flags = flags_; + return *this; } - bool operator<(BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT + operator VkGeometryNV const &() const VULKAN_HPP_NOEXCEPT { - return m_bufferView < rhs.m_bufferView; + return *reinterpret_cast( this ); } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkBufferView() const VULKAN_HPP_NOEXCEPT + operator VkGeometryNV &() VULKAN_HPP_NOEXCEPT { - return m_bufferView; + return *reinterpret_cast( this ); } - explicit operator bool() const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( GeometryNV const & ) const = default; +#else + bool operator==( GeometryNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_bufferView != VK_NULL_HANDLE; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( geometryType == rhs.geometryType ) && + ( geometry == rhs.geometry ) && ( flags == rhs.flags ); } - bool operator!() const VULKAN_HPP_NOEXCEPT + bool operator!=( GeometryNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_bufferView == VK_NULL_HANDLE; + return !operator==( rhs ); } +#endif - private: - VkBufferView m_bufferView; + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles; + VULKAN_HPP_NAMESPACE::GeometryDataNV geometry = {}; + VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags = {}; }; - static_assert( sizeof( BufferView ) == sizeof( VkBufferView ), "handle and wrapper have different size!" ); + static_assert( sizeof( GeometryNV ) == sizeof( VkGeometryNV ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); template <> - struct cpp_type + struct CppType { - using type = BufferView; + using Type = GeometryNV; }; - class CommandPool + struct AccelerationStructureInfoNV { - public: - using CType = VkCommandPool; - - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eCommandPool; + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureInfoNV; - public: - VULKAN_HPP_CONSTEXPR CommandPool() VULKAN_HPP_NOEXCEPT - : m_commandPool(VK_NULL_HANDLE) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + AccelerationStructureInfoNV( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_ = {}, + VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_ = {}, + uint32_t instanceCount_ = {}, + uint32_t geometryCount_ = {}, + const VULKAN_HPP_NAMESPACE::GeometryNV * pGeometries_ = {} ) VULKAN_HPP_NOEXCEPT + : type( type_ ) + , flags( flags_ ) + , instanceCount( instanceCount_ ) + , geometryCount( geometryCount_ ) + , pGeometries( pGeometries_ ) {} - VULKAN_HPP_CONSTEXPR CommandPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_commandPool(VK_NULL_HANDLE) + VULKAN_HPP_CONSTEXPR + AccelerationStructureInfoNV( AccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + AccelerationStructureInfoNV( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : AccelerationStructureInfoNV( *reinterpret_cast( &rhs ) ) {} - VULKAN_HPP_TYPESAFE_EXPLICIT CommandPool( VkCommandPool commandPool ) VULKAN_HPP_NOEXCEPT - : m_commandPool( commandPool ) +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + AccelerationStructureInfoNV( + VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_, + VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_, + uint32_t instanceCount_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & geometries_ ) + : type( type_ ) + , flags( flags_ ) + , instanceCount( instanceCount_ ) + , geometryCount( static_cast( geometries_.size() ) ) + , pGeometries( geometries_.data() ) {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInfoNV & + operator=( AccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - CommandPool & operator=(VkCommandPool commandPool) VULKAN_HPP_NOEXCEPT + AccelerationStructureInfoNV & operator=( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT { - m_commandPool = commandPool; + *this = *reinterpret_cast( &rhs ); return *this; } -#endif - CommandPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + AccelerationStructureInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - m_commandPool = VK_NULL_HANDLE; + pNext = pNext_; return *this; } - bool operator==( CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureInfoNV & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_ ) VULKAN_HPP_NOEXCEPT { - return m_commandPool == rhs.m_commandPool; + type = type_; + return *this; } - bool operator!=(CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureInfoNV & + setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT { - return m_commandPool != rhs.m_commandPool; + flags = flags_; + return *this; } - bool operator<(CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureInfoNV & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT { - return m_commandPool < rhs.m_commandPool; + instanceCount = instanceCount_; + return *this; } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCommandPool() const VULKAN_HPP_NOEXCEPT + AccelerationStructureInfoNV & setGeometryCount( uint32_t geometryCount_ ) VULKAN_HPP_NOEXCEPT { - return m_commandPool; + geometryCount = geometryCount_; + return *this; } - explicit operator bool() const VULKAN_HPP_NOEXCEPT + AccelerationStructureInfoNV & + setPGeometries( const VULKAN_HPP_NAMESPACE::GeometryNV * pGeometries_ ) VULKAN_HPP_NOEXCEPT { - return m_commandPool != VK_NULL_HANDLE; + pGeometries = pGeometries_; + return *this; } - bool operator!() const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + AccelerationStructureInfoNV & setGeometries( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & geometries_ ) + VULKAN_HPP_NOEXCEPT { - return m_commandPool == VK_NULL_HANDLE; + geometryCount = static_cast( geometries_.size() ); + pGeometries = geometries_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - private: - VkCommandPool m_commandPool; + operator VkAccelerationStructureInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkAccelerationStructureInfoNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AccelerationStructureInfoNV const & ) const = default; +#else + bool operator==( AccelerationStructureInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( type == rhs.type ) && ( flags == rhs.flags ) && + ( instanceCount == rhs.instanceCount ) && ( geometryCount == rhs.geometryCount ) && + ( pGeometries == rhs.pGeometries ); + } + + bool operator!=( AccelerationStructureInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type = {}; + VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags = {}; + uint32_t instanceCount = {}; + uint32_t geometryCount = {}; + const VULKAN_HPP_NAMESPACE::GeometryNV * pGeometries = {}; }; - static_assert( sizeof( CommandPool ) == sizeof( VkCommandPool ), "handle and wrapper have different size!" ); + static_assert( sizeof( AccelerationStructureInfoNV ) == sizeof( VkAccelerationStructureInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); template <> - struct cpp_type + struct CppType { - using type = CommandPool; + using Type = AccelerationStructureInfoNV; }; - class PipelineCache + struct AccelerationStructureCreateInfoNV { - public: - using CType = VkPipelineCache; - - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::ePipelineCache; + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eAccelerationStructureCreateInfoNV; - public: - VULKAN_HPP_CONSTEXPR PipelineCache() VULKAN_HPP_NOEXCEPT - : m_pipelineCache(VK_NULL_HANDLE) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoNV( + VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ = {}, + VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info_ = {} ) VULKAN_HPP_NOEXCEPT + : compactedSize( compactedSize_ ) + , info( info_ ) {} - VULKAN_HPP_CONSTEXPR PipelineCache( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_pipelineCache(VK_NULL_HANDLE) - {} + VULKAN_HPP_CONSTEXPR + AccelerationStructureCreateInfoNV( AccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_TYPESAFE_EXPLICIT PipelineCache( VkPipelineCache pipelineCache ) VULKAN_HPP_NOEXCEPT - : m_pipelineCache( pipelineCache ) + AccelerationStructureCreateInfoNV( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : AccelerationStructureCreateInfoNV( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 AccelerationStructureCreateInfoNV & + operator=( AccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - PipelineCache & operator=(VkPipelineCache pipelineCache) VULKAN_HPP_NOEXCEPT + AccelerationStructureCreateInfoNV & operator=( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT { - m_pipelineCache = pipelineCache; + *this = *reinterpret_cast( &rhs ); return *this; } -#endif - PipelineCache & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + AccelerationStructureCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - m_pipelineCache = VK_NULL_HANDLE; + pNext = pNext_; return *this; } - bool operator==( PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureCreateInfoNV & + setCompactedSize( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ ) VULKAN_HPP_NOEXCEPT { - return m_pipelineCache == rhs.m_pipelineCache; + compactedSize = compactedSize_; + return *this; } - bool operator!=(PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureCreateInfoNV & + setInfo( VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const & info_ ) VULKAN_HPP_NOEXCEPT { - return m_pipelineCache != rhs.m_pipelineCache; + info = info_; + return *this; } - bool operator<(PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT + operator VkAccelerationStructureCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT { - return m_pipelineCache < rhs.m_pipelineCache; + return *reinterpret_cast( this ); } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipelineCache() const VULKAN_HPP_NOEXCEPT + operator VkAccelerationStructureCreateInfoNV &() VULKAN_HPP_NOEXCEPT { - return m_pipelineCache; + return *reinterpret_cast( this ); } - explicit operator bool() const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AccelerationStructureCreateInfoNV const & ) const = default; +#else + bool operator==( AccelerationStructureCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_pipelineCache != VK_NULL_HANDLE; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( compactedSize == rhs.compactedSize ) && + ( info == rhs.info ); } - bool operator!() const VULKAN_HPP_NOEXCEPT + bool operator!=( AccelerationStructureCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_pipelineCache == VK_NULL_HANDLE; + return !operator==( rhs ); } +#endif - private: - VkPipelineCache m_pipelineCache; + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceSize compactedSize = {}; + VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info = {}; }; - static_assert( sizeof( PipelineCache ) == sizeof( VkPipelineCache ), "handle and wrapper have different size!" ); + static_assert( sizeof( AccelerationStructureCreateInfoNV ) == sizeof( VkAccelerationStructureCreateInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); template <> - struct cpp_type + struct CppType { - using type = PipelineCache; + using Type = AccelerationStructureCreateInfoNV; }; - class DescriptorPool + struct AccelerationStructureDeviceAddressInfoKHR { - public: - using CType = VkDescriptorPool; - - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDescriptorPool; + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eAccelerationStructureDeviceAddressInfoKHR; - public: - VULKAN_HPP_CONSTEXPR DescriptorPool() VULKAN_HPP_NOEXCEPT - : m_descriptorPool(VK_NULL_HANDLE) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR AccelerationStructureDeviceAddressInfoKHR( + VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ = {} ) VULKAN_HPP_NOEXCEPT + : accelerationStructure( accelerationStructure_ ) {} - VULKAN_HPP_CONSTEXPR DescriptorPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_descriptorPool(VK_NULL_HANDLE) - {} + VULKAN_HPP_CONSTEXPR AccelerationStructureDeviceAddressInfoKHR( + AccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorPool( VkDescriptorPool descriptorPool ) VULKAN_HPP_NOEXCEPT - : m_descriptorPool( descriptorPool ) + AccelerationStructureDeviceAddressInfoKHR( VkAccelerationStructureDeviceAddressInfoKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + : AccelerationStructureDeviceAddressInfoKHR( + *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 AccelerationStructureDeviceAddressInfoKHR & + operator=( AccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DescriptorPool & operator=(VkDescriptorPool descriptorPool) VULKAN_HPP_NOEXCEPT + AccelerationStructureDeviceAddressInfoKHR & + operator=( VkAccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - m_descriptorPool = descriptorPool; + *this = *reinterpret_cast( &rhs ); return *this; } -#endif - DescriptorPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + AccelerationStructureDeviceAddressInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - m_descriptorPool = VK_NULL_HANDLE; + pNext = pNext_; return *this; } - bool operator==( DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureDeviceAddressInfoKHR & setAccelerationStructure( + VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT { - return m_descriptorPool == rhs.m_descriptorPool; + accelerationStructure = accelerationStructure_; + return *this; } - bool operator!=(DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT + operator VkAccelerationStructureDeviceAddressInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return m_descriptorPool != rhs.m_descriptorPool; + return *reinterpret_cast( this ); } - bool operator<(DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT + operator VkAccelerationStructureDeviceAddressInfoKHR &() VULKAN_HPP_NOEXCEPT { - return m_descriptorPool < rhs.m_descriptorPool; + return *reinterpret_cast( this ); } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorPool() const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AccelerationStructureDeviceAddressInfoKHR const & ) const = default; +#else + bool operator==( AccelerationStructureDeviceAddressInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_descriptorPool; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorPool != VK_NULL_HANDLE; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( accelerationStructure == rhs.accelerationStructure ); } - bool operator!() const VULKAN_HPP_NOEXCEPT + bool operator!=( AccelerationStructureDeviceAddressInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_descriptorPool == VK_NULL_HANDLE; + return !operator==( rhs ); } +#endif - private: - VkDescriptorPool m_descriptorPool; + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureDeviceAddressInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure = {}; }; - static_assert( sizeof( DescriptorPool ) == sizeof( VkDescriptorPool ), "handle and wrapper have different size!" ); + static_assert( sizeof( AccelerationStructureDeviceAddressInfoKHR ) == + sizeof( VkAccelerationStructureDeviceAddressInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); template <> - struct cpp_type + struct CppType { - using type = DescriptorPool; + using Type = AccelerationStructureDeviceAddressInfoKHR; }; - class DescriptorSetLayout + struct TransformMatrixKHR { - public: - using CType = VkDescriptorSetLayout; - - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDescriptorSetLayout; - - public: - VULKAN_HPP_CONSTEXPR DescriptorSetLayout() VULKAN_HPP_NOEXCEPT - : m_descriptorSetLayout(VK_NULL_HANDLE) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 + TransformMatrixKHR( std::array, 3> const & matrix_ = {} ) VULKAN_HPP_NOEXCEPT + : matrix( matrix_ ) {} - VULKAN_HPP_CONSTEXPR DescriptorSetLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_descriptorSetLayout(VK_NULL_HANDLE) - {} + VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR( TransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSetLayout( VkDescriptorSetLayout descriptorSetLayout ) VULKAN_HPP_NOEXCEPT - : m_descriptorSetLayout( descriptorSetLayout ) + TransformMatrixKHR( VkTransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : TransformMatrixKHR( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DescriptorSetLayout & operator=(VkDescriptorSetLayout descriptorSetLayout) VULKAN_HPP_NOEXCEPT - { - m_descriptorSetLayout = descriptorSetLayout; - return *this; - } -#endif + VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR & + operator=( TransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DescriptorSetLayout & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + TransformMatrixKHR & operator=( VkTransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - m_descriptorSetLayout = VK_NULL_HANDLE; + *this = *reinterpret_cast( &rhs ); return *this; } - bool operator==( DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSetLayout == rhs.m_descriptorSetLayout; - } - - bool operator!=(DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT + TransformMatrixKHR & setMatrix( std::array, 3> matrix_ ) VULKAN_HPP_NOEXCEPT { - return m_descriptorSetLayout != rhs.m_descriptorSetLayout; + matrix = matrix_; + return *this; } - bool operator<(DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT + operator VkTransformMatrixKHR const &() const VULKAN_HPP_NOEXCEPT { - return m_descriptorSetLayout < rhs.m_descriptorSetLayout; + return *reinterpret_cast( this ); } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorSetLayout() const VULKAN_HPP_NOEXCEPT + operator VkTransformMatrixKHR &() VULKAN_HPP_NOEXCEPT { - return m_descriptorSetLayout; + return *reinterpret_cast( this ); } - explicit operator bool() const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( TransformMatrixKHR const & ) const = default; +#else + bool operator==( TransformMatrixKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_descriptorSetLayout != VK_NULL_HANDLE; + return ( matrix == rhs.matrix ); } - bool operator!() const VULKAN_HPP_NOEXCEPT + bool operator!=( TransformMatrixKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_descriptorSetLayout == VK_NULL_HANDLE; + return !operator==( rhs ); } +#endif - private: - VkDescriptorSetLayout m_descriptorSetLayout; - }; - static_assert( sizeof( DescriptorSetLayout ) == sizeof( VkDescriptorSetLayout ), "handle and wrapper have different size!" ); - - template <> - struct cpp_type - { - using type = DescriptorSetLayout; + public: + VULKAN_HPP_NAMESPACE::ArrayWrapper2D matrix = {}; }; + static_assert( sizeof( TransformMatrixKHR ) == sizeof( VkTransformMatrixKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + using TransformMatrixNV = TransformMatrixKHR; - class Framebuffer + struct AccelerationStructureInstanceKHR { - public: - using CType = VkFramebuffer; +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 + AccelerationStructureInstanceKHR( VULKAN_HPP_NAMESPACE::TransformMatrixKHR transform_ = {}, + uint32_t instanceCustomIndex_ = {}, + uint32_t mask_ = {}, + uint32_t instanceShaderBindingTableRecordOffset_ = {}, + VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ = {}, + uint64_t accelerationStructureReference_ = {} ) VULKAN_HPP_NOEXCEPT + : transform( transform_ ) + , instanceCustomIndex( instanceCustomIndex_ ) + , mask( mask_ ) + , instanceShaderBindingTableRecordOffset( instanceShaderBindingTableRecordOffset_ ) + , flags( flags_ ) + , accelerationStructureReference( accelerationStructureReference_ ) + {} - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eFramebuffer; + VULKAN_HPP_CONSTEXPR_14 + AccelerationStructureInstanceKHR( AccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - public: - VULKAN_HPP_CONSTEXPR Framebuffer() VULKAN_HPP_NOEXCEPT - : m_framebuffer(VK_NULL_HANDLE) + AccelerationStructureInstanceKHR( VkAccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : AccelerationStructureInstanceKHR( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_CONSTEXPR Framebuffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_framebuffer(VK_NULL_HANDLE) - {} + VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR & + operator=( AccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_TYPESAFE_EXPLICIT Framebuffer( VkFramebuffer framebuffer ) VULKAN_HPP_NOEXCEPT - : m_framebuffer( framebuffer ) - {} + AccelerationStructureInstanceKHR & operator=( VkAccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Framebuffer & operator=(VkFramebuffer framebuffer) VULKAN_HPP_NOEXCEPT + AccelerationStructureInstanceKHR & + setTransform( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transform_ ) VULKAN_HPP_NOEXCEPT { - m_framebuffer = framebuffer; + transform = transform_; return *this; } -#endif - Framebuffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + AccelerationStructureInstanceKHR & setInstanceCustomIndex( uint32_t instanceCustomIndex_ ) VULKAN_HPP_NOEXCEPT { - m_framebuffer = VK_NULL_HANDLE; + instanceCustomIndex = instanceCustomIndex_; return *this; } - bool operator==( Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureInstanceKHR & setMask( uint32_t mask_ ) VULKAN_HPP_NOEXCEPT { - return m_framebuffer == rhs.m_framebuffer; + mask = mask_; + return *this; } - bool operator!=(Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureInstanceKHR & + setInstanceShaderBindingTableRecordOffset( uint32_t instanceShaderBindingTableRecordOffset_ ) VULKAN_HPP_NOEXCEPT { - return m_framebuffer != rhs.m_framebuffer; + instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset_; + return *this; } - bool operator<(Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureInstanceKHR & + setFlags( VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT { - return m_framebuffer < rhs.m_framebuffer; + flags = *reinterpret_cast( &flags_ ); + return *this; } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkFramebuffer() const VULKAN_HPP_NOEXCEPT + AccelerationStructureInstanceKHR & + setAccelerationStructureReference( uint64_t accelerationStructureReference_ ) VULKAN_HPP_NOEXCEPT { - return m_framebuffer; + accelerationStructureReference = accelerationStructureReference_; + return *this; } - explicit operator bool() const VULKAN_HPP_NOEXCEPT + operator VkAccelerationStructureInstanceKHR const &() const VULKAN_HPP_NOEXCEPT { - return m_framebuffer != VK_NULL_HANDLE; + return *reinterpret_cast( this ); } - bool operator!() const VULKAN_HPP_NOEXCEPT + operator VkAccelerationStructureInstanceKHR &() VULKAN_HPP_NOEXCEPT { - return m_framebuffer == VK_NULL_HANDLE; + return *reinterpret_cast( this ); } - private: - VkFramebuffer m_framebuffer; - }; - static_assert( sizeof( Framebuffer ) == sizeof( VkFramebuffer ), "handle and wrapper have different size!" ); +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AccelerationStructureInstanceKHR const & ) const = default; +#else + bool operator==( AccelerationStructureInstanceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( transform == rhs.transform ) && ( instanceCustomIndex == rhs.instanceCustomIndex ) && + ( mask == rhs.mask ) && + ( instanceShaderBindingTableRecordOffset == rhs.instanceShaderBindingTableRecordOffset ) && + ( flags == rhs.flags ) && ( accelerationStructureReference == rhs.accelerationStructureReference ); + } - template <> - struct cpp_type - { - using type = Framebuffer; + bool operator!=( AccelerationStructureInstanceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::TransformMatrixKHR transform = {}; + uint32_t instanceCustomIndex : 24; + uint32_t mask : 8; + uint32_t instanceShaderBindingTableRecordOffset : 24; + VkGeometryInstanceFlagsKHR flags : 8; + uint64_t accelerationStructureReference = {}; }; + static_assert( sizeof( AccelerationStructureInstanceKHR ) == sizeof( VkAccelerationStructureInstanceKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + using AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR; - class IndirectCommandsLayoutNVX + class AccelerationStructureNV { public: - using CType = VkIndirectCommandsLayoutNVX; + using CType = VkAccelerationStructureNV; - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eIndirectCommandsLayoutNVX; + 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: - VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNVX() VULKAN_HPP_NOEXCEPT - : m_indirectCommandsLayoutNVX(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNVX( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_indirectCommandsLayoutNVX(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT IndirectCommandsLayoutNVX( VkIndirectCommandsLayoutNVX indirectCommandsLayoutNVX ) VULKAN_HPP_NOEXCEPT - : m_indirectCommandsLayoutNVX( indirectCommandsLayoutNVX ) + VULKAN_HPP_CONSTEXPR AccelerationStructureNV() = default; + VULKAN_HPP_CONSTEXPR AccelerationStructureNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT + AccelerationStructureNV( VkAccelerationStructureNV accelerationStructureNV ) VULKAN_HPP_NOEXCEPT + : m_accelerationStructureNV( accelerationStructureNV ) {} -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - IndirectCommandsLayoutNVX & operator=(VkIndirectCommandsLayoutNVX indirectCommandsLayoutNVX) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + AccelerationStructureNV & operator=( VkAccelerationStructureNV accelerationStructureNV ) VULKAN_HPP_NOEXCEPT { - m_indirectCommandsLayoutNVX = indirectCommandsLayoutNVX; + m_accelerationStructureNV = accelerationStructureNV; return *this; } #endif - IndirectCommandsLayoutNVX & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + AccelerationStructureNV & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - m_indirectCommandsLayoutNVX = VK_NULL_HANDLE; + m_accelerationStructureNV = {}; return *this; } - bool operator==( IndirectCommandsLayoutNVX const & rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AccelerationStructureNV const & ) const = default; +#else + bool operator==( AccelerationStructureNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_indirectCommandsLayoutNVX == rhs.m_indirectCommandsLayoutNVX; + return m_accelerationStructureNV == rhs.m_accelerationStructureNV; } - bool operator!=(IndirectCommandsLayoutNVX const & rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( AccelerationStructureNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_indirectCommandsLayoutNVX != rhs.m_indirectCommandsLayoutNVX; + return m_accelerationStructureNV != rhs.m_accelerationStructureNV; } - bool operator<(IndirectCommandsLayoutNVX const & rhs ) const VULKAN_HPP_NOEXCEPT + bool operator<( AccelerationStructureNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_indirectCommandsLayoutNVX < rhs.m_indirectCommandsLayoutNVX; + return m_accelerationStructureNV < rhs.m_accelerationStructureNV; } +#endif - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkIndirectCommandsLayoutNVX() const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkAccelerationStructureNV() const VULKAN_HPP_NOEXCEPT { - return m_indirectCommandsLayoutNVX; + return m_accelerationStructureNV; } explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return m_indirectCommandsLayoutNVX != VK_NULL_HANDLE; + return m_accelerationStructureNV != VK_NULL_HANDLE; } bool operator!() const VULKAN_HPP_NOEXCEPT { - return m_indirectCommandsLayoutNVX == VK_NULL_HANDLE; + return m_accelerationStructureNV == VK_NULL_HANDLE; } private: - VkIndirectCommandsLayoutNVX m_indirectCommandsLayoutNVX; + VkAccelerationStructureNV m_accelerationStructureNV = {}; }; - static_assert( sizeof( IndirectCommandsLayoutNVX ) == sizeof( VkIndirectCommandsLayoutNVX ), "handle and wrapper have different size!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureNV ) == sizeof( VkAccelerationStructureNV ), + "handle and wrapper have different size!" ); template <> - struct cpp_type + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - using type = IndirectCommandsLayoutNVX; + using type = VULKAN_HPP_NAMESPACE::AccelerationStructureNV; }; - class ObjectTableNVX + template <> + struct CppType { - public: - using CType = VkObjectTableNVX; + using Type = VULKAN_HPP_NAMESPACE::AccelerationStructureNV; + }; - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eObjectTableNVX; + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::AccelerationStructureNV; + }; - public: - VULKAN_HPP_CONSTEXPR ObjectTableNVX() VULKAN_HPP_NOEXCEPT - : m_objectTableNVX(VK_NULL_HANDLE) - {} + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; - VULKAN_HPP_CONSTEXPR ObjectTableNVX( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_objectTableNVX(VK_NULL_HANDLE) + struct AccelerationStructureMemoryRequirementsInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eAccelerationStructureMemoryRequirementsInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoNV( + VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ = + VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV::eObject, + VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ = {} ) VULKAN_HPP_NOEXCEPT + : type( type_ ) + , accelerationStructure( accelerationStructure_ ) {} - VULKAN_HPP_TYPESAFE_EXPLICIT ObjectTableNVX( VkObjectTableNVX objectTableNVX ) VULKAN_HPP_NOEXCEPT - : m_objectTableNVX( objectTableNVX ) + VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoNV( + AccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + AccelerationStructureMemoryRequirementsInfoNV( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : AccelerationStructureMemoryRequirementsInfoNV( + *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - ObjectTableNVX & operator=(VkObjectTableNVX objectTableNVX) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 AccelerationStructureMemoryRequirementsInfoNV & + operator=( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + AccelerationStructureMemoryRequirementsInfoNV & + operator=( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT { - m_objectTableNVX = objectTableNVX; + *this = *reinterpret_cast( &rhs ); return *this; } -#endif - ObjectTableNVX & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + AccelerationStructureMemoryRequirementsInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - m_objectTableNVX = VK_NULL_HANDLE; + pNext = pNext_; return *this; } - bool operator==( ObjectTableNVX const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureMemoryRequirementsInfoNV & + setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ ) VULKAN_HPP_NOEXCEPT { - return m_objectTableNVX == rhs.m_objectTableNVX; + type = type_; + return *this; } - bool operator!=(ObjectTableNVX const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureMemoryRequirementsInfoNV & setAccelerationStructure( + VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT { - return m_objectTableNVX != rhs.m_objectTableNVX; + accelerationStructure = accelerationStructure_; + return *this; } - bool operator<(ObjectTableNVX const & rhs ) const VULKAN_HPP_NOEXCEPT + operator VkAccelerationStructureMemoryRequirementsInfoNV const &() const VULKAN_HPP_NOEXCEPT { - return m_objectTableNVX < rhs.m_objectTableNVX; + return *reinterpret_cast( this ); } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkObjectTableNVX() const VULKAN_HPP_NOEXCEPT + operator VkAccelerationStructureMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT { - return m_objectTableNVX; + return *reinterpret_cast( this ); } - explicit operator bool() const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AccelerationStructureMemoryRequirementsInfoNV const & ) const = default; +#else + bool operator==( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_objectTableNVX != VK_NULL_HANDLE; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( type == rhs.type ) && + ( accelerationStructure == rhs.accelerationStructure ); } - bool operator!() const VULKAN_HPP_NOEXCEPT + bool operator!=( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_objectTableNVX == VK_NULL_HANDLE; + return !operator==( rhs ); } +#endif - private: - VkObjectTableNVX m_objectTableNVX; + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type = + VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV::eObject; + VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure = {}; }; - static_assert( sizeof( ObjectTableNVX ) == sizeof( VkObjectTableNVX ), "handle and wrapper have different size!" ); + static_assert( sizeof( AccelerationStructureMemoryRequirementsInfoNV ) == + sizeof( VkAccelerationStructureMemoryRequirementsInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); template <> - struct cpp_type + struct CppType { - using type = ObjectTableNVX; + using Type = AccelerationStructureMemoryRequirementsInfoNV; }; - class RenderPass + struct AccelerationStructureVersionInfoKHR { - public: - using CType = VkRenderPass; - - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eRenderPass; + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eAccelerationStructureVersionInfoKHR; - public: - VULKAN_HPP_CONSTEXPR RenderPass() VULKAN_HPP_NOEXCEPT - : m_renderPass(VK_NULL_HANDLE) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR AccelerationStructureVersionInfoKHR( const uint8_t * pVersionData_ = {} ) VULKAN_HPP_NOEXCEPT + : pVersionData( pVersionData_ ) {} - VULKAN_HPP_CONSTEXPR RenderPass( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_renderPass(VK_NULL_HANDLE) - {} + VULKAN_HPP_CONSTEXPR AccelerationStructureVersionInfoKHR( AccelerationStructureVersionInfoKHR const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_TYPESAFE_EXPLICIT RenderPass( VkRenderPass renderPass ) VULKAN_HPP_NOEXCEPT - : m_renderPass( renderPass ) + AccelerationStructureVersionInfoKHR( VkAccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : AccelerationStructureVersionInfoKHR( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - RenderPass & operator=(VkRenderPass renderPass) VULKAN_HPP_NOEXCEPT - { - m_renderPass = renderPass; - return *this; - } -#endif + VULKAN_HPP_CONSTEXPR_14 AccelerationStructureVersionInfoKHR & + operator=( AccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - RenderPass & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + AccelerationStructureVersionInfoKHR & + operator=( VkAccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - m_renderPass = VK_NULL_HANDLE; + *this = *reinterpret_cast( &rhs ); return *this; } - bool operator==( RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureVersionInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - return m_renderPass == rhs.m_renderPass; + pNext = pNext_; + return *this; } - bool operator!=(RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT + AccelerationStructureVersionInfoKHR & setPVersionData( const uint8_t * pVersionData_ ) VULKAN_HPP_NOEXCEPT { - return m_renderPass != rhs.m_renderPass; + pVersionData = pVersionData_; + return *this; } - bool operator<(RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT + operator VkAccelerationStructureVersionInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return m_renderPass < rhs.m_renderPass; + return *reinterpret_cast( this ); } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkRenderPass() const VULKAN_HPP_NOEXCEPT + operator VkAccelerationStructureVersionInfoKHR &() VULKAN_HPP_NOEXCEPT { - return m_renderPass; + return *reinterpret_cast( this ); } - explicit operator bool() const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AccelerationStructureVersionInfoKHR const & ) const = default; +#else + bool operator==( AccelerationStructureVersionInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_renderPass != VK_NULL_HANDLE; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pVersionData == rhs.pVersionData ); } - bool operator!() const VULKAN_HPP_NOEXCEPT + bool operator!=( AccelerationStructureVersionInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_renderPass == VK_NULL_HANDLE; + return !operator==( rhs ); } +#endif - private: - VkRenderPass m_renderPass; + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureVersionInfoKHR; + const void * pNext = {}; + const uint8_t * pVersionData = {}; }; - static_assert( sizeof( RenderPass ) == sizeof( VkRenderPass ), "handle and wrapper have different size!" ); + static_assert( sizeof( AccelerationStructureVersionInfoKHR ) == sizeof( VkAccelerationStructureVersionInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); template <> - struct cpp_type + struct CppType { - using type = RenderPass; + using Type = AccelerationStructureVersionInfoKHR; }; - class Sampler + class SwapchainKHR { public: - using CType = VkSampler; + using CType = VkSwapchainKHR; - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eSampler; + 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: - VULKAN_HPP_CONSTEXPR Sampler() VULKAN_HPP_NOEXCEPT - : m_sampler(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Sampler( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_sampler(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT Sampler( VkSampler sampler ) VULKAN_HPP_NOEXCEPT - : m_sampler( sampler ) + VULKAN_HPP_CONSTEXPR SwapchainKHR() = default; + VULKAN_HPP_CONSTEXPR SwapchainKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT SwapchainKHR( VkSwapchainKHR swapchainKHR ) VULKAN_HPP_NOEXCEPT + : m_swapchainKHR( swapchainKHR ) {} -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Sampler & operator=(VkSampler sampler) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + SwapchainKHR & operator=( VkSwapchainKHR swapchainKHR ) VULKAN_HPP_NOEXCEPT { - m_sampler = sampler; + m_swapchainKHR = swapchainKHR; return *this; } #endif - Sampler & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + SwapchainKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - m_sampler = VK_NULL_HANDLE; + m_swapchainKHR = {}; return *this; } - bool operator==( Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SwapchainKHR const & ) const = default; +#else + bool operator==( SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_sampler == rhs.m_sampler; + return m_swapchainKHR == rhs.m_swapchainKHR; } - bool operator!=(Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_sampler != rhs.m_sampler; + return m_swapchainKHR != rhs.m_swapchainKHR; } - bool operator<(Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT + bool operator<( SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_sampler < rhs.m_sampler; + return m_swapchainKHR < rhs.m_swapchainKHR; } +#endif - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSampler() const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSwapchainKHR() const VULKAN_HPP_NOEXCEPT { - return m_sampler; + return m_swapchainKHR; } explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return m_sampler != VK_NULL_HANDLE; + return m_swapchainKHR != VK_NULL_HANDLE; } bool operator!() const VULKAN_HPP_NOEXCEPT { - return m_sampler == VK_NULL_HANDLE; + return m_swapchainKHR == VK_NULL_HANDLE; } private: - VkSampler m_sampler; + VkSwapchainKHR m_swapchainKHR = {}; }; - static_assert( sizeof( Sampler ) == sizeof( VkSampler ), "handle and wrapper have different size!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::SwapchainKHR ) == sizeof( VkSwapchainKHR ), + "handle and wrapper have different size!" ); template <> - struct cpp_type + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - using type = Sampler; + using type = VULKAN_HPP_NAMESPACE::SwapchainKHR; }; - class SamplerYcbcrConversion + template <> + struct CppType { - public: - using CType = VkSamplerYcbcrConversion; + using Type = VULKAN_HPP_NAMESPACE::SwapchainKHR; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::SwapchainKHR; + }; - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eSamplerYcbcrConversion; + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + class Semaphore + { public: - VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion() VULKAN_HPP_NOEXCEPT - : m_samplerYcbcrConversion(VK_NULL_HANDLE) - {} + using CType = VkSemaphore; - VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_samplerYcbcrConversion(VK_NULL_HANDLE) - {} + 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; - VULKAN_HPP_TYPESAFE_EXPLICIT SamplerYcbcrConversion( VkSamplerYcbcrConversion samplerYcbcrConversion ) VULKAN_HPP_NOEXCEPT - : m_samplerYcbcrConversion( samplerYcbcrConversion ) - {} + public: + VULKAN_HPP_CONSTEXPR Semaphore() = default; + VULKAN_HPP_CONSTEXPR Semaphore( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT Semaphore( VkSemaphore semaphore ) VULKAN_HPP_NOEXCEPT : m_semaphore( semaphore ) {} -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - SamplerYcbcrConversion & operator=(VkSamplerYcbcrConversion samplerYcbcrConversion) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + Semaphore & operator=( VkSemaphore semaphore ) VULKAN_HPP_NOEXCEPT { - m_samplerYcbcrConversion = samplerYcbcrConversion; + m_semaphore = semaphore; return *this; } #endif - SamplerYcbcrConversion & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + Semaphore & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - m_samplerYcbcrConversion = VK_NULL_HANDLE; + m_semaphore = {}; return *this; } - bool operator==( SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( Semaphore const & ) const = default; +#else + bool operator==( Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_samplerYcbcrConversion == rhs.m_samplerYcbcrConversion; + return m_semaphore == rhs.m_semaphore; } - bool operator!=(SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_samplerYcbcrConversion != rhs.m_samplerYcbcrConversion; + return m_semaphore != rhs.m_semaphore; } - bool operator<(SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT + bool operator<( Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_samplerYcbcrConversion < rhs.m_samplerYcbcrConversion; + return m_semaphore < rhs.m_semaphore; } +#endif - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSamplerYcbcrConversion() const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSemaphore() const VULKAN_HPP_NOEXCEPT { - return m_samplerYcbcrConversion; + return m_semaphore; } explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return m_samplerYcbcrConversion != VK_NULL_HANDLE; + return m_semaphore != VK_NULL_HANDLE; } bool operator!() const VULKAN_HPP_NOEXCEPT { - return m_samplerYcbcrConversion == VK_NULL_HANDLE; + return m_semaphore == VK_NULL_HANDLE; } private: - VkSamplerYcbcrConversion m_samplerYcbcrConversion; + VkSemaphore m_semaphore = {}; }; - static_assert( sizeof( SamplerYcbcrConversion ) == sizeof( VkSamplerYcbcrConversion ), "handle and wrapper have different size!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::Semaphore ) == sizeof( VkSemaphore ), + "handle and wrapper have different size!" ); template <> - struct cpp_type + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - using type = SamplerYcbcrConversion; + using type = VULKAN_HPP_NAMESPACE::Semaphore; }; - using SamplerYcbcrConversionKHR = SamplerYcbcrConversion; - class ShaderModule + template <> + struct CppType { - public: - using CType = VkShaderModule; + using Type = VULKAN_HPP_NAMESPACE::Semaphore; + }; - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eShaderModule; + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::Semaphore; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + class Fence + { public: - VULKAN_HPP_CONSTEXPR ShaderModule() VULKAN_HPP_NOEXCEPT - : m_shaderModule(VK_NULL_HANDLE) - {} + using CType = VkFence; - VULKAN_HPP_CONSTEXPR ShaderModule( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_shaderModule(VK_NULL_HANDLE) - {} + 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; - VULKAN_HPP_TYPESAFE_EXPLICIT ShaderModule( VkShaderModule shaderModule ) VULKAN_HPP_NOEXCEPT - : m_shaderModule( shaderModule ) - {} + public: + VULKAN_HPP_CONSTEXPR Fence() = default; + VULKAN_HPP_CONSTEXPR Fence( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT Fence( VkFence fence ) VULKAN_HPP_NOEXCEPT : m_fence( fence ) {} -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - ShaderModule & operator=(VkShaderModule shaderModule) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + Fence & operator=( VkFence fence ) VULKAN_HPP_NOEXCEPT { - m_shaderModule = shaderModule; + m_fence = fence; return *this; } #endif - ShaderModule & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + Fence & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - m_shaderModule = VK_NULL_HANDLE; + m_fence = {}; return *this; } - bool operator==( ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( Fence const & ) const = default; +#else + bool operator==( Fence const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_shaderModule == rhs.m_shaderModule; + return m_fence == rhs.m_fence; } - bool operator!=(ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( Fence const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_shaderModule != rhs.m_shaderModule; + return m_fence != rhs.m_fence; } - bool operator<(ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT + bool operator<( Fence const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_shaderModule < rhs.m_shaderModule; + return m_fence < rhs.m_fence; } +#endif - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkShaderModule() const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkFence() const VULKAN_HPP_NOEXCEPT { - return m_shaderModule; + return m_fence; } explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return m_shaderModule != VK_NULL_HANDLE; + return m_fence != VK_NULL_HANDLE; } bool operator!() const VULKAN_HPP_NOEXCEPT { - return m_shaderModule == VK_NULL_HANDLE; + return m_fence == VK_NULL_HANDLE; } private: - VkShaderModule m_shaderModule; + VkFence m_fence = {}; }; - static_assert( sizeof( ShaderModule ) == sizeof( VkShaderModule ), "handle and wrapper have different size!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::Fence ) == sizeof( VkFence ), + "handle and wrapper have different size!" ); template <> - struct cpp_type + struct VULKAN_HPP_DEPRECATED( "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - using type = ShaderModule; + using type = VULKAN_HPP_NAMESPACE::Fence; }; - class ValidationCacheEXT + template <> + struct CppType { - public: - using CType = VkValidationCacheEXT; + using Type = VULKAN_HPP_NAMESPACE::Fence; + }; - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eValidationCacheEXT; + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::Fence; + }; - public: - VULKAN_HPP_CONSTEXPR ValidationCacheEXT() VULKAN_HPP_NOEXCEPT - : m_validationCacheEXT(VK_NULL_HANDLE) - {} + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + struct AcquireNextImageInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAcquireNextImageInfoKHR; - VULKAN_HPP_CONSTEXPR ValidationCacheEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_validationCacheEXT(VK_NULL_HANDLE) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR AcquireNextImageInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}, + uint64_t timeout_ = {}, + VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, + VULKAN_HPP_NAMESPACE::Fence fence_ = {}, + uint32_t deviceMask_ = {} ) VULKAN_HPP_NOEXCEPT + : swapchain( swapchain_ ) + , timeout( timeout_ ) + , semaphore( semaphore_ ) + , fence( fence_ ) + , deviceMask( deviceMask_ ) {} - VULKAN_HPP_TYPESAFE_EXPLICIT ValidationCacheEXT( VkValidationCacheEXT validationCacheEXT ) VULKAN_HPP_NOEXCEPT - : m_validationCacheEXT( validationCacheEXT ) + VULKAN_HPP_CONSTEXPR AcquireNextImageInfoKHR( AcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + AcquireNextImageInfoKHR( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : AcquireNextImageInfoKHR( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 AcquireNextImageInfoKHR & + operator=( AcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - ValidationCacheEXT & operator=(VkValidationCacheEXT validationCacheEXT) VULKAN_HPP_NOEXCEPT + AcquireNextImageInfoKHR & operator=( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - m_validationCacheEXT = validationCacheEXT; + *this = *reinterpret_cast( &rhs ); return *this; } -#endif - ValidationCacheEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + AcquireNextImageInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - m_validationCacheEXT = VK_NULL_HANDLE; + pNext = pNext_; return *this; } - bool operator==( ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + AcquireNextImageInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT { - return m_validationCacheEXT == rhs.m_validationCacheEXT; + swapchain = swapchain_; + return *this; } - bool operator!=(ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + AcquireNextImageInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT { - return m_validationCacheEXT != rhs.m_validationCacheEXT; + timeout = timeout_; + return *this; } - bool operator<(ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + AcquireNextImageInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT { - return m_validationCacheEXT < rhs.m_validationCacheEXT; + semaphore = semaphore_; + return *this; } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkValidationCacheEXT() const VULKAN_HPP_NOEXCEPT + AcquireNextImageInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT { - return m_validationCacheEXT; + fence = fence_; + return *this; } - explicit operator bool() const VULKAN_HPP_NOEXCEPT + AcquireNextImageInfoKHR & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT { - return m_validationCacheEXT != VK_NULL_HANDLE; + deviceMask = deviceMask_; + return *this; } - bool operator!() const VULKAN_HPP_NOEXCEPT + operator VkAcquireNextImageInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return m_validationCacheEXT == VK_NULL_HANDLE; + return *reinterpret_cast( this ); } - private: - VkValidationCacheEXT m_validationCacheEXT; + operator VkAcquireNextImageInfoKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AcquireNextImageInfoKHR const & ) const = default; +#else + bool operator==( AcquireNextImageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchain == rhs.swapchain ) && + ( timeout == rhs.timeout ) && ( semaphore == rhs.semaphore ) && ( fence == rhs.fence ) && + ( deviceMask == rhs.deviceMask ); + } + + bool operator!=( AcquireNextImageInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireNextImageInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {}; + uint64_t timeout = {}; + VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; + VULKAN_HPP_NAMESPACE::Fence fence = {}; + uint32_t deviceMask = {}; }; - static_assert( sizeof( ValidationCacheEXT ) == sizeof( VkValidationCacheEXT ), "handle and wrapper have different size!" ); + static_assert( sizeof( AcquireNextImageInfoKHR ) == sizeof( VkAcquireNextImageInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); template <> - struct cpp_type + struct CppType { - using type = ValidationCacheEXT; + using Type = AcquireNextImageInfoKHR; }; - class Queue + struct AcquireProfilingLockInfoKHR { - public: - using CType = VkQueue; - - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eQueue; + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAcquireProfilingLockInfoKHR; - public: - VULKAN_HPP_CONSTEXPR Queue() VULKAN_HPP_NOEXCEPT - : m_queue(VK_NULL_HANDLE) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR AcquireProfilingLockInfoKHR( VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ = {}, + uint64_t timeout_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , timeout( timeout_ ) {} - VULKAN_HPP_CONSTEXPR Queue( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_queue(VK_NULL_HANDLE) - {} + VULKAN_HPP_CONSTEXPR + AcquireProfilingLockInfoKHR( AcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_TYPESAFE_EXPLICIT Queue( VkQueue queue ) VULKAN_HPP_NOEXCEPT - : m_queue( queue ) + AcquireProfilingLockInfoKHR( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : AcquireProfilingLockInfoKHR( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 AcquireProfilingLockInfoKHR & + operator=( AcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Queue & operator=(VkQueue queue) VULKAN_HPP_NOEXCEPT + AcquireProfilingLockInfoKHR & operator=( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - m_queue = queue; + *this = *reinterpret_cast( &rhs ); return *this; } -#endif - Queue & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + AcquireProfilingLockInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - m_queue = VK_NULL_HANDLE; + pNext = pNext_; return *this; } - bool operator==( Queue const & rhs ) const VULKAN_HPP_NOEXCEPT + AcquireProfilingLockInfoKHR & + setFlags( VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT { - return m_queue == rhs.m_queue; + flags = flags_; + return *this; } - bool operator!=(Queue const & rhs ) const VULKAN_HPP_NOEXCEPT + AcquireProfilingLockInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT { - return m_queue != rhs.m_queue; + timeout = timeout_; + return *this; } - bool operator<(Queue const & rhs ) const VULKAN_HPP_NOEXCEPT + operator VkAcquireProfilingLockInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return m_queue < rhs.m_queue; + return *reinterpret_cast( this ); } - template - void getCheckpointDataNV( uint32_t* pCheckpointDataCount, VULKAN_HPP_NAMESPACE::CheckpointDataNV* pCheckpointData, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector getCheckpointDataNV(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector getCheckpointDataNV(Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - Result bindSparse( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindSparseInfo* pBindInfo, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type bindSparse( ArrayProxy bindInfo, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void endDebugUtilsLabelEXT(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - - template - void insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - Result presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR* pPresentInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result presentKHR( const PresentInfoKHR & presentInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - Result submit( uint32_t submitCount, const VULKAN_HPP_NAMESPACE::SubmitInfo* pSubmits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type submit( ArrayProxy submits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result waitIdle(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type waitIdle(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkQueue() const VULKAN_HPP_NOEXCEPT + operator VkAcquireProfilingLockInfoKHR &() VULKAN_HPP_NOEXCEPT { - return m_queue; + return *reinterpret_cast( this ); } - explicit operator bool() const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AcquireProfilingLockInfoKHR const & ) const = default; +#else + bool operator==( AcquireProfilingLockInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_queue != VK_NULL_HANDLE; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( timeout == rhs.timeout ); } - bool operator!() const VULKAN_HPP_NOEXCEPT + bool operator!=( AcquireProfilingLockInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_queue == VK_NULL_HANDLE; + return !operator==( rhs ); } +#endif - private: - VkQueue m_queue; + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireProfilingLockInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags = {}; + uint64_t timeout = {}; }; - static_assert( sizeof( Queue ) == sizeof( VkQueue ), "handle and wrapper have different size!" ); + static_assert( sizeof( AcquireProfilingLockInfoKHR ) == sizeof( VkAcquireProfilingLockInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); template <> - struct cpp_type + struct CppType { - using type = Queue; + using Type = AcquireProfilingLockInfoKHR; }; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - class Device; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueAccelerationStructureNV = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueBuffer = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueBufferView = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = PoolFree; }; - using UniqueCommandBuffer = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueCommandPool = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueDescriptorPool = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = PoolFree; }; - using UniqueDescriptorSet = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueDescriptorSetLayout = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueDescriptorUpdateTemplate = UniqueHandle; - using UniqueDescriptorUpdateTemplateKHR = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectFree; }; - using UniqueDeviceMemory = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueEvent = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueFence = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueFramebuffer = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueImage = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueImageView = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueIndirectCommandsLayoutNVX = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueObjectTableNVX = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniquePipeline = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniquePipelineCache = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniquePipelineLayout = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueQueryPool = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueRenderPass = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueSampler = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueSamplerYcbcrConversion = UniqueHandle; - using UniqueSamplerYcbcrConversionKHR = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueSemaphore = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueShaderModule = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueSwapchainKHR = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueValidationCacheEXT = UniqueHandle; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ - - class Device + struct AllocationCallbacks { - public: - using CType = VkDevice; - - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDevice; - - public: - VULKAN_HPP_CONSTEXPR Device() VULKAN_HPP_NOEXCEPT - : m_device(VK_NULL_HANDLE) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR AllocationCallbacks( void * pUserData_ = {}, + PFN_vkAllocationFunction pfnAllocation_ = {}, + PFN_vkReallocationFunction pfnReallocation_ = {}, + PFN_vkFreeFunction pfnFree_ = {}, + PFN_vkInternalAllocationNotification pfnInternalAllocation_ = {}, + PFN_vkInternalFreeNotification pfnInternalFree_ = {} ) VULKAN_HPP_NOEXCEPT + : pUserData( pUserData_ ) + , pfnAllocation( pfnAllocation_ ) + , pfnReallocation( pfnReallocation_ ) + , pfnFree( pfnFree_ ) + , pfnInternalAllocation( pfnInternalAllocation_ ) + , pfnInternalFree( pfnInternalFree_ ) {} - VULKAN_HPP_CONSTEXPR Device( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_device(VK_NULL_HANDLE) - {} + VULKAN_HPP_CONSTEXPR AllocationCallbacks( AllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_TYPESAFE_EXPLICIT Device( VkDevice device ) VULKAN_HPP_NOEXCEPT - : m_device( device ) + AllocationCallbacks( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT + : AllocationCallbacks( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 AllocationCallbacks & + operator=( AllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT = default; -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Device & operator=(VkDevice device) VULKAN_HPP_NOEXCEPT + AllocationCallbacks & operator=( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT { - m_device = device; + *this = *reinterpret_cast( &rhs ); return *this; } -#endif - Device & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + AllocationCallbacks & setPUserData( void * pUserData_ ) VULKAN_HPP_NOEXCEPT { - m_device = VK_NULL_HANDLE; + pUserData = pUserData_; return *this; } - bool operator==( Device const & rhs ) const VULKAN_HPP_NOEXCEPT + AllocationCallbacks & setPfnAllocation( PFN_vkAllocationFunction pfnAllocation_ ) VULKAN_HPP_NOEXCEPT { - return m_device == rhs.m_device; + pfnAllocation = pfnAllocation_; + return *this; } - bool operator!=(Device const & rhs ) const VULKAN_HPP_NOEXCEPT + AllocationCallbacks & setPfnReallocation( PFN_vkReallocationFunction pfnReallocation_ ) VULKAN_HPP_NOEXCEPT { - return m_device != rhs.m_device; + pfnReallocation = pfnReallocation_; + return *this; } - bool operator<(Device const & rhs ) const VULKAN_HPP_NOEXCEPT + AllocationCallbacks & setPfnFree( PFN_vkFreeFunction pfnFree_ ) VULKAN_HPP_NOEXCEPT { - return m_device < rhs.m_device; + pfnFree = pfnFree_; + return *this; } -#ifdef VK_USE_PLATFORM_WIN32_KHR -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + AllocationCallbacks & + setPfnInternalAllocation( PFN_vkInternalAllocationNotification pfnInternalAllocation_ ) VULKAN_HPP_NOEXCEPT + { + pfnInternalAllocation = pfnInternalAllocation_; + return *this; + } - template - Result acquireNextImage2KHR( const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - ResultValue acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AllocationCallbacks & setPfnInternalFree( PFN_vkInternalFreeNotification pfnInternalFree_ ) VULKAN_HPP_NOEXCEPT + { + pfnInternalFree = pfnInternalFree_; + return *this; + } - template - Result acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore, VULKAN_HPP_NAMESPACE::Fence fence, uint32_t* pImageIndex, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - ResultValue acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - Result acquirePerformanceConfigurationINTEL( const VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL* pConfiguration, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type acquirePerformanceConfigurationINTEL( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - Result acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - Result allocateCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo* pAllocateInfo, VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType,Allocator>>::type allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType,Allocator>>::type allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - Result allocateDescriptorSets( const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo* pAllocateInfo, VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType,Allocator>>::type allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType,Allocator>>::type allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - Result allocateMemory( const VULKAN_HPP_NAMESPACE::MemoryAllocateInfo* pAllocateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DeviceMemory* pMemory, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type allocateMemory( const MemoryAllocateInfo & allocateInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type allocateMemoryUnique( const MemoryAllocateInfo & allocateInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkAllocationCallbacks const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - Result bindAccelerationStructureMemoryNV( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV* pBindInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type bindAccelerationStructureMemoryNV( ArrayProxy bindInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkAllocationCallbacks &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result bindBufferMemory( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AllocationCallbacks const & ) const = default; #else - template - typename ResultValueType::type bindBufferMemory( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - Result bindBufferMemory2( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo* pBindInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type bindBufferMemory2( ArrayProxy bindInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator==( AllocationCallbacks const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( pUserData == rhs.pUserData ) && ( pfnAllocation == rhs.pfnAllocation ) && + ( pfnReallocation == rhs.pfnReallocation ) && ( pfnFree == rhs.pfnFree ) && + ( pfnInternalAllocation == rhs.pfnInternalAllocation ) && ( pfnInternalFree == rhs.pfnInternalFree ); + } - template - Result bindBufferMemory2KHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo* pBindInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type bindBufferMemory2KHR( ArrayProxy bindInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( AllocationCallbacks const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result bindImageMemory( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type bindImageMemory( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + void * pUserData = {}; + PFN_vkAllocationFunction pfnAllocation = {}; + PFN_vkReallocationFunction pfnReallocation = {}; + PFN_vkFreeFunction pfnFree = {}; + PFN_vkInternalAllocationNotification pfnInternalAllocation = {}; + PFN_vkInternalFreeNotification pfnInternalFree = {}; + }; + static_assert( sizeof( AllocationCallbacks ) == sizeof( VkAllocationCallbacks ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - template - Result bindImageMemory2( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo* pBindInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type bindImageMemory2( ArrayProxy bindInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + struct ComponentMapping + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ComponentMapping( VULKAN_HPP_NAMESPACE::ComponentSwizzle r_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity, + VULKAN_HPP_NAMESPACE::ComponentSwizzle g_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity, + VULKAN_HPP_NAMESPACE::ComponentSwizzle b_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity, + VULKAN_HPP_NAMESPACE::ComponentSwizzle a_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity ) + VULKAN_HPP_NOEXCEPT + : r( r_ ) + , g( g_ ) + , b( b_ ) + , a( a_ ) + {} - template - Result bindImageMemory2KHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo* pBindInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type bindImageMemory2KHR( ArrayProxy bindInfos, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR ComponentMapping( ComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT = default; -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + ComponentMapping( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT + : ComponentMapping( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - Result createAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructure, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createAccelerationStructureNV( const AccelerationStructureCreateInfoNV & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createAccelerationStructureNVUnique( const AccelerationStructureCreateInfoNV & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 ComponentMapping & operator=( ComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - Result createBuffer( const VULKAN_HPP_NAMESPACE::BufferCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Buffer* pBuffer, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createBuffer( const BufferCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createBufferUnique( const BufferCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + ComponentMapping & operator=( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - Result createBufferView( const VULKAN_HPP_NAMESPACE::BufferViewCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::BufferView* pView, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createBufferView( const BufferViewCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createBufferViewUnique( const BufferViewCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + ComponentMapping & setR( VULKAN_HPP_NAMESPACE::ComponentSwizzle r_ ) VULKAN_HPP_NOEXCEPT + { + r = r_; + return *this; + } - template - Result createCommandPool( const VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::CommandPool* pCommandPool, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createCommandPool( const CommandPoolCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createCommandPoolUnique( const CommandPoolCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + ComponentMapping & setG( VULKAN_HPP_NAMESPACE::ComponentSwizzle g_ ) VULKAN_HPP_NOEXCEPT + { + g = g_; + return *this; + } - template - Result createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator, Allocator const& vectorAllocator, Dispatch const &d ) const; - template - typename ResultValueType::type createComputePipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType,Allocator>>::type createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType,Allocator>>::type createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator, Allocator const& vectorAllocator, Dispatch const &d ) const; - template - typename ResultValueType>::type createComputePipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + ComponentMapping & setB( VULKAN_HPP_NAMESPACE::ComponentSwizzle b_ ) VULKAN_HPP_NOEXCEPT + { + b = b_; + return *this; + } - template - Result createDescriptorPool( const VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorPool* pDescriptorPool, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createDescriptorPool( const DescriptorPoolCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createDescriptorPoolUnique( const DescriptorPoolCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + ComponentMapping & setA( VULKAN_HPP_NAMESPACE::ComponentSwizzle a_ ) VULKAN_HPP_NOEXCEPT + { + a = a_; + return *this; + } - template - Result createDescriptorSetLayout( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayout, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createDescriptorSetLayout( const DescriptorSetLayoutCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createDescriptorSetLayoutUnique( const DescriptorSetLayoutCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkComponentMapping const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - Result createDescriptorUpdateTemplate( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createDescriptorUpdateTemplate( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createDescriptorUpdateTemplateUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkComponentMapping &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - Result createDescriptorUpdateTemplateKHR( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createDescriptorUpdateTemplateKHR( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createDescriptorUpdateTemplateKHRUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ComponentMapping const & ) const = default; +#else + bool operator==( ComponentMapping const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( r == rhs.r ) && ( g == rhs.g ) && ( b == rhs.b ) && ( a == rhs.a ); + } - template - Result createEvent( const VULKAN_HPP_NAMESPACE::EventCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Event* pEvent, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createEvent( const EventCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createEventUnique( const EventCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( ComponentMapping const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - Result createFence( const VULKAN_HPP_NAMESPACE::FenceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createFence( const FenceCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createFenceUnique( const FenceCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::ComponentSwizzle r = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity; + VULKAN_HPP_NAMESPACE::ComponentSwizzle g = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity; + VULKAN_HPP_NAMESPACE::ComponentSwizzle b = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity; + VULKAN_HPP_NAMESPACE::ComponentSwizzle a = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity; + }; + static_assert( sizeof( ComponentMapping ) == sizeof( VkComponentMapping ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - template - Result createFramebuffer( const VULKAN_HPP_NAMESPACE::FramebufferCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Framebuffer* pFramebuffer, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createFramebuffer( const FramebufferCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createFramebufferUnique( const FramebufferCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + struct AndroidHardwareBufferFormatPropertiesANDROID + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eAndroidHardwareBufferFormatPropertiesANDROID; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatPropertiesANDROID( + VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, + uint64_t externalFormat_ = {}, + VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures_ = {}, + VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents_ = {}, + VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ = + VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity, + VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull, + VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, + VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ = + VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven ) VULKAN_HPP_NOEXCEPT + : format( format_ ) + , externalFormat( externalFormat_ ) + , formatFeatures( formatFeatures_ ) + , samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ ) + , suggestedYcbcrModel( suggestedYcbcrModel_ ) + , suggestedYcbcrRange( suggestedYcbcrRange_ ) + , suggestedXChromaOffset( suggestedXChromaOffset_ ) + , suggestedYChromaOffset( suggestedYChromaOffset_ ) + {} - template - Result createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator, Allocator const& vectorAllocator, Dispatch const &d ) const; - template - typename ResultValueType::type createGraphicsPipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType,Allocator>>::type createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType,Allocator>>::type createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator, Allocator const& vectorAllocator, Dispatch const &d ) const; - template - typename ResultValueType>::type createGraphicsPipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatPropertiesANDROID( + AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - Result createImage( const VULKAN_HPP_NAMESPACE::ImageCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Image* pImage, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createImage( const ImageCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createImageUnique( const ImageCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AndroidHardwareBufferFormatPropertiesANDROID( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) + VULKAN_HPP_NOEXCEPT + : AndroidHardwareBufferFormatPropertiesANDROID( + *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - Result createImageView( const VULKAN_HPP_NAMESPACE::ImageViewCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ImageView* pView, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createImageView( const ImageViewCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createImageViewUnique( const ImageViewCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 AndroidHardwareBufferFormatPropertiesANDROID & + operator=( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - Result createIndirectCommandsLayoutNVX( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNVX* pIndirectCommandsLayout, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createIndirectCommandsLayoutNVX( const IndirectCommandsLayoutCreateInfoNVX & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createIndirectCommandsLayoutNVXUnique( const IndirectCommandsLayoutCreateInfoNVX & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AndroidHardwareBufferFormatPropertiesANDROID & + operator=( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - Result createObjectTableNVX( const VULKAN_HPP_NAMESPACE::ObjectTableCreateInfoNVX* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ObjectTableNVX* pObjectTable, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createObjectTableNVX( const ObjectTableCreateInfoNVX & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createObjectTableNVXUnique( const ObjectTableCreateInfoNVX & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkAndroidHardwareBufferFormatPropertiesANDROID const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - Result createPipelineCache( const VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PipelineCache* pPipelineCache, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createPipelineCache( const PipelineCacheCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createPipelineCacheUnique( const PipelineCacheCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkAndroidHardwareBufferFormatPropertiesANDROID &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - Result createPipelineLayout( const VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PipelineLayout* pPipelineLayout, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createPipelineLayout( const PipelineLayoutCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createPipelineLayoutUnique( const PipelineLayoutCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AndroidHardwareBufferFormatPropertiesANDROID const & ) const = default; +# else + bool operator==( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( format == rhs.format ) && + ( externalFormat == rhs.externalFormat ) && ( formatFeatures == rhs.formatFeatures ) && + ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents ) && + ( suggestedYcbcrModel == rhs.suggestedYcbcrModel ) && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange ) && + ( suggestedXChromaOffset == rhs.suggestedXChromaOffset ) && + ( suggestedYChromaOffset == rhs.suggestedYChromaOffset ); + } - template - Result createQueryPool( const VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::QueryPool* pQueryPool, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createQueryPool( const QueryPoolCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createQueryPoolUnique( const QueryPoolCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif - template - Result createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator, Allocator const& vectorAllocator, Dispatch const &d ) const; - template - typename ResultValueType::type createRayTracingPipelineNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType,Allocator>>::type createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType,Allocator>>::type createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator, Allocator const& vectorAllocator, Dispatch const &d ) const; - template - typename ResultValueType>::type createRayTracingPipelineNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; + uint64_t externalFormat = {}; + VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures = {}; + VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents = {}; + VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel = + VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity; + VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull; + VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven; + VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven; + }; + static_assert( sizeof( AndroidHardwareBufferFormatPropertiesANDROID ) == + sizeof( VkAndroidHardwareBufferFormatPropertiesANDROID ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - Result createRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createRenderPass( const RenderPassCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createRenderPassUnique( const RenderPassCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + template <> + struct CppType + { + using Type = AndroidHardwareBufferFormatPropertiesANDROID; + }; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - template - Result createRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createRenderPass2( const RenderPassCreateInfo2 & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createRenderPass2Unique( const RenderPassCreateInfo2 & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + struct AndroidHardwareBufferPropertiesANDROID + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eAndroidHardwareBufferPropertiesANDROID; - template - Result createRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createRenderPass2KHR( const RenderPassCreateInfo2 & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createRenderPass2KHRUnique( const RenderPassCreateInfo2 & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR AndroidHardwareBufferPropertiesANDROID( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {}, + uint32_t memoryTypeBits_ = {} ) VULKAN_HPP_NOEXCEPT + : allocationSize( allocationSize_ ) + , memoryTypeBits( memoryTypeBits_ ) + {} - template - Result createSampler( const VULKAN_HPP_NAMESPACE::SamplerCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Sampler* pSampler, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createSampler( const SamplerCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createSamplerUnique( const SamplerCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR AndroidHardwareBufferPropertiesANDROID( AndroidHardwareBufferPropertiesANDROID const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - template - Result createSamplerYcbcrConversion( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion* pYcbcrConversion, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createSamplerYcbcrConversion( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createSamplerYcbcrConversionUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AndroidHardwareBufferPropertiesANDROID( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + : AndroidHardwareBufferPropertiesANDROID( + *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - Result createSamplerYcbcrConversionKHR( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion* pYcbcrConversion, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createSamplerYcbcrConversionKHR( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createSamplerYcbcrConversionKHRUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 AndroidHardwareBufferPropertiesANDROID & + operator=( AndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - Result createSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Semaphore* pSemaphore, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createSemaphore( const SemaphoreCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createSemaphoreUnique( const SemaphoreCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AndroidHardwareBufferPropertiesANDROID & + operator=( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - Result createShaderModule( const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ShaderModule* pShaderModule, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createShaderModule( const ShaderModuleCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createShaderModuleUnique( const ShaderModuleCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkAndroidHardwareBufferPropertiesANDROID const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - Result createSharedSwapchainsKHR( uint32_t swapchainCount, const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type createSharedSwapchainsKHR( ArrayProxy createInfos, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type createSharedSwapchainsKHR( ArrayProxy createInfos, Optional allocator, Allocator const& vectorAllocator, Dispatch const &d ) const; - template - typename ResultValueType::type createSharedSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType,Allocator>>::type createSharedSwapchainsKHRUnique( ArrayProxy createInfos, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType,Allocator>>::type createSharedSwapchainsKHRUnique( ArrayProxy createInfos, Optional allocator, Allocator const& vectorAllocator, Dispatch const &d ) const; - template - typename ResultValueType>::type createSharedSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkAndroidHardwareBufferPropertiesANDROID &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - Result createSwapchainKHR( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchain, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AndroidHardwareBufferPropertiesANDROID const & ) const = default; +# else + bool operator==( AndroidHardwareBufferPropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( allocationSize == rhs.allocationSize ) && + ( memoryTypeBits == rhs.memoryTypeBits ); + } - template - Result createValidationCacheEXT( const VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ValidationCacheEXT* pValidationCache, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createValidationCacheEXT( const ValidationCacheCreateInfoEXT & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createValidationCacheEXTUnique( const ValidationCacheCreateInfoEXT & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( AndroidHardwareBufferPropertiesANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif - template - Result debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT* pNameInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferPropertiesANDROID; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {}; + uint32_t memoryTypeBits = {}; + }; + static_assert( sizeof( AndroidHardwareBufferPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferPropertiesANDROID ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - Result debugMarkerSetObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT* pTagInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + template <> + struct CppType + { + using Type = AndroidHardwareBufferPropertiesANDROID; + }; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - template - void destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + struct AndroidHardwareBufferUsageANDROID + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eAndroidHardwareBufferUsageANDROID; - template - void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + AndroidHardwareBufferUsageANDROID( uint64_t androidHardwareBufferUsage_ = {} ) VULKAN_HPP_NOEXCEPT + : androidHardwareBufferUsage( androidHardwareBufferUsage_ ) + {} - template - void destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR + AndroidHardwareBufferUsageANDROID( AndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - void destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AndroidHardwareBufferUsageANDROID( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + : AndroidHardwareBufferUsageANDROID( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - void destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 AndroidHardwareBufferUsageANDROID & + operator=( AndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - void destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AndroidHardwareBufferUsageANDROID & operator=( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - void destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkAndroidHardwareBufferUsageANDROID const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - void destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkAndroidHardwareBufferUsageANDROID &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - void destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AndroidHardwareBufferUsageANDROID const & ) const = default; +# else + bool operator==( AndroidHardwareBufferUsageANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( androidHardwareBufferUsage == rhs.androidHardwareBufferUsage ); + } - template - void destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( AndroidHardwareBufferUsageANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif - template - void destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferUsageANDROID; + void * pNext = {}; + uint64_t androidHardwareBufferUsage = {}; + }; + static_assert( sizeof( AndroidHardwareBufferUsageANDROID ) == sizeof( VkAndroidHardwareBufferUsageANDROID ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - void destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + template <> + struct CppType + { + using Type = AndroidHardwareBufferUsageANDROID; + }; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - template - void destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + struct AndroidSurfaceCreateInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidSurfaceCreateInfoKHR; - template - void destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR AndroidSurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ = {}, + struct ANativeWindow * window_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , window( window_ ) + {} - template - void destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR + AndroidSurfaceCreateInfoKHR( AndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - void destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AndroidSurfaceCreateInfoKHR( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : AndroidSurfaceCreateInfoKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - void destroyEvent( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyEvent( VULKAN_HPP_NAMESPACE::Event event, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 AndroidSurfaceCreateInfoKHR & + operator=( AndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - void destroy( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Event event, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AndroidSurfaceCreateInfoKHR & operator=( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - void destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AndroidSurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } - template - void destroy( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Fence fence, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AndroidSurfaceCreateInfoKHR & + setFlags( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } - template - void destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AndroidSurfaceCreateInfoKHR & setWindow( struct ANativeWindow * window_ ) VULKAN_HPP_NOEXCEPT + { + window = window_; + return *this; + } - template - void destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkAndroidSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - void destroyImage( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyImage( VULKAN_HPP_NAMESPACE::Image image, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkAndroidSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - void destroy( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Image image, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AndroidSurfaceCreateInfoKHR const & ) const = default; +# else + bool operator==( AndroidSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( window == rhs.window ); + } - template - void destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( AndroidSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif - template - void destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidSurfaceCreateInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags = {}; + struct ANativeWindow * window = {}; + }; + static_assert( sizeof( AndroidSurfaceCreateInfoKHR ) == sizeof( VkAndroidSurfaceCreateInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - void destroyIndirectCommandsLayoutNVX( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNVX indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyIndirectCommandsLayoutNVX( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNVX indirectCommandsLayout, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + template <> + struct CppType + { + using Type = AndroidSurfaceCreateInfoKHR; + }; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - template - void destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNVX indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNVX indirectCommandsLayout, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + struct ApplicationInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eApplicationInfo; - template - void destroyObjectTableNVX( VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyObjectTableNVX( VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ApplicationInfo( const char * pApplicationName_ = {}, + uint32_t applicationVersion_ = {}, + const char * pEngineName_ = {}, + uint32_t engineVersion_ = {}, + uint32_t apiVersion_ = {} ) VULKAN_HPP_NOEXCEPT + : pApplicationName( pApplicationName_ ) + , applicationVersion( applicationVersion_ ) + , pEngineName( pEngineName_ ) + , engineVersion( engineVersion_ ) + , apiVersion( apiVersion_ ) + {} - template - void destroy( VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR ApplicationInfo( ApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - void destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + ApplicationInfo( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : ApplicationInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - void destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 ApplicationInfo & operator=( ApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - void destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + ApplicationInfo & operator=( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - void destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + ApplicationInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } - template - void destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + ApplicationInfo & setPApplicationName( const char * pApplicationName_ ) VULKAN_HPP_NOEXCEPT + { + pApplicationName = pApplicationName_; + return *this; + } - template - void destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + ApplicationInfo & setApplicationVersion( uint32_t applicationVersion_ ) VULKAN_HPP_NOEXCEPT + { + applicationVersion = applicationVersion_; + return *this; + } - template - void destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + ApplicationInfo & setPEngineName( const char * pEngineName_ ) VULKAN_HPP_NOEXCEPT + { + pEngineName = pEngineName_; + return *this; + } - template - void destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + ApplicationInfo & setEngineVersion( uint32_t engineVersion_ ) VULKAN_HPP_NOEXCEPT + { + engineVersion = engineVersion_; + return *this; + } - template - void destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + ApplicationInfo & setApiVersion( uint32_t apiVersion_ ) VULKAN_HPP_NOEXCEPT + { + apiVersion = apiVersion_; + return *this; + } - template - void destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkApplicationInfo const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - void destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkApplicationInfo &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - void destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ApplicationInfo const & ) const = default; +#else + bool operator==( ApplicationInfo const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pApplicationName == rhs.pApplicationName ) && + ( applicationVersion == rhs.applicationVersion ) && ( pEngineName == rhs.pEngineName ) && + ( engineVersion == rhs.engineVersion ) && ( apiVersion == rhs.apiVersion ); + } - template - void destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( ApplicationInfo const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - void destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eApplicationInfo; + const void * pNext = {}; + const char * pApplicationName = {}; + uint32_t applicationVersion = {}; + const char * pEngineName = {}; + uint32_t engineVersion = {}; + uint32_t apiVersion = {}; + }; + static_assert( sizeof( ApplicationInfo ) == sizeof( VkApplicationInfo ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - template - void destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + template <> + struct CppType + { + using Type = ApplicationInfo; + }; - template - void destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + struct AttachmentDescription + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR AttachmentDescription( + VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, + VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, + VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, + VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, + VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, + VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, + VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, + VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) + VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , format( format_ ) + , samples( samples_ ) + , loadOp( loadOp_ ) + , storeOp( storeOp_ ) + , stencilLoadOp( stencilLoadOp_ ) + , stencilStoreOp( stencilStoreOp_ ) + , initialLayout( initialLayout_ ) + , finalLayout( finalLayout_ ) + {} - template - void destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR AttachmentDescription( AttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - void destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescription( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT + : AttachmentDescription( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - void destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 AttachmentDescription & + operator=( AttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - void destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescription & operator=( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - void destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescription & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } - template - void destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescription & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT + { + format = format_; + return *this; + } - template - void destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescription & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT + { + samples = samples_; + return *this; + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result waitIdle(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type waitIdle(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescription & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT + { + loadOp = loadOp_; + return *this; + } - template - Result displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT* pDisplayPowerInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescription & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT + { + storeOp = storeOp_; + return *this; + } - template - Result flushMappedMemoryRanges( uint32_t memoryRangeCount, const VULKAN_HPP_NAMESPACE::MappedMemoryRange* pMemoryRanges, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type flushMappedMemoryRanges( ArrayProxy memoryRanges, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescription & + setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT + { + stencilLoadOp = stencilLoadOp_; + return *this; + } - template - void freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool commandPool, uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool commandPool, ArrayProxy commandBuffers, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescription & + setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT + { + stencilStoreOp = stencilStoreOp_; + return *this; + } - template - void free( VULKAN_HPP_NAMESPACE::CommandPool commandPool, uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void free( VULKAN_HPP_NAMESPACE::CommandPool commandPool, ArrayProxy commandBuffers, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescription & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT + { + initialLayout = initialLayout_; + return *this; + } - template - Result freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, ArrayProxy descriptorSets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescription & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT + { + finalLayout = finalLayout_; + return *this; + } - template - Result free( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type free( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, ArrayProxy descriptorSets, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkAttachmentDescription const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - void freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkAttachmentDescription &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - void free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AttachmentDescription const & ) const = default; +#else + bool operator==( AttachmentDescription const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( flags == rhs.flags ) && ( format == rhs.format ) && ( samples == rhs.samples ) && + ( loadOp == rhs.loadOp ) && ( storeOp == rhs.storeOp ) && ( stencilLoadOp == rhs.stencilLoadOp ) && + ( stencilStoreOp == rhs.stencilStoreOp ) && ( initialLayout == rhs.initialLayout ) && + ( finalLayout == rhs.finalLayout ); + } - template - Result getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, size_t dataSize, void* pData, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, ArrayProxy data, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( AttachmentDescription const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - void getAccelerationStructureMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR* pMemoryRequirements, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - template - StructureChain getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {}; + VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; + VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; + VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad; + VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore; + VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad; + VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore; + VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + }; + static_assert( sizeof( AttachmentDescription ) == sizeof( VkAttachmentDescription ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template - Result getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer* buffer, VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template - typename ResultValueType>::type getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + struct AttachmentDescription2 + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentDescription2; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR AttachmentDescription2( + VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, + VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, + VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, + VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, + VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, + VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, + VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, + VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) + VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , format( format_ ) + , samples( samples_ ) + , loadOp( loadOp_ ) + , storeOp( storeOp_ ) + , stencilLoadOp( stencilLoadOp_ ) + , stencilStoreOp( stencilStoreOp_ ) + , initialLayout( initialLayout_ ) + , finalLayout( finalLayout_ ) + {} - template - DeviceAddress getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - DeviceAddress getBufferAddress( const BufferDeviceAddressInfo & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR AttachmentDescription2( AttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - DeviceAddress getBufferAddressEXT( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - DeviceAddress getBufferAddressEXT( const BufferDeviceAddressInfo & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescription2( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT + : AttachmentDescription2( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - DeviceAddress getBufferAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - DeviceAddress getBufferAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 AttachmentDescription2 & + operator=( AttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - void getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::MemoryRequirements getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescription2 & operator=( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - void getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - template - StructureChain getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescription2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } - template - void getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - template - StructureChain getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescription2 & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } - template - uint64_t getBufferOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - uint64_t getBufferOpaqueCaptureAddress( const BufferDeviceAddressInfo & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescription2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT + { + format = format_; + return *this; + } - template - uint64_t getBufferOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - uint64_t getBufferOpaqueCaptureAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescription2 & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT + { + samples = samples_; + return *this; + } - template - Result getCalibratedTimestampsEXT( uint32_t timestampCount, const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getCalibratedTimestampsEXT( ArrayProxy timestampInfos, ArrayProxy timestamps, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescription2 & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT + { + loadOp = loadOp_; + return *this; + } - template - void getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - template - StructureChain getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescription2 & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT + { + storeOp = storeOp_; + return *this; + } - template - void getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - template - StructureChain getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescription2 & + setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT + { + stencilLoadOp = stencilLoadOp_; + return *this; + } - template - void getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescription2 & + setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT + { + stencilStoreOp = stencilStoreOp_; + return *this; + } - template - void getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescription2 & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT + { + initialLayout = initialLayout_; + return *this; + } - template - Result getGroupPresentCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getGroupPresentCapabilitiesKHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescription2 & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT + { + finalLayout = finalLayout_; + return *this; + } -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - Result getGroupSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + operator VkAttachmentDescription2 const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - Result getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkAttachmentDescription2 &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - void getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize* pCommittedMemoryInBytes, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::DeviceSize getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AttachmentDescription2 const & ) const = default; +#else + bool operator==( AttachmentDescription2 const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( format == rhs.format ) && + ( samples == rhs.samples ) && ( loadOp == rhs.loadOp ) && ( storeOp == rhs.storeOp ) && + ( stencilLoadOp == rhs.stencilLoadOp ) && ( stencilStoreOp == rhs.stencilStoreOp ) && + ( initialLayout == rhs.initialLayout ) && ( finalLayout == rhs.finalLayout ); + } - template - uint64_t getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - uint64_t getMemoryOpaqueCaptureAddress( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( AttachmentDescription2 const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - uint64_t getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - uint64_t getMemoryOpaqueCaptureAddressKHR( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescription2; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {}; + VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; + VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; + VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad; + VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore; + VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad; + VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore; + VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + }; + static_assert( sizeof( AttachmentDescription2 ) == sizeof( VkAttachmentDescription2 ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - template - PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + template <> + struct CppType + { + using Type = AttachmentDescription2; + }; + using AttachmentDescription2KHR = AttachmentDescription2; - template - void getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::Queue getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + struct AttachmentDescriptionStencilLayout + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eAttachmentDescriptionStencilLayout; - template - void getQueue2( const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2* pQueueInfo, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::Queue getQueue2( const DeviceQueueInfo2 & queueInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR AttachmentDescriptionStencilLayout( + VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, + VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) + VULKAN_HPP_NOEXCEPT + : stencilInitialLayout( stencilInitialLayout_ ) + , stencilFinalLayout( stencilFinalLayout_ ) + {} -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#else - template - Result getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR AttachmentDescriptionStencilLayout( AttachmentDescriptionStencilLayout const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - template - Result getFenceFdKHR( const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescriptionStencilLayout( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT + : AttachmentDescriptionStencilLayout( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#else - template - Result getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 AttachmentDescriptionStencilLayout & + operator=( AttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - Result getFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + AttachmentDescriptionStencilLayout & + operator=( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - Result getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescriptionStencilLayout & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } - template - void getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::MemoryRequirements getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescriptionStencilLayout & + setStencilInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ ) VULKAN_HPP_NOEXCEPT + { + stencilInitialLayout = stencilInitialLayout_; + return *this; + } - template - void getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - template - StructureChain getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentDescriptionStencilLayout & + setStencilFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ ) VULKAN_HPP_NOEXCEPT + { + stencilFinalLayout = stencilFinalLayout_; + return *this; + } - template - void getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - template - StructureChain getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkAttachmentDescriptionStencilLayout const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - void getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements* pSparseMemoryRequirements, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkAttachmentDescriptionStencilLayout &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - void getImageSparseMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AttachmentDescriptionStencilLayout const & ) const = default; +#else + bool operator==( AttachmentDescriptionStencilLayout const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stencilInitialLayout == rhs.stencilInitialLayout ) && + ( stencilFinalLayout == rhs.stencilFinalLayout ); + } - template - void getImageSparseMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( AttachmentDescriptionStencilLayout const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - void getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::ImageSubresource* pSubresource, VULKAN_HPP_NAMESPACE::SubresourceLayout* pLayout, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::SubresourceLayout getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, const ImageSubresource & subresource, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescriptionStencilLayout; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + }; + static_assert( sizeof( AttachmentDescriptionStencilLayout ) == sizeof( VkAttachmentDescriptionStencilLayout ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - uint32_t getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - uint32_t getImageViewHandleNVX( const ImageViewHandleInfoNVX & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + template <> + struct CppType + { + using Type = AttachmentDescriptionStencilLayout; + }; + using AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout; -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template - Result getMemoryAndroidHardwareBufferANDROID( const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + struct AttachmentReference + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR AttachmentReference( + uint32_t attachment_ = {}, + VULKAN_HPP_NAMESPACE::ImageLayout layout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT + : attachment( attachment_ ) + , layout( layout_ ) + {} - template - Result getMemoryFdKHR( const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR AttachmentReference( AttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - Result getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd, VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR* pMemoryFdProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentReference( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT + : AttachmentReference( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - Result getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 AttachmentReference & + operator=( AttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT = default; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - Result getMemoryWin32HandleKHR( const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + AttachmentReference & operator=( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - Result getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + AttachmentReference & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT + { + attachment = attachment_; + return *this; + } -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - Result getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + AttachmentReference & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT + { + layout = layout_; + return *this; + } - template - Result getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE* pPresentationTimings, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkAttachmentReference const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - Result getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, VULKAN_HPP_NAMESPACE::PerformanceValueINTEL* pValue, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkAttachmentReference &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - Result getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, size_t* pDataSize, void* pData, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AttachmentReference const & ) const = default; +#else + bool operator==( AttachmentReference const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( attachment == rhs.attachment ) && ( layout == rhs.layout ); + } - template - Result getPipelineExecutableInternalRepresentationsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR* pInternalRepresentations, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( AttachmentReference const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - Result getPipelineExecutablePropertiesKHR( const VULKAN_HPP_NAMESPACE::PipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + uint32_t attachment = {}; + VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + }; + static_assert( sizeof( AttachmentReference ) == sizeof( VkAttachmentReference ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - template - Result getPipelineExecutableStatisticsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR* pStatistics, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + struct AttachmentReference2 + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentReference2; - template - Result getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, ArrayProxy data, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + AttachmentReference2( uint32_t attachment_ = {}, + VULKAN_HPP_NAMESPACE::ImageLayout layout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, + VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {} ) VULKAN_HPP_NOEXCEPT + : attachment( attachment_ ) + , layout( layout_ ) + , aspectMask( aspectMask_ ) + {} - template - Result getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy data, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR AttachmentReference2( AttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - Result getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE* pDisplayTimingProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentReference2( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT + : AttachmentReference2( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - void getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, VULKAN_HPP_NAMESPACE::Extent2D* pGranularity, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::Extent2D getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 AttachmentReference2 & + operator=( AttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - Result getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentReference2 & operator=( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - Result getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentReference2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } - template - Result getSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentReference2 & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT + { + attachment = attachment_; + return *this; + } -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - Result getSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + AttachmentReference2 & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT + { + layout = layout_; + return *this; + } - template - Result getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentReference2 & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT + { + aspectMask = aspectMask_; + return *this; + } - template - Result getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkAttachmentReference2 const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - Result getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VULKAN_HPP_NAMESPACE::Image* pSwapchainImages, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkAttachmentReference2 &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AttachmentReference2 const & ) const = default; #else - template - Result getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator==( AttachmentReference2 const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( attachment == rhs.attachment ) && + ( layout == rhs.layout ) && ( aspectMask == rhs.aspectMask ); + } - template - Result getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, size_t* pDataSize, void* pData, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( AttachmentReference2 const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - Result importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR* pImportFenceFdInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReference2; + const void * pNext = {}; + uint32_t attachment = {}; + VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; + }; + static_assert( sizeof( AttachmentReference2 ) == sizeof( VkAttachmentReference2 ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - Result importFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + template <> + struct CppType + { + using Type = AttachmentReference2; + }; + using AttachmentReference2KHR = AttachmentReference2; - template - Result importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + struct AttachmentReferenceStencilLayout + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentReferenceStencilLayout; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - Result importSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + AttachmentReferenceStencilLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ = + VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT + : stencilLayout( stencilLayout_ ) + {} - template - Result initializePerformanceApiINTEL( const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL* pInitializeInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR + AttachmentReferenceStencilLayout( AttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - Result invalidateMappedMemoryRanges( uint32_t memoryRangeCount, const VULKAN_HPP_NAMESPACE::MappedMemoryRange* pMemoryRanges, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type invalidateMappedMemoryRanges( ArrayProxy memoryRanges, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentReferenceStencilLayout( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT + : AttachmentReferenceStencilLayout( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - Result mapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::DeviceSize size, VULKAN_HPP_NAMESPACE::MemoryMapFlags flags, void** ppData, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type mapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::DeviceSize size, VULKAN_HPP_NAMESPACE::MemoryMapFlags flags = MemoryMapFlags(), Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 AttachmentReferenceStencilLayout & + operator=( AttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - Result mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache dstCache, uint32_t srcCacheCount, const VULKAN_HPP_NAMESPACE::PipelineCache* pSrcCaches, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache dstCache, ArrayProxy srcCaches, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentReferenceStencilLayout & operator=( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - Result mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache, uint32_t srcCacheCount, const VULKAN_HPP_NAMESPACE::ValidationCacheEXT* pSrcCaches, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache, ArrayProxy srcCaches, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentReferenceStencilLayout & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } - template - Result registerEventEXT( const VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT* pDeviceEventInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type registerEventEXT( const DeviceEventInfoEXT & deviceEventInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type registerEventEXTUnique( const DeviceEventInfoEXT & deviceEventInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + AttachmentReferenceStencilLayout & + setStencilLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ ) VULKAN_HPP_NOEXCEPT + { + stencilLayout = stencilLayout_; + return *this; + } - template - Result registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT* pDisplayEventInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type registerDisplayEventEXTUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkAttachmentReferenceStencilLayout const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - Result registerObjectsNVX( VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable, uint32_t objectCount, const VULKAN_HPP_NAMESPACE::ObjectTableEntryNVX* const* ppObjectTableEntries, const uint32_t* pObjectIndices, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type registerObjectsNVX( VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable, ArrayProxy pObjectTableEntries, ArrayProxy objectIndices, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkAttachmentReferenceStencilLayout &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } -#ifdef VK_USE_PLATFORM_WIN32_KHR -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AttachmentReferenceStencilLayout const & ) const = default; #else - template - typename ResultValueType::type releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void releaseProfilingLockKHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator==( AttachmentReferenceStencilLayout const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stencilLayout == rhs.stencilLayout ); + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags = DescriptorPoolResetFlags(), Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags = DescriptorPoolResetFlags(), Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( AttachmentReferenceStencilLayout const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReferenceStencilLayout; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + }; + static_assert( sizeof( AttachmentReferenceStencilLayout ) == sizeof( VkAttachmentReferenceStencilLayout ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - Result resetFences( uint32_t fenceCount, const VULKAN_HPP_NAMESPACE::Fence* pFences, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type resetFences( ArrayProxy fences, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + template <> + struct CppType + { + using Type = AttachmentReferenceStencilLayout; + }; + using AttachmentReferenceStencilLayoutKHR = AttachmentReferenceStencilLayout; - template - void resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + struct Extent2D + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR Extent2D( uint32_t width_ = {}, uint32_t height_ = {} ) VULKAN_HPP_NOEXCEPT + : width( width_ ) + , height( height_ ) + {} - template - void resetQueryPoolEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + VULKAN_HPP_CONSTEXPR Extent2D( Extent2D const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - Result setDebugUtilsObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pNameInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + Extent2D( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT : Extent2D( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - Result setDebugUtilsObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT* pTagInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 Extent2D & operator=( Extent2D const & rhs ) VULKAN_HPP_NOEXCEPT = default; -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + Extent2D & operator=( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - void setHdrMetadataEXT( uint32_t swapchainCount, const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains, const VULKAN_HPP_NAMESPACE::HdrMetadataEXT* pMetadata, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setHdrMetadataEXT( ArrayProxy swapchains, ArrayProxy metadata, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + Extent2D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT + { + width = width_; + return *this; + } - template - void setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain, VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + Extent2D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT + { + height = height_; + return *this; + } - template - Result signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type signalSemaphore( const SemaphoreSignalInfo & signalInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkExtent2D const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - Result signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type signalSemaphoreKHR( const SemaphoreSignalInfo & signalInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkExtent2D &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - void trimCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags = CommandPoolTrimFlags(), Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( Extent2D const & ) const = default; +#else + bool operator==( Extent2D const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( width == rhs.width ) && ( height == rhs.height ); + } - template - void trimCommandPoolKHR( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags = CommandPoolTrimFlags(), Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + bool operator!=( Extent2D const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - void uninitializePerformanceApiINTEL(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + public: + uint32_t width = {}; + uint32_t height = {}; + }; + static_assert( sizeof( Extent2D ) == sizeof( VkExtent2D ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - template - void unmapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + struct SampleLocationEXT + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SampleLocationEXT( float x_ = {}, float y_ = {} ) VULKAN_HPP_NOEXCEPT + : x( x_ ) + , y( y_ ) + {} - template - Result unregisterObjectsNVX( VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable, uint32_t objectCount, const VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type unregisterObjectsNVX( VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable, ArrayProxy objectEntryTypes, ArrayProxy objectIndices, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR SampleLocationEXT( SampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - void updateDescriptorSetWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + SampleLocationEXT( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : SampleLocationEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - void updateDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; + VULKAN_HPP_CONSTEXPR_14 SampleLocationEXT & + operator=( SampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - void updateDescriptorSets( uint32_t descriptorWriteCount, const VULKAN_HPP_NAMESPACE::WriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VULKAN_HPP_NAMESPACE::CopyDescriptorSet* pDescriptorCopies, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void updateDescriptorSets( ArrayProxy descriptorWrites, ArrayProxy descriptorCopies, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + SampleLocationEXT & operator=( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - Result waitForFences( uint32_t fenceCount, const VULKAN_HPP_NAMESPACE::Fence* pFences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result waitForFences( ArrayProxy fences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + SampleLocationEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT + { + x = x_; + return *this; + } - template - Result waitSemaphores( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo* pWaitInfo, uint64_t timeout, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result waitSemaphores( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + SampleLocationEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT + { + y = y_; + return *this; + } - template - Result waitSemaphoresKHR( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo* pWaitInfo, uint64_t timeout, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result waitSemaphoresKHR( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkSampleLocationEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDevice() const VULKAN_HPP_NOEXCEPT + operator VkSampleLocationEXT &() VULKAN_HPP_NOEXCEPT { - return m_device; + return *reinterpret_cast( this ); } - explicit operator bool() const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SampleLocationEXT const & ) const = default; +#else + bool operator==( SampleLocationEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_device != VK_NULL_HANDLE; + return ( x == rhs.x ) && ( y == rhs.y ); } - bool operator!() const VULKAN_HPP_NOEXCEPT + bool operator!=( SampleLocationEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_device == VK_NULL_HANDLE; + return !operator==( rhs ); } +#endif - private: - VkDevice m_device; + public: + float x = {}; + float y = {}; }; - static_assert( sizeof( Device ) == sizeof( VkDevice ), "handle and wrapper have different size!" ); + static_assert( sizeof( SampleLocationEXT ) == sizeof( VkSampleLocationEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - template <> - struct cpp_type + struct SampleLocationsInfoEXT { - using type = Device; - }; + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSampleLocationsInfoEXT; - class DisplayModeKHR - { - public: - using CType = VkDisplayModeKHR; +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SampleLocationsInfoEXT( + VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_ = + VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, + VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize_ = {}, + uint32_t sampleLocationsCount_ = {}, + const VULKAN_HPP_NAMESPACE::SampleLocationEXT * pSampleLocations_ = {} ) VULKAN_HPP_NOEXCEPT + : sampleLocationsPerPixel( sampleLocationsPerPixel_ ) + , sampleLocationGridSize( sampleLocationGridSize_ ) + , sampleLocationsCount( sampleLocationsCount_ ) + , pSampleLocations( pSampleLocations_ ) + {} - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eDisplayModeKHR; + VULKAN_HPP_CONSTEXPR SampleLocationsInfoEXT( SampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - public: - VULKAN_HPP_CONSTEXPR DisplayModeKHR() VULKAN_HPP_NOEXCEPT - : m_displayModeKHR(VK_NULL_HANDLE) + SampleLocationsInfoEXT( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : SampleLocationsInfoEXT( *reinterpret_cast( &rhs ) ) {} - VULKAN_HPP_CONSTEXPR DisplayModeKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_displayModeKHR(VK_NULL_HANDLE) +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SampleLocationsInfoEXT( + VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_, + VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + sampleLocations_ ) + : sampleLocationsPerPixel( sampleLocationsPerPixel_ ) + , sampleLocationGridSize( sampleLocationGridSize_ ) + , sampleLocationsCount( static_cast( sampleLocations_.size() ) ) + , pSampleLocations( sampleLocations_.data() ) {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_TYPESAFE_EXPLICIT DisplayModeKHR( VkDisplayModeKHR displayModeKHR ) VULKAN_HPP_NOEXCEPT - : m_displayModeKHR( displayModeKHR ) - {} + VULKAN_HPP_CONSTEXPR_14 SampleLocationsInfoEXT & + operator=( SampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DisplayModeKHR & operator=(VkDisplayModeKHR displayModeKHR) VULKAN_HPP_NOEXCEPT + SampleLocationsInfoEXT & operator=( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - m_displayModeKHR = displayModeKHR; + *this = *reinterpret_cast( &rhs ); return *this; } -#endif - DisplayModeKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + SampleLocationsInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - m_displayModeKHR = VK_NULL_HANDLE; + pNext = pNext_; return *this; } - bool operator==( DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + SampleLocationsInfoEXT & setSampleLocationsPerPixel( + VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_ ) VULKAN_HPP_NOEXCEPT { - return m_displayModeKHR == rhs.m_displayModeKHR; + sampleLocationsPerPixel = sampleLocationsPerPixel_; + return *this; } - bool operator!=(DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + SampleLocationsInfoEXT & + setSampleLocationGridSize( VULKAN_HPP_NAMESPACE::Extent2D const & sampleLocationGridSize_ ) VULKAN_HPP_NOEXCEPT { - return m_displayModeKHR != rhs.m_displayModeKHR; + sampleLocationGridSize = sampleLocationGridSize_; + return *this; } - bool operator<(DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + SampleLocationsInfoEXT & setSampleLocationsCount( uint32_t sampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT { - return m_displayModeKHR < rhs.m_displayModeKHR; + sampleLocationsCount = sampleLocationsCount_; + return *this; } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDisplayModeKHR() const VULKAN_HPP_NOEXCEPT + SampleLocationsInfoEXT & + setPSampleLocations( const VULKAN_HPP_NAMESPACE::SampleLocationEXT * pSampleLocations_ ) VULKAN_HPP_NOEXCEPT { - return m_displayModeKHR; + pSampleLocations = pSampleLocations_; + return *this; } - explicit operator bool() const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SampleLocationsInfoEXT & setSampleLocations( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + sampleLocations_ ) VULKAN_HPP_NOEXCEPT { - return m_displayModeKHR != VK_NULL_HANDLE; + sampleLocationsCount = static_cast( sampleLocations_.size() ); + pSampleLocations = sampleLocations_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkSampleLocationsInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); } - bool operator!() const VULKAN_HPP_NOEXCEPT + operator VkSampleLocationsInfoEXT &() VULKAN_HPP_NOEXCEPT { - return m_displayModeKHR == VK_NULL_HANDLE; + return *reinterpret_cast( this ); } - private: - VkDisplayModeKHR m_displayModeKHR; +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SampleLocationsInfoEXT const & ) const = default; +#else + bool operator==( SampleLocationsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( sampleLocationsPerPixel == rhs.sampleLocationsPerPixel ) && + ( sampleLocationGridSize == rhs.sampleLocationGridSize ) && + ( sampleLocationsCount == rhs.sampleLocationsCount ) && ( pSampleLocations == rhs.pSampleLocations ); + } + + bool operator!=( SampleLocationsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSampleLocationsInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; + VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize = {}; + uint32_t sampleLocationsCount = {}; + const VULKAN_HPP_NAMESPACE::SampleLocationEXT * pSampleLocations = {}; }; - static_assert( sizeof( DisplayModeKHR ) == sizeof( VkDisplayModeKHR ), "handle and wrapper have different size!" ); + static_assert( sizeof( SampleLocationsInfoEXT ) == sizeof( VkSampleLocationsInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); template <> - struct cpp_type + struct CppType { - using type = DisplayModeKHR; + using Type = SampleLocationsInfoEXT; }; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueDevice = UniqueHandle; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ - - class PhysicalDevice + struct AttachmentSampleLocationsEXT { - public: - using CType = VkPhysicalDevice; +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR AttachmentSampleLocationsEXT( + uint32_t attachmentIndex_ = {}, + VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {} ) VULKAN_HPP_NOEXCEPT + : attachmentIndex( attachmentIndex_ ) + , sampleLocationsInfo( sampleLocationsInfo_ ) + {} - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::ePhysicalDevice; + VULKAN_HPP_CONSTEXPR + AttachmentSampleLocationsEXT( AttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - public: - VULKAN_HPP_CONSTEXPR PhysicalDevice() VULKAN_HPP_NOEXCEPT - : m_physicalDevice(VK_NULL_HANDLE) + AttachmentSampleLocationsEXT( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : AttachmentSampleLocationsEXT( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_CONSTEXPR PhysicalDevice( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_physicalDevice(VK_NULL_HANDLE) - {} + VULKAN_HPP_CONSTEXPR_14 AttachmentSampleLocationsEXT & + operator=( AttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_TYPESAFE_EXPLICIT PhysicalDevice( VkPhysicalDevice physicalDevice ) VULKAN_HPP_NOEXCEPT - : m_physicalDevice( physicalDevice ) - {} + AttachmentSampleLocationsEXT & operator=( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - PhysicalDevice & operator=(VkPhysicalDevice physicalDevice) VULKAN_HPP_NOEXCEPT + AttachmentSampleLocationsEXT & setAttachmentIndex( uint32_t attachmentIndex_ ) VULKAN_HPP_NOEXCEPT { - m_physicalDevice = physicalDevice; + attachmentIndex = attachmentIndex_; return *this; } -#endif - PhysicalDevice & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + AttachmentSampleLocationsEXT & setSampleLocationsInfo( + VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT { - m_physicalDevice = VK_NULL_HANDLE; + sampleLocationsInfo = sampleLocationsInfo_; return *this; } - bool operator==( PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT + operator VkAttachmentSampleLocationsEXT const &() const VULKAN_HPP_NOEXCEPT { - return m_physicalDevice == rhs.m_physicalDevice; + return *reinterpret_cast( this ); } - bool operator!=(PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT + operator VkAttachmentSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT { - return m_physicalDevice != rhs.m_physicalDevice; + return *reinterpret_cast( this ); } - bool operator<(PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( AttachmentSampleLocationsEXT const & ) const = default; +#else + bool operator==( AttachmentSampleLocationsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_physicalDevice < rhs.m_physicalDevice; + return ( attachmentIndex == rhs.attachmentIndex ) && ( sampleLocationsInfo == rhs.sampleLocationsInfo ); } -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - template - Result acquireXlibDisplayEXT( Display* dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type acquireXlibDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ + bool operator!=( AttachmentSampleLocationsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - Result createDevice( const VULKAN_HPP_NAMESPACE::DeviceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Device* pDevice, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createDevice( const DeviceCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createDeviceUnique( const DeviceCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + uint32_t attachmentIndex = {}; + VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {}; + }; + static_assert( sizeof( AttachmentSampleLocationsEXT ) == sizeof( VkAttachmentSampleLocationsEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - Result createDisplayModeKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DisplayModeKHR* pMode, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createDisplayModeKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayModeCreateInfoKHR & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + struct BaseInStructure + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + BaseInStructure( VULKAN_HPP_NAMESPACE::StructureType sType_ = + VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo ) VULKAN_HPP_NOEXCEPT : sType( sType_ ) + {} - template - Result enumerateDeviceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::ExtensionProperties* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type enumerateDeviceExtensionProperties( Optional layerName = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type enumerateDeviceExtensionProperties( Optional layerName, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + BaseInStructure( BaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - Result enumerateDeviceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type enumerateDeviceLayerProperties(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type enumerateDeviceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + BaseInStructure( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT + : BaseInStructure( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - Result enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, uint32_t* pCounterCount, VULKAN_HPP_NAMESPACE::PerformanceCounterKHR* pCounters, VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR* pCounterDescriptions, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, ArrayProxy counters, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, ArrayProxy counters, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + BaseInStructure & operator=( BaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - Result getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + BaseInStructure & operator=( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - Result getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + BaseInStructure & setPNext( const struct VULKAN_HPP_NAMESPACE::BaseInStructure * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } - template - Result getDisplayPlaneCapabilities2KHR( const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR* pDisplayPlaneInfo, VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR* pCapabilities, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkBaseInStructure const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - Result getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, uint32_t planeIndex, VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR* pCapabilities, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, uint32_t planeIndex, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkBaseInStructure &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - Result getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, uint32_t* pDisplayCount, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplays, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BaseInStructure const & ) const = default; +#else + bool operator==( BaseInStructure const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ); + } - template - Result getCalibrateableTimeDomainsEXT( uint32_t* pTimeDomainCount, VULKAN_HPP_NAMESPACE::TimeDomainEXT* pTimeDomains, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getCalibrateableTimeDomainsEXT(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getCalibrateableTimeDomainsEXT(Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( BaseInStructure const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - Result getCooperativeMatrixPropertiesNV( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getCooperativeMatrixPropertiesNV(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getCooperativeMatrixPropertiesNV(Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo; + const struct VULKAN_HPP_NAMESPACE::BaseInStructure * pNext = {}; + }; + static_assert( sizeof( BaseInStructure ) == sizeof( VkBaseInStructure ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - template - Result getDisplayPlaneProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getDisplayPlaneProperties2KHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getDisplayPlaneProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + struct BaseOutStructure + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + BaseOutStructure( VULKAN_HPP_NAMESPACE::StructureType sType_ = + VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo ) VULKAN_HPP_NOEXCEPT : sType( sType_ ) + {} - template - Result getDisplayPlanePropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getDisplayPlanePropertiesKHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getDisplayPlanePropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + BaseOutStructure( BaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - Result getDisplayProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayProperties2KHR* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getDisplayProperties2KHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getDisplayProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + BaseOutStructure( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT + : BaseOutStructure( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - Result getDisplayPropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getDisplayPropertiesKHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getDisplayPropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + BaseOutStructure & operator=( BaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - void getExternalBufferProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + BaseOutStructure & operator=( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - void getExternalBufferPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + BaseOutStructure & setPNext( struct VULKAN_HPP_NAMESPACE::BaseOutStructure * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } - template - void getExternalFenceProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkBaseOutStructure const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - void getExternalFencePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkBaseOutStructure &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - Result getExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType, VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV* pExternalImageFormatProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BaseOutStructure const & ) const = default; +#else + bool operator==( BaseOutStructure const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ); + } - template - void getExternalSemaphoreProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( BaseOutStructure const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - void getExternalSemaphorePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphorePropertiesKHR( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo; + struct VULKAN_HPP_NAMESPACE::BaseOutStructure * pNext = {}; + }; + static_assert( sizeof( BaseOutStructure ) == sizeof( VkBaseOutStructure ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - template - void getFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pFeatures, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures getFeatures(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + class DeviceMemory + { + public: + using CType = VkDeviceMemory; - template - void getFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - template - StructureChain getFeatures2(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + 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; - template - void getFeatures2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2KHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - template - StructureChain getFeatures2KHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_CONSTEXPR DeviceMemory() = default; + VULKAN_HPP_CONSTEXPR DeviceMemory( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT DeviceMemory( VkDeviceMemory deviceMemory ) VULKAN_HPP_NOEXCEPT + : m_deviceMemory( deviceMemory ) + {} - template - void getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties* pFormatProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::FormatProperties getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + DeviceMemory & operator=( VkDeviceMemory deviceMemory ) VULKAN_HPP_NOEXCEPT + { + m_deviceMemory = deviceMemory; + return *this; + } +#endif - template - void getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - template - StructureChain getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + DeviceMemory & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + { + m_deviceMemory = {}; + return *this; + } - template - void getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - template - StructureChain getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DeviceMemory const & ) const = default; +#else + bool operator==( DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_deviceMemory == rhs.m_deviceMemory; + } - template - void getGeneratedCommandsPropertiesNVX( VULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsFeaturesNVX* pFeatures, VULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsLimitsNVX* pLimits, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsLimitsNVX getGeneratedCommandsPropertiesNVX( DeviceGeneratedCommandsFeaturesNVX & features, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_deviceMemory != rhs.m_deviceMemory; + } - template - Result getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, VULKAN_HPP_NAMESPACE::ImageFormatProperties* pImageFormatProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator<( DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_deviceMemory < rhs.m_deviceMemory; + } +#endif - template - Result getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, VULKAN_HPP_NAMESPACE::ImageFormatProperties2* pImageFormatProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template - typename ResultValueType>::type getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDeviceMemory() const VULKAN_HPP_NOEXCEPT + { + return m_deviceMemory; + } - template - Result getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, VULKAN_HPP_NAMESPACE::ImageFormatProperties2* pImageFormatProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template - typename ResultValueType>::type getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + explicit operator bool() const VULKAN_HPP_NOEXCEPT + { + return m_deviceMemory != VK_NULL_HANDLE; + } - template - void getMemoryProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties* pMemoryProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties getMemoryProperties(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!() const VULKAN_HPP_NOEXCEPT + { + return m_deviceMemory == VK_NULL_HANDLE; + } - template - void getMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - template - StructureChain getMemoryProperties2(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + private: + VkDeviceMemory m_deviceMemory = {}; + }; + static_assert( sizeof( VULKAN_HPP_NAMESPACE::DeviceMemory ) == sizeof( VkDeviceMemory ), + "handle and wrapper have different size!" ); - template - void getMemoryProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2KHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - template - StructureChain getMemoryProperties2KHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type + { + using type = VULKAN_HPP_NAMESPACE::DeviceMemory; + }; - template - void getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT* pMultisampleProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::DeviceMemory; + }; - template - Result getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pRectCount, VULKAN_HPP_NAMESPACE::Rect2D* pRects, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::DeviceMemory; + }; - template - void getProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties getProperties(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; - template - void getProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - template - StructureChain getProperties2(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + struct BindAccelerationStructureMemoryInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eBindAccelerationStructureMemoryInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + BindAccelerationStructureMemoryInfoNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ = {}, + VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, + uint32_t deviceIndexCount_ = {}, + const uint32_t * pDeviceIndices_ = {} ) VULKAN_HPP_NOEXCEPT + : accelerationStructure( accelerationStructure_ ) + , memory( memory_ ) + , memoryOffset( memoryOffset_ ) + , deviceIndexCount( deviceIndexCount_ ) + , pDeviceIndices( pDeviceIndices_ ) + {} - template - void getProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2KHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; - template - StructureChain getProperties2KHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR BindAccelerationStructureMemoryInfoNV( BindAccelerationStructureMemoryInfoNV const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - template - void getQueueFamilyPerformanceQueryPassesKHR( const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - uint32_t getQueueFamilyPerformanceQueryPassesKHR( const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + BindAccelerationStructureMemoryInfoNV( VkBindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : BindAccelerationStructureMemoryInfoNV( + *reinterpret_cast( &rhs ) ) + {} - template - void getQueueFamilyProperties( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties* pQueueFamilyProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector getQueueFamilyProperties(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector getQueueFamilyProperties(Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + BindAccelerationStructureMemoryInfoNV( + VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_, + VULKAN_HPP_NAMESPACE::DeviceMemory memory_, + VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceIndices_ ) + : accelerationStructure( accelerationStructure_ ) + , memory( memory_ ) + , memoryOffset( memoryOffset_ ) + , deviceIndexCount( static_cast( deviceIndices_.size() ) ) + , pDeviceIndices( deviceIndices_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - void getQueueFamilyProperties2( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector getQueueFamilyProperties2(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector getQueueFamilyProperties2(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 BindAccelerationStructureMemoryInfoNV & + operator=( BindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - void getQueueFamilyProperties2KHR( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector getQueueFamilyProperties2KHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector getQueueFamilyProperties2KHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + BindAccelerationStructureMemoryInfoNV & + operator=( VkBindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - void getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector 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, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + BindAccelerationStructureMemoryInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } - template - void getSparseImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + BindAccelerationStructureMemoryInfoNV & setAccelerationStructure( + VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT + { + accelerationStructure = accelerationStructure_; + return *this; + } - template - void getSparseImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - std::vector getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + BindAccelerationStructureMemoryInfoNV & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT + { + memory = memory_; + return *this; + } - template - Result getSupportedFramebufferMixedSamplesCombinationsNV( uint32_t* pCombinationCount, VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV* pCombinations, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getSupportedFramebufferMixedSamplesCombinationsNV(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getSupportedFramebufferMixedSamplesCombinationsNV(Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + BindAccelerationStructureMemoryInfoNV & + setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT + { + memoryOffset = memoryOffset_; + return *this; + } - template - Result getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT* pSurfaceCapabilities, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + BindAccelerationStructureMemoryInfoNV & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT + { + deviceIndexCount = deviceIndexCount_; + return *this; + } - template - Result getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR* pSurfaceCapabilities, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template - typename ResultValueType>::type getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + BindAccelerationStructureMemoryInfoNV & setPDeviceIndices( const uint32_t * pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT + { + pDeviceIndices = pDeviceIndices_; + return *this; + } - template - Result getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR* pSurfaceCapabilities, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + BindAccelerationStructureMemoryInfoNV & setDeviceIndices( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT + { + deviceIndexCount = static_cast( deviceIndices_.size() ); + pDeviceIndices = deviceIndices_.data(); + return *this; + } #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - template - Result getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR* pSurfaceFormats, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkBindAccelerationStructureMemoryInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - Result getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pSurfaceFormatCount, VULKAN_HPP_NAMESPACE::SurfaceFormatKHR* pSurfaceFormats, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkBindAccelerationStructureMemoryInfoNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - Result getSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VULKAN_HPP_NAMESPACE::PresentModeKHR* pPresentModes, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BindAccelerationStructureMemoryInfoNV const & ) const = default; +#else + bool operator==( BindAccelerationStructureMemoryInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( accelerationStructure == rhs.accelerationStructure ) && ( memory == rhs.memory ) && + ( memoryOffset == rhs.memoryOffset ) && ( deviceIndexCount == rhs.deviceIndexCount ) && + ( pDeviceIndices == rhs.pDeviceIndices ); + } - template - Result getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pPresentModeCount, VULKAN_HPP_NAMESPACE::PresentModeKHR* pPresentModes, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( BindAccelerationStructureMemoryInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - Result getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::Bool32* pSupported, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - Result getToolPropertiesEXT( uint32_t* pToolCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT* pToolProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getToolPropertiesEXT(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type getToolPropertiesEXT(Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - template - Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display* display, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - Bool32 getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_XCB_KHR - template - Bool32 getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Bool32 getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t & connection, xcb_visualid_t visual_id, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XCB_KHR*/ - -#ifdef VK_USE_PLATFORM_XLIB_KHR - template - Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display* dpy, VisualID visualID, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - template - Result getRandROutputDisplayEXT( Display* dpy, RROutput rrOutput, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplay, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPhysicalDevice() const VULKAN_HPP_NOEXCEPT - { - return m_physicalDevice; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_physicalDevice != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_physicalDevice == VK_NULL_HANDLE; - } - - private: - VkPhysicalDevice m_physicalDevice; + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindAccelerationStructureMemoryInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure = {}; + VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; + VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {}; + uint32_t deviceIndexCount = {}; + const uint32_t * pDeviceIndices = {}; }; - static_assert( sizeof( PhysicalDevice ) == sizeof( VkPhysicalDevice ), "handle and wrapper have different size!" ); + static_assert( sizeof( BindAccelerationStructureMemoryInfoNV ) == sizeof( VkBindAccelerationStructureMemoryInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); template <> - struct cpp_type + struct CppType { - using type = PhysicalDevice; + using Type = BindAccelerationStructureMemoryInfoNV; }; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - class Instance; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueDebugReportCallbackEXT = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueDebugUtilsMessengerEXT = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueSurfaceKHR = UniqueHandle; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ - - class Instance + struct BindBufferMemoryDeviceGroupInfo { - public: - using CType = VkInstance; + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindBufferMemoryDeviceGroupInfo; - static VULKAN_HPP_CONST_OR_CONSTEXPR ObjectType objectType = ObjectType::eInstance; - - public: - VULKAN_HPP_CONSTEXPR Instance() VULKAN_HPP_NOEXCEPT - : m_instance(VK_NULL_HANDLE) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR BindBufferMemoryDeviceGroupInfo( uint32_t deviceIndexCount_ = {}, + const uint32_t * pDeviceIndices_ = {} ) VULKAN_HPP_NOEXCEPT + : deviceIndexCount( deviceIndexCount_ ) + , pDeviceIndices( pDeviceIndices_ ) {} - VULKAN_HPP_CONSTEXPR Instance( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_instance(VK_NULL_HANDLE) + VULKAN_HPP_CONSTEXPR + BindBufferMemoryDeviceGroupInfo( BindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BindBufferMemoryDeviceGroupInfo( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : BindBufferMemoryDeviceGroupInfo( *reinterpret_cast( &rhs ) ) {} - VULKAN_HPP_TYPESAFE_EXPLICIT Instance( VkInstance instance ) VULKAN_HPP_NOEXCEPT - : m_instance( instance ) +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + BindBufferMemoryDeviceGroupInfo( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceIndices_ ) + : deviceIndexCount( static_cast( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() ) {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Instance & operator=(VkInstance instance) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryDeviceGroupInfo & + operator=( BindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BindBufferMemoryDeviceGroupInfo & operator=( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - m_instance = instance; + *this = *reinterpret_cast( &rhs ); return *this; } -#endif - Instance & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + BindBufferMemoryDeviceGroupInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - m_instance = VK_NULL_HANDLE; + pNext = pNext_; return *this; } - bool operator==( Instance const & rhs ) const VULKAN_HPP_NOEXCEPT + BindBufferMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT { - return m_instance == rhs.m_instance; + deviceIndexCount = deviceIndexCount_; + return *this; } - bool operator!=(Instance const & rhs ) const VULKAN_HPP_NOEXCEPT + BindBufferMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t * pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT { - return m_instance != rhs.m_instance; + pDeviceIndices = pDeviceIndices_; + return *this; } - bool operator<(Instance const & rhs ) const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + BindBufferMemoryDeviceGroupInfo & setDeviceIndices( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT { - return m_instance < rhs.m_instance; + deviceIndexCount = static_cast( deviceIndices_.size() ); + pDeviceIndices = deviceIndices_.data(); + return *this; } - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template - Result createAndroidSurfaceKHR( const VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createAndroidSurfaceKHR( const AndroidSurfaceCreateInfoKHR & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createAndroidSurfaceKHRUnique( const AndroidSurfaceCreateInfoKHR & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - template - Result createDebugReportCallbackEXT( const VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT* pCallback, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createDebugReportCallbackEXTUnique( const DebugReportCallbackCreateInfoEXT & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - Result createDebugUtilsMessengerEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT* pMessenger, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createDebugUtilsMessengerEXT( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createDebugUtilsMessengerEXTUnique( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - Result createDisplayPlaneSurfaceKHR( const VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createDisplayPlaneSurfaceKHR( const DisplaySurfaceCreateInfoKHR & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createDisplayPlaneSurfaceKHRUnique( const DisplaySurfaceCreateInfoKHR & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - Result createHeadlessSurfaceEXT( const VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createHeadlessSurfaceEXT( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createHeadlessSurfaceEXTUnique( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - -#ifdef VK_USE_PLATFORM_IOS_MVK - template - Result createIOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createIOSSurfaceMVK( const IOSSurfaceCreateInfoMVK & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createIOSSurfaceMVKUnique( const IOSSurfaceCreateInfoMVK & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_IOS_MVK*/ - -#ifdef VK_USE_PLATFORM_FUCHSIA - template - Result createImagePipeSurfaceFUCHSIA( const VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createImagePipeSurfaceFUCHSIA( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createImagePipeSurfaceFUCHSIAUnique( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_FUCHSIA*/ - -#ifdef VK_USE_PLATFORM_MACOS_MVK - template - Result createMacOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createMacOSSurfaceMVK( const MacOSSurfaceCreateInfoMVK & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createMacOSSurfaceMVKUnique( const MacOSSurfaceCreateInfoMVK & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_MACOS_MVK*/ - -#ifdef VK_USE_PLATFORM_METAL_EXT - template - Result createMetalSurfaceEXT( const VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createMetalSurfaceEXT( const MetalSurfaceCreateInfoEXT & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createMetalSurfaceEXTUnique( const MetalSurfaceCreateInfoEXT & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_METAL_EXT*/ - -#ifdef VK_USE_PLATFORM_GGP - template - Result createStreamDescriptorSurfaceGGP( const VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createStreamDescriptorSurfaceGGP( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createStreamDescriptorSurfaceGGPUnique( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_GGP*/ - -#ifdef VK_USE_PLATFORM_VI_NN - template - Result createViSurfaceNN( const VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createViSurfaceNN( const ViSurfaceCreateInfoNN & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createViSurfaceNNUnique( const ViSurfaceCreateInfoNN & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_VI_NN*/ - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - template - Result createWaylandSurfaceKHR( const VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createWaylandSurfaceKHR( const WaylandSurfaceCreateInfoKHR & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createWaylandSurfaceKHRUnique( const WaylandSurfaceCreateInfoKHR & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - Result createWin32SurfaceKHR( const VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createWin32SurfaceKHR( const Win32SurfaceCreateInfoKHR & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createWin32SurfaceKHRUnique( const Win32SurfaceCreateInfoKHR & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_XCB_KHR - template - Result createXcbSurfaceKHR( const VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createXcbSurfaceKHR( const XcbSurfaceCreateInfoKHR & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createXcbSurfaceKHRUnique( const XcbSurfaceCreateInfoKHR & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XCB_KHR*/ - -#ifdef VK_USE_PLATFORM_XLIB_KHR - template - Result createXlibSurfaceKHR( const VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createXlibSurfaceKHR( const XlibSurfaceCreateInfoKHR & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createXlibSurfaceKHRUnique( const XlibSurfaceCreateInfoKHR & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - - template - void debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - 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, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - Result enumeratePhysicalDeviceGroups( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type enumeratePhysicalDeviceGroups(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type enumeratePhysicalDeviceGroups(Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - Result enumeratePhysicalDeviceGroupsKHR( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type enumeratePhysicalDeviceGroupsKHR(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type enumeratePhysicalDeviceGroupsKHR(Allocator const& vectorAllocator, Dispatch const &d ) const; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - template - Result enumeratePhysicalDevices( uint32_t* pPhysicalDeviceCount, VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type enumeratePhysicalDevices(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const; - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type enumeratePhysicalDevices(Allocator const& vectorAllocator, Dispatch const &d ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT* pCallbackData, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, const DebugUtilsMessengerCallbackDataEXT & callbackData, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkBindBufferMemoryDeviceGroupInfo const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkInstance() const VULKAN_HPP_NOEXCEPT + operator VkBindBufferMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT { - return m_instance; + return *reinterpret_cast( this ); } - explicit operator bool() const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BindBufferMemoryDeviceGroupInfo const & ) const = default; +#else + bool operator==( BindBufferMemoryDeviceGroupInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_instance != VK_NULL_HANDLE; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceIndexCount == rhs.deviceIndexCount ) && + ( pDeviceIndices == rhs.pDeviceIndices ); } - bool operator!() const VULKAN_HPP_NOEXCEPT + bool operator!=( BindBufferMemoryDeviceGroupInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return m_instance == VK_NULL_HANDLE; + return !operator==( rhs ); } +#endif - private: - VkInstance m_instance; + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryDeviceGroupInfo; + const void * pNext = {}; + uint32_t deviceIndexCount = {}; + const uint32_t * pDeviceIndices = {}; }; - static_assert( sizeof( Instance ) == sizeof( VkInstance ), "handle and wrapper have different size!" ); + static_assert( sizeof( BindBufferMemoryDeviceGroupInfo ) == sizeof( VkBindBufferMemoryDeviceGroupInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); template <> - struct cpp_type + struct CppType { - using type = Instance; + using Type = BindBufferMemoryDeviceGroupInfo; }; + using BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo; -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueInstance = UniqueHandle; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ - - template - Result createInstance( const VULKAN_HPP_NAMESPACE::InstanceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Instance* pInstance, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createInstance( const InstanceCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ); -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - typename ResultValueType>::type createInstanceUnique( const InstanceCreateInfo & createInfo, Optional allocator = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ); -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - Result enumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::ExtensionProperties* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type enumerateInstanceExtensionProperties( Optional layerName = nullptr, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ); - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type enumerateInstanceExtensionProperties( Optional layerName, Allocator const& vectorAllocator, Dispatch const &d ); -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + struct BindBufferMemoryInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindBufferMemoryInfo; - template - Result enumerateInstanceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type enumerateInstanceLayerProperties(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ); - template, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - typename ResultValueType>::type enumerateInstanceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d ); -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR BindBufferMemoryInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, + VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {} ) VULKAN_HPP_NOEXCEPT + : buffer( buffer_ ) + , memory( memory_ ) + , memoryOffset( memoryOffset_ ) + {} - template - Result enumerateInstanceVersion( uint32_t* pApiVersion, Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type enumerateInstanceVersion(Dispatch const &d = VULKAN_HPP_DEFAULT_DISPATCHER ); -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR BindBufferMemoryInfo( BindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - struct GeometryTrianglesNV - { - VULKAN_HPP_CONSTEXPR GeometryTrianglesNV( VULKAN_HPP_NAMESPACE::Buffer vertexData_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset_ = {}, - uint32_t vertexCount_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ = {}, - VULKAN_HPP_NAMESPACE::Format vertexFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, - VULKAN_HPP_NAMESPACE::Buffer indexData_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize indexOffset_ = {}, - uint32_t indexCount_ = {}, - VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16, - VULKAN_HPP_NAMESPACE::Buffer transformData_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize transformOffset_ = {} ) VULKAN_HPP_NOEXCEPT - : vertexData( vertexData_ ) - , vertexOffset( vertexOffset_ ) - , vertexCount( vertexCount_ ) - , vertexStride( vertexStride_ ) - , vertexFormat( vertexFormat_ ) - , indexData( indexData_ ) - , indexOffset( indexOffset_ ) - , indexCount( indexCount_ ) - , indexType( indexType_ ) - , transformData( transformData_ ) - , transformOffset( transformOffset_ ) + BindBufferMemoryInfo( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : BindBufferMemoryInfo( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 BindBufferMemoryInfo & + operator=( BindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::GeometryTrianglesNV & operator=( VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT + BindBufferMemoryInfo & operator=( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::GeometryTrianglesNV ) - offsetof( GeometryTrianglesNV, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - GeometryTrianglesNV( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT + BindBufferMemoryInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - GeometryTrianglesNV& operator=( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT + BindBufferMemoryInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + buffer = buffer_; return *this; } - GeometryTrianglesNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + BindBufferMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + memory = memory_; return *this; } - GeometryTrianglesNV & setVertexData( VULKAN_HPP_NAMESPACE::Buffer vertexData_ ) VULKAN_HPP_NOEXCEPT + BindBufferMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT { - vertexData = vertexData_; + memoryOffset = memoryOffset_; return *this; } - GeometryTrianglesNV & setVertexOffset( VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset_ ) VULKAN_HPP_NOEXCEPT + operator VkBindBufferMemoryInfo const &() const VULKAN_HPP_NOEXCEPT { - vertexOffset = vertexOffset_; - return *this; + return *reinterpret_cast( this ); } - GeometryTrianglesNV & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT + operator VkBindBufferMemoryInfo &() VULKAN_HPP_NOEXCEPT { - vertexCount = vertexCount_; - return *this; + return *reinterpret_cast( this ); } - GeometryTrianglesNV & setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BindBufferMemoryInfo const & ) const = default; +#else + bool operator==( BindBufferMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - vertexStride = vertexStride_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( buffer == rhs.buffer ) && ( memory == rhs.memory ) && + ( memoryOffset == rhs.memoryOffset ); } - GeometryTrianglesNV & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( BindBufferMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - vertexFormat = vertexFormat_; - return *this; + return !operator==( rhs ); } +#endif - GeometryTrianglesNV & setIndexData( VULKAN_HPP_NAMESPACE::Buffer indexData_ ) VULKAN_HPP_NOEXCEPT + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Buffer buffer = {}; + VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; + VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {}; + }; + static_assert( sizeof( BindBufferMemoryInfo ) == sizeof( VkBindBufferMemoryInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = BindBufferMemoryInfo; + }; + using BindBufferMemoryInfoKHR = BindBufferMemoryInfo; + + struct Offset2D + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR Offset2D( int32_t x_ = {}, int32_t y_ = {} ) VULKAN_HPP_NOEXCEPT + : x( x_ ) + , y( y_ ) + {} + + VULKAN_HPP_CONSTEXPR Offset2D( Offset2D const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + Offset2D( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT : Offset2D( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 Offset2D & operator=( Offset2D const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + Offset2D & operator=( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT { - indexData = indexData_; + *this = *reinterpret_cast( &rhs ); return *this; } - GeometryTrianglesNV & setIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize indexOffset_ ) VULKAN_HPP_NOEXCEPT + Offset2D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT { - indexOffset = indexOffset_; + x = x_; return *this; } - GeometryTrianglesNV & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT + Offset2D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT { - indexCount = indexCount_; + y = y_; return *this; } - GeometryTrianglesNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT + operator VkOffset2D const &() const VULKAN_HPP_NOEXCEPT { - indexType = indexType_; + return *reinterpret_cast( this ); + } + + operator VkOffset2D &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( Offset2D const & ) const = default; +#else + bool operator==( Offset2D const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( x == rhs.x ) && ( y == rhs.y ); + } + + bool operator!=( Offset2D const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + int32_t x = {}; + int32_t y = {}; + }; + static_assert( sizeof( Offset2D ) == sizeof( VkOffset2D ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + struct Rect2D + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR Rect2D( VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D extent_ = {} ) VULKAN_HPP_NOEXCEPT + : offset( offset_ ) + , extent( extent_ ) + {} + + VULKAN_HPP_CONSTEXPR Rect2D( Rect2D const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + Rect2D( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT : Rect2D( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 Rect2D & operator=( Rect2D const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + Rect2D & operator=( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); return *this; } - GeometryTrianglesNV & setTransformData( VULKAN_HPP_NAMESPACE::Buffer transformData_ ) VULKAN_HPP_NOEXCEPT + Rect2D & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT { - transformData = transformData_; + offset = offset_; return *this; } - GeometryTrianglesNV & setTransformOffset( VULKAN_HPP_NAMESPACE::DeviceSize transformOffset_ ) VULKAN_HPP_NOEXCEPT + Rect2D & setExtent( VULKAN_HPP_NAMESPACE::Extent2D const & extent_ ) VULKAN_HPP_NOEXCEPT { - transformOffset = transformOffset_; + extent = extent_; return *this; } - operator VkGeometryTrianglesNV const&() const VULKAN_HPP_NOEXCEPT + operator VkRect2D const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkGeometryTrianglesNV &() VULKAN_HPP_NOEXCEPT + operator VkRect2D &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( GeometryTrianglesNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( Rect2D const & ) const = default; +#else + bool operator==( Rect2D const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( vertexData == rhs.vertexData ) - && ( vertexOffset == rhs.vertexOffset ) - && ( vertexCount == rhs.vertexCount ) - && ( vertexStride == rhs.vertexStride ) - && ( vertexFormat == rhs.vertexFormat ) - && ( indexData == rhs.indexData ) - && ( indexOffset == rhs.indexOffset ) - && ( indexCount == rhs.indexCount ) - && ( indexType == rhs.indexType ) - && ( transformData == rhs.transformData ) - && ( transformOffset == rhs.transformOffset ); + return ( offset == rhs.offset ) && ( extent == rhs.extent ); } - bool operator!=( GeometryTrianglesNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( Rect2D const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryTrianglesNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Buffer vertexData = {}; - VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset = {}; - uint32_t vertexCount = {}; - VULKAN_HPP_NAMESPACE::DeviceSize vertexStride = {}; - VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::Buffer indexData = {}; - VULKAN_HPP_NAMESPACE::DeviceSize indexOffset = {}; - uint32_t indexCount = {}; - VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16; - VULKAN_HPP_NAMESPACE::Buffer transformData = {}; - VULKAN_HPP_NAMESPACE::DeviceSize transformOffset = {}; + VULKAN_HPP_NAMESPACE::Offset2D offset = {}; + VULKAN_HPP_NAMESPACE::Extent2D extent = {}; }; - static_assert( sizeof( GeometryTrianglesNV ) == sizeof( VkGeometryTrianglesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( Rect2D ) == sizeof( VkRect2D ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct GeometryAABBNV + struct BindImageMemoryDeviceGroupInfo { - VULKAN_HPP_CONSTEXPR GeometryAABBNV( VULKAN_HPP_NAMESPACE::Buffer aabbData_ = {}, - uint32_t numAABBs_ = {}, - uint32_t stride_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {} ) VULKAN_HPP_NOEXCEPT - : aabbData( aabbData_ ) - , numAABBs( numAABBs_ ) - , stride( stride_ ) - , offset( offset_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemoryDeviceGroupInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR BindImageMemoryDeviceGroupInfo( + uint32_t deviceIndexCount_ = {}, + const uint32_t * pDeviceIndices_ = {}, + uint32_t splitInstanceBindRegionCount_ = {}, + const VULKAN_HPP_NAMESPACE::Rect2D * pSplitInstanceBindRegions_ = {} ) VULKAN_HPP_NOEXCEPT + : deviceIndexCount( deviceIndexCount_ ) + , pDeviceIndices( pDeviceIndices_ ) + , splitInstanceBindRegionCount( splitInstanceBindRegionCount_ ) + , pSplitInstanceBindRegions( pSplitInstanceBindRegions_ ) + {} + + VULKAN_HPP_CONSTEXPR + BindImageMemoryDeviceGroupInfo( BindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BindImageMemoryDeviceGroupInfo( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : BindImageMemoryDeviceGroupInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + BindImageMemoryDeviceGroupInfo( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceIndices_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + splitInstanceBindRegions_ = {} ) + : deviceIndexCount( static_cast( deviceIndices_.size() ) ) + , pDeviceIndices( deviceIndices_.data() ) + , splitInstanceBindRegionCount( static_cast( splitInstanceBindRegions_.size() ) ) + , pSplitInstanceBindRegions( splitInstanceBindRegions_.data() ) {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::GeometryAABBNV & operator=( VULKAN_HPP_NAMESPACE::GeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 BindImageMemoryDeviceGroupInfo & + operator=( BindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BindImageMemoryDeviceGroupInfo & operator=( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::GeometryAABBNV ) - offsetof( GeometryAABBNV, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - GeometryAABBNV( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT + BindImageMemoryDeviceGroupInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - GeometryAABBNV& operator=( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT + BindImageMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + deviceIndexCount = deviceIndexCount_; return *this; } - GeometryAABBNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + BindImageMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t * pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + pDeviceIndices = pDeviceIndices_; return *this; } - GeometryAABBNV & setAabbData( VULKAN_HPP_NAMESPACE::Buffer aabbData_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + BindImageMemoryDeviceGroupInfo & setDeviceIndices( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT { - aabbData = aabbData_; + deviceIndexCount = static_cast( deviceIndices_.size() ); + pDeviceIndices = deviceIndices_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - GeometryAABBNV & setNumAABBs( uint32_t numAABBs_ ) VULKAN_HPP_NOEXCEPT + BindImageMemoryDeviceGroupInfo & + setSplitInstanceBindRegionCount( uint32_t splitInstanceBindRegionCount_ ) VULKAN_HPP_NOEXCEPT { - numAABBs = numAABBs_; + splitInstanceBindRegionCount = splitInstanceBindRegionCount_; return *this; } - GeometryAABBNV & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT + BindImageMemoryDeviceGroupInfo & setPSplitInstanceBindRegions( + const VULKAN_HPP_NAMESPACE::Rect2D * pSplitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT { - stride = stride_; + pSplitInstanceBindRegions = pSplitInstanceBindRegions_; return *this; } - GeometryAABBNV & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegions( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + splitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT { - offset = offset_; + splitInstanceBindRegionCount = static_cast( splitInstanceBindRegions_.size() ); + pSplitInstanceBindRegions = splitInstanceBindRegions_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkGeometryAABBNV const&() const VULKAN_HPP_NOEXCEPT + operator VkBindImageMemoryDeviceGroupInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkGeometryAABBNV &() VULKAN_HPP_NOEXCEPT + operator VkBindImageMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( GeometryAABBNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BindImageMemoryDeviceGroupInfo const & ) const = default; +#else + bool operator==( BindImageMemoryDeviceGroupInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( aabbData == rhs.aabbData ) - && ( numAABBs == rhs.numAABBs ) - && ( stride == rhs.stride ) - && ( offset == rhs.offset ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceIndexCount == rhs.deviceIndexCount ) && + ( pDeviceIndices == rhs.pDeviceIndices ) && + ( splitInstanceBindRegionCount == rhs.splitInstanceBindRegionCount ) && + ( pSplitInstanceBindRegions == rhs.pSplitInstanceBindRegions ); } - bool operator!=( GeometryAABBNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( BindImageMemoryDeviceGroupInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryAabbNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Buffer aabbData = {}; - uint32_t numAABBs = {}; - uint32_t stride = {}; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryDeviceGroupInfo; + const void * pNext = {}; + uint32_t deviceIndexCount = {}; + const uint32_t * pDeviceIndices = {}; + uint32_t splitInstanceBindRegionCount = {}; + const VULKAN_HPP_NAMESPACE::Rect2D * pSplitInstanceBindRegions = {}; }; - static_assert( sizeof( GeometryAABBNV ) == sizeof( VkGeometryAABBNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( BindImageMemoryDeviceGroupInfo ) == sizeof( VkBindImageMemoryDeviceGroupInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct GeometryDataNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR GeometryDataNV( VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles_ = {}, - VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs_ = {} ) VULKAN_HPP_NOEXCEPT - : triangles( triangles_ ) - , aabbs( aabbs_ ) - {} + using Type = BindImageMemoryDeviceGroupInfo; + }; + using BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo; - GeometryDataNV( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT + 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: + VULKAN_HPP_CONSTEXPR Image() = default; + VULKAN_HPP_CONSTEXPR Image( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT Image( VkImage image ) VULKAN_HPP_NOEXCEPT : m_image( image ) {} + +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + Image & operator=( VkImage image ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + m_image = image; + return *this; } +#endif - GeometryDataNV& operator=( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT + Image & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + m_image = {}; return *this; } - GeometryDataNV & setTriangles( VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( Image const & ) const = default; +#else + bool operator==( Image const & rhs ) const VULKAN_HPP_NOEXCEPT { - triangles = triangles_; - return *this; + return m_image == rhs.m_image; } - GeometryDataNV & setAabbs( VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( Image const & rhs ) const VULKAN_HPP_NOEXCEPT { - aabbs = aabbs_; - return *this; + return m_image != rhs.m_image; } - operator VkGeometryDataNV const&() const VULKAN_HPP_NOEXCEPT + bool operator<( Image const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_image < rhs.m_image; } +#endif - operator VkGeometryDataNV &() VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImage() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_image; } - bool operator==( GeometryDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return ( triangles == rhs.triangles ) - && ( aabbs == rhs.aabbs ); + return m_image != VK_NULL_HANDLE; } - bool operator!=( GeometryDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_image == VK_NULL_HANDLE; } - public: - VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles = {}; - VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs = {}; + private: + VkImage m_image = {}; }; - static_assert( sizeof( GeometryDataNV ) == sizeof( VkGeometryDataNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::Image ) == sizeof( VkImage ), + "handle and wrapper have different size!" ); - struct GeometryNV + template <> + struct VULKAN_HPP_DEPRECATED( "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - VULKAN_HPP_CONSTEXPR GeometryNV( VULKAN_HPP_NAMESPACE::GeometryTypeNV geometryType_ = VULKAN_HPP_NAMESPACE::GeometryTypeNV::eTriangles, - VULKAN_HPP_NAMESPACE::GeometryDataNV geometry_ = {}, - VULKAN_HPP_NAMESPACE::GeometryFlagsNV flags_ = {} ) VULKAN_HPP_NOEXCEPT - : geometryType( geometryType_ ) - , geometry( geometry_ ) - , flags( flags_ ) + using type = VULKAN_HPP_NAMESPACE::Image; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::Image; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::Image; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + struct BindImageMemoryInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemoryInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR BindImageMemoryInfo( VULKAN_HPP_NAMESPACE::Image image_ = {}, + VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {} ) VULKAN_HPP_NOEXCEPT + : image( image_ ) + , memory( memory_ ) + , memoryOffset( memoryOffset_ ) {} - VULKAN_HPP_NAMESPACE::GeometryNV & operator=( VULKAN_HPP_NAMESPACE::GeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::GeometryNV ) - offsetof( GeometryNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR BindImageMemoryInfo( BindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - GeometryNV( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + BindImageMemoryInfo( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : BindImageMemoryInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 BindImageMemoryInfo & + operator=( BindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - GeometryNV& operator=( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT + BindImageMemoryInfo & operator=( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - GeometryNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + BindImageMemoryInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - GeometryNV & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeNV geometryType_ ) VULKAN_HPP_NOEXCEPT + BindImageMemoryInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT { - geometryType = geometryType_; + image = image_; return *this; } - GeometryNV & setGeometry( VULKAN_HPP_NAMESPACE::GeometryDataNV geometry_ ) VULKAN_HPP_NOEXCEPT + BindImageMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT { - geometry = geometry_; + memory = memory_; return *this; } - GeometryNV & setFlags( VULKAN_HPP_NAMESPACE::GeometryFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT + BindImageMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + memoryOffset = memoryOffset_; return *this; } - operator VkGeometryNV const&() const VULKAN_HPP_NOEXCEPT + operator VkBindImageMemoryInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkGeometryNV &() VULKAN_HPP_NOEXCEPT + operator VkBindImageMemoryInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( GeometryNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BindImageMemoryInfo const & ) const = default; +#else + bool operator==( BindImageMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( geometryType == rhs.geometryType ) - && ( geometry == rhs.geometry ) - && ( flags == rhs.flags ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image == rhs.image ) && ( memory == rhs.memory ) && + ( memoryOffset == rhs.memoryOffset ); } - bool operator!=( GeometryNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( BindImageMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::GeometryTypeNV geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeNV::eTriangles; - VULKAN_HPP_NAMESPACE::GeometryDataNV geometry = {}; - VULKAN_HPP_NAMESPACE::GeometryFlagsNV flags = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Image image = {}; + VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; + VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {}; }; - static_assert( sizeof( GeometryNV ) == sizeof( VkGeometryNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( BindImageMemoryInfo ) == sizeof( VkBindImageMemoryInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct AccelerationStructureInfoNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR AccelerationStructureInfoNV( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV::eTopLevel, - VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_ = {}, - uint32_t instanceCount_ = {}, - uint32_t geometryCount_ = {}, - const VULKAN_HPP_NAMESPACE::GeometryNV* pGeometries_ = {} ) VULKAN_HPP_NOEXCEPT - : type( type_ ) - , flags( flags_ ) - , instanceCount( instanceCount_ ) - , geometryCount( geometryCount_ ) - , pGeometries( pGeometries_ ) - {} - - VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV & operator=( VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV ) - offsetof( AccelerationStructureInfoNV, pNext ) ); - return *this; - } + using Type = BindImageMemoryInfo; + }; + using BindImageMemoryInfoKHR = BindImageMemoryInfo; - AccelerationStructureInfoNV( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + struct BindImageMemorySwapchainInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemorySwapchainInfoKHR; - AccelerationStructureInfoNV& operator=( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR BindImageMemorySwapchainInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}, + uint32_t imageIndex_ = {} ) VULKAN_HPP_NOEXCEPT + : swapchain( swapchain_ ) + , imageIndex( imageIndex_ ) + {} - AccelerationStructureInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + VULKAN_HPP_CONSTEXPR + BindImageMemorySwapchainInfoKHR( BindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - AccelerationStructureInfoNV & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } + BindImageMemorySwapchainInfoKHR( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : BindImageMemorySwapchainInfoKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - AccelerationStructureInfoNV & setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 BindImageMemorySwapchainInfoKHR & + operator=( BindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BindImageMemorySwapchainInfoKHR & operator=( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + *this = *reinterpret_cast( &rhs ); return *this; } - AccelerationStructureInfoNV & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT + BindImageMemorySwapchainInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - instanceCount = instanceCount_; + pNext = pNext_; return *this; } - AccelerationStructureInfoNV & setGeometryCount( uint32_t geometryCount_ ) VULKAN_HPP_NOEXCEPT + BindImageMemorySwapchainInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT { - geometryCount = geometryCount_; + swapchain = swapchain_; return *this; } - AccelerationStructureInfoNV & setPGeometries( const VULKAN_HPP_NAMESPACE::GeometryNV* pGeometries_ ) VULKAN_HPP_NOEXCEPT + BindImageMemorySwapchainInfoKHR & setImageIndex( uint32_t imageIndex_ ) VULKAN_HPP_NOEXCEPT { - pGeometries = pGeometries_; + imageIndex = imageIndex_; return *this; } - operator VkAccelerationStructureInfoNV const&() const VULKAN_HPP_NOEXCEPT + operator VkBindImageMemorySwapchainInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkAccelerationStructureInfoNV &() VULKAN_HPP_NOEXCEPT + operator VkBindImageMemorySwapchainInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( AccelerationStructureInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BindImageMemorySwapchainInfoKHR const & ) const = default; +#else + bool operator==( BindImageMemorySwapchainInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( type == rhs.type ) - && ( flags == rhs.flags ) - && ( instanceCount == rhs.instanceCount ) - && ( geometryCount == rhs.geometryCount ) - && ( pGeometries == rhs.pGeometries ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchain == rhs.swapchain ) && + ( imageIndex == rhs.imageIndex ); } - bool operator!=( AccelerationStructureInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( BindImageMemorySwapchainInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV::eTopLevel; - VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags = {}; - uint32_t instanceCount = {}; - uint32_t geometryCount = {}; - const VULKAN_HPP_NAMESPACE::GeometryNV* pGeometries = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemorySwapchainInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {}; + uint32_t imageIndex = {}; }; - static_assert( sizeof( AccelerationStructureInfoNV ) == sizeof( VkAccelerationStructureInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( BindImageMemorySwapchainInfoKHR ) == sizeof( VkBindImageMemorySwapchainInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct AccelerationStructureCreateInfoNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoNV( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ = {}, - VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info_ = {} ) VULKAN_HPP_NOEXCEPT - : compactedSize( compactedSize_ ) - , info( info_ ) + using Type = BindImageMemorySwapchainInfoKHR; + }; + + struct BindImagePlaneMemoryInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImagePlaneMemoryInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + BindImagePlaneMemoryInfo( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = + VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor ) VULKAN_HPP_NOEXCEPT + : planeAspect( planeAspect_ ) {} - VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV & operator=( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV ) - offsetof( AccelerationStructureCreateInfoNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR BindImagePlaneMemoryInfo( BindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - AccelerationStructureCreateInfoNV( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + BindImagePlaneMemoryInfo( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : BindImagePlaneMemoryInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - AccelerationStructureCreateInfoNV& operator=( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 BindImagePlaneMemoryInfo & + operator=( BindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - AccelerationStructureCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + BindImagePlaneMemoryInfo & operator=( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - AccelerationStructureCreateInfoNV & setCompactedSize( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ ) VULKAN_HPP_NOEXCEPT + BindImagePlaneMemoryInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - compactedSize = compactedSize_; + pNext = pNext_; return *this; } - AccelerationStructureCreateInfoNV & setInfo( VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info_ ) VULKAN_HPP_NOEXCEPT + BindImagePlaneMemoryInfo & + setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT { - info = info_; + planeAspect = planeAspect_; return *this; } - operator VkAccelerationStructureCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT + operator VkBindImagePlaneMemoryInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkAccelerationStructureCreateInfoNV &() VULKAN_HPP_NOEXCEPT + operator VkBindImagePlaneMemoryInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( AccelerationStructureCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BindImagePlaneMemoryInfo const & ) const = default; +#else + bool operator==( BindImagePlaneMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( compactedSize == rhs.compactedSize ) - && ( info == rhs.info ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( planeAspect == rhs.planeAspect ); } - bool operator!=( AccelerationStructureCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( BindImagePlaneMemoryInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize compactedSize = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImagePlaneMemoryInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor; }; - static_assert( sizeof( AccelerationStructureCreateInfoNV ) == sizeof( VkAccelerationStructureCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( BindImagePlaneMemoryInfo ) == sizeof( VkBindImagePlaneMemoryInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct AccelerationStructureMemoryRequirementsInfoNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoNV( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV::eObject, - VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ = {} ) VULKAN_HPP_NOEXCEPT - : type( type_ ) - , accelerationStructure( accelerationStructure_ ) + using Type = BindImagePlaneMemoryInfo; + }; + using BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo; + + struct BindIndexBufferIndirectCommandNV + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR BindIndexBufferIndirectCommandNV( + VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {}, + uint32_t size_ = {}, + VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16 ) VULKAN_HPP_NOEXCEPT + : bufferAddress( bufferAddress_ ) + , size( size_ ) + , indexType( indexType_ ) {} - VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & operator=( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV ) - offsetof( AccelerationStructureMemoryRequirementsInfoNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + BindIndexBufferIndirectCommandNV( BindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - AccelerationStructureMemoryRequirementsInfoNV( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + BindIndexBufferIndirectCommandNV( VkBindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT + : BindIndexBufferIndirectCommandNV( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 BindIndexBufferIndirectCommandNV & + operator=( BindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - AccelerationStructureMemoryRequirementsInfoNV& operator=( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + BindIndexBufferIndirectCommandNV & operator=( VkBindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - AccelerationStructureMemoryRequirementsInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + BindIndexBufferIndirectCommandNV & + setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + bufferAddress = bufferAddress_; return *this; } - AccelerationStructureMemoryRequirementsInfoNV & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ ) VULKAN_HPP_NOEXCEPT + BindIndexBufferIndirectCommandNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT { - type = type_; + size = size_; return *this; } - AccelerationStructureMemoryRequirementsInfoNV & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT + BindIndexBufferIndirectCommandNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT { - accelerationStructure = accelerationStructure_; + indexType = indexType_; return *this; } - operator VkAccelerationStructureMemoryRequirementsInfoNV const&() const VULKAN_HPP_NOEXCEPT + operator VkBindIndexBufferIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkAccelerationStructureMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT + operator VkBindIndexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( AccelerationStructureMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BindIndexBufferIndirectCommandNV const & ) const = default; +#else + bool operator==( BindIndexBufferIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( type == rhs.type ) - && ( accelerationStructure == rhs.accelerationStructure ); + return ( bufferAddress == rhs.bufferAddress ) && ( size == rhs.size ) && ( indexType == rhs.indexType ); } - bool operator!=( AccelerationStructureMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( BindIndexBufferIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type = VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV::eObject; - VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure = {}; + VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {}; + uint32_t size = {}; + VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16; }; - static_assert( sizeof( AccelerationStructureMemoryRequirementsInfoNV ) == sizeof( VkAccelerationStructureMemoryRequirementsInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( BindIndexBufferIndirectCommandNV ) == sizeof( VkBindIndexBufferIndirectCommandNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct AcquireNextImageInfoKHR + struct BindShaderGroupIndirectCommandNV { - VULKAN_HPP_CONSTEXPR AcquireNextImageInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}, - uint64_t timeout_ = {}, - VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, - VULKAN_HPP_NAMESPACE::Fence fence_ = {}, - uint32_t deviceMask_ = {} ) VULKAN_HPP_NOEXCEPT - : swapchain( swapchain_ ) - , timeout( timeout_ ) - , semaphore( semaphore_ ) - , fence( fence_ ) - , deviceMask( deviceMask_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR BindShaderGroupIndirectCommandNV( uint32_t groupIndex_ = {} ) VULKAN_HPP_NOEXCEPT + : groupIndex( groupIndex_ ) {} - VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR & operator=( VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR ) - offsetof( AcquireNextImageInfoKHR, pNext ) ); - return *this; - } - - AcquireNextImageInfoKHR( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - - AcquireNextImageInfoKHR& operator=( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } - - AcquireNextImageInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AcquireNextImageInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT - { - swapchain = swapchain_; - return *this; - } + VULKAN_HPP_CONSTEXPR + BindShaderGroupIndirectCommandNV( BindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - AcquireNextImageInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT - { - timeout = timeout_; - return *this; - } + BindShaderGroupIndirectCommandNV( VkBindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT + : BindShaderGroupIndirectCommandNV( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - AcquireNextImageInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT - { - semaphore = semaphore_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 BindShaderGroupIndirectCommandNV & + operator=( BindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - AcquireNextImageInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT + BindShaderGroupIndirectCommandNV & operator=( VkBindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT { - fence = fence_; + *this = *reinterpret_cast( &rhs ); return *this; } - AcquireNextImageInfoKHR & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT + BindShaderGroupIndirectCommandNV & setGroupIndex( uint32_t groupIndex_ ) VULKAN_HPP_NOEXCEPT { - deviceMask = deviceMask_; + groupIndex = groupIndex_; return *this; } - operator VkAcquireNextImageInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkBindShaderGroupIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkAcquireNextImageInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkBindShaderGroupIndirectCommandNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( AcquireNextImageInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BindShaderGroupIndirectCommandNV const & ) const = default; +#else + bool operator==( BindShaderGroupIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( swapchain == rhs.swapchain ) - && ( timeout == rhs.timeout ) - && ( semaphore == rhs.semaphore ) - && ( fence == rhs.fence ) - && ( deviceMask == rhs.deviceMask ); + return ( groupIndex == rhs.groupIndex ); } - bool operator!=( AcquireNextImageInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( BindShaderGroupIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireNextImageInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {}; - uint64_t timeout = {}; - VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; - VULKAN_HPP_NAMESPACE::Fence fence = {}; - uint32_t deviceMask = {}; + uint32_t groupIndex = {}; }; - static_assert( sizeof( AcquireNextImageInfoKHR ) == sizeof( VkAcquireNextImageInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( BindShaderGroupIndirectCommandNV ) == sizeof( VkBindShaderGroupIndirectCommandNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct AcquireProfilingLockInfoKHR + struct SparseMemoryBind { - VULKAN_HPP_CONSTEXPR AcquireProfilingLockInfoKHR( VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ = {}, - uint64_t timeout_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , timeout( timeout_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SparseMemoryBind( VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, + VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, + VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT + : resourceOffset( resourceOffset_ ) + , size( size_ ) + , memory( memory_ ) + , memoryOffset( memoryOffset_ ) + , flags( flags_ ) {} - VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR & operator=( VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR SparseMemoryBind( SparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SparseMemoryBind( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT + : SparseMemoryBind( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SparseMemoryBind & operator=( SparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SparseMemoryBind & operator=( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR ) - offsetof( AcquireProfilingLockInfoKHR, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - AcquireProfilingLockInfoKHR( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + SparseMemoryBind & setResourceOffset( VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + resourceOffset = resourceOffset_; + return *this; } - AcquireProfilingLockInfoKHR& operator=( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + SparseMemoryBind & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + size = size_; return *this; } - AcquireProfilingLockInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + SparseMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + memory = memory_; return *this; } - AcquireProfilingLockInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT + SparseMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + memoryOffset = memoryOffset_; return *this; } - AcquireProfilingLockInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT + SparseMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT { - timeout = timeout_; + flags = flags_; return *this; } - operator VkAcquireProfilingLockInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkSparseMemoryBind const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkAcquireProfilingLockInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkSparseMemoryBind &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( AcquireProfilingLockInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SparseMemoryBind const & ) const = default; +#else + bool operator==( SparseMemoryBind const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( timeout == rhs.timeout ); + return ( resourceOffset == rhs.resourceOffset ) && ( size == rhs.size ) && ( memory == rhs.memory ) && + ( memoryOffset == rhs.memoryOffset ) && ( flags == rhs.flags ); } - bool operator!=( AcquireProfilingLockInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SparseMemoryBind const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireProfilingLockInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags = {}; - uint64_t timeout = {}; + VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset = {}; + VULKAN_HPP_NAMESPACE::DeviceSize size = {}; + VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; + VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {}; + VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {}; }; - static_assert( sizeof( AcquireProfilingLockInfoKHR ) == sizeof( VkAcquireProfilingLockInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SparseMemoryBind ) == sizeof( VkSparseMemoryBind ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct AllocationCallbacks + struct SparseBufferMemoryBindInfo { - VULKAN_HPP_CONSTEXPR AllocationCallbacks( void* pUserData_ = {}, - PFN_vkAllocationFunction pfnAllocation_ = {}, - PFN_vkReallocationFunction pfnReallocation_ = {}, - PFN_vkFreeFunction pfnFree_ = {}, - PFN_vkInternalAllocationNotification pfnInternalAllocation_ = {}, - PFN_vkInternalFreeNotification pfnInternalFree_ = {} ) VULKAN_HPP_NOEXCEPT - : pUserData( pUserData_ ) - , pfnAllocation( pfnAllocation_ ) - , pfnReallocation( pfnReallocation_ ) - , pfnFree( pfnFree_ ) - , pfnInternalAllocation( pfnInternalAllocation_ ) - , pfnInternalFree( pfnInternalFree_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + SparseBufferMemoryBindInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, + uint32_t bindCount_ = {}, + const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds_ = {} ) VULKAN_HPP_NOEXCEPT + : buffer( buffer_ ) + , bindCount( bindCount_ ) + , pBinds( pBinds_ ) {} - AllocationCallbacks( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR + SparseBufferMemoryBindInfo( SparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - AllocationCallbacks& operator=( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + SparseBufferMemoryBindInfo( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : SparseBufferMemoryBindInfo( *reinterpret_cast( &rhs ) ) + {} - AllocationCallbacks & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT - { - pUserData = pUserData_; - return *this; - } +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SparseBufferMemoryBindInfo( + VULKAN_HPP_NAMESPACE::Buffer buffer_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & binds_ ) + : buffer( buffer_ ), bindCount( static_cast( binds_.size() ) ), pBinds( binds_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - AllocationCallbacks & setPfnAllocation( PFN_vkAllocationFunction pfnAllocation_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 SparseBufferMemoryBindInfo & + operator=( SparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SparseBufferMemoryBindInfo & operator=( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - pfnAllocation = pfnAllocation_; + *this = *reinterpret_cast( &rhs ); return *this; } - AllocationCallbacks & setPfnReallocation( PFN_vkReallocationFunction pfnReallocation_ ) VULKAN_HPP_NOEXCEPT + SparseBufferMemoryBindInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT { - pfnReallocation = pfnReallocation_; + buffer = buffer_; return *this; } - AllocationCallbacks & setPfnFree( PFN_vkFreeFunction pfnFree_ ) VULKAN_HPP_NOEXCEPT + SparseBufferMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT { - pfnFree = pfnFree_; + bindCount = bindCount_; return *this; } - AllocationCallbacks & setPfnInternalAllocation( PFN_vkInternalAllocationNotification pfnInternalAllocation_ ) VULKAN_HPP_NOEXCEPT + SparseBufferMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds_ ) VULKAN_HPP_NOEXCEPT { - pfnInternalAllocation = pfnInternalAllocation_; + pBinds = pBinds_; return *this; } - AllocationCallbacks & setPfnInternalFree( PFN_vkInternalFreeNotification pfnInternalFree_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SparseBufferMemoryBindInfo & setBinds( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & binds_ ) + VULKAN_HPP_NOEXCEPT { - pfnInternalFree = pfnInternalFree_; + bindCount = static_cast( binds_.size() ); + pBinds = binds_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkAllocationCallbacks const&() const VULKAN_HPP_NOEXCEPT + operator VkSparseBufferMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkAllocationCallbacks &() VULKAN_HPP_NOEXCEPT + operator VkSparseBufferMemoryBindInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( AllocationCallbacks const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SparseBufferMemoryBindInfo const & ) const = default; +#else + bool operator==( SparseBufferMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( pUserData == rhs.pUserData ) - && ( pfnAllocation == rhs.pfnAllocation ) - && ( pfnReallocation == rhs.pfnReallocation ) - && ( pfnFree == rhs.pfnFree ) - && ( pfnInternalAllocation == rhs.pfnInternalAllocation ) - && ( pfnInternalFree == rhs.pfnInternalFree ); + return ( buffer == rhs.buffer ) && ( bindCount == rhs.bindCount ) && ( pBinds == rhs.pBinds ); } - bool operator!=( AllocationCallbacks const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SparseBufferMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - void* pUserData = {}; - PFN_vkAllocationFunction pfnAllocation = {}; - PFN_vkReallocationFunction pfnReallocation = {}; - PFN_vkFreeFunction pfnFree = {}; - PFN_vkInternalAllocationNotification pfnInternalAllocation = {}; - PFN_vkInternalFreeNotification pfnInternalFree = {}; + VULKAN_HPP_NAMESPACE::Buffer buffer = {}; + uint32_t bindCount = {}; + const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds = {}; }; - static_assert( sizeof( AllocationCallbacks ) == sizeof( VkAllocationCallbacks ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SparseBufferMemoryBindInfo ) == sizeof( VkSparseBufferMemoryBindInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct ComponentMapping + struct SparseImageOpaqueMemoryBindInfo { - VULKAN_HPP_CONSTEXPR ComponentMapping( VULKAN_HPP_NAMESPACE::ComponentSwizzle r_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity, - VULKAN_HPP_NAMESPACE::ComponentSwizzle g_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity, - VULKAN_HPP_NAMESPACE::ComponentSwizzle b_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity, - VULKAN_HPP_NAMESPACE::ComponentSwizzle a_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity ) VULKAN_HPP_NOEXCEPT - : r( r_ ) - , g( g_ ) - , b( b_ ) - , a( a_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + SparseImageOpaqueMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_ = {}, + uint32_t bindCount_ = {}, + const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds_ = {} ) VULKAN_HPP_NOEXCEPT + : image( image_ ) + , bindCount( bindCount_ ) + , pBinds( pBinds_ ) {} - ComponentMapping( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR + SparseImageOpaqueMemoryBindInfo( SparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SparseImageOpaqueMemoryBindInfo( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : SparseImageOpaqueMemoryBindInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SparseImageOpaqueMemoryBindInfo( + VULKAN_HPP_NAMESPACE::Image image_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & binds_ ) + : image( image_ ), bindCount( static_cast( binds_.size() ) ), pBinds( binds_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SparseImageOpaqueMemoryBindInfo & + operator=( SparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ComponentMapping& operator=( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT + SparseImageOpaqueMemoryBindInfo & operator=( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - ComponentMapping & setR( VULKAN_HPP_NAMESPACE::ComponentSwizzle r_ ) VULKAN_HPP_NOEXCEPT + SparseImageOpaqueMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT { - r = r_; + image = image_; return *this; } - ComponentMapping & setG( VULKAN_HPP_NAMESPACE::ComponentSwizzle g_ ) VULKAN_HPP_NOEXCEPT + SparseImageOpaqueMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT { - g = g_; + bindCount = bindCount_; return *this; } - ComponentMapping & setB( VULKAN_HPP_NAMESPACE::ComponentSwizzle b_ ) VULKAN_HPP_NOEXCEPT + SparseImageOpaqueMemoryBindInfo & + setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds_ ) VULKAN_HPP_NOEXCEPT { - b = b_; + pBinds = pBinds_; return *this; } - ComponentMapping & setA( VULKAN_HPP_NAMESPACE::ComponentSwizzle a_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SparseImageOpaqueMemoryBindInfo & setBinds( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & binds_ ) + VULKAN_HPP_NOEXCEPT { - a = a_; + bindCount = static_cast( binds_.size() ); + pBinds = binds_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkComponentMapping const&() const VULKAN_HPP_NOEXCEPT + operator VkSparseImageOpaqueMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkComponentMapping &() VULKAN_HPP_NOEXCEPT + operator VkSparseImageOpaqueMemoryBindInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ComponentMapping const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SparseImageOpaqueMemoryBindInfo const & ) const = default; +#else + bool operator==( SparseImageOpaqueMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( r == rhs.r ) - && ( g == rhs.g ) - && ( b == rhs.b ) - && ( a == rhs.a ); + return ( image == rhs.image ) && ( bindCount == rhs.bindCount ) && ( pBinds == rhs.pBinds ); } - bool operator!=( ComponentMapping const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SparseImageOpaqueMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::ComponentSwizzle r = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity; - VULKAN_HPP_NAMESPACE::ComponentSwizzle g = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity; - VULKAN_HPP_NAMESPACE::ComponentSwizzle b = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity; - VULKAN_HPP_NAMESPACE::ComponentSwizzle a = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity; + VULKAN_HPP_NAMESPACE::Image image = {}; + uint32_t bindCount = {}; + const VULKAN_HPP_NAMESPACE::SparseMemoryBind * pBinds = {}; }; - static_assert( sizeof( ComponentMapping ) == sizeof( VkComponentMapping ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - -#ifdef VK_USE_PLATFORM_ANDROID_KHR + static_assert( sizeof( SparseImageOpaqueMemoryBindInfo ) == sizeof( VkSparseImageOpaqueMemoryBindInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct AndroidHardwareBufferFormatPropertiesANDROID + struct ImageSubresource { - AndroidHardwareBufferFormatPropertiesANDROID( VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, - uint64_t externalFormat_ = {}, - VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures_ = {}, - VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents_ = {}, - VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity, - VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull, - VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, - VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven ) VULKAN_HPP_NOEXCEPT - : format( format_ ) - , externalFormat( externalFormat_ ) - , formatFeatures( formatFeatures_ ) - , samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ ) - , suggestedYcbcrModel( suggestedYcbcrModel_ ) - , suggestedYcbcrRange( suggestedYcbcrRange_ ) - , suggestedXChromaOffset( suggestedXChromaOffset_ ) - , suggestedYChromaOffset( suggestedYChromaOffset_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ImageSubresource( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, + uint32_t mipLevel_ = {}, + uint32_t arrayLayer_ = {} ) VULKAN_HPP_NOEXCEPT + : aspectMask( aspectMask_ ) + , mipLevel( mipLevel_ ) + , arrayLayer( arrayLayer_ ) + {} + + VULKAN_HPP_CONSTEXPR ImageSubresource( ImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImageSubresource( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageSubresource( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID & operator=( VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 ImageSubresource & operator=( ImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImageSubresource & operator=( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID ) - offsetof( AndroidHardwareBufferFormatPropertiesANDROID, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - AndroidHardwareBufferFormatPropertiesANDROID( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + ImageSubresource & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + aspectMask = aspectMask_; + return *this; } - AndroidHardwareBufferFormatPropertiesANDROID& operator=( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + ImageSubresource & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + mipLevel = mipLevel_; return *this; } - operator VkAndroidHardwareBufferFormatPropertiesANDROID const&() const VULKAN_HPP_NOEXCEPT + ImageSubresource & setArrayLayer( uint32_t arrayLayer_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + arrayLayer = arrayLayer_; + return *this; } - operator VkAndroidHardwareBufferFormatPropertiesANDROID &() VULKAN_HPP_NOEXCEPT + operator VkImageSubresource const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( AndroidHardwareBufferFormatPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkImageSubresource &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageSubresource const & ) const = default; +#else + bool operator==( ImageSubresource const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( format == rhs.format ) - && ( externalFormat == rhs.externalFormat ) - && ( formatFeatures == rhs.formatFeatures ) - && ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents ) - && ( suggestedYcbcrModel == rhs.suggestedYcbcrModel ) - && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange ) - && ( suggestedXChromaOffset == rhs.suggestedXChromaOffset ) - && ( suggestedYChromaOffset == rhs.suggestedYChromaOffset ); + return ( aspectMask == rhs.aspectMask ) && ( mipLevel == rhs.mipLevel ) && ( arrayLayer == rhs.arrayLayer ); } - bool operator!=( AndroidHardwareBufferFormatPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageSubresource const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - uint64_t externalFormat = {}; - VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures = {}; - VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents = {}; - VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity; - VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull; - VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven; - VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven; + VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; + uint32_t mipLevel = {}; + uint32_t arrayLayer = {}; }; - static_assert( sizeof( AndroidHardwareBufferFormatPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferFormatPropertiesANDROID ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - -#ifdef VK_USE_PLATFORM_ANDROID_KHR + static_assert( sizeof( ImageSubresource ) == sizeof( VkImageSubresource ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct AndroidHardwareBufferPropertiesANDROID + struct Offset3D { - AndroidHardwareBufferPropertiesANDROID( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {}, - uint32_t memoryTypeBits_ = {} ) VULKAN_HPP_NOEXCEPT - : allocationSize( allocationSize_ ) - , memoryTypeBits( memoryTypeBits_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR Offset3D( int32_t x_ = {}, int32_t y_ = {}, int32_t z_ = {} ) VULKAN_HPP_NOEXCEPT + : x( x_ ) + , y( y_ ) + , z( z_ ) {} - VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID & operator=( VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR Offset3D( Offset3D const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + Offset3D( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT : Offset3D( *reinterpret_cast( &rhs ) ) {} + + explicit Offset3D( Offset2D const & offset2D, int32_t z_ = {} ) : x( offset2D.x ), y( offset2D.y ), z( z_ ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 Offset3D & operator=( Offset3D const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + Offset3D & operator=( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID ) - offsetof( AndroidHardwareBufferPropertiesANDROID, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - AndroidHardwareBufferPropertiesANDROID( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + Offset3D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + x = x_; + return *this; } - AndroidHardwareBufferPropertiesANDROID& operator=( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + Offset3D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + y = y_; return *this; } - operator VkAndroidHardwareBufferPropertiesANDROID const&() const VULKAN_HPP_NOEXCEPT + Offset3D & setZ( int32_t z_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + z = z_; + return *this; } - operator VkAndroidHardwareBufferPropertiesANDROID &() VULKAN_HPP_NOEXCEPT + operator VkOffset3D const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkOffset3D &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( AndroidHardwareBufferPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( Offset3D const & ) const = default; +#else + bool operator==( Offset3D const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( allocationSize == rhs.allocationSize ) - && ( memoryTypeBits == rhs.memoryTypeBits ); + return ( x == rhs.x ) && ( y == rhs.y ) && ( z == rhs.z ); } - bool operator!=( AndroidHardwareBufferPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( Offset3D const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferPropertiesANDROID; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {}; - uint32_t memoryTypeBits = {}; + int32_t x = {}; + int32_t y = {}; + int32_t z = {}; }; - static_assert( sizeof( AndroidHardwareBufferPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferPropertiesANDROID ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - -#ifdef VK_USE_PLATFORM_ANDROID_KHR + static_assert( sizeof( Offset3D ) == sizeof( VkOffset3D ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct AndroidHardwareBufferUsageANDROID + struct Extent3D { - AndroidHardwareBufferUsageANDROID( uint64_t androidHardwareBufferUsage_ = {} ) VULKAN_HPP_NOEXCEPT - : androidHardwareBufferUsage( androidHardwareBufferUsage_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + Extent3D( uint32_t width_ = {}, uint32_t height_ = {}, uint32_t depth_ = {} ) VULKAN_HPP_NOEXCEPT + : width( width_ ) + , height( height_ ) + , depth( depth_ ) + {} + + VULKAN_HPP_CONSTEXPR Extent3D( Extent3D const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + Extent3D( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT : Extent3D( *reinterpret_cast( &rhs ) ) {} + + explicit Extent3D( Extent2D const & extent2D, uint32_t depth_ = {} ) + : width( extent2D.width ), height( extent2D.height ), depth( depth_ ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID & operator=( VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 Extent3D & operator=( Extent3D const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + Extent3D & operator=( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID ) - offsetof( AndroidHardwareBufferUsageANDROID, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - AndroidHardwareBufferUsageANDROID( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + Extent3D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT + { + width = width_; + return *this; + } + + Extent3D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + height = height_; + return *this; } - AndroidHardwareBufferUsageANDROID& operator=( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + Extent3D & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + depth = depth_; return *this; } - operator VkAndroidHardwareBufferUsageANDROID const&() const VULKAN_HPP_NOEXCEPT + operator VkExtent3D const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkAndroidHardwareBufferUsageANDROID &() VULKAN_HPP_NOEXCEPT + operator VkExtent3D &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( AndroidHardwareBufferUsageANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( Extent3D const & ) const = default; +#else + bool operator==( Extent3D const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( androidHardwareBufferUsage == rhs.androidHardwareBufferUsage ); + return ( width == rhs.width ) && ( height == rhs.height ) && ( depth == rhs.depth ); } - bool operator!=( AndroidHardwareBufferUsageANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( Extent3D const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferUsageANDROID; - void* pNext = {}; - uint64_t androidHardwareBufferUsage = {}; + uint32_t width = {}; + uint32_t height = {}; + uint32_t depth = {}; }; - static_assert( sizeof( AndroidHardwareBufferUsageANDROID ) == sizeof( VkAndroidHardwareBufferUsageANDROID ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - -#ifdef VK_USE_PLATFORM_ANDROID_KHR + static_assert( sizeof( Extent3D ) == sizeof( VkExtent3D ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct AndroidSurfaceCreateInfoKHR + struct SparseImageMemoryBind { - VULKAN_HPP_CONSTEXPR AndroidSurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ = {}, - struct ANativeWindow* window_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , window( window_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + SparseImageMemoryBind( VULKAN_HPP_NAMESPACE::ImageSubresource subresource_ = {}, + VULKAN_HPP_NAMESPACE::Offset3D offset_ = {}, + VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}, + VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, + VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT + : subresource( subresource_ ) + , offset( offset_ ) + , extent( extent_ ) + , memory( memory_ ) + , memoryOffset( memoryOffset_ ) + , flags( flags_ ) + {} + + VULKAN_HPP_CONSTEXPR SparseImageMemoryBind( SparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SparseImageMemoryBind( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT + : SparseImageMemoryBind( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBind & + operator=( SparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR & operator=( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + SparseImageMemoryBind & operator=( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR ) - offsetof( AndroidSurfaceCreateInfoKHR, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - AndroidSurfaceCreateInfoKHR( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + SparseImageMemoryBind & + setSubresource( VULKAN_HPP_NAMESPACE::ImageSubresource const & subresource_ ) VULKAN_HPP_NOEXCEPT + { + subresource = subresource_; + return *this; + } + + SparseImageMemoryBind & setOffset( VULKAN_HPP_NAMESPACE::Offset3D const & offset_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + offset = offset_; + return *this; } - AndroidSurfaceCreateInfoKHR& operator=( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + SparseImageMemoryBind & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + extent = extent_; return *this; } - AndroidSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + SparseImageMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + memory = memory_; return *this; } - AndroidSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT + SparseImageMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + memoryOffset = memoryOffset_; return *this; } - AndroidSurfaceCreateInfoKHR & setWindow( struct ANativeWindow* window_ ) VULKAN_HPP_NOEXCEPT + SparseImageMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT { - window = window_; + flags = flags_; return *this; } - operator VkAndroidSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkSparseImageMemoryBind const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkAndroidSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkSparseImageMemoryBind &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( AndroidSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SparseImageMemoryBind const & ) const = default; +#else + bool operator==( SparseImageMemoryBind const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( window == rhs.window ); + return ( subresource == rhs.subresource ) && ( offset == rhs.offset ) && ( extent == rhs.extent ) && + ( memory == rhs.memory ) && ( memoryOffset == rhs.memoryOffset ) && ( flags == rhs.flags ); } - bool operator!=( AndroidSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SparseImageMemoryBind const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidSurfaceCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags = {}; - struct ANativeWindow* window = {}; + VULKAN_HPP_NAMESPACE::ImageSubresource subresource = {}; + VULKAN_HPP_NAMESPACE::Offset3D offset = {}; + VULKAN_HPP_NAMESPACE::Extent3D extent = {}; + VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; + VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {}; + VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {}; }; - static_assert( sizeof( AndroidSurfaceCreateInfoKHR ) == sizeof( VkAndroidSurfaceCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + static_assert( sizeof( SparseImageMemoryBind ) == sizeof( VkSparseImageMemoryBind ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ApplicationInfo + struct SparseImageMemoryBindInfo { - VULKAN_HPP_CONSTEXPR ApplicationInfo( const char* pApplicationName_ = {}, - uint32_t applicationVersion_ = {}, - const char* pEngineName_ = {}, - uint32_t engineVersion_ = {}, - uint32_t apiVersion_ = {} ) VULKAN_HPP_NOEXCEPT - : pApplicationName( pApplicationName_ ) - , applicationVersion( applicationVersion_ ) - , pEngineName( pEngineName_ ) - , engineVersion( engineVersion_ ) - , apiVersion( apiVersion_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + SparseImageMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_ = {}, + uint32_t bindCount_ = {}, + const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind * pBinds_ = {} ) VULKAN_HPP_NOEXCEPT + : image( image_ ) + , bindCount( bindCount_ ) + , pBinds( pBinds_ ) {} - VULKAN_HPP_NAMESPACE::ApplicationInfo & operator=( VULKAN_HPP_NAMESPACE::ApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ApplicationInfo ) - offsetof( ApplicationInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + SparseImageMemoryBindInfo( SparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ApplicationInfo( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + SparseImageMemoryBindInfo( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : SparseImageMemoryBindInfo( *reinterpret_cast( &rhs ) ) + {} - ApplicationInfo& operator=( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SparseImageMemoryBindInfo( + VULKAN_HPP_NAMESPACE::Image image_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & binds_ ) + : image( image_ ), bindCount( static_cast( binds_.size() ) ), pBinds( binds_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ApplicationInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryBindInfo & + operator=( SparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ApplicationInfo & setPApplicationName( const char* pApplicationName_ ) VULKAN_HPP_NOEXCEPT + SparseImageMemoryBindInfo & operator=( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - pApplicationName = pApplicationName_; + *this = *reinterpret_cast( &rhs ); return *this; } - ApplicationInfo & setApplicationVersion( uint32_t applicationVersion_ ) VULKAN_HPP_NOEXCEPT + SparseImageMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT { - applicationVersion = applicationVersion_; + image = image_; return *this; } - ApplicationInfo & setPEngineName( const char* pEngineName_ ) VULKAN_HPP_NOEXCEPT + SparseImageMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT { - pEngineName = pEngineName_; + bindCount = bindCount_; return *this; } - ApplicationInfo & setEngineVersion( uint32_t engineVersion_ ) VULKAN_HPP_NOEXCEPT + SparseImageMemoryBindInfo & + setPBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind * pBinds_ ) VULKAN_HPP_NOEXCEPT { - engineVersion = engineVersion_; + pBinds = pBinds_; return *this; } - ApplicationInfo & setApiVersion( uint32_t apiVersion_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SparseImageMemoryBindInfo & setBinds( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & binds_ ) + VULKAN_HPP_NOEXCEPT { - apiVersion = apiVersion_; + bindCount = static_cast( binds_.size() ); + pBinds = binds_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkApplicationInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkSparseImageMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkApplicationInfo &() VULKAN_HPP_NOEXCEPT + operator VkSparseImageMemoryBindInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ApplicationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SparseImageMemoryBindInfo const & ) const = default; +#else + bool operator==( SparseImageMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pApplicationName == rhs.pApplicationName ) - && ( applicationVersion == rhs.applicationVersion ) - && ( pEngineName == rhs.pEngineName ) - && ( engineVersion == rhs.engineVersion ) - && ( apiVersion == rhs.apiVersion ); + return ( image == rhs.image ) && ( bindCount == rhs.bindCount ) && ( pBinds == rhs.pBinds ); } - bool operator!=( ApplicationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SparseImageMemoryBindInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eApplicationInfo; - const void* pNext = {}; - const char* pApplicationName = {}; - uint32_t applicationVersion = {}; - const char* pEngineName = {}; - uint32_t engineVersion = {}; - uint32_t apiVersion = {}; + VULKAN_HPP_NAMESPACE::Image image = {}; + uint32_t bindCount = {}; + const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind * pBinds = {}; }; - static_assert( sizeof( ApplicationInfo ) == sizeof( VkApplicationInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SparseImageMemoryBindInfo ) == sizeof( VkSparseImageMemoryBindInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct AttachmentDescription + struct BindSparseInfo { - VULKAN_HPP_CONSTEXPR AttachmentDescription( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, - VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, - VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, - VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, - VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, - VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, - VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, - VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , format( format_ ) - , samples( samples_ ) - , loadOp( loadOp_ ) - , storeOp( storeOp_ ) - , stencilLoadOp( stencilLoadOp_ ) - , stencilStoreOp( stencilStoreOp_ ) - , initialLayout( initialLayout_ ) - , finalLayout( finalLayout_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindSparseInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + BindSparseInfo( uint32_t waitSemaphoreCount_ = {}, + const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ = {}, + uint32_t bufferBindCount_ = {}, + const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo * pBufferBinds_ = {}, + uint32_t imageOpaqueBindCount_ = {}, + const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo * pImageOpaqueBinds_ = {}, + uint32_t imageBindCount_ = {}, + const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo * pImageBinds_ = {}, + uint32_t signalSemaphoreCount_ = {}, + const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores_ = {} ) VULKAN_HPP_NOEXCEPT + : waitSemaphoreCount( waitSemaphoreCount_ ) + , pWaitSemaphores( pWaitSemaphores_ ) + , bufferBindCount( bufferBindCount_ ) + , pBufferBinds( pBufferBinds_ ) + , imageOpaqueBindCount( imageOpaqueBindCount_ ) + , pImageOpaqueBinds( pImageOpaqueBinds_ ) + , imageBindCount( imageBindCount_ ) + , pImageBinds( pImageBinds_ ) + , signalSemaphoreCount( signalSemaphoreCount_ ) + , pSignalSemaphores( pSignalSemaphores_ ) {} - AttachmentDescription( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR BindSparseInfo( BindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BindSparseInfo( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : BindSparseInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + BindSparseInfo( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphores_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + bufferBinds_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + imageOpaqueBinds_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + imageBinds_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + signalSemaphores_ = {} ) + : waitSemaphoreCount( static_cast( waitSemaphores_.size() ) ) + , pWaitSemaphores( waitSemaphores_.data() ) + , bufferBindCount( static_cast( bufferBinds_.size() ) ) + , pBufferBinds( bufferBinds_.data() ) + , imageOpaqueBindCount( static_cast( imageOpaqueBinds_.size() ) ) + , pImageOpaqueBinds( imageOpaqueBinds_.data() ) + , imageBindCount( static_cast( imageBinds_.size() ) ) + , pImageBinds( imageBinds_.data() ) + , signalSemaphoreCount( static_cast( signalSemaphores_.size() ) ) + , pSignalSemaphores( signalSemaphores_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 BindSparseInfo & operator=( BindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BindSparseInfo & operator=( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - AttachmentDescription& operator=( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT + BindSparseInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - AttachmentDescription & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT + BindSparseInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + waitSemaphoreCount = waitSemaphoreCount_; return *this; } - AttachmentDescription & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT + BindSparseInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT { - format = format_; + pWaitSemaphores = pWaitSemaphores_; return *this; } - AttachmentDescription & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + BindSparseInfo & setWaitSemaphores( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphores_ ) + VULKAN_HPP_NOEXCEPT { - samples = samples_; + waitSemaphoreCount = static_cast( waitSemaphores_.size() ); + pWaitSemaphores = waitSemaphores_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - AttachmentDescription & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT + BindSparseInfo & setBufferBindCount( uint32_t bufferBindCount_ ) VULKAN_HPP_NOEXCEPT { - loadOp = loadOp_; + bufferBindCount = bufferBindCount_; return *this; } - AttachmentDescription & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT + BindSparseInfo & + setPBufferBinds( const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo * pBufferBinds_ ) VULKAN_HPP_NOEXCEPT { - storeOp = storeOp_; + pBufferBinds = pBufferBinds_; return *this; } - AttachmentDescription & setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + BindSparseInfo & setBufferBinds( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + bufferBinds_ ) VULKAN_HPP_NOEXCEPT { - stencilLoadOp = stencilLoadOp_; + bufferBindCount = static_cast( bufferBinds_.size() ); + pBufferBinds = bufferBinds_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - AttachmentDescription & setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT + BindSparseInfo & setImageOpaqueBindCount( uint32_t imageOpaqueBindCount_ ) VULKAN_HPP_NOEXCEPT { - stencilStoreOp = stencilStoreOp_; + imageOpaqueBindCount = imageOpaqueBindCount_; return *this; } - AttachmentDescription & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT + BindSparseInfo & setPImageOpaqueBinds( + const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo * pImageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT { - initialLayout = initialLayout_; + pImageOpaqueBinds = pImageOpaqueBinds_; return *this; } - AttachmentDescription & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + BindSparseInfo & setImageOpaqueBinds( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + imageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT { - finalLayout = finalLayout_; + imageOpaqueBindCount = static_cast( imageOpaqueBinds_.size() ); + pImageOpaqueBinds = imageOpaqueBinds_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkAttachmentDescription const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAttachmentDescription &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( AttachmentDescription const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( flags == rhs.flags ) - && ( format == rhs.format ) - && ( samples == rhs.samples ) - && ( loadOp == rhs.loadOp ) - && ( storeOp == rhs.storeOp ) - && ( stencilLoadOp == rhs.stencilLoadOp ) - && ( stencilStoreOp == rhs.stencilStoreOp ) - && ( initialLayout == rhs.initialLayout ) - && ( finalLayout == rhs.finalLayout ); - } - - bool operator!=( AttachmentDescription const& rhs ) const VULKAN_HPP_NOEXCEPT + BindSparseInfo & setImageBindCount( uint32_t imageBindCount_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + imageBindCount = imageBindCount_; + return *this; } - public: - VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad; - VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore; - VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad; - VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore; - VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - }; - static_assert( sizeof( AttachmentDescription ) == sizeof( VkAttachmentDescription ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct AttachmentDescription2 - { - VULKAN_HPP_CONSTEXPR AttachmentDescription2( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, - VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, - VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, - VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, - VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, - VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, - VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, - VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , format( format_ ) - , samples( samples_ ) - , loadOp( loadOp_ ) - , storeOp( storeOp_ ) - , stencilLoadOp( stencilLoadOp_ ) - , stencilStoreOp( stencilStoreOp_ ) - , initialLayout( initialLayout_ ) - , finalLayout( finalLayout_ ) - {} - - VULKAN_HPP_NAMESPACE::AttachmentDescription2 & operator=( VULKAN_HPP_NAMESPACE::AttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT + BindSparseInfo & + setPImageBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo * pImageBinds_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::AttachmentDescription2 ) - offsetof( AttachmentDescription2, pNext ) ); + pImageBinds = pImageBinds_; return *this; } - AttachmentDescription2( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + BindSparseInfo & setImageBinds( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + imageBinds_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + imageBindCount = static_cast( imageBinds_.size() ); + pImageBinds = imageBinds_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - AttachmentDescription2& operator=( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT + BindSparseInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + signalSemaphoreCount = signalSemaphoreCount_; return *this; } - AttachmentDescription2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + BindSparseInfo & + setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + pSignalSemaphores = pSignalSemaphores_; return *this; } - AttachmentDescription2 & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + BindSparseInfo & setSignalSemaphores( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphores_ ) + VULKAN_HPP_NOEXCEPT { - flags = flags_; + signalSemaphoreCount = static_cast( signalSemaphores_.size() ); + pSignalSemaphores = signalSemaphores_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - AttachmentDescription2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT + operator VkBindSparseInfo const &() const VULKAN_HPP_NOEXCEPT { - format = format_; - return *this; + return *reinterpret_cast( this ); } - AttachmentDescription2 & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT + operator VkBindSparseInfo &() VULKAN_HPP_NOEXCEPT { - samples = samples_; - return *this; + return *reinterpret_cast( this ); } - AttachmentDescription2 & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BindSparseInfo const & ) const = default; +#else + bool operator==( BindSparseInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - loadOp = loadOp_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) && + ( pWaitSemaphores == rhs.pWaitSemaphores ) && ( bufferBindCount == rhs.bufferBindCount ) && + ( pBufferBinds == rhs.pBufferBinds ) && ( imageOpaqueBindCount == rhs.imageOpaqueBindCount ) && + ( pImageOpaqueBinds == rhs.pImageOpaqueBinds ) && ( imageBindCount == rhs.imageBindCount ) && + ( pImageBinds == rhs.pImageBinds ) && ( signalSemaphoreCount == rhs.signalSemaphoreCount ) && + ( pSignalSemaphores == rhs.pSignalSemaphores ); } - AttachmentDescription2 & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( BindSparseInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - storeOp = storeOp_; - return *this; + return !operator==( rhs ); } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindSparseInfo; + const void * pNext = {}; + uint32_t waitSemaphoreCount = {}; + const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores = {}; + uint32_t bufferBindCount = {}; + const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo * pBufferBinds = {}; + uint32_t imageOpaqueBindCount = {}; + const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo * pImageOpaqueBinds = {}; + uint32_t imageBindCount = {}; + const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo * pImageBinds = {}; + uint32_t signalSemaphoreCount = {}; + const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores = {}; + }; + static_assert( sizeof( BindSparseInfo ) == sizeof( VkBindSparseInfo ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = BindSparseInfo; + }; - AttachmentDescription2 & setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT + struct BindVertexBufferIndirectCommandNV + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR BindVertexBufferIndirectCommandNV( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {}, + uint32_t size_ = {}, + uint32_t stride_ = {} ) VULKAN_HPP_NOEXCEPT + : bufferAddress( bufferAddress_ ) + , size( size_ ) + , stride( stride_ ) + {} + + VULKAN_HPP_CONSTEXPR + BindVertexBufferIndirectCommandNV( BindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BindVertexBufferIndirectCommandNV( VkBindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT + : BindVertexBufferIndirectCommandNV( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 BindVertexBufferIndirectCommandNV & + operator=( BindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BindVertexBufferIndirectCommandNV & operator=( VkBindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT { - stencilLoadOp = stencilLoadOp_; + *this = *reinterpret_cast( &rhs ); return *this; } - AttachmentDescription2 & setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT + BindVertexBufferIndirectCommandNV & + setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT { - stencilStoreOp = stencilStoreOp_; + bufferAddress = bufferAddress_; return *this; } - AttachmentDescription2 & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT + BindVertexBufferIndirectCommandNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT { - initialLayout = initialLayout_; + size = size_; return *this; } - AttachmentDescription2 & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT + BindVertexBufferIndirectCommandNV & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT { - finalLayout = finalLayout_; + stride = stride_; return *this; } - operator VkAttachmentDescription2 const&() const VULKAN_HPP_NOEXCEPT + operator VkBindVertexBufferIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkAttachmentDescription2 &() VULKAN_HPP_NOEXCEPT + operator VkBindVertexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( AttachmentDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BindVertexBufferIndirectCommandNV const & ) const = default; +#else + bool operator==( BindVertexBufferIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( format == rhs.format ) - && ( samples == rhs.samples ) - && ( loadOp == rhs.loadOp ) - && ( storeOp == rhs.storeOp ) - && ( stencilLoadOp == rhs.stencilLoadOp ) - && ( stencilStoreOp == rhs.stencilStoreOp ) - && ( initialLayout == rhs.initialLayout ) - && ( finalLayout == rhs.finalLayout ); + return ( bufferAddress == rhs.bufferAddress ) && ( size == rhs.size ) && ( stride == rhs.stride ); } - bool operator!=( AttachmentDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( BindVertexBufferIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescription2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad; - VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore; - VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad; - VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore; - VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - }; - static_assert( sizeof( AttachmentDescription2 ) == sizeof( VkAttachmentDescription2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {}; + uint32_t size = {}; + uint32_t stride = {}; + }; + static_assert( sizeof( BindVertexBufferIndirectCommandNV ) == sizeof( VkBindVertexBufferIndirectCommandNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct AttachmentDescriptionStencilLayout + struct ImageSubresourceLayers { - VULKAN_HPP_CONSTEXPR AttachmentDescriptionStencilLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, - VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT - : stencilInitialLayout( stencilInitialLayout_ ) - , stencilFinalLayout( stencilFinalLayout_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ImageSubresourceLayers( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, + uint32_t mipLevel_ = {}, + uint32_t baseArrayLayer_ = {}, + uint32_t layerCount_ = {} ) VULKAN_HPP_NOEXCEPT + : aspectMask( aspectMask_ ) + , mipLevel( mipLevel_ ) + , baseArrayLayer( baseArrayLayer_ ) + , layerCount( layerCount_ ) {} - VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout & operator=( VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout ) - offsetof( AttachmentDescriptionStencilLayout, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR ImageSubresourceLayers( ImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT = default; - AttachmentDescriptionStencilLayout( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT + ImageSubresourceLayers( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageSubresourceLayers( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ImageSubresourceLayers & + operator=( ImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImageSubresourceLayers & operator=( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - AttachmentDescriptionStencilLayout& operator=( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT + ImageSubresourceLayers & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + aspectMask = aspectMask_; return *this; } - AttachmentDescriptionStencilLayout & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + ImageSubresourceLayers & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + mipLevel = mipLevel_; return *this; } - AttachmentDescriptionStencilLayout & setStencilInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ ) VULKAN_HPP_NOEXCEPT + ImageSubresourceLayers & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT { - stencilInitialLayout = stencilInitialLayout_; + baseArrayLayer = baseArrayLayer_; return *this; } - AttachmentDescriptionStencilLayout & setStencilFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ ) VULKAN_HPP_NOEXCEPT + ImageSubresourceLayers & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT { - stencilFinalLayout = stencilFinalLayout_; + layerCount = layerCount_; return *this; } - operator VkAttachmentDescriptionStencilLayout const&() const VULKAN_HPP_NOEXCEPT + operator VkImageSubresourceLayers const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkAttachmentDescriptionStencilLayout &() VULKAN_HPP_NOEXCEPT + operator VkImageSubresourceLayers &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( AttachmentDescriptionStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageSubresourceLayers const & ) const = default; +#else + bool operator==( ImageSubresourceLayers const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( stencilInitialLayout == rhs.stencilInitialLayout ) - && ( stencilFinalLayout == rhs.stencilFinalLayout ); + return ( aspectMask == rhs.aspectMask ) && ( mipLevel == rhs.mipLevel ) && + ( baseArrayLayer == rhs.baseArrayLayer ) && ( layerCount == rhs.layerCount ); } - bool operator!=( AttachmentDescriptionStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageSubresourceLayers const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescriptionStencilLayout; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; + uint32_t mipLevel = {}; + uint32_t baseArrayLayer = {}; + uint32_t layerCount = {}; }; - static_assert( sizeof( AttachmentDescriptionStencilLayout ) == sizeof( VkAttachmentDescriptionStencilLayout ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageSubresourceLayers ) == sizeof( VkImageSubresourceLayers ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct AttachmentReference + struct ImageBlit2KHR { - VULKAN_HPP_CONSTEXPR AttachmentReference( uint32_t attachment_ = {}, - VULKAN_HPP_NAMESPACE::ImageLayout layout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT - : attachment( attachment_ ) - , layout( layout_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageBlit2KHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 + ImageBlit2KHR( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, + std::array const & srcOffsets_ = {}, + VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, + std::array const & dstOffsets_ = {} ) VULKAN_HPP_NOEXCEPT + : srcSubresource( srcSubresource_ ) + , srcOffsets( srcOffsets_ ) + , dstSubresource( dstSubresource_ ) + , dstOffsets( dstOffsets_ ) {} - AttachmentReference( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 ImageBlit2KHR( ImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImageBlit2KHR( VkImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageBlit2KHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ImageBlit2KHR & operator=( ImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImageBlit2KHR & operator=( VkImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - AttachmentReference& operator=( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT + ImageBlit2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - AttachmentReference & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT + ImageBlit2KHR & + setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT { - attachment = attachment_; + srcSubresource = srcSubresource_; return *this; } - AttachmentReference & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT + ImageBlit2KHR & + setSrcOffsets( std::array const & srcOffsets_ ) VULKAN_HPP_NOEXCEPT { - layout = layout_; + srcOffsets = srcOffsets_; return *this; } - operator VkAttachmentReference const&() const VULKAN_HPP_NOEXCEPT + ImageBlit2KHR & + setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + dstSubresource = dstSubresource_; + return *this; } - operator VkAttachmentReference &() VULKAN_HPP_NOEXCEPT + ImageBlit2KHR & + setDstOffsets( std::array const & dstOffsets_ ) VULKAN_HPP_NOEXCEPT + { + dstOffsets = dstOffsets_; + return *this; + } + + operator VkImageBlit2KHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkImageBlit2KHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( AttachmentReference const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageBlit2KHR const & ) const = default; +#else + bool operator==( ImageBlit2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( attachment == rhs.attachment ) - && ( layout == rhs.layout ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcSubresource == rhs.srcSubresource ) && + ( srcOffsets == rhs.srcOffsets ) && ( dstSubresource == rhs.dstSubresource ) && + ( dstOffsets == rhs.dstOffsets ); } - bool operator!=( AttachmentReference const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageBlit2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint32_t attachment = {}; - VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageBlit2KHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D srcOffsets = {}; + VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D dstOffsets = {}; }; - static_assert( sizeof( AttachmentReference ) == sizeof( VkAttachmentReference ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageBlit2KHR ) == sizeof( VkImageBlit2KHR ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct AttachmentReference2 - { - VULKAN_HPP_CONSTEXPR AttachmentReference2( uint32_t attachment_ = {}, - VULKAN_HPP_NAMESPACE::ImageLayout layout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, - VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {} ) VULKAN_HPP_NOEXCEPT - : attachment( attachment_ ) - , layout( layout_ ) - , aspectMask( aspectMask_ ) + template <> + struct CppType + { + using Type = ImageBlit2KHR; + }; + + struct BlitImageInfo2KHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBlitImageInfo2KHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2KHR( + VULKAN_HPP_NAMESPACE::Image srcImage_ = {}, + VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, + VULKAN_HPP_NAMESPACE::Image dstImage_ = {}, + VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, + uint32_t regionCount_ = {}, + const VULKAN_HPP_NAMESPACE::ImageBlit2KHR * pRegions_ = {}, + VULKAN_HPP_NAMESPACE::Filter filter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest ) VULKAN_HPP_NOEXCEPT + : srcImage( srcImage_ ) + , srcImageLayout( srcImageLayout_ ) + , dstImage( dstImage_ ) + , dstImageLayout( dstImageLayout_ ) + , regionCount( regionCount_ ) + , pRegions( pRegions_ ) + , filter( filter_ ) {} - VULKAN_HPP_NAMESPACE::AttachmentReference2 & operator=( VULKAN_HPP_NAMESPACE::AttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::AttachmentReference2 ) - offsetof( AttachmentReference2, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2KHR( BlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - AttachmentReference2( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + BlitImageInfo2KHR( VkBlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : BlitImageInfo2KHR( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + BlitImageInfo2KHR( + VULKAN_HPP_NAMESPACE::Image srcImage_, + VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_, + VULKAN_HPP_NAMESPACE::Image dstImage_, + VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_, + VULKAN_HPP_NAMESPACE::Filter filter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest ) + : srcImage( srcImage_ ) + , srcImageLayout( srcImageLayout_ ) + , dstImage( dstImage_ ) + , dstImageLayout( dstImageLayout_ ) + , regionCount( static_cast( regions_.size() ) ) + , pRegions( regions_.data() ) + , filter( filter_ ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - AttachmentReference2& operator=( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2KHR & + operator=( BlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BlitImageInfo2KHR & operator=( VkBlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - AttachmentReference2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + BlitImageInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - AttachmentReference2 & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT + BlitImageInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT { - attachment = attachment_; + srcImage = srcImage_; return *this; } - AttachmentReference2 & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT + BlitImageInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT { - layout = layout_; + srcImageLayout = srcImageLayout_; return *this; } - AttachmentReference2 & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT + BlitImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT { - aspectMask = aspectMask_; + dstImage = dstImage_; return *this; } - operator VkAttachmentReference2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAttachmentReference2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( AttachmentReference2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( attachment == rhs.attachment ) - && ( layout == rhs.layout ) - && ( aspectMask == rhs.aspectMask ); - } - - bool operator!=( AttachmentReference2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReference2; - const void* pNext = {}; - uint32_t attachment = {}; - VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; - }; - static_assert( sizeof( AttachmentReference2 ) == sizeof( VkAttachmentReference2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct AttachmentReferenceStencilLayout - { - VULKAN_HPP_CONSTEXPR AttachmentReferenceStencilLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT - : stencilLayout( stencilLayout_ ) - {} - - VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout & operator=( VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT + BlitImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout ) - offsetof( AttachmentReferenceStencilLayout, pNext ) ); + dstImageLayout = dstImageLayout_; return *this; } - AttachmentReferenceStencilLayout( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT + BlitImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + regionCount = regionCount_; + return *this; } - AttachmentReferenceStencilLayout& operator=( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT + BlitImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::ImageBlit2KHR * pRegions_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pRegions = pRegions_; return *this; } - AttachmentReferenceStencilLayout & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + BlitImageInfo2KHR & setRegions( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) + VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + regionCount = static_cast( regions_.size() ); + pRegions = regions_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - AttachmentReferenceStencilLayout & setStencilLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ ) VULKAN_HPP_NOEXCEPT + BlitImageInfo2KHR & setFilter( VULKAN_HPP_NAMESPACE::Filter filter_ ) VULKAN_HPP_NOEXCEPT { - stencilLayout = stencilLayout_; + filter = filter_; return *this; } - operator VkAttachmentReferenceStencilLayout const&() const VULKAN_HPP_NOEXCEPT + operator VkBlitImageInfo2KHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkAttachmentReferenceStencilLayout &() VULKAN_HPP_NOEXCEPT + operator VkBlitImageInfo2KHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( AttachmentReferenceStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BlitImageInfo2KHR const & ) const = default; +#else + bool operator==( BlitImageInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( stencilLayout == rhs.stencilLayout ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcImage == rhs.srcImage ) && + ( srcImageLayout == rhs.srcImageLayout ) && ( dstImage == rhs.dstImage ) && + ( dstImageLayout == rhs.dstImageLayout ) && ( regionCount == rhs.regionCount ) && + ( pRegions == rhs.pRegions ) && ( filter == rhs.filter ); } - bool operator!=( AttachmentReferenceStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( BlitImageInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReferenceStencilLayout; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBlitImageInfo2KHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Image srcImage = {}; + VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + VULKAN_HPP_NAMESPACE::Image dstImage = {}; + VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + uint32_t regionCount = {}; + const VULKAN_HPP_NAMESPACE::ImageBlit2KHR * pRegions = {}; + VULKAN_HPP_NAMESPACE::Filter filter = VULKAN_HPP_NAMESPACE::Filter::eNearest; }; - static_assert( sizeof( AttachmentReferenceStencilLayout ) == sizeof( VkAttachmentReferenceStencilLayout ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( BlitImageInfo2KHR ) == sizeof( VkBlitImageInfo2KHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct Extent2D + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR Extent2D( uint32_t width_ = {}, - uint32_t height_ = {} ) VULKAN_HPP_NOEXCEPT - : width( width_ ) - , height( height_ ) + using Type = BlitImageInfo2KHR; + }; + + struct BufferCopy + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR BufferCopy( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT + : srcOffset( srcOffset_ ) + , dstOffset( dstOffset_ ) + , size( size_ ) + {} + + VULKAN_HPP_CONSTEXPR BufferCopy( BufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BufferCopy( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT + : BufferCopy( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 BufferCopy & operator=( BufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default; - Extent2D( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT + BufferCopy & operator=( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - Extent2D& operator=( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT + BufferCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + srcOffset = srcOffset_; return *this; } - Extent2D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT + BufferCopy & setDstOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ ) VULKAN_HPP_NOEXCEPT { - width = width_; + dstOffset = dstOffset_; return *this; } - Extent2D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT + BufferCopy & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT { - height = height_; + size = size_; return *this; } - operator VkExtent2D const&() const VULKAN_HPP_NOEXCEPT + operator VkBufferCopy const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkExtent2D &() VULKAN_HPP_NOEXCEPT + operator VkBufferCopy &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( Extent2D const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BufferCopy const & ) const = default; +#else + bool operator==( BufferCopy const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( width == rhs.width ) - && ( height == rhs.height ); + return ( srcOffset == rhs.srcOffset ) && ( dstOffset == rhs.dstOffset ) && ( size == rhs.size ); } - bool operator!=( Extent2D const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( BufferCopy const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint32_t width = {}; - uint32_t height = {}; + VULKAN_HPP_NAMESPACE::DeviceSize srcOffset = {}; + VULKAN_HPP_NAMESPACE::DeviceSize dstOffset = {}; + VULKAN_HPP_NAMESPACE::DeviceSize size = {}; }; - static_assert( sizeof( Extent2D ) == sizeof( VkExtent2D ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( BufferCopy ) == sizeof( VkBufferCopy ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct SampleLocationEXT + struct BufferCopy2KHR { - VULKAN_HPP_CONSTEXPR SampleLocationEXT( float x_ = {}, - float y_ = {} ) VULKAN_HPP_NOEXCEPT - : x( x_ ) - , y( y_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCopy2KHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR BufferCopy2KHR( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT + : srcOffset( srcOffset_ ) + , dstOffset( dstOffset_ ) + , size( size_ ) {} - SampleLocationEXT( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR BufferCopy2KHR( BufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BufferCopy2KHR( VkBufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : BufferCopy2KHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 BufferCopy2KHR & operator=( BufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BufferCopy2KHR & operator=( VkBufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - SampleLocationEXT& operator=( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT + BufferCopy2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - SampleLocationEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT + BufferCopy2KHR & setSrcOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ ) VULKAN_HPP_NOEXCEPT { - x = x_; + srcOffset = srcOffset_; return *this; } - SampleLocationEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT + BufferCopy2KHR & setDstOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ ) VULKAN_HPP_NOEXCEPT { - y = y_; + dstOffset = dstOffset_; return *this; } - operator VkSampleLocationEXT const&() const VULKAN_HPP_NOEXCEPT + BufferCopy2KHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + size = size_; + return *this; } - operator VkSampleLocationEXT &() VULKAN_HPP_NOEXCEPT + operator VkBufferCopy2KHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkBufferCopy2KHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SampleLocationEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BufferCopy2KHR const & ) const = default; +#else + bool operator==( BufferCopy2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( x == rhs.x ) - && ( y == rhs.y ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcOffset == rhs.srcOffset ) && + ( dstOffset == rhs.dstOffset ) && ( size == rhs.size ); } - bool operator!=( SampleLocationEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( BufferCopy2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - float x = {}; - float y = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCopy2KHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceSize srcOffset = {}; + VULKAN_HPP_NAMESPACE::DeviceSize dstOffset = {}; + VULKAN_HPP_NAMESPACE::DeviceSize size = {}; }; - static_assert( sizeof( SampleLocationEXT ) == sizeof( VkSampleLocationEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( BufferCopy2KHR ) == sizeof( VkBufferCopy2KHR ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct SampleLocationsInfoEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SampleLocationsInfoEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, - VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize_ = {}, - uint32_t sampleLocationsCount_ = {}, - const VULKAN_HPP_NAMESPACE::SampleLocationEXT* pSampleLocations_ = {} ) VULKAN_HPP_NOEXCEPT - : sampleLocationsPerPixel( sampleLocationsPerPixel_ ) - , sampleLocationGridSize( sampleLocationGridSize_ ) - , sampleLocationsCount( sampleLocationsCount_ ) - , pSampleLocations( pSampleLocations_ ) + using Type = BufferCopy2KHR; + }; + + struct BufferCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + BufferCreateInfo( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, + VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ = {}, + VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, + uint32_t queueFamilyIndexCount_ = {}, + const uint32_t * pQueueFamilyIndices_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , size( size_ ) + , usage( usage_ ) + , sharingMode( sharingMode_ ) + , queueFamilyIndexCount( queueFamilyIndexCount_ ) + , pQueueFamilyIndices( pQueueFamilyIndices_ ) {} - VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT & operator=( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT ) - offsetof( SampleLocationsInfoEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR BufferCreateInfo( BufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SampleLocationsInfoEXT( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + BufferCreateInfo( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : BufferCreateInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + BufferCreateInfo( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_, + VULKAN_HPP_NAMESPACE::DeviceSize size_, + VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_, + VULKAN_HPP_NAMESPACE::SharingMode sharingMode_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_ ) + : flags( flags_ ) + , size( size_ ) + , usage( usage_ ) + , sharingMode( sharingMode_ ) + , queueFamilyIndexCount( static_cast( queueFamilyIndices_.size() ) ) + , pQueueFamilyIndices( queueFamilyIndices_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 BufferCreateInfo & operator=( BufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SampleLocationsInfoEXT& operator=( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + BufferCreateInfo & operator=( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - SampleLocationsInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + BufferCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - SampleLocationsInfoEXT & setSampleLocationsPerPixel( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_ ) VULKAN_HPP_NOEXCEPT + BufferCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - sampleLocationsPerPixel = sampleLocationsPerPixel_; + flags = flags_; return *this; } - SampleLocationsInfoEXT & setSampleLocationGridSize( VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize_ ) VULKAN_HPP_NOEXCEPT + BufferCreateInfo & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT { - sampleLocationGridSize = sampleLocationGridSize_; + size = size_; return *this; } - SampleLocationsInfoEXT & setSampleLocationsCount( uint32_t sampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT + BufferCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT { - sampleLocationsCount = sampleLocationsCount_; + usage = usage_; return *this; } - SampleLocationsInfoEXT & setPSampleLocations( const VULKAN_HPP_NAMESPACE::SampleLocationEXT* pSampleLocations_ ) VULKAN_HPP_NOEXCEPT + BufferCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT { - pSampleLocations = pSampleLocations_; + sharingMode = sharingMode_; return *this; } - operator VkSampleLocationsInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSampleLocationsInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( SampleLocationsInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( sampleLocationsPerPixel == rhs.sampleLocationsPerPixel ) - && ( sampleLocationGridSize == rhs.sampleLocationGridSize ) - && ( sampleLocationsCount == rhs.sampleLocationsCount ) - && ( pSampleLocations == rhs.pSampleLocations ); - } - - bool operator!=( SampleLocationsInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSampleLocationsInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize = {}; - uint32_t sampleLocationsCount = {}; - const VULKAN_HPP_NAMESPACE::SampleLocationEXT* pSampleLocations = {}; - }; - static_assert( sizeof( SampleLocationsInfoEXT ) == sizeof( VkSampleLocationsInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct AttachmentSampleLocationsEXT - { - VULKAN_HPP_CONSTEXPR AttachmentSampleLocationsEXT( uint32_t attachmentIndex_ = {}, - VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {} ) VULKAN_HPP_NOEXCEPT - : attachmentIndex( attachmentIndex_ ) - , sampleLocationsInfo( sampleLocationsInfo_ ) - {} - - AttachmentSampleLocationsEXT( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - - AttachmentSampleLocationsEXT& operator=( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT + BufferCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + queueFamilyIndexCount = queueFamilyIndexCount_; return *this; } - AttachmentSampleLocationsEXT & setAttachmentIndex( uint32_t attachmentIndex_ ) VULKAN_HPP_NOEXCEPT + BufferCreateInfo & setPQueueFamilyIndices( const uint32_t * pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT { - attachmentIndex = attachmentIndex_; + pQueueFamilyIndices = pQueueFamilyIndices_; return *this; } - AttachmentSampleLocationsEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + BufferCreateInfo & setQueueFamilyIndices( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT { - sampleLocationsInfo = sampleLocationsInfo_; + queueFamilyIndexCount = static_cast( queueFamilyIndices_.size() ); + pQueueFamilyIndices = queueFamilyIndices_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkAttachmentSampleLocationsEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkBufferCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkAttachmentSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT + operator VkBufferCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( AttachmentSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BufferCreateInfo const & ) const = default; +#else + bool operator==( BufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( attachmentIndex == rhs.attachmentIndex ) - && ( sampleLocationsInfo == rhs.sampleLocationsInfo ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( size == rhs.size ) && + ( usage == rhs.usage ) && ( sharingMode == rhs.sharingMode ) && + ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) && + ( pQueueFamilyIndices == rhs.pQueueFamilyIndices ); } - bool operator!=( AttachmentSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( BufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint32_t attachmentIndex = {}; - VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {}; + VULKAN_HPP_NAMESPACE::DeviceSize size = {}; + VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {}; + VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive; + uint32_t queueFamilyIndexCount = {}; + const uint32_t * pQueueFamilyIndices = {}; }; - static_assert( sizeof( AttachmentSampleLocationsEXT ) == sizeof( VkAttachmentSampleLocationsEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( BufferCreateInfo ) == sizeof( VkBufferCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct BaseInStructure + template <> + struct CppType + { + using Type = BufferCreateInfo; + }; + + struct BufferDeviceAddressCreateInfoEXT { - BaseInStructure() VULKAN_HPP_NOEXCEPT + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferDeviceAddressCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + BufferDeviceAddressCreateInfoEXT( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} ) VULKAN_HPP_NOEXCEPT + : deviceAddress( deviceAddress_ ) {} - BaseInStructure( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR + BufferDeviceAddressCreateInfoEXT( BufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BufferDeviceAddressCreateInfoEXT( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : BufferDeviceAddressCreateInfoEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 BufferDeviceAddressCreateInfoEXT & + operator=( BufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BufferDeviceAddressCreateInfoEXT & operator=( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - BaseInStructure& operator=( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT + BufferDeviceAddressCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - BaseInStructure & setPNext( const struct VULKAN_HPP_NAMESPACE::BaseInStructure* pNext_ ) VULKAN_HPP_NOEXCEPT + BufferDeviceAddressCreateInfoEXT & + setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + deviceAddress = deviceAddress_; return *this; } - operator VkBaseInStructure const&() const VULKAN_HPP_NOEXCEPT + operator VkBufferDeviceAddressCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkBaseInStructure &() VULKAN_HPP_NOEXCEPT + operator VkBufferDeviceAddressCreateInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( BaseInStructure const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BufferDeviceAddressCreateInfoEXT const & ) const = default; +#else + bool operator==( BufferDeviceAddressCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceAddress == rhs.deviceAddress ); } - bool operator!=( BaseInStructure const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( BufferDeviceAddressCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::StructureType sType = {}; - const struct VULKAN_HPP_NAMESPACE::BaseInStructure* pNext = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {}; }; - static_assert( sizeof( BaseInStructure ) == sizeof( VkBaseInStructure ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( BufferDeviceAddressCreateInfoEXT ) == sizeof( VkBufferDeviceAddressCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct BaseOutStructure + template <> + struct CppType { - BaseOutStructure() VULKAN_HPP_NOEXCEPT + using Type = BufferDeviceAddressCreateInfoEXT; + }; + + struct BufferDeviceAddressInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferDeviceAddressInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR BufferDeviceAddressInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {} ) VULKAN_HPP_NOEXCEPT + : buffer( buffer_ ) {} - BaseOutStructure( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR BufferDeviceAddressInfo( BufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BufferDeviceAddressInfo( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : BufferDeviceAddressInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 BufferDeviceAddressInfo & + operator=( BufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BufferDeviceAddressInfo & operator=( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - BaseOutStructure& operator=( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT + BufferDeviceAddressInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - BaseOutStructure & setPNext( struct VULKAN_HPP_NAMESPACE::BaseOutStructure* pNext_ ) VULKAN_HPP_NOEXCEPT + BufferDeviceAddressInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + buffer = buffer_; return *this; } - operator VkBaseOutStructure const&() const VULKAN_HPP_NOEXCEPT + operator VkBufferDeviceAddressInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkBaseOutStructure &() VULKAN_HPP_NOEXCEPT + operator VkBufferDeviceAddressInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( BaseOutStructure const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BufferDeviceAddressInfo const & ) const = default; +#else + bool operator==( BufferDeviceAddressInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( buffer == rhs.buffer ); } - bool operator!=( BaseOutStructure const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( BufferDeviceAddressInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::StructureType sType = {}; - struct VULKAN_HPP_NAMESPACE::BaseOutStructure* pNext = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Buffer buffer = {}; }; - static_assert( sizeof( BaseOutStructure ) == sizeof( VkBaseOutStructure ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( BufferDeviceAddressInfo ) == sizeof( VkBufferDeviceAddressInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct BindAccelerationStructureMemoryInfoNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR BindAccelerationStructureMemoryInfoNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ = {}, - VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, - uint32_t deviceIndexCount_ = {}, - const uint32_t* pDeviceIndices_ = {} ) VULKAN_HPP_NOEXCEPT - : accelerationStructure( accelerationStructure_ ) - , memory( memory_ ) - , memoryOffset( memoryOffset_ ) - , deviceIndexCount( deviceIndexCount_ ) - , pDeviceIndices( pDeviceIndices_ ) + using Type = BufferDeviceAddressInfo; + }; + using BufferDeviceAddressInfoEXT = BufferDeviceAddressInfo; + using BufferDeviceAddressInfoKHR = BufferDeviceAddressInfo; + + struct BufferImageCopy + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR BufferImageCopy( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ = {}, + uint32_t bufferRowLength_ = {}, + uint32_t bufferImageHeight_ = {}, + VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {}, + VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {}, + VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {} ) VULKAN_HPP_NOEXCEPT + : bufferOffset( bufferOffset_ ) + , bufferRowLength( bufferRowLength_ ) + , bufferImageHeight( bufferImageHeight_ ) + , imageSubresource( imageSubresource_ ) + , imageOffset( imageOffset_ ) + , imageExtent( imageExtent_ ) {} - VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV & operator=( VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV ) - offsetof( BindAccelerationStructureMemoryInfoNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR BufferImageCopy( BufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default; - BindAccelerationStructureMemoryInfoNV( VkBindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + BufferImageCopy( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT + : BufferImageCopy( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - BindAccelerationStructureMemoryInfoNV& operator=( VkBindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 BufferImageCopy & operator=( BufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BufferImageCopy & operator=( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - BindAccelerationStructureMemoryInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + BufferImageCopy & setBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + bufferOffset = bufferOffset_; return *this; } - BindAccelerationStructureMemoryInfoNV & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT + BufferImageCopy & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT { - accelerationStructure = accelerationStructure_; + bufferRowLength = bufferRowLength_; return *this; } - BindAccelerationStructureMemoryInfoNV & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT + BufferImageCopy & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT { - memory = memory_; + bufferImageHeight = bufferImageHeight_; return *this; } - BindAccelerationStructureMemoryInfoNV & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT + BufferImageCopy & + setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT { - memoryOffset = memoryOffset_; + imageSubresource = imageSubresource_; return *this; } - BindAccelerationStructureMemoryInfoNV & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT + BufferImageCopy & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT { - deviceIndexCount = deviceIndexCount_; + imageOffset = imageOffset_; return *this; } - BindAccelerationStructureMemoryInfoNV & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT + BufferImageCopy & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT { - pDeviceIndices = pDeviceIndices_; + imageExtent = imageExtent_; return *this; } - operator VkBindAccelerationStructureMemoryInfoNV const&() const VULKAN_HPP_NOEXCEPT + operator VkBufferImageCopy const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkBindAccelerationStructureMemoryInfoNV &() VULKAN_HPP_NOEXCEPT + operator VkBufferImageCopy &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( BindAccelerationStructureMemoryInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BufferImageCopy const & ) const = default; +#else + bool operator==( BufferImageCopy const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( accelerationStructure == rhs.accelerationStructure ) - && ( memory == rhs.memory ) - && ( memoryOffset == rhs.memoryOffset ) - && ( deviceIndexCount == rhs.deviceIndexCount ) - && ( pDeviceIndices == rhs.pDeviceIndices ); + return ( bufferOffset == rhs.bufferOffset ) && ( bufferRowLength == rhs.bufferRowLength ) && + ( bufferImageHeight == rhs.bufferImageHeight ) && ( imageSubresource == rhs.imageSubresource ) && + ( imageOffset == rhs.imageOffset ) && ( imageExtent == rhs.imageExtent ); } - bool operator!=( BindAccelerationStructureMemoryInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( BufferImageCopy const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindAccelerationStructureMemoryInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {}; - uint32_t deviceIndexCount = {}; - const uint32_t* pDeviceIndices = {}; + VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset = {}; + uint32_t bufferRowLength = {}; + uint32_t bufferImageHeight = {}; + VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {}; + VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {}; + VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {}; }; - static_assert( sizeof( BindAccelerationStructureMemoryInfoNV ) == sizeof( VkBindAccelerationStructureMemoryInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( BufferImageCopy ) == sizeof( VkBufferImageCopy ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct BindBufferMemoryDeviceGroupInfo + struct BufferImageCopy2KHR { - VULKAN_HPP_CONSTEXPR BindBufferMemoryDeviceGroupInfo( uint32_t deviceIndexCount_ = {}, - const uint32_t* pDeviceIndices_ = {} ) VULKAN_HPP_NOEXCEPT - : deviceIndexCount( deviceIndexCount_ ) - , pDeviceIndices( pDeviceIndices_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferImageCopy2KHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR BufferImageCopy2KHR( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ = {}, + uint32_t bufferRowLength_ = {}, + uint32_t bufferImageHeight_ = {}, + VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {}, + VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {}, + VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {} ) VULKAN_HPP_NOEXCEPT + : bufferOffset( bufferOffset_ ) + , bufferRowLength( bufferRowLength_ ) + , bufferImageHeight( bufferImageHeight_ ) + , imageSubresource( imageSubresource_ ) + , imageOffset( imageOffset_ ) + , imageExtent( imageExtent_ ) + {} + + VULKAN_HPP_CONSTEXPR BufferImageCopy2KHR( BufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BufferImageCopy2KHR( VkBufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : BufferImageCopy2KHR( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo & operator=( VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 BufferImageCopy2KHR & + operator=( BufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BufferImageCopy2KHR & operator=( VkBufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo ) - offsetof( BindBufferMemoryDeviceGroupInfo, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - BindBufferMemoryDeviceGroupInfo( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT + BufferImageCopy2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - BindBufferMemoryDeviceGroupInfo& operator=( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT + BufferImageCopy2KHR & setBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + bufferOffset = bufferOffset_; return *this; } - BindBufferMemoryDeviceGroupInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + BufferImageCopy2KHR & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + bufferRowLength = bufferRowLength_; return *this; } - BindBufferMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT + BufferImageCopy2KHR & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT { - deviceIndexCount = deviceIndexCount_; + bufferImageHeight = bufferImageHeight_; return *this; } - BindBufferMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT + BufferImageCopy2KHR & + setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT { - pDeviceIndices = pDeviceIndices_; + imageSubresource = imageSubresource_; return *this; } - operator VkBindBufferMemoryDeviceGroupInfo const&() const VULKAN_HPP_NOEXCEPT + BufferImageCopy2KHR & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + imageOffset = imageOffset_; + return *this; } - operator VkBindBufferMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT + BufferImageCopy2KHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT + { + imageExtent = imageExtent_; + return *this; + } + + operator VkBufferImageCopy2KHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkBufferImageCopy2KHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( BindBufferMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BufferImageCopy2KHR const & ) const = default; +#else + bool operator==( BufferImageCopy2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceIndexCount == rhs.deviceIndexCount ) - && ( pDeviceIndices == rhs.pDeviceIndices ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( bufferOffset == rhs.bufferOffset ) && + ( bufferRowLength == rhs.bufferRowLength ) && ( bufferImageHeight == rhs.bufferImageHeight ) && + ( imageSubresource == rhs.imageSubresource ) && ( imageOffset == rhs.imageOffset ) && + ( imageExtent == rhs.imageExtent ); } - bool operator!=( BindBufferMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( BufferImageCopy2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryDeviceGroupInfo; - const void* pNext = {}; - uint32_t deviceIndexCount = {}; - const uint32_t* pDeviceIndices = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferImageCopy2KHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset = {}; + uint32_t bufferRowLength = {}; + uint32_t bufferImageHeight = {}; + VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {}; + VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {}; + VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {}; }; - static_assert( sizeof( BindBufferMemoryDeviceGroupInfo ) == sizeof( VkBindBufferMemoryDeviceGroupInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( BufferImageCopy2KHR ) == sizeof( VkBufferImageCopy2KHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct BindBufferMemoryInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR BindBufferMemoryInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, - VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {} ) VULKAN_HPP_NOEXCEPT - : buffer( buffer_ ) - , memory( memory_ ) - , memoryOffset( memoryOffset_ ) + using Type = BufferImageCopy2KHR; + }; + + struct BufferMemoryBarrier + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryBarrier; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR BufferMemoryBarrier( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, + VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, + uint32_t srcQueueFamilyIndex_ = {}, + uint32_t dstQueueFamilyIndex_ = {}, + VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT + : srcAccessMask( srcAccessMask_ ) + , dstAccessMask( dstAccessMask_ ) + , srcQueueFamilyIndex( srcQueueFamilyIndex_ ) + , dstQueueFamilyIndex( dstQueueFamilyIndex_ ) + , buffer( buffer_ ) + , offset( offset_ ) + , size( size_ ) + {} + + VULKAN_HPP_CONSTEXPR BufferMemoryBarrier( BufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BufferMemoryBarrier( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT + : BufferMemoryBarrier( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo & operator=( VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier & + operator=( BufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BufferMemoryBarrier & operator=( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo ) - offsetof( BindBufferMemoryInfo, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - BindBufferMemoryInfo( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT + BufferMemoryBarrier & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - BindBufferMemoryInfo& operator=( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT + BufferMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + srcAccessMask = srcAccessMask_; return *this; } - BindBufferMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + BufferMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + dstAccessMask = dstAccessMask_; return *this; } - BindBufferMemoryInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT + BufferMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT + { + srcQueueFamilyIndex = srcQueueFamilyIndex_; + return *this; + } + + BufferMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT + { + dstQueueFamilyIndex = dstQueueFamilyIndex_; + return *this; + } + + BufferMemoryBarrier & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT { buffer = buffer_; return *this; } - BindBufferMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT + BufferMemoryBarrier & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT { - memory = memory_; + offset = offset_; return *this; } - BindBufferMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT + BufferMemoryBarrier & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT { - memoryOffset = memoryOffset_; + size = size_; return *this; } - operator VkBindBufferMemoryInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkBufferMemoryBarrier const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkBindBufferMemoryInfo &() VULKAN_HPP_NOEXCEPT + operator VkBufferMemoryBarrier &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( BindBufferMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BufferMemoryBarrier const & ) const = default; +#else + bool operator==( BufferMemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( buffer == rhs.buffer ) - && ( memory == rhs.memory ) - && ( memoryOffset == rhs.memoryOffset ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcAccessMask == rhs.srcAccessMask ) && + ( dstAccessMask == rhs.dstAccessMask ) && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex ) && + ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex ) && ( buffer == rhs.buffer ) && + ( offset == rhs.offset ) && ( size == rhs.size ); } - bool operator!=( BindBufferMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( BufferMemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryBarrier; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {}; + VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {}; + uint32_t srcQueueFamilyIndex = {}; + uint32_t dstQueueFamilyIndex = {}; + VULKAN_HPP_NAMESPACE::Buffer buffer = {}; + VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; + VULKAN_HPP_NAMESPACE::DeviceSize size = {}; }; - static_assert( sizeof( BindBufferMemoryInfo ) == sizeof( VkBindBufferMemoryInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( BufferMemoryBarrier ) == sizeof( VkBufferMemoryBarrier ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct Offset2D + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR Offset2D( int32_t x_ = {}, - int32_t y_ = {} ) VULKAN_HPP_NOEXCEPT - : x( x_ ) - , y( y_ ) + using Type = BufferMemoryBarrier; + }; + + struct BufferMemoryBarrier2KHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryBarrier2KHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR BufferMemoryBarrier2KHR( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask_ = {}, + VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask_ = {}, + VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask_ = {}, + VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask_ = {}, + uint32_t srcQueueFamilyIndex_ = {}, + uint32_t dstQueueFamilyIndex_ = {}, + VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT + : srcStageMask( srcStageMask_ ) + , srcAccessMask( srcAccessMask_ ) + , dstStageMask( dstStageMask_ ) + , dstAccessMask( dstAccessMask_ ) + , srcQueueFamilyIndex( srcQueueFamilyIndex_ ) + , dstQueueFamilyIndex( dstQueueFamilyIndex_ ) + , buffer( buffer_ ) + , offset( offset_ ) + , size( size_ ) {} - Offset2D( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR BufferMemoryBarrier2KHR( BufferMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BufferMemoryBarrier2KHR( VkBufferMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : BufferMemoryBarrier2KHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 BufferMemoryBarrier2KHR & + operator=( BufferMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - Offset2D& operator=( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT + BufferMemoryBarrier2KHR & operator=( VkBufferMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - Offset2D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT + BufferMemoryBarrier2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - x = x_; + pNext = pNext_; return *this; } - Offset2D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT + BufferMemoryBarrier2KHR & + setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask_ ) VULKAN_HPP_NOEXCEPT { - y = y_; + srcStageMask = srcStageMask_; return *this; } - operator VkOffset2D const&() const VULKAN_HPP_NOEXCEPT + BufferMemoryBarrier2KHR & + setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + srcAccessMask = srcAccessMask_; + return *this; } - operator VkOffset2D &() VULKAN_HPP_NOEXCEPT + BufferMemoryBarrier2KHR & + setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + dstStageMask = dstStageMask_; + return *this; } - bool operator==( Offset2D const& rhs ) const VULKAN_HPP_NOEXCEPT + BufferMemoryBarrier2KHR & + setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask_ ) VULKAN_HPP_NOEXCEPT { - return ( x == rhs.x ) - && ( y == rhs.y ); + dstAccessMask = dstAccessMask_; + return *this; } - bool operator!=( Offset2D const& rhs ) const VULKAN_HPP_NOEXCEPT + BufferMemoryBarrier2KHR & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + srcQueueFamilyIndex = srcQueueFamilyIndex_; + return *this; } - public: - int32_t x = {}; - int32_t y = {}; - }; - static_assert( sizeof( Offset2D ) == sizeof( VkOffset2D ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct Rect2D - { - VULKAN_HPP_CONSTEXPR Rect2D( VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, - VULKAN_HPP_NAMESPACE::Extent2D extent_ = {} ) VULKAN_HPP_NOEXCEPT - : offset( offset_ ) - , extent( extent_ ) - {} - - Rect2D( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT + BufferMemoryBarrier2KHR & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + dstQueueFamilyIndex = dstQueueFamilyIndex_; + return *this; } - Rect2D& operator=( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT + BufferMemoryBarrier2KHR & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + buffer = buffer_; return *this; } - Rect2D & setOffset( VULKAN_HPP_NAMESPACE::Offset2D offset_ ) VULKAN_HPP_NOEXCEPT + BufferMemoryBarrier2KHR & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT { offset = offset_; return *this; } - Rect2D & setExtent( VULKAN_HPP_NAMESPACE::Extent2D extent_ ) VULKAN_HPP_NOEXCEPT + BufferMemoryBarrier2KHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT { - extent = extent_; + size = size_; return *this; } - operator VkRect2D const&() const VULKAN_HPP_NOEXCEPT + operator VkBufferMemoryBarrier2KHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkRect2D &() VULKAN_HPP_NOEXCEPT + operator VkBufferMemoryBarrier2KHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( Rect2D const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BufferMemoryBarrier2KHR const & ) const = default; +#else + bool operator==( BufferMemoryBarrier2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( offset == rhs.offset ) - && ( extent == rhs.extent ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcStageMask == rhs.srcStageMask ) && + ( srcAccessMask == rhs.srcAccessMask ) && ( dstStageMask == rhs.dstStageMask ) && + ( dstAccessMask == rhs.dstAccessMask ) && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex ) && + ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex ) && ( buffer == rhs.buffer ) && + ( offset == rhs.offset ) && ( size == rhs.size ); } - bool operator!=( Rect2D const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( BufferMemoryBarrier2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::Offset2D offset = {}; - VULKAN_HPP_NAMESPACE::Extent2D extent = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryBarrier2KHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask = {}; + VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask = {}; + VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask = {}; + VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask = {}; + uint32_t srcQueueFamilyIndex = {}; + uint32_t dstQueueFamilyIndex = {}; + VULKAN_HPP_NAMESPACE::Buffer buffer = {}; + VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; + VULKAN_HPP_NAMESPACE::DeviceSize size = {}; }; - static_assert( sizeof( Rect2D ) == sizeof( VkRect2D ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( BufferMemoryBarrier2KHR ) == sizeof( VkBufferMemoryBarrier2KHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct BindImageMemoryDeviceGroupInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR BindImageMemoryDeviceGroupInfo( uint32_t deviceIndexCount_ = {}, - const uint32_t* pDeviceIndices_ = {}, - uint32_t splitInstanceBindRegionCount_ = {}, - const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions_ = {} ) VULKAN_HPP_NOEXCEPT - : deviceIndexCount( deviceIndexCount_ ) - , pDeviceIndices( pDeviceIndices_ ) - , splitInstanceBindRegionCount( splitInstanceBindRegionCount_ ) - , pSplitInstanceBindRegions( pSplitInstanceBindRegions_ ) + using Type = BufferMemoryBarrier2KHR; + }; + + struct BufferMemoryRequirementsInfo2 + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryRequirementsInfo2; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR BufferMemoryRequirementsInfo2( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {} ) VULKAN_HPP_NOEXCEPT + : buffer( buffer_ ) + {} + + VULKAN_HPP_CONSTEXPR + BufferMemoryRequirementsInfo2( BufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BufferMemoryRequirementsInfo2( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT + : BufferMemoryRequirementsInfo2( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo & operator=( VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 BufferMemoryRequirementsInfo2 & + operator=( BufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BufferMemoryRequirementsInfo2 & operator=( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo ) - offsetof( BindImageMemoryDeviceGroupInfo, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - BindImageMemoryDeviceGroupInfo( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT + BufferMemoryRequirementsInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - BindImageMemoryDeviceGroupInfo& operator=( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT + BufferMemoryRequirementsInfo2 & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + buffer = buffer_; return *this; } - BindImageMemoryDeviceGroupInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + operator VkBufferMemoryRequirementsInfo2 const &() const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; - return *this; + return *reinterpret_cast( this ); } - BindImageMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT + operator VkBufferMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT { - deviceIndexCount = deviceIndexCount_; - return *this; + return *reinterpret_cast( this ); } - BindImageMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BufferMemoryRequirementsInfo2 const & ) const = default; +#else + bool operator==( BufferMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT { - pDeviceIndices = pDeviceIndices_; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( buffer == rhs.buffer ); + } + + bool operator!=( BufferMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryRequirementsInfo2; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Buffer buffer = {}; + }; + static_assert( sizeof( BufferMemoryRequirementsInfo2 ) == sizeof( VkBufferMemoryRequirementsInfo2 ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = BufferMemoryRequirementsInfo2; + }; + using BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2; + + struct BufferOpaqueCaptureAddressCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eBufferOpaqueCaptureAddressCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR BufferOpaqueCaptureAddressCreateInfo( uint64_t opaqueCaptureAddress_ = {} ) VULKAN_HPP_NOEXCEPT + : opaqueCaptureAddress( opaqueCaptureAddress_ ) + {} + + VULKAN_HPP_CONSTEXPR BufferOpaqueCaptureAddressCreateInfo( BufferOpaqueCaptureAddressCreateInfo const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + BufferOpaqueCaptureAddressCreateInfo( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : BufferOpaqueCaptureAddressCreateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 BufferOpaqueCaptureAddressCreateInfo & + operator=( BufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BufferOpaqueCaptureAddressCreateInfo & + operator=( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); return *this; } - BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegionCount( uint32_t splitInstanceBindRegionCount_ ) VULKAN_HPP_NOEXCEPT + BufferOpaqueCaptureAddressCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - splitInstanceBindRegionCount = splitInstanceBindRegionCount_; + pNext = pNext_; return *this; } - BindImageMemoryDeviceGroupInfo & setPSplitInstanceBindRegions( const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT + BufferOpaqueCaptureAddressCreateInfo & setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT { - pSplitInstanceBindRegions = pSplitInstanceBindRegions_; + opaqueCaptureAddress = opaqueCaptureAddress_; return *this; } - operator VkBindImageMemoryDeviceGroupInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkBufferOpaqueCaptureAddressCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkBindImageMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT + operator VkBufferOpaqueCaptureAddressCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( BindImageMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BufferOpaqueCaptureAddressCreateInfo const & ) const = default; +#else + bool operator==( BufferOpaqueCaptureAddressCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceIndexCount == rhs.deviceIndexCount ) - && ( pDeviceIndices == rhs.pDeviceIndices ) - && ( splitInstanceBindRegionCount == rhs.splitInstanceBindRegionCount ) - && ( pSplitInstanceBindRegions == rhs.pSplitInstanceBindRegions ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress ); } - bool operator!=( BindImageMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( BufferOpaqueCaptureAddressCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryDeviceGroupInfo; - const void* pNext = {}; - uint32_t deviceIndexCount = {}; - const uint32_t* pDeviceIndices = {}; - uint32_t splitInstanceBindRegionCount = {}; - const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferOpaqueCaptureAddressCreateInfo; + const void * pNext = {}; + uint64_t opaqueCaptureAddress = {}; }; - static_assert( sizeof( BindImageMemoryDeviceGroupInfo ) == sizeof( VkBindImageMemoryDeviceGroupInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( BufferOpaqueCaptureAddressCreateInfo ) == sizeof( VkBufferOpaqueCaptureAddressCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct BindImageMemoryInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR BindImageMemoryInfo( VULKAN_HPP_NAMESPACE::Image image_ = {}, - VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {} ) VULKAN_HPP_NOEXCEPT - : image( image_ ) - , memory( memory_ ) - , memoryOffset( memoryOffset_ ) + using Type = BufferOpaqueCaptureAddressCreateInfo; + }; + using BufferOpaqueCaptureAddressCreateInfoKHR = BufferOpaqueCaptureAddressCreateInfo; + + struct BufferViewCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferViewCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + BufferViewCreateInfo( VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, + VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, + VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize range_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , buffer( buffer_ ) + , format( format_ ) + , offset( offset_ ) + , range( range_ ) + {} + + VULKAN_HPP_CONSTEXPR BufferViewCreateInfo( BufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BufferViewCreateInfo( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : BufferViewCreateInfo( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::BindImageMemoryInfo & operator=( VULKAN_HPP_NAMESPACE::BindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 BufferViewCreateInfo & + operator=( BufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + BufferViewCreateInfo & operator=( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::BindImageMemoryInfo ) - offsetof( BindImageMemoryInfo, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - BindImageMemoryInfo( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT + BufferViewCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - BindImageMemoryInfo& operator=( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT + BufferViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + flags = flags_; return *this; } - BindImageMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + BufferViewCreateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + buffer = buffer_; return *this; } - BindImageMemoryInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT + BufferViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT { - image = image_; + format = format_; return *this; } - BindImageMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT + BufferViewCreateInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT { - memory = memory_; + offset = offset_; return *this; } - BindImageMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT + BufferViewCreateInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT { - memoryOffset = memoryOffset_; + range = range_; return *this; } - operator VkBindImageMemoryInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkBufferViewCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkBindImageMemoryInfo &() VULKAN_HPP_NOEXCEPT + operator VkBufferViewCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( BindImageMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BufferViewCreateInfo const & ) const = default; +#else + bool operator==( BufferViewCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( image == rhs.image ) - && ( memory == rhs.memory ) - && ( memoryOffset == rhs.memoryOffset ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( buffer == rhs.buffer ) && + ( format == rhs.format ) && ( offset == rhs.offset ) && ( range == rhs.range ); } - bool operator!=( BindImageMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( BufferViewCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Image image = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferViewCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags = {}; + VULKAN_HPP_NAMESPACE::Buffer buffer = {}; + VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; + VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; + VULKAN_HPP_NAMESPACE::DeviceSize range = {}; }; - static_assert( sizeof( BindImageMemoryInfo ) == sizeof( VkBindImageMemoryInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( BufferViewCreateInfo ) == sizeof( VkBufferViewCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct BindImageMemorySwapchainInfoKHR + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR BindImageMemorySwapchainInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}, - uint32_t imageIndex_ = {} ) VULKAN_HPP_NOEXCEPT - : swapchain( swapchain_ ) - , imageIndex( imageIndex_ ) + using Type = BufferViewCreateInfo; + }; + + struct CalibratedTimestampInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCalibratedTimestampInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + CalibratedTimestampInfoEXT( VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ = + VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice ) VULKAN_HPP_NOEXCEPT + : timeDomain( timeDomain_ ) {} - VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR & operator=( VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR ) - offsetof( BindImageMemorySwapchainInfoKHR, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + CalibratedTimestampInfoEXT( CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - BindImageMemorySwapchainInfoKHR( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + CalibratedTimestampInfoEXT( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : CalibratedTimestampInfoEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - BindImageMemorySwapchainInfoKHR& operator=( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 CalibratedTimestampInfoEXT & + operator=( CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - BindImageMemorySwapchainInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + CalibratedTimestampInfoEXT & operator=( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - BindImageMemorySwapchainInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT + CalibratedTimestampInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - swapchain = swapchain_; + pNext = pNext_; return *this; } - BindImageMemorySwapchainInfoKHR & setImageIndex( uint32_t imageIndex_ ) VULKAN_HPP_NOEXCEPT + CalibratedTimestampInfoEXT & setTimeDomain( VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ ) VULKAN_HPP_NOEXCEPT { - imageIndex = imageIndex_; + timeDomain = timeDomain_; return *this; } - operator VkBindImageMemorySwapchainInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkCalibratedTimestampInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkBindImageMemorySwapchainInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkCalibratedTimestampInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( BindImageMemorySwapchainInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CalibratedTimestampInfoEXT const & ) const = default; +#else + bool operator==( CalibratedTimestampInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( swapchain == rhs.swapchain ) - && ( imageIndex == rhs.imageIndex ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( timeDomain == rhs.timeDomain ); } - bool operator!=( BindImageMemorySwapchainInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( CalibratedTimestampInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemorySwapchainInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {}; - uint32_t imageIndex = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCalibratedTimestampInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice; }; - static_assert( sizeof( BindImageMemorySwapchainInfoKHR ) == sizeof( VkBindImageMemorySwapchainInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( CalibratedTimestampInfoEXT ) == sizeof( VkCalibratedTimestampInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct BindImagePlaneMemoryInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR BindImagePlaneMemoryInfo( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor ) VULKAN_HPP_NOEXCEPT - : planeAspect( planeAspect_ ) + using Type = CalibratedTimestampInfoEXT; + }; + + struct CheckpointData2NV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCheckpointData2Nv; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR CheckpointData2NV( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage_ = {}, + void * pCheckpointMarker_ = {} ) VULKAN_HPP_NOEXCEPT + : stage( stage_ ) + , pCheckpointMarker( pCheckpointMarker_ ) + {} + + VULKAN_HPP_CONSTEXPR CheckpointData2NV( CheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + CheckpointData2NV( VkCheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT + : CheckpointData2NV( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 CheckpointData2NV & + operator=( CheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo & operator=( VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT + CheckpointData2NV & operator=( VkCheckpointData2NV const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo ) - offsetof( BindImagePlaneMemoryInfo, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - BindImagePlaneMemoryInfo( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkCheckpointData2NV const &() const VULKAN_HPP_NOEXCEPT { - *this = rhs; + return *reinterpret_cast( this ); } - BindImagePlaneMemoryInfo& operator=( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkCheckpointData2NV &() VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return *reinterpret_cast( this ); } - BindImagePlaneMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CheckpointData2NV const & ) const = default; +#else + bool operator==( CheckpointData2NV const & rhs ) const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stage == rhs.stage ) && + ( pCheckpointMarker == rhs.pCheckpointMarker ); } - BindImagePlaneMemoryInfo & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( CheckpointData2NV const & rhs ) const VULKAN_HPP_NOEXCEPT { - planeAspect = planeAspect_; + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCheckpointData2Nv; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage = {}; + void * pCheckpointMarker = {}; + }; + static_assert( sizeof( CheckpointData2NV ) == sizeof( VkCheckpointData2NV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = CheckpointData2NV; + }; + + struct CheckpointDataNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCheckpointDataNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR CheckpointDataNV( + VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe, + void * pCheckpointMarker_ = {} ) VULKAN_HPP_NOEXCEPT + : stage( stage_ ) + , pCheckpointMarker( pCheckpointMarker_ ) + {} + + VULKAN_HPP_CONSTEXPR CheckpointDataNV( CheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + CheckpointDataNV( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT + : CheckpointDataNV( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 CheckpointDataNV & operator=( CheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + CheckpointDataNV & operator=( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkBindImagePlaneMemoryInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkCheckpointDataNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkBindImagePlaneMemoryInfo &() VULKAN_HPP_NOEXCEPT + operator VkCheckpointDataNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( BindImagePlaneMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CheckpointDataNV const & ) const = default; +#else + bool operator==( CheckpointDataNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( planeAspect == rhs.planeAspect ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stage == rhs.stage ) && + ( pCheckpointMarker == rhs.pCheckpointMarker ); } - bool operator!=( BindImagePlaneMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( CheckpointDataNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImagePlaneMemoryInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCheckpointDataNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe; + void * pCheckpointMarker = {}; }; - static_assert( sizeof( BindImagePlaneMemoryInfo ) == sizeof( VkBindImagePlaneMemoryInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( CheckpointDataNV ) == sizeof( VkCheckpointDataNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct SparseMemoryBind + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SparseMemoryBind( VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, - VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, - VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT - : resourceOffset( resourceOffset_ ) - , size( size_ ) - , memory( memory_ ) - , memoryOffset( memoryOffset_ ) - , flags( flags_ ) - {} + using Type = CheckpointDataNV; + }; - SparseMemoryBind( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT + union ClearColorValue + { + ClearColorValue( VULKAN_HPP_NAMESPACE::ClearColorValue const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + memcpy( static_cast( this ), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearColorValue ) ); } - SparseMemoryBind& operator=( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + ClearColorValue( const std::array & float32_ = {} ) : float32( float32_ ) {} - SparseMemoryBind & setResourceOffset( VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset_ ) VULKAN_HPP_NOEXCEPT - { - resourceOffset = resourceOffset_; - return *this; - } + ClearColorValue( const std::array & int32_ ) : int32( int32_ ) {} - SparseMemoryBind & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } + ClearColorValue( const std::array & uint32_ ) : uint32( uint32_ ) {} - SparseMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT + ClearColorValue & setFloat32( std::array float32_ ) VULKAN_HPP_NOEXCEPT { - memory = memory_; + float32 = float32_; return *this; } - SparseMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT + ClearColorValue & setInt32( std::array int32_ ) VULKAN_HPP_NOEXCEPT { - memoryOffset = memoryOffset_; + int32 = int32_; return *this; } - SparseMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT + ClearColorValue & setUint32( std::array uint32_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + uint32 = uint32_; return *this; } - operator VkSparseMemoryBind const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSparseMemoryBind &() VULKAN_HPP_NOEXCEPT + VULKAN_HPP_NAMESPACE::ClearColorValue & + operator=( VULKAN_HPP_NAMESPACE::ClearColorValue const & rhs ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + memcpy( static_cast( this ), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearColorValue ) ); + return *this; } - bool operator==( SparseMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkClearColorValue const &() const { - return ( resourceOffset == rhs.resourceOffset ) - && ( size == rhs.size ) - && ( memory == rhs.memory ) - && ( memoryOffset == rhs.memoryOffset ) - && ( flags == rhs.flags ); + return *reinterpret_cast( this ); } - bool operator!=( SparseMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkClearColorValue &() { - return !operator==( rhs ); + return *reinterpret_cast( this ); } - public: - VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {}; - VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D float32; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D int32; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D uint32; }; - static_assert( sizeof( SparseMemoryBind ) == sizeof( VkSparseMemoryBind ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct SparseBufferMemoryBindInfo + struct ClearDepthStencilValue { - VULKAN_HPP_CONSTEXPR SparseBufferMemoryBindInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, - uint32_t bindCount_ = {}, - const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ = {} ) VULKAN_HPP_NOEXCEPT - : buffer( buffer_ ) - , bindCount( bindCount_ ) - , pBinds( pBinds_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ClearDepthStencilValue( float depth_ = {}, uint32_t stencil_ = {} ) VULKAN_HPP_NOEXCEPT + : depth( depth_ ) + , stencil( stencil_ ) {} - SparseBufferMemoryBindInfo( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR ClearDepthStencilValue( ClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SparseBufferMemoryBindInfo& operator=( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + ClearDepthStencilValue( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT + : ClearDepthStencilValue( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - SparseBufferMemoryBindInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 ClearDepthStencilValue & + operator=( ClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ClearDepthStencilValue & operator=( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT { - buffer = buffer_; + *this = *reinterpret_cast( &rhs ); return *this; } - SparseBufferMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT + ClearDepthStencilValue & setDepth( float depth_ ) VULKAN_HPP_NOEXCEPT { - bindCount = bindCount_; + depth = depth_; return *this; } - SparseBufferMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT + ClearDepthStencilValue & setStencil( uint32_t stencil_ ) VULKAN_HPP_NOEXCEPT { - pBinds = pBinds_; + stencil = stencil_; return *this; } - operator VkSparseBufferMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkClearDepthStencilValue const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSparseBufferMemoryBindInfo &() VULKAN_HPP_NOEXCEPT + operator VkClearDepthStencilValue &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SparseBufferMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ClearDepthStencilValue const & ) const = default; +#else + bool operator==( ClearDepthStencilValue const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( buffer == rhs.buffer ) - && ( bindCount == rhs.bindCount ) - && ( pBinds == rhs.pBinds ); + return ( depth == rhs.depth ) && ( stencil == rhs.stencil ); } - bool operator!=( SparseBufferMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ClearDepthStencilValue const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - uint32_t bindCount = {}; - const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds = {}; + float depth = {}; + uint32_t stencil = {}; }; - static_assert( sizeof( SparseBufferMemoryBindInfo ) == sizeof( VkSparseBufferMemoryBindInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ClearDepthStencilValue ) == sizeof( VkClearDepthStencilValue ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct SparseImageOpaqueMemoryBindInfo + union ClearValue { - VULKAN_HPP_CONSTEXPR SparseImageOpaqueMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_ = {}, - uint32_t bindCount_ = {}, - const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ = {} ) VULKAN_HPP_NOEXCEPT - : image( image_ ) - , bindCount( bindCount_ ) - , pBinds( pBinds_ ) - {} - - SparseImageOpaqueMemoryBindInfo( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT + ClearValue( VULKAN_HPP_NAMESPACE::ClearValue const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + memcpy( static_cast( this ), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearValue ) ); } - SparseImageOpaqueMemoryBindInfo& operator=( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + ClearValue( VULKAN_HPP_NAMESPACE::ClearColorValue color_ = {} ) : color( color_ ) {} - SparseImageOpaqueMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT - { - image = image_; - return *this; - } + ClearValue( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil_ ) : depthStencil( depthStencil_ ) {} - SparseImageOpaqueMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT + ClearValue & setColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & color_ ) VULKAN_HPP_NOEXCEPT { - bindCount = bindCount_; + color = color_; return *this; } - SparseImageOpaqueMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT + ClearValue & + setDepthStencil( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const & depthStencil_ ) VULKAN_HPP_NOEXCEPT { - pBinds = pBinds_; + depthStencil = depthStencil_; return *this; } - operator VkSparseImageOpaqueMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSparseImageOpaqueMemoryBindInfo &() VULKAN_HPP_NOEXCEPT + VULKAN_HPP_NAMESPACE::ClearValue & operator=( VULKAN_HPP_NAMESPACE::ClearValue const & rhs ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + memcpy( static_cast( this ), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearValue ) ); + return *this; } - bool operator==( SparseImageOpaqueMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkClearValue const &() const { - return ( image == rhs.image ) - && ( bindCount == rhs.bindCount ) - && ( pBinds == rhs.pBinds ); + return *reinterpret_cast( this ); } - bool operator!=( SparseImageOpaqueMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkClearValue &() { - return !operator==( rhs ); + return *reinterpret_cast( this ); } - public: - VULKAN_HPP_NAMESPACE::Image image = {}; - uint32_t bindCount = {}; - const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds = {}; +#ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS + VULKAN_HPP_NAMESPACE::ClearColorValue color; + VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil; +#else + VkClearColorValue color; + VkClearDepthStencilValue depthStencil; +#endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/ }; - static_assert( sizeof( SparseImageOpaqueMemoryBindInfo ) == sizeof( VkSparseImageOpaqueMemoryBindInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ImageSubresource + struct ClearAttachment { - VULKAN_HPP_CONSTEXPR ImageSubresource( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, - uint32_t mipLevel_ = {}, - uint32_t arrayLayer_ = {} ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + ClearAttachment( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, + uint32_t colorAttachment_ = {}, + VULKAN_HPP_NAMESPACE::ClearValue clearValue_ = {} ) VULKAN_HPP_NOEXCEPT : aspectMask( aspectMask_ ) - , mipLevel( mipLevel_ ) - , arrayLayer( arrayLayer_ ) + , colorAttachment( colorAttachment_ ) + , clearValue( clearValue_ ) {} - ImageSubresource( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ClearAttachment( ClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ClearAttachment( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT + : ClearAttachment( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ImageSubresource& operator=( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT + ClearAttachment & operator=( ClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ClearAttachment & operator=( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - ImageSubresource & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT + ClearAttachment & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT { aspectMask = aspectMask_; return *this; } - ImageSubresource & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT + ClearAttachment & setColorAttachment( uint32_t colorAttachment_ ) VULKAN_HPP_NOEXCEPT { - mipLevel = mipLevel_; + colorAttachment = colorAttachment_; return *this; } - ImageSubresource & setArrayLayer( uint32_t arrayLayer_ ) VULKAN_HPP_NOEXCEPT + ClearAttachment & setClearValue( VULKAN_HPP_NAMESPACE::ClearValue const & clearValue_ ) VULKAN_HPP_NOEXCEPT { - arrayLayer = arrayLayer_; + clearValue = clearValue_; return *this; } - operator VkImageSubresource const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageSubresource &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( ImageSubresource const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkClearAttachment const &() const VULKAN_HPP_NOEXCEPT { - return ( aspectMask == rhs.aspectMask ) - && ( mipLevel == rhs.mipLevel ) - && ( arrayLayer == rhs.arrayLayer ); + return *reinterpret_cast( this ); } - bool operator!=( ImageSubresource const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkClearAttachment &() VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return *reinterpret_cast( this ); } public: - VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; - uint32_t mipLevel = {}; - uint32_t arrayLayer = {}; + VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; + uint32_t colorAttachment = {}; + VULKAN_HPP_NAMESPACE::ClearValue clearValue = {}; }; - static_assert( sizeof( ImageSubresource ) == sizeof( VkImageSubresource ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ClearAttachment ) == sizeof( VkClearAttachment ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct Offset3D + struct ClearRect { - VULKAN_HPP_CONSTEXPR Offset3D( int32_t x_ = {}, - int32_t y_ = {}, - int32_t z_ = {} ) VULKAN_HPP_NOEXCEPT - : x( x_ ) - , y( y_ ) - , z( z_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ClearRect( VULKAN_HPP_NAMESPACE::Rect2D rect_ = {}, + uint32_t baseArrayLayer_ = {}, + uint32_t layerCount_ = {} ) VULKAN_HPP_NOEXCEPT + : rect( rect_ ) + , baseArrayLayer( baseArrayLayer_ ) + , layerCount( layerCount_ ) {} - explicit Offset3D( Offset2D const& offset2D, - int32_t z_ = {} ) - : x( offset2D.x ) - , y( offset2D.y ) - , z( z_ ) + VULKAN_HPP_CONSTEXPR ClearRect( ClearRect const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ClearRect( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT : ClearRect( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - Offset3D( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR_14 ClearRect & operator=( ClearRect const & rhs ) VULKAN_HPP_NOEXCEPT = default; - Offset3D& operator=( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT + ClearRect & operator=( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - Offset3D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT + ClearRect & setRect( VULKAN_HPP_NAMESPACE::Rect2D const & rect_ ) VULKAN_HPP_NOEXCEPT { - x = x_; + rect = rect_; return *this; } - Offset3D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT + ClearRect & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT { - y = y_; + baseArrayLayer = baseArrayLayer_; return *this; } - Offset3D & setZ( int32_t z_ ) VULKAN_HPP_NOEXCEPT + ClearRect & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT { - z = z_; + layerCount = layerCount_; return *this; } - operator VkOffset3D const&() const VULKAN_HPP_NOEXCEPT + operator VkClearRect const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkOffset3D &() VULKAN_HPP_NOEXCEPT + operator VkClearRect &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( Offset3D const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ClearRect const & ) const = default; +#else + bool operator==( ClearRect const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( x == rhs.x ) - && ( y == rhs.y ) - && ( z == rhs.z ); + return ( rect == rhs.rect ) && ( baseArrayLayer == rhs.baseArrayLayer ) && ( layerCount == rhs.layerCount ); } - bool operator!=( Offset3D const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ClearRect const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - int32_t x = {}; - int32_t y = {}; - int32_t z = {}; + VULKAN_HPP_NAMESPACE::Rect2D rect = {}; + uint32_t baseArrayLayer = {}; + uint32_t layerCount = {}; }; - static_assert( sizeof( Offset3D ) == sizeof( VkOffset3D ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ClearRect ) == sizeof( VkClearRect ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct Extent3D + struct CoarseSampleLocationNV { - VULKAN_HPP_CONSTEXPR Extent3D( uint32_t width_ = {}, - uint32_t height_ = {}, - uint32_t depth_ = {} ) VULKAN_HPP_NOEXCEPT - : width( width_ ) - , height( height_ ) - , depth( depth_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + CoarseSampleLocationNV( uint32_t pixelX_ = {}, uint32_t pixelY_ = {}, uint32_t sample_ = {} ) VULKAN_HPP_NOEXCEPT + : pixelX( pixelX_ ) + , pixelY( pixelY_ ) + , sample( sample_ ) {} - explicit Extent3D( Extent2D const& extent2D, - uint32_t depth_ = {} ) - : width( extent2D.width ) - , height( extent2D.height ) - , depth( depth_ ) + VULKAN_HPP_CONSTEXPR CoarseSampleLocationNV( CoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + CoarseSampleLocationNV( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT + : CoarseSampleLocationNV( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - Extent3D( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR_14 CoarseSampleLocationNV & + operator=( CoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - Extent3D& operator=( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT + CoarseSampleLocationNV & operator=( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - Extent3D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT + CoarseSampleLocationNV & setPixelX( uint32_t pixelX_ ) VULKAN_HPP_NOEXCEPT { - width = width_; + pixelX = pixelX_; return *this; } - Extent3D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT + CoarseSampleLocationNV & setPixelY( uint32_t pixelY_ ) VULKAN_HPP_NOEXCEPT { - height = height_; + pixelY = pixelY_; return *this; } - Extent3D & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT + CoarseSampleLocationNV & setSample( uint32_t sample_ ) VULKAN_HPP_NOEXCEPT { - depth = depth_; + sample = sample_; return *this; } - operator VkExtent3D const&() const VULKAN_HPP_NOEXCEPT + operator VkCoarseSampleLocationNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkExtent3D &() VULKAN_HPP_NOEXCEPT + operator VkCoarseSampleLocationNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( Extent3D const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CoarseSampleLocationNV const & ) const = default; +#else + bool operator==( CoarseSampleLocationNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( width == rhs.width ) - && ( height == rhs.height ) - && ( depth == rhs.depth ); + return ( pixelX == rhs.pixelX ) && ( pixelY == rhs.pixelY ) && ( sample == rhs.sample ); } - bool operator!=( Extent3D const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( CoarseSampleLocationNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint32_t width = {}; - uint32_t height = {}; - uint32_t depth = {}; + uint32_t pixelX = {}; + uint32_t pixelY = {}; + uint32_t sample = {}; }; - static_assert( sizeof( Extent3D ) == sizeof( VkExtent3D ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( CoarseSampleLocationNV ) == sizeof( VkCoarseSampleLocationNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct SparseImageMemoryBind + struct CoarseSampleOrderCustomNV { - VULKAN_HPP_CONSTEXPR SparseImageMemoryBind( VULKAN_HPP_NAMESPACE::ImageSubresource subresource_ = {}, - VULKAN_HPP_NAMESPACE::Offset3D offset_ = {}, - VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}, - VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, - VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT - : subresource( subresource_ ) - , offset( offset_ ) - , extent( extent_ ) - , memory( memory_ ) - , memoryOffset( memoryOffset_ ) - , flags( flags_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR CoarseSampleOrderCustomNV( + VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_ = + VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV::eNoInvocations, + uint32_t sampleCount_ = {}, + uint32_t sampleLocationCount_ = {}, + const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV * pSampleLocations_ = {} ) VULKAN_HPP_NOEXCEPT + : shadingRate( shadingRate_ ) + , sampleCount( sampleCount_ ) + , sampleLocationCount( sampleLocationCount_ ) + , pSampleLocations( pSampleLocations_ ) {} - SparseImageMemoryBind( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR + CoarseSampleOrderCustomNV( CoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SparseImageMemoryBind& operator=( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + CoarseSampleOrderCustomNV( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT + : CoarseSampleOrderCustomNV( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + CoarseSampleOrderCustomNV( + VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_, + uint32_t sampleCount_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + sampleLocations_ ) + : shadingRate( shadingRate_ ) + , sampleCount( sampleCount_ ) + , sampleLocationCount( static_cast( sampleLocations_.size() ) ) + , pSampleLocations( sampleLocations_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 CoarseSampleOrderCustomNV & + operator=( CoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SparseImageMemoryBind & setSubresource( VULKAN_HPP_NAMESPACE::ImageSubresource subresource_ ) VULKAN_HPP_NOEXCEPT + CoarseSampleOrderCustomNV & operator=( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT { - subresource = subresource_; + *this = *reinterpret_cast( &rhs ); return *this; } - SparseImageMemoryBind & setOffset( VULKAN_HPP_NAMESPACE::Offset3D offset_ ) VULKAN_HPP_NOEXCEPT + CoarseSampleOrderCustomNV & + setShadingRate( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_ ) VULKAN_HPP_NOEXCEPT { - offset = offset_; + shadingRate = shadingRate_; return *this; } - SparseImageMemoryBind & setExtent( VULKAN_HPP_NAMESPACE::Extent3D extent_ ) VULKAN_HPP_NOEXCEPT + CoarseSampleOrderCustomNV & setSampleCount( uint32_t sampleCount_ ) VULKAN_HPP_NOEXCEPT { - extent = extent_; + sampleCount = sampleCount_; return *this; } - SparseImageMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT + CoarseSampleOrderCustomNV & setSampleLocationCount( uint32_t sampleLocationCount_ ) VULKAN_HPP_NOEXCEPT { - memory = memory_; + sampleLocationCount = sampleLocationCount_; return *this; } - SparseImageMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT + CoarseSampleOrderCustomNV & + setPSampleLocations( const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV * pSampleLocations_ ) VULKAN_HPP_NOEXCEPT { - memoryOffset = memoryOffset_; + pSampleLocations = pSampleLocations_; return *this; } - SparseImageMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + CoarseSampleOrderCustomNV & setSampleLocations( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + sampleLocations_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + sampleLocationCount = static_cast( sampleLocations_.size() ); + pSampleLocations = sampleLocations_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkSparseImageMemoryBind const&() const VULKAN_HPP_NOEXCEPT + operator VkCoarseSampleOrderCustomNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSparseImageMemoryBind &() VULKAN_HPP_NOEXCEPT + operator VkCoarseSampleOrderCustomNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SparseImageMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CoarseSampleOrderCustomNV const & ) const = default; +#else + bool operator==( CoarseSampleOrderCustomNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( subresource == rhs.subresource ) - && ( offset == rhs.offset ) - && ( extent == rhs.extent ) - && ( memory == rhs.memory ) - && ( memoryOffset == rhs.memoryOffset ) - && ( flags == rhs.flags ); + return ( shadingRate == rhs.shadingRate ) && ( sampleCount == rhs.sampleCount ) && + ( sampleLocationCount == rhs.sampleLocationCount ) && ( pSampleLocations == rhs.pSampleLocations ); } - bool operator!=( SparseImageMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( CoarseSampleOrderCustomNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::ImageSubresource subresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D offset = {}; - VULKAN_HPP_NAMESPACE::Extent3D extent = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {}; - VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {}; + VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate = + VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV::eNoInvocations; + uint32_t sampleCount = {}; + uint32_t sampleLocationCount = {}; + const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV * pSampleLocations = {}; }; - static_assert( sizeof( SparseImageMemoryBind ) == sizeof( VkSparseImageMemoryBind ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( CoarseSampleOrderCustomNV ) == sizeof( VkCoarseSampleOrderCustomNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SparseImageMemoryBindInfo + class CommandPool { - VULKAN_HPP_CONSTEXPR SparseImageMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_ = {}, - uint32_t bindCount_ = {}, - const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds_ = {} ) VULKAN_HPP_NOEXCEPT - : image( image_ ) - , bindCount( bindCount_ ) - , pBinds( pBinds_ ) - {} + public: + using CType = VkCommandPool; - SparseImageMemoryBindInfo( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + 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; - SparseImageMemoryBindInfo& operator=( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT + public: + VULKAN_HPP_CONSTEXPR CommandPool() = default; + VULKAN_HPP_CONSTEXPR CommandPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT CommandPool( VkCommandPool commandPool ) VULKAN_HPP_NOEXCEPT + : m_commandPool( commandPool ) + {} + +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + CommandPool & operator=( VkCommandPool commandPool ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + m_commandPool = commandPool; return *this; } +#endif - SparseImageMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT + CommandPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - image = image_; + m_commandPool = {}; return *this; } - SparseImageMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CommandPool const & ) const = default; +#else + bool operator==( CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT { - bindCount = bindCount_; - return *this; + return m_commandPool == rhs.m_commandPool; } - SparseImageMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT { - pBinds = pBinds_; - return *this; + return m_commandPool != rhs.m_commandPool; } - operator VkSparseImageMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT + bool operator<( CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_commandPool < rhs.m_commandPool; } +#endif - operator VkSparseImageMemoryBindInfo &() VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCommandPool() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_commandPool; } - bool operator==( SparseImageMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return ( image == rhs.image ) - && ( bindCount == rhs.bindCount ) - && ( pBinds == rhs.pBinds ); + return m_commandPool != VK_NULL_HANDLE; } - bool operator!=( SparseImageMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_commandPool == VK_NULL_HANDLE; } - public: - VULKAN_HPP_NAMESPACE::Image image = {}; - uint32_t bindCount = {}; - const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds = {}; + private: + VkCommandPool m_commandPool = {}; }; - static_assert( sizeof( SparseImageMemoryBindInfo ) == sizeof( VkSparseImageMemoryBindInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::CommandPool ) == sizeof( VkCommandPool ), + "handle and wrapper have different size!" ); - struct BindSparseInfo + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - VULKAN_HPP_CONSTEXPR BindSparseInfo( uint32_t waitSemaphoreCount_ = {}, - const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ = {}, - uint32_t bufferBindCount_ = {}, - const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo* pBufferBinds_ = {}, - uint32_t imageOpaqueBindCount_ = {}, - const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds_ = {}, - uint32_t imageBindCount_ = {}, - const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo* pImageBinds_ = {}, - uint32_t signalSemaphoreCount_ = {}, - const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ = {} ) VULKAN_HPP_NOEXCEPT - : waitSemaphoreCount( waitSemaphoreCount_ ) - , pWaitSemaphores( pWaitSemaphores_ ) - , bufferBindCount( bufferBindCount_ ) - , pBufferBinds( pBufferBinds_ ) - , imageOpaqueBindCount( imageOpaqueBindCount_ ) - , pImageOpaqueBinds( pImageOpaqueBinds_ ) - , imageBindCount( imageBindCount_ ) - , pImageBinds( pImageBinds_ ) - , signalSemaphoreCount( signalSemaphoreCount_ ) - , pSignalSemaphores( pSignalSemaphores_ ) + using type = VULKAN_HPP_NAMESPACE::CommandPool; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::CommandPool; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::CommandPool; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + struct CommandBufferAllocateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferAllocateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR CommandBufferAllocateInfo( + VULKAN_HPP_NAMESPACE::CommandPool commandPool_ = {}, + VULKAN_HPP_NAMESPACE::CommandBufferLevel level_ = VULKAN_HPP_NAMESPACE::CommandBufferLevel::ePrimary, + uint32_t commandBufferCount_ = {} ) VULKAN_HPP_NOEXCEPT + : commandPool( commandPool_ ) + , level( level_ ) + , commandBufferCount( commandBufferCount_ ) {} - VULKAN_HPP_NAMESPACE::BindSparseInfo & operator=( VULKAN_HPP_NAMESPACE::BindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::BindSparseInfo ) - offsetof( BindSparseInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + CommandBufferAllocateInfo( CommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - BindSparseInfo( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + CommandBufferAllocateInfo( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : CommandBufferAllocateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 CommandBufferAllocateInfo & + operator=( CommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - BindSparseInfo& operator=( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT + CommandBufferAllocateInfo & operator=( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - BindSparseInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + CommandBufferAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - BindSparseInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT + CommandBufferAllocateInfo & setCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool_ ) VULKAN_HPP_NOEXCEPT { - waitSemaphoreCount = waitSemaphoreCount_; + commandPool = commandPool_; return *this; } - BindSparseInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT + CommandBufferAllocateInfo & setLevel( VULKAN_HPP_NAMESPACE::CommandBufferLevel level_ ) VULKAN_HPP_NOEXCEPT { - pWaitSemaphores = pWaitSemaphores_; + level = level_; return *this; } - BindSparseInfo & setBufferBindCount( uint32_t bufferBindCount_ ) VULKAN_HPP_NOEXCEPT + CommandBufferAllocateInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT { - bufferBindCount = bufferBindCount_; + commandBufferCount = commandBufferCount_; return *this; } - BindSparseInfo & setPBufferBinds( const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo* pBufferBinds_ ) VULKAN_HPP_NOEXCEPT + operator VkCommandBufferAllocateInfo const &() const VULKAN_HPP_NOEXCEPT { - pBufferBinds = pBufferBinds_; - return *this; + return *reinterpret_cast( this ); } - BindSparseInfo & setImageOpaqueBindCount( uint32_t imageOpaqueBindCount_ ) VULKAN_HPP_NOEXCEPT + operator VkCommandBufferAllocateInfo &() VULKAN_HPP_NOEXCEPT { - imageOpaqueBindCount = imageOpaqueBindCount_; - return *this; + return *reinterpret_cast( this ); } - BindSparseInfo & setPImageOpaqueBinds( const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CommandBufferAllocateInfo const & ) const = default; +#else + bool operator==( CommandBufferAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - pImageOpaqueBinds = pImageOpaqueBinds_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( commandPool == rhs.commandPool ) && + ( level == rhs.level ) && ( commandBufferCount == rhs.commandBufferCount ); } - BindSparseInfo & setImageBindCount( uint32_t imageBindCount_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( CommandBufferAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - imageBindCount = imageBindCount_; - return *this; + return !operator==( rhs ); } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferAllocateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::CommandPool commandPool = {}; + VULKAN_HPP_NAMESPACE::CommandBufferLevel level = VULKAN_HPP_NAMESPACE::CommandBufferLevel::ePrimary; + uint32_t commandBufferCount = {}; + }; + static_assert( sizeof( CommandBufferAllocateInfo ) == sizeof( VkCommandBufferAllocateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = CommandBufferAllocateInfo; + }; + + 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: + VULKAN_HPP_CONSTEXPR RenderPass() = default; + VULKAN_HPP_CONSTEXPR RenderPass( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT RenderPass( VkRenderPass renderPass ) VULKAN_HPP_NOEXCEPT : m_renderPass( renderPass ) + {} - BindSparseInfo & setPImageBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo* pImageBinds_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + RenderPass & operator=( VkRenderPass renderPass ) VULKAN_HPP_NOEXCEPT { - pImageBinds = pImageBinds_; + m_renderPass = renderPass; return *this; } +#endif - BindSparseInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT + RenderPass & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - signalSemaphoreCount = signalSemaphoreCount_; + m_renderPass = {}; return *this; } - BindSparseInfo & setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( RenderPass const & ) const = default; +#else + bool operator==( RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT { - pSignalSemaphores = pSignalSemaphores_; - return *this; + return m_renderPass == rhs.m_renderPass; } - operator VkBindSparseInfo const&() const VULKAN_HPP_NOEXCEPT + bool operator!=( RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_renderPass != rhs.m_renderPass; } - operator VkBindSparseInfo &() VULKAN_HPP_NOEXCEPT + bool operator<( RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_renderPass < rhs.m_renderPass; + } +#endif + + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkRenderPass() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_renderPass; } - bool operator==( BindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) - && ( pWaitSemaphores == rhs.pWaitSemaphores ) - && ( bufferBindCount == rhs.bufferBindCount ) - && ( pBufferBinds == rhs.pBufferBinds ) - && ( imageOpaqueBindCount == rhs.imageOpaqueBindCount ) - && ( pImageOpaqueBinds == rhs.pImageOpaqueBinds ) - && ( imageBindCount == rhs.imageBindCount ) - && ( pImageBinds == rhs.pImageBinds ) - && ( signalSemaphoreCount == rhs.signalSemaphoreCount ) - && ( pSignalSemaphores == rhs.pSignalSemaphores ); + return m_renderPass != VK_NULL_HANDLE; } - bool operator!=( BindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_renderPass == VK_NULL_HANDLE; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindSparseInfo; - const void* pNext = {}; - uint32_t waitSemaphoreCount = {}; - const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {}; - uint32_t bufferBindCount = {}; - const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo* pBufferBinds = {}; - uint32_t imageOpaqueBindCount = {}; - const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds = {}; - uint32_t imageBindCount = {}; - const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo* pImageBinds = {}; - uint32_t signalSemaphoreCount = {}; - const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores = {}; + private: + VkRenderPass m_renderPass = {}; }; - static_assert( sizeof( BindSparseInfo ) == sizeof( VkBindSparseInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::RenderPass ) == sizeof( VkRenderPass ), + "handle and wrapper have different size!" ); - struct BufferCopy + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - VULKAN_HPP_CONSTEXPR BufferCopy( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT - : srcOffset( srcOffset_ ) - , dstOffset( dstOffset_ ) - , size( size_ ) - {} + using type = VULKAN_HPP_NAMESPACE::RenderPass; + }; - BufferCopy( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::RenderPass; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::RenderPass; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + 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: + VULKAN_HPP_CONSTEXPR Framebuffer() = default; + VULKAN_HPP_CONSTEXPR Framebuffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT Framebuffer( VkFramebuffer framebuffer ) VULKAN_HPP_NOEXCEPT + : m_framebuffer( framebuffer ) + {} - BufferCopy& operator=( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + Framebuffer & operator=( VkFramebuffer framebuffer ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + m_framebuffer = framebuffer; return *this; } +#endif - BufferCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ ) VULKAN_HPP_NOEXCEPT + Framebuffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - srcOffset = srcOffset_; + m_framebuffer = {}; return *this; } - BufferCopy & setDstOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( Framebuffer const & ) const = default; +#else + bool operator==( Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT { - dstOffset = dstOffset_; - return *this; + return m_framebuffer == rhs.m_framebuffer; } - BufferCopy & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT { - size = size_; - return *this; + return m_framebuffer != rhs.m_framebuffer; } - operator VkBufferCopy const&() const VULKAN_HPP_NOEXCEPT + bool operator<( Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_framebuffer < rhs.m_framebuffer; } +#endif - operator VkBufferCopy &() VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkFramebuffer() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_framebuffer; } - bool operator==( BufferCopy const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return ( srcOffset == rhs.srcOffset ) - && ( dstOffset == rhs.dstOffset ) - && ( size == rhs.size ); + return m_framebuffer != VK_NULL_HANDLE; } - bool operator!=( BufferCopy const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_framebuffer == VK_NULL_HANDLE; } - public: - VULKAN_HPP_NAMESPACE::DeviceSize srcOffset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize dstOffset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; + private: + VkFramebuffer m_framebuffer = {}; }; - static_assert( sizeof( BufferCopy ) == sizeof( VkBufferCopy ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::Framebuffer ) == sizeof( VkFramebuffer ), + "handle and wrapper have different size!" ); - struct BufferCreateInfo + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - VULKAN_HPP_CONSTEXPR BufferCreateInfo( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, - VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ = {}, - VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, - uint32_t queueFamilyIndexCount_ = {}, - const uint32_t* pQueueFamilyIndices_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , size( size_ ) - , usage( usage_ ) - , sharingMode( sharingMode_ ) - , queueFamilyIndexCount( queueFamilyIndexCount_ ) - , pQueueFamilyIndices( pQueueFamilyIndices_ ) + using type = VULKAN_HPP_NAMESPACE::Framebuffer; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::Framebuffer; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::Framebuffer; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + struct CommandBufferInheritanceInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR CommandBufferInheritanceInfo( + VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, + uint32_t subpass_ = {}, + VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable_ = {}, + VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags_ = {}, + VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ = {} ) VULKAN_HPP_NOEXCEPT + : renderPass( renderPass_ ) + , subpass( subpass_ ) + , framebuffer( framebuffer_ ) + , occlusionQueryEnable( occlusionQueryEnable_ ) + , queryFlags( queryFlags_ ) + , pipelineStatistics( pipelineStatistics_ ) {} - VULKAN_HPP_NAMESPACE::BufferCreateInfo & operator=( VULKAN_HPP_NAMESPACE::BufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::BufferCreateInfo ) - offsetof( BufferCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + CommandBufferInheritanceInfo( CommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - BufferCreateInfo( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + CommandBufferInheritanceInfo( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : CommandBufferInheritanceInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceInfo & + operator=( CommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - BufferCreateInfo& operator=( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + CommandBufferInheritanceInfo & operator=( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - BufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + CommandBufferInheritanceInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - BufferCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + CommandBufferInheritanceInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + renderPass = renderPass_; return *this; } - BufferCreateInfo & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT + CommandBufferInheritanceInfo & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT { - size = size_; + subpass = subpass_; return *this; } - BufferCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT + CommandBufferInheritanceInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT { - usage = usage_; + framebuffer = framebuffer_; return *this; } - BufferCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT + CommandBufferInheritanceInfo & + setOcclusionQueryEnable( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable_ ) VULKAN_HPP_NOEXCEPT { - sharingMode = sharingMode_; + occlusionQueryEnable = occlusionQueryEnable_; return *this; } - BufferCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT + CommandBufferInheritanceInfo & + setQueryFlags( VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags_ ) VULKAN_HPP_NOEXCEPT { - queueFamilyIndexCount = queueFamilyIndexCount_; + queryFlags = queryFlags_; return *this; } - BufferCreateInfo & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT + CommandBufferInheritanceInfo & + setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT { - pQueueFamilyIndices = pQueueFamilyIndices_; + pipelineStatistics = pipelineStatistics_; return *this; } - operator VkBufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkCommandBufferInheritanceInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkBufferCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkCommandBufferInheritanceInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( BufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CommandBufferInheritanceInfo const & ) const = default; +#else + bool operator==( CommandBufferInheritanceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( size == rhs.size ) - && ( usage == rhs.usage ) - && ( sharingMode == rhs.sharingMode ) - && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) - && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( renderPass == rhs.renderPass ) && + ( subpass == rhs.subpass ) && ( framebuffer == rhs.framebuffer ) && + ( occlusionQueryEnable == rhs.occlusionQueryEnable ) && ( queryFlags == rhs.queryFlags ) && + ( pipelineStatistics == rhs.pipelineStatistics ); } - bool operator!=( BufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( CommandBufferInheritanceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {}; - VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive; - uint32_t queueFamilyIndexCount = {}; - const uint32_t* pQueueFamilyIndices = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::RenderPass renderPass = {}; + uint32_t subpass = {}; + VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {}; + VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable = {}; + VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags = {}; + VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {}; }; - static_assert( sizeof( BufferCreateInfo ) == sizeof( VkBufferCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( CommandBufferInheritanceInfo ) == sizeof( VkCommandBufferInheritanceInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct BufferDeviceAddressCreateInfoEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR BufferDeviceAddressCreateInfoEXT( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} ) VULKAN_HPP_NOEXCEPT - : deviceAddress( deviceAddress_ ) + using Type = CommandBufferInheritanceInfo; + }; + + struct CommandBufferBeginInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferBeginInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR CommandBufferBeginInfo( + VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ = {}, + const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo * pInheritanceInfo_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , pInheritanceInfo( pInheritanceInfo_ ) {} - VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT ) - offsetof( BufferDeviceAddressCreateInfoEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR CommandBufferBeginInfo( CommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - BufferDeviceAddressCreateInfoEXT( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + CommandBufferBeginInfo( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : CommandBufferBeginInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 CommandBufferBeginInfo & + operator=( CommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + CommandBufferBeginInfo & operator=( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - BufferDeviceAddressCreateInfoEXT& operator=( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + CommandBufferBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - BufferDeviceAddressCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + CommandBufferBeginInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + flags = flags_; return *this; } - BufferDeviceAddressCreateInfoEXT & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT + CommandBufferBeginInfo & setPInheritanceInfo( + const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo * pInheritanceInfo_ ) VULKAN_HPP_NOEXCEPT { - deviceAddress = deviceAddress_; + pInheritanceInfo = pInheritanceInfo_; return *this; } - operator VkBufferDeviceAddressCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkCommandBufferBeginInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkBufferDeviceAddressCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( BufferDeviceAddressCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CommandBufferBeginInfo const & ) const = default; +#else + bool operator==( CommandBufferBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceAddress == rhs.deviceAddress ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( pInheritanceInfo == rhs.pInheritanceInfo ); } - bool operator!=( BufferDeviceAddressCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( CommandBufferBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferBeginInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags = {}; + const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo * pInheritanceInfo = {}; }; - static_assert( sizeof( BufferDeviceAddressCreateInfoEXT ) == sizeof( VkBufferDeviceAddressCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( CommandBufferBeginInfo ) == sizeof( VkCommandBufferBeginInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct BufferDeviceAddressInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR BufferDeviceAddressInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {} ) VULKAN_HPP_NOEXCEPT - : buffer( buffer_ ) + using Type = CommandBufferBeginInfo; + }; + + struct CommandBufferInheritanceConditionalRenderingInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR CommandBufferInheritanceConditionalRenderingInfoEXT( + VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ = {} ) VULKAN_HPP_NOEXCEPT + : conditionalRenderingEnable( conditionalRenderingEnable_ ) {} - VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & operator=( VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo ) - offsetof( BufferDeviceAddressInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR CommandBufferInheritanceConditionalRenderingInfoEXT( + CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - BufferDeviceAddressInfo( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + CommandBufferInheritanceConditionalRenderingInfoEXT( + VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : CommandBufferInheritanceConditionalRenderingInfoEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceConditionalRenderingInfoEXT & + operator=( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - BufferDeviceAddressInfo& operator=( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT + CommandBufferInheritanceConditionalRenderingInfoEXT & + operator=( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = + *reinterpret_cast( &rhs ); return *this; } - BufferDeviceAddressInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + CommandBufferInheritanceConditionalRenderingInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - BufferDeviceAddressInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT + CommandBufferInheritanceConditionalRenderingInfoEXT & + setConditionalRenderingEnable( VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ ) VULKAN_HPP_NOEXCEPT { - buffer = buffer_; + conditionalRenderingEnable = conditionalRenderingEnable_; return *this; } - operator VkBufferDeviceAddressInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkBufferDeviceAddressInfo &() VULKAN_HPP_NOEXCEPT + operator VkCommandBufferInheritanceConditionalRenderingInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( BufferDeviceAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CommandBufferInheritanceConditionalRenderingInfoEXT const & ) const = default; +#else + bool operator==( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( buffer == rhs.buffer ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( conditionalRenderingEnable == rhs.conditionalRenderingEnable ); } - bool operator!=( BufferDeviceAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable = {}; }; - static_assert( sizeof( BufferDeviceAddressInfo ) == sizeof( VkBufferDeviceAddressInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( CommandBufferInheritanceConditionalRenderingInfoEXT ) == + sizeof( VkCommandBufferInheritanceConditionalRenderingInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct ImageSubresourceLayers + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ImageSubresourceLayers( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, - uint32_t mipLevel_ = {}, - uint32_t baseArrayLayer_ = {}, - uint32_t layerCount_ = {} ) VULKAN_HPP_NOEXCEPT - : aspectMask( aspectMask_ ) - , mipLevel( mipLevel_ ) - , baseArrayLayer( baseArrayLayer_ ) - , layerCount( layerCount_ ) + using Type = CommandBufferInheritanceConditionalRenderingInfoEXT; + }; + + struct CommandBufferInheritanceRenderPassTransformInfoQCOM + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR CommandBufferInheritanceRenderPassTransformInfoQCOM( + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, + VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {} ) VULKAN_HPP_NOEXCEPT + : transform( transform_ ) + , renderArea( renderArea_ ) {} - ImageSubresourceLayers( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR CommandBufferInheritanceRenderPassTransformInfoQCOM( + CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ImageSubresourceLayers& operator=( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + CommandBufferInheritanceRenderPassTransformInfoQCOM( + VkCommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT + : CommandBufferInheritanceRenderPassTransformInfoQCOM( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ImageSubresourceLayers & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceRenderPassTransformInfoQCOM & + operator=( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + CommandBufferInheritanceRenderPassTransformInfoQCOM & + operator=( VkCommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT { - aspectMask = aspectMask_; + *this = + *reinterpret_cast( &rhs ); return *this; } - ImageSubresourceLayers & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT + CommandBufferInheritanceRenderPassTransformInfoQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - mipLevel = mipLevel_; + pNext = pNext_; return *this; } - ImageSubresourceLayers & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT + CommandBufferInheritanceRenderPassTransformInfoQCOM & + setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT { - baseArrayLayer = baseArrayLayer_; + transform = transform_; return *this; } - ImageSubresourceLayers & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT + CommandBufferInheritanceRenderPassTransformInfoQCOM & + setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT { - layerCount = layerCount_; + renderArea = renderArea_; return *this; } - operator VkImageSubresourceLayers const&() const VULKAN_HPP_NOEXCEPT + operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkImageSubresourceLayers &() VULKAN_HPP_NOEXCEPT + operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ImageSubresourceLayers const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CommandBufferInheritanceRenderPassTransformInfoQCOM const & ) const = default; +#else + bool operator==( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( aspectMask == rhs.aspectMask ) - && ( mipLevel == rhs.mipLevel ) - && ( baseArrayLayer == rhs.baseArrayLayer ) - && ( layerCount == rhs.layerCount ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( transform == rhs.transform ) && + ( renderArea == rhs.renderArea ); } - bool operator!=( ImageSubresourceLayers const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; - uint32_t mipLevel = {}; - uint32_t baseArrayLayer = {}; - uint32_t layerCount = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; + VULKAN_HPP_NAMESPACE::Rect2D renderArea = {}; }; - static_assert( sizeof( ImageSubresourceLayers ) == sizeof( VkImageSubresourceLayers ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( CommandBufferInheritanceRenderPassTransformInfoQCOM ) == + sizeof( VkCommandBufferInheritanceRenderPassTransformInfoQCOM ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct BufferImageCopy + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR BufferImageCopy( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ = {}, - uint32_t bufferRowLength_ = {}, - uint32_t bufferImageHeight_ = {}, - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {}, - VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {}, - VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {} ) VULKAN_HPP_NOEXCEPT - : bufferOffset( bufferOffset_ ) - , bufferRowLength( bufferRowLength_ ) - , bufferImageHeight( bufferImageHeight_ ) - , imageSubresource( imageSubresource_ ) - , imageOffset( imageOffset_ ) - , imageExtent( imageExtent_ ) + using Type = CommandBufferInheritanceRenderPassTransformInfoQCOM; + }; + + struct Viewport + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR Viewport( float x_ = {}, + float y_ = {}, + float width_ = {}, + float height_ = {}, + float minDepth_ = {}, + float maxDepth_ = {} ) VULKAN_HPP_NOEXCEPT + : x( x_ ) + , y( y_ ) + , width( width_ ) + , height( height_ ) + , minDepth( minDepth_ ) + , maxDepth( maxDepth_ ) {} - BufferImageCopy( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR Viewport( Viewport const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + Viewport( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT : Viewport( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - BufferImageCopy& operator=( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 Viewport & operator=( Viewport const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + Viewport & operator=( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - BufferImageCopy & setBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ ) VULKAN_HPP_NOEXCEPT + Viewport & setX( float x_ ) VULKAN_HPP_NOEXCEPT { - bufferOffset = bufferOffset_; + x = x_; return *this; } - BufferImageCopy & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT + Viewport & setY( float y_ ) VULKAN_HPP_NOEXCEPT { - bufferRowLength = bufferRowLength_; + y = y_; return *this; } - BufferImageCopy & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT + Viewport & setWidth( float width_ ) VULKAN_HPP_NOEXCEPT { - bufferImageHeight = bufferImageHeight_; + width = width_; return *this; } - BufferImageCopy & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ ) VULKAN_HPP_NOEXCEPT + Viewport & setHeight( float height_ ) VULKAN_HPP_NOEXCEPT { - imageSubresource = imageSubresource_; + height = height_; return *this; } - BufferImageCopy & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ ) VULKAN_HPP_NOEXCEPT + Viewport & setMinDepth( float minDepth_ ) VULKAN_HPP_NOEXCEPT { - imageOffset = imageOffset_; + minDepth = minDepth_; return *this; } - BufferImageCopy & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ ) VULKAN_HPP_NOEXCEPT + Viewport & setMaxDepth( float maxDepth_ ) VULKAN_HPP_NOEXCEPT { - imageExtent = imageExtent_; + maxDepth = maxDepth_; return *this; } - operator VkBufferImageCopy const&() const VULKAN_HPP_NOEXCEPT + operator VkViewport const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkBufferImageCopy &() VULKAN_HPP_NOEXCEPT + operator VkViewport &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( BufferImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( Viewport const & ) const = default; +#else + bool operator==( Viewport const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( bufferOffset == rhs.bufferOffset ) - && ( bufferRowLength == rhs.bufferRowLength ) - && ( bufferImageHeight == rhs.bufferImageHeight ) - && ( imageSubresource == rhs.imageSubresource ) - && ( imageOffset == rhs.imageOffset ) - && ( imageExtent == rhs.imageExtent ); + return ( x == rhs.x ) && ( y == rhs.y ) && ( width == rhs.width ) && ( height == rhs.height ) && + ( minDepth == rhs.minDepth ) && ( maxDepth == rhs.maxDepth ); } - bool operator!=( BufferImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( Viewport const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset = {}; - uint32_t bufferRowLength = {}; - uint32_t bufferImageHeight = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {}; - VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {}; + float x = {}; + float y = {}; + float width = {}; + float height = {}; + float minDepth = {}; + float maxDepth = {}; }; - static_assert( sizeof( BufferImageCopy ) == sizeof( VkBufferImageCopy ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( Viewport ) == sizeof( VkViewport ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct BufferMemoryBarrier + struct CommandBufferInheritanceViewportScissorInfoNV { - VULKAN_HPP_CONSTEXPR BufferMemoryBarrier( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, - VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, - uint32_t srcQueueFamilyIndex_ = {}, - uint32_t dstQueueFamilyIndex_ = {}, - VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT - : srcAccessMask( srcAccessMask_ ) - , dstAccessMask( dstAccessMask_ ) - , srcQueueFamilyIndex( srcQueueFamilyIndex_ ) - , dstQueueFamilyIndex( dstQueueFamilyIndex_ ) - , buffer( buffer_ ) - , offset( offset_ ) - , size( size_ ) - {} - - VULKAN_HPP_NAMESPACE::BufferMemoryBarrier & operator=( VULKAN_HPP_NAMESPACE::BufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::BufferMemoryBarrier ) - offsetof( BufferMemoryBarrier, pNext ) ); - return *this; - } - - BufferMemoryBarrier( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eCommandBufferInheritanceViewportScissorInfoNV; - BufferMemoryBarrier& operator=( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR CommandBufferInheritanceViewportScissorInfoNV( + VULKAN_HPP_NAMESPACE::Bool32 viewportScissor2D_ = {}, + uint32_t viewportDepthCount_ = {}, + const VULKAN_HPP_NAMESPACE::Viewport * pViewportDepths_ = {} ) VULKAN_HPP_NOEXCEPT + : viewportScissor2D( viewportScissor2D_ ) + , viewportDepthCount( viewportDepthCount_ ) + , pViewportDepths( pViewportDepths_ ) + {} - BufferMemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + VULKAN_HPP_CONSTEXPR CommandBufferInheritanceViewportScissorInfoNV( + CommandBufferInheritanceViewportScissorInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - BufferMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - srcAccessMask = srcAccessMask_; - return *this; - } + CommandBufferInheritanceViewportScissorInfoNV( VkCommandBufferInheritanceViewportScissorInfoNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : CommandBufferInheritanceViewportScissorInfoNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - BufferMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - dstAccessMask = dstAccessMask_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 CommandBufferInheritanceViewportScissorInfoNV & + operator=( CommandBufferInheritanceViewportScissorInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - BufferMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT + CommandBufferInheritanceViewportScissorInfoNV & + operator=( VkCommandBufferInheritanceViewportScissorInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT { - srcQueueFamilyIndex = srcQueueFamilyIndex_; + *this = *reinterpret_cast( &rhs ); return *this; } - BufferMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT + CommandBufferInheritanceViewportScissorInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - dstQueueFamilyIndex = dstQueueFamilyIndex_; + pNext = pNext_; return *this; } - BufferMemoryBarrier & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT + CommandBufferInheritanceViewportScissorInfoNV & + setViewportScissor2D( VULKAN_HPP_NAMESPACE::Bool32 viewportScissor2D_ ) VULKAN_HPP_NOEXCEPT { - buffer = buffer_; + viewportScissor2D = viewportScissor2D_; return *this; } - BufferMemoryBarrier & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT + CommandBufferInheritanceViewportScissorInfoNV & + setViewportDepthCount( uint32_t viewportDepthCount_ ) VULKAN_HPP_NOEXCEPT { - offset = offset_; + viewportDepthCount = viewportDepthCount_; return *this; } - BufferMemoryBarrier & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT + CommandBufferInheritanceViewportScissorInfoNV & + setPViewportDepths( const VULKAN_HPP_NAMESPACE::Viewport * pViewportDepths_ ) VULKAN_HPP_NOEXCEPT { - size = size_; + pViewportDepths = pViewportDepths_; return *this; } - operator VkBufferMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT + operator VkCommandBufferInheritanceViewportScissorInfoNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkBufferMemoryBarrier &() VULKAN_HPP_NOEXCEPT + operator VkCommandBufferInheritanceViewportScissorInfoNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( BufferMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CommandBufferInheritanceViewportScissorInfoNV const & ) const = default; +#else + bool operator==( CommandBufferInheritanceViewportScissorInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcAccessMask == rhs.srcAccessMask ) - && ( dstAccessMask == rhs.dstAccessMask ) - && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex ) - && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex ) - && ( buffer == rhs.buffer ) - && ( offset == rhs.offset ) - && ( size == rhs.size ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( viewportScissor2D == rhs.viewportScissor2D ) && + ( viewportDepthCount == rhs.viewportDepthCount ) && ( pViewportDepths == rhs.pViewportDepths ); } - bool operator!=( BufferMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( CommandBufferInheritanceViewportScissorInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryBarrier; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {}; - uint32_t srcQueueFamilyIndex = {}; - uint32_t dstQueueFamilyIndex = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceViewportScissorInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 viewportScissor2D = {}; + uint32_t viewportDepthCount = {}; + const VULKAN_HPP_NAMESPACE::Viewport * pViewportDepths = {}; }; - static_assert( sizeof( BufferMemoryBarrier ) == sizeof( VkBufferMemoryBarrier ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( CommandBufferInheritanceViewportScissorInfoNV ) == + sizeof( VkCommandBufferInheritanceViewportScissorInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct BufferMemoryRequirementsInfo2 + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR BufferMemoryRequirementsInfo2( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {} ) VULKAN_HPP_NOEXCEPT + using Type = CommandBufferInheritanceViewportScissorInfoNV; + }; + + struct ConditionalRenderingBeginInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eConditionalRenderingBeginInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ConditionalRenderingBeginInfoEXT( + VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, + VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ = {} ) VULKAN_HPP_NOEXCEPT : buffer( buffer_ ) + , offset( offset_ ) + , flags( flags_ ) + {} + + VULKAN_HPP_CONSTEXPR + ConditionalRenderingBeginInfoEXT( ConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ConditionalRenderingBeginInfoEXT( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : ConditionalRenderingBeginInfoEXT( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & operator=( VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 ConditionalRenderingBeginInfoEXT & + operator=( ConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ConditionalRenderingBeginInfoEXT & operator=( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 ) - offsetof( BufferMemoryRequirementsInfo2, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - BufferMemoryRequirementsInfo2( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT + ConditionalRenderingBeginInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - BufferMemoryRequirementsInfo2& operator=( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT + ConditionalRenderingBeginInfoEXT & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + buffer = buffer_; return *this; } - BufferMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ConditionalRenderingBeginInfoEXT & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + offset = offset_; return *this; } - BufferMemoryRequirementsInfo2 & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT + ConditionalRenderingBeginInfoEXT & + setFlags( VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT { - buffer = buffer_; + flags = flags_; return *this; } - operator VkBufferMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT + operator VkConditionalRenderingBeginInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkBufferMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT + operator VkConditionalRenderingBeginInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( BufferMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ConditionalRenderingBeginInfoEXT const & ) const = default; +#else + bool operator==( ConditionalRenderingBeginInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( buffer == rhs.buffer ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( buffer == rhs.buffer ) && ( offset == rhs.offset ) && + ( flags == rhs.flags ); } - bool operator!=( BufferMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ConditionalRenderingBeginInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryRequirementsInfo2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eConditionalRenderingBeginInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Buffer buffer = {}; + VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; + VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags = {}; }; - static_assert( sizeof( BufferMemoryRequirementsInfo2 ) == sizeof( VkBufferMemoryRequirementsInfo2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ConditionalRenderingBeginInfoEXT ) == sizeof( VkConditionalRenderingBeginInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct BufferOpaqueCaptureAddressCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR BufferOpaqueCaptureAddressCreateInfo( uint64_t opaqueCaptureAddress_ = {} ) VULKAN_HPP_NOEXCEPT - : opaqueCaptureAddress( opaqueCaptureAddress_ ) + using Type = ConditionalRenderingBeginInfoEXT; + }; + + struct DebugUtilsLabelEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsLabelEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT( const char * pLabelName_ = {}, + std::array const & color_ = {} ) VULKAN_HPP_NOEXCEPT + : pLabelName( pLabelName_ ) + , color( color_ ) {} - VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo & operator=( VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo ) - offsetof( BufferOpaqueCaptureAddressCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT( DebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - BufferOpaqueCaptureAddressCreateInfo( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + DebugUtilsLabelEXT( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : DebugUtilsLabelEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT & + operator=( DebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DebugUtilsLabelEXT & operator=( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - BufferOpaqueCaptureAddressCreateInfo& operator=( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + DebugUtilsLabelEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - BufferOpaqueCaptureAddressCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + DebugUtilsLabelEXT & setPLabelName( const char * pLabelName_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + pLabelName = pLabelName_; return *this; } - BufferOpaqueCaptureAddressCreateInfo & setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT + DebugUtilsLabelEXT & setColor( std::array color_ ) VULKAN_HPP_NOEXCEPT { - opaqueCaptureAddress = opaqueCaptureAddress_; + color = color_; return *this; } - operator VkBufferOpaqueCaptureAddressCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkDebugUtilsLabelEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkBufferOpaqueCaptureAddressCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkDebugUtilsLabelEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( BufferOpaqueCaptureAddressCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DebugUtilsLabelEXT const & ) const = default; +#else + bool operator==( DebugUtilsLabelEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pLabelName == rhs.pLabelName ) && + ( color == rhs.color ); } - bool operator!=( BufferOpaqueCaptureAddressCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DebugUtilsLabelEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferOpaqueCaptureAddressCreateInfo; - const void* pNext = {}; - uint64_t opaqueCaptureAddress = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsLabelEXT; + const void * pNext = {}; + const char * pLabelName = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D color = {}; }; - static_assert( sizeof( BufferOpaqueCaptureAddressCreateInfo ) == sizeof( VkBufferOpaqueCaptureAddressCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DebugUtilsLabelEXT ) == sizeof( VkDebugUtilsLabelEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct BufferViewCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR BufferViewCreateInfo( VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, - VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, - VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize range_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , buffer( buffer_ ) - , format( format_ ) - , offset( offset_ ) - , range( range_ ) - {} + using Type = DebugUtilsLabelEXT; + }; - VULKAN_HPP_NAMESPACE::BufferViewCreateInfo & operator=( VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::BufferViewCreateInfo ) - offsetof( BufferViewCreateInfo, pNext ) ); - return *this; - } + class QueryPool + { + public: + using CType = VkQueryPool; - BufferViewCreateInfo( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + 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: + VULKAN_HPP_CONSTEXPR QueryPool() = default; + VULKAN_HPP_CONSTEXPR QueryPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT QueryPool( VkQueryPool queryPool ) VULKAN_HPP_NOEXCEPT : m_queryPool( queryPool ) {} - BufferViewCreateInfo& operator=( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + QueryPool & operator=( VkQueryPool queryPool ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + m_queryPool = queryPool; return *this; } +#endif - BufferViewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + QueryPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + m_queryPool = {}; return *this; } - BufferViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( QueryPool const & ) const = default; +#else + bool operator==( QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT { - flags = flags_; - return *this; + return m_queryPool == rhs.m_queryPool; } - BufferViewCreateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT { - buffer = buffer_; - return *this; + return m_queryPool != rhs.m_queryPool; } - BufferViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT + bool operator<( QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT { - format = format_; - return *this; + return m_queryPool < rhs.m_queryPool; } +#endif - BufferViewCreateInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkQueryPool() const VULKAN_HPP_NOEXCEPT { - offset = offset_; - return *this; + return m_queryPool; } - BufferViewCreateInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - range = range_; - return *this; + return m_queryPool != VK_NULL_HANDLE; } - operator VkBufferViewCreateInfo const&() const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_queryPool == VK_NULL_HANDLE; } - operator VkBufferViewCreateInfo &() VULKAN_HPP_NOEXCEPT + private: + VkQueryPool m_queryPool = {}; + }; + static_assert( sizeof( VULKAN_HPP_NAMESPACE::QueryPool ) == sizeof( VkQueryPool ), + "handle and wrapper have different size!" ); + + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type + { + using type = VULKAN_HPP_NAMESPACE::QueryPool; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::QueryPool; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::QueryPool; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + struct RenderPassBeginInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassBeginInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 + RenderPassBeginInfo( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, + VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ = {}, + VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {}, + uint32_t clearValueCount_ = {}, + const VULKAN_HPP_NAMESPACE::ClearValue * pClearValues_ = {} ) VULKAN_HPP_NOEXCEPT + : renderPass( renderPass_ ) + , framebuffer( framebuffer_ ) + , renderArea( renderArea_ ) + , clearValueCount( clearValueCount_ ) + , pClearValues( pClearValues_ ) + {} + + VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo( RenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + RenderPassBeginInfo( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : RenderPassBeginInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RenderPassBeginInfo( + VULKAN_HPP_NAMESPACE::RenderPass renderPass_, + VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_, + VULKAN_HPP_NAMESPACE::Rect2D renderArea_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & clearValues_ ) + : renderPass( renderPass_ ) + , framebuffer( framebuffer_ ) + , renderArea( renderArea_ ) + , clearValueCount( static_cast( clearValues_.size() ) ) + , pClearValues( clearValues_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo & + operator=( RenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + RenderPassBeginInfo & operator=( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + *this = *reinterpret_cast( &rhs ); + return *this; } - bool operator==( BufferViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + RenderPassBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( buffer == rhs.buffer ) - && ( format == rhs.format ) - && ( offset == rhs.offset ) - && ( range == rhs.range ); + pNext = pNext_; + return *this; } - bool operator!=( BufferViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + RenderPassBeginInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + renderPass = renderPass_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferViewCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize range = {}; - }; - static_assert( sizeof( BufferViewCreateInfo ) == sizeof( VkBufferViewCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct CalibratedTimestampInfoEXT - { - VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoEXT( VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice ) VULKAN_HPP_NOEXCEPT - : timeDomain( timeDomain_ ) - {} - - VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT & operator=( VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + RenderPassBeginInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT ) - offsetof( CalibratedTimestampInfoEXT, pNext ) ); + framebuffer = framebuffer_; return *this; } - CalibratedTimestampInfoEXT( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + RenderPassBeginInfo & setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + renderArea = renderArea_; + return *this; } - CalibratedTimestampInfoEXT& operator=( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + RenderPassBeginInfo & setClearValueCount( uint32_t clearValueCount_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + clearValueCount = clearValueCount_; return *this; } - CalibratedTimestampInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + RenderPassBeginInfo & setPClearValues( const VULKAN_HPP_NAMESPACE::ClearValue * pClearValues_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + pClearValues = pClearValues_; return *this; } - CalibratedTimestampInfoEXT & setTimeDomain( VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RenderPassBeginInfo & setClearValues( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & clearValues_ ) + VULKAN_HPP_NOEXCEPT { - timeDomain = timeDomain_; + clearValueCount = static_cast( clearValues_.size() ); + pClearValues = clearValues_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkCalibratedTimestampInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkRenderPassBeginInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkCalibratedTimestampInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( CalibratedTimestampInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( RenderPassBeginInfo const & ) const = default; +#else + bool operator==( RenderPassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( timeDomain == rhs.timeDomain ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( renderPass == rhs.renderPass ) && + ( framebuffer == rhs.framebuffer ) && ( renderArea == rhs.renderArea ) && + ( clearValueCount == rhs.clearValueCount ) && ( pClearValues == rhs.pClearValues ); } - bool operator!=( CalibratedTimestampInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( RenderPassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCalibratedTimestampInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassBeginInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::RenderPass renderPass = {}; + VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {}; + VULKAN_HPP_NAMESPACE::Rect2D renderArea = {}; + uint32_t clearValueCount = {}; + const VULKAN_HPP_NAMESPACE::ClearValue * pClearValues = {}; }; - static_assert( sizeof( CalibratedTimestampInfoEXT ) == sizeof( VkCalibratedTimestampInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( RenderPassBeginInfo ) == sizeof( VkRenderPassBeginInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct CheckpointDataNV + template <> + struct CppType { - CheckpointDataNV( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe, - void* pCheckpointMarker_ = {} ) VULKAN_HPP_NOEXCEPT - : stage( stage_ ) - , pCheckpointMarker( pCheckpointMarker_ ) + using Type = RenderPassBeginInfo; + }; + + struct SubpassBeginInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassBeginInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SubpassBeginInfo( VULKAN_HPP_NAMESPACE::SubpassContents contents_ = + VULKAN_HPP_NAMESPACE::SubpassContents::eInline ) VULKAN_HPP_NOEXCEPT + : contents( contents_ ) {} - VULKAN_HPP_NAMESPACE::CheckpointDataNV & operator=( VULKAN_HPP_NAMESPACE::CheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR SubpassBeginInfo( SubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SubpassBeginInfo( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : SubpassBeginInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SubpassBeginInfo & operator=( SubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SubpassBeginInfo & operator=( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::CheckpointDataNV ) - offsetof( CheckpointDataNV, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - CheckpointDataNV( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT + SubpassBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - CheckpointDataNV& operator=( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT + SubpassBeginInfo & setContents( VULKAN_HPP_NAMESPACE::SubpassContents contents_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + contents = contents_; return *this; } - operator VkCheckpointDataNV const&() const VULKAN_HPP_NOEXCEPT + operator VkSubpassBeginInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkCheckpointDataNV &() VULKAN_HPP_NOEXCEPT + operator VkSubpassBeginInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( CheckpointDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SubpassBeginInfo const & ) const = default; +#else + bool operator==( SubpassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( stage == rhs.stage ) - && ( pCheckpointMarker == rhs.pCheckpointMarker ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( contents == rhs.contents ); } - bool operator!=( CheckpointDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SubpassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCheckpointDataNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe; - void* pCheckpointMarker = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassBeginInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::SubpassContents contents = VULKAN_HPP_NAMESPACE::SubpassContents::eInline; }; - static_assert( sizeof( CheckpointDataNV ) == sizeof( VkCheckpointDataNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SubpassBeginInfo ) == sizeof( VkSubpassBeginInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - union ClearColorValue + template <> + struct CppType { - ClearColorValue( const std::array& float32_ = {} ) - { - memcpy( float32, float32_.data(), 4 * sizeof( float ) ); - } + using Type = SubpassBeginInfo; + }; + using SubpassBeginInfoKHR = SubpassBeginInfo; - ClearColorValue( const std::array& int32_ ) +#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: + VULKAN_HPP_CONSTEXPR VideoSessionKHR() = default; + VULKAN_HPP_CONSTEXPR VideoSessionKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT VideoSessionKHR( VkVideoSessionKHR videoSessionKHR ) VULKAN_HPP_NOEXCEPT + : m_videoSessionKHR( videoSessionKHR ) + {} + +# if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + VideoSessionKHR & operator=( VkVideoSessionKHR videoSessionKHR ) VULKAN_HPP_NOEXCEPT { - memcpy( int32, int32_.data(), 4 * sizeof( int32_t ) ); + m_videoSessionKHR = videoSessionKHR; + return *this; } +# endif - ClearColorValue( const std::array& uint32_ ) + VideoSessionKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - memcpy( uint32, uint32_.data(), 4 * sizeof( uint32_t ) ); + m_videoSessionKHR = {}; + return *this; } - ClearColorValue & setFloat32( std::array float32_ ) VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoSessionKHR const & ) const = default; +# else + bool operator==( VideoSessionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - memcpy( float32, float32_.data(), 4 * sizeof( float ) ); - return *this; + return m_videoSessionKHR == rhs.m_videoSessionKHR; } - ClearColorValue & setInt32( std::array int32_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( VideoSessionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - memcpy( int32, int32_.data(), 4 * sizeof( int32_t ) ); - return *this; + return m_videoSessionKHR != rhs.m_videoSessionKHR; } - ClearColorValue & setUint32( std::array uint32_ ) VULKAN_HPP_NOEXCEPT + bool operator<( VideoSessionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - memcpy( uint32, uint32_.data(), 4 * sizeof( uint32_t ) ); - return *this; + return m_videoSessionKHR < rhs.m_videoSessionKHR; } +# endif - VULKAN_HPP_NAMESPACE::ClearColorValue & operator=( VULKAN_HPP_NAMESPACE::ClearColorValue const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkVideoSessionKHR() const VULKAN_HPP_NOEXCEPT { - memcpy( this, &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearColorValue ) ); - return *this; + return m_videoSessionKHR; } - operator VkClearColorValue const&() const + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast(this); + return m_videoSessionKHR != VK_NULL_HANDLE; } - operator VkClearColorValue &() + bool operator!() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast(this); + return m_videoSessionKHR == VK_NULL_HANDLE; } - float float32[4]; - int32_t int32[4]; - uint32_t uint32[4]; + private: + VkVideoSessionKHR m_videoSessionKHR = {}; }; + static_assert( sizeof( VULKAN_HPP_NAMESPACE::VideoSessionKHR ) == sizeof( VkVideoSessionKHR ), + "handle and wrapper have different size!" ); - struct ClearDepthStencilValue + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - VULKAN_HPP_CONSTEXPR ClearDepthStencilValue( float depth_ = {}, - uint32_t stencil_ = {} ) VULKAN_HPP_NOEXCEPT - : depth( depth_ ) - , stencil( stencil_ ) + using type = VULKAN_HPP_NAMESPACE::VideoSessionKHR; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::VideoSessionKHR; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; +#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: + VULKAN_HPP_CONSTEXPR VideoSessionParametersKHR() = default; + VULKAN_HPP_CONSTEXPR VideoSessionParametersKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT + VideoSessionParametersKHR( VkVideoSessionParametersKHR videoSessionParametersKHR ) VULKAN_HPP_NOEXCEPT + : m_videoSessionParametersKHR( videoSessionParametersKHR ) {} - ClearDepthStencilValue( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + VideoSessionParametersKHR & operator=( VkVideoSessionParametersKHR videoSessionParametersKHR ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + m_videoSessionParametersKHR = videoSessionParametersKHR; + return *this; } +# endif - ClearDepthStencilValue& operator=( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT + VideoSessionParametersKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + m_videoSessionParametersKHR = {}; return *this; } - ClearDepthStencilValue & setDepth( float depth_ ) VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoSessionParametersKHR const & ) const = default; +# else + bool operator==( VideoSessionParametersKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - depth = depth_; - return *this; + return m_videoSessionParametersKHR == rhs.m_videoSessionParametersKHR; } - ClearDepthStencilValue & setStencil( uint32_t stencil_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( VideoSessionParametersKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - stencil = stencil_; - return *this; + return m_videoSessionParametersKHR != rhs.m_videoSessionParametersKHR; } - operator VkClearDepthStencilValue const&() const VULKAN_HPP_NOEXCEPT + bool operator<( VideoSessionParametersKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_videoSessionParametersKHR < rhs.m_videoSessionParametersKHR; } +# endif - operator VkClearDepthStencilValue &() VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkVideoSessionParametersKHR() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_videoSessionParametersKHR; } - bool operator==( ClearDepthStencilValue const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return ( depth == rhs.depth ) - && ( stencil == rhs.stencil ); + return m_videoSessionParametersKHR != VK_NULL_HANDLE; } - bool operator!=( ClearDepthStencilValue const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_videoSessionParametersKHR == VK_NULL_HANDLE; } - public: - float depth = {}; - uint32_t stencil = {}; + private: + VkVideoSessionParametersKHR m_videoSessionParametersKHR = {}; }; - static_assert( sizeof( ClearDepthStencilValue ) == sizeof( VkClearDepthStencilValue ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR ) == sizeof( VkVideoSessionParametersKHR ), + "handle and wrapper have different size!" ); - union ClearValue + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - ClearValue( VULKAN_HPP_NAMESPACE::ClearColorValue color_ = {} ) - { - color = color_; - } + using type = VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR; + }; - ClearValue( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil_ ) - { - depthStencil = depthStencil_; - } + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR; + }; - ClearValue & setColor( VULKAN_HPP_NAMESPACE::ClearColorValue color_ ) VULKAN_HPP_NOEXCEPT - { - color = color_; - return *this; - } + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + 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: + VULKAN_HPP_CONSTEXPR ImageView() = default; + VULKAN_HPP_CONSTEXPR ImageView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT ImageView( VkImageView imageView ) VULKAN_HPP_NOEXCEPT : m_imageView( imageView ) {} - ClearValue & setDepthStencil( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + ImageView & operator=( VkImageView imageView ) VULKAN_HPP_NOEXCEPT { - depthStencil = depthStencil_; + m_imageView = imageView; return *this; } +#endif - VULKAN_HPP_NAMESPACE::ClearValue & operator=( VULKAN_HPP_NAMESPACE::ClearValue const & rhs ) VULKAN_HPP_NOEXCEPT + ImageView & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - memcpy( this, &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearValue ) ); + m_imageView = {}; return *this; } - operator VkClearValue const&() const +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageView const & ) const = default; +#else + bool operator==( ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast(this); + return m_imageView == rhs.m_imageView; } - operator VkClearValue &() + bool operator!=( ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast(this); + return m_imageView != rhs.m_imageView; } -#ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS - VULKAN_HPP_NAMESPACE::ClearColorValue color; - VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil; -#else - VkClearColorValue color; - VkClearDepthStencilValue depthStencil; -#endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/ - }; - - struct ClearAttachment - { - ClearAttachment( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, - uint32_t colorAttachment_ = {}, - VULKAN_HPP_NAMESPACE::ClearValue clearValue_ = {} ) VULKAN_HPP_NOEXCEPT - : aspectMask( aspectMask_ ) - , colorAttachment( colorAttachment_ ) - , clearValue( clearValue_ ) - {} - - ClearAttachment( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT + bool operator<( ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT { - *this = rhs; + return m_imageView < rhs.m_imageView; } +#endif - ClearAttachment& operator=( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImageView() const VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return m_imageView; } - ClearAttachment & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - aspectMask = aspectMask_; - return *this; + return m_imageView != VK_NULL_HANDLE; } - ClearAttachment & setColorAttachment( uint32_t colorAttachment_ ) VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - colorAttachment = colorAttachment_; - return *this; + return m_imageView == VK_NULL_HANDLE; } - ClearAttachment & setClearValue( VULKAN_HPP_NAMESPACE::ClearValue clearValue_ ) VULKAN_HPP_NOEXCEPT - { - clearValue = clearValue_; - return *this; - } + private: + VkImageView m_imageView = {}; + }; + static_assert( sizeof( VULKAN_HPP_NAMESPACE::ImageView ) == sizeof( VkImageView ), + "handle and wrapper have different size!" ); - operator VkClearAttachment const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type + { + using type = VULKAN_HPP_NAMESPACE::ImageView; + }; - operator VkClearAttachment &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::ImageView; + }; - public: - VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; - uint32_t colorAttachment = {}; - VULKAN_HPP_NAMESPACE::ClearValue clearValue = {}; + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::ImageView; }; - static_assert( sizeof( ClearAttachment ) == sizeof( VkClearAttachment ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ClearRect + template <> + struct isVulkanHandleType { - VULKAN_HPP_CONSTEXPR ClearRect( VULKAN_HPP_NAMESPACE::Rect2D rect_ = {}, - uint32_t baseArrayLayer_ = {}, - uint32_t layerCount_ = {} ) VULKAN_HPP_NOEXCEPT - : rect( rect_ ) + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoPictureResourceKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoPictureResourceKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + VideoPictureResourceKHR( VULKAN_HPP_NAMESPACE::Offset2D codedOffset_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D codedExtent_ = {}, + uint32_t baseArrayLayer_ = {}, + VULKAN_HPP_NAMESPACE::ImageView imageViewBinding_ = {} ) VULKAN_HPP_NOEXCEPT + : codedOffset( codedOffset_ ) + , codedExtent( codedExtent_ ) , baseArrayLayer( baseArrayLayer_ ) - , layerCount( layerCount_ ) + , imageViewBinding( imageViewBinding_ ) + {} + + VULKAN_HPP_CONSTEXPR VideoPictureResourceKHR( VideoPictureResourceKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoPictureResourceKHR( VkVideoPictureResourceKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoPictureResourceKHR( *reinterpret_cast( &rhs ) ) {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoPictureResourceKHR & + operator=( VideoPictureResourceKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoPictureResourceKHR & operator=( VkVideoPictureResourceKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - ClearRect( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT + VideoPictureResourceKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - ClearRect& operator=( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT + VideoPictureResourceKHR & setCodedOffset( VULKAN_HPP_NAMESPACE::Offset2D const & codedOffset_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + codedOffset = codedOffset_; return *this; } - ClearRect & setRect( VULKAN_HPP_NAMESPACE::Rect2D rect_ ) VULKAN_HPP_NOEXCEPT + VideoPictureResourceKHR & setCodedExtent( VULKAN_HPP_NAMESPACE::Extent2D const & codedExtent_ ) VULKAN_HPP_NOEXCEPT { - rect = rect_; + codedExtent = codedExtent_; return *this; } - ClearRect & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT + VideoPictureResourceKHR & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT { baseArrayLayer = baseArrayLayer_; return *this; } - ClearRect & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT + VideoPictureResourceKHR & + setImageViewBinding( VULKAN_HPP_NAMESPACE::ImageView imageViewBinding_ ) VULKAN_HPP_NOEXCEPT { - layerCount = layerCount_; + imageViewBinding = imageViewBinding_; return *this; } - operator VkClearRect const&() const VULKAN_HPP_NOEXCEPT + operator VkVideoPictureResourceKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkClearRect &() VULKAN_HPP_NOEXCEPT + operator VkVideoPictureResourceKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ClearRect const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoPictureResourceKHR const & ) const = default; +# else + bool operator==( VideoPictureResourceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( rect == rhs.rect ) - && ( baseArrayLayer == rhs.baseArrayLayer ) - && ( layerCount == rhs.layerCount ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( codedOffset == rhs.codedOffset ) && + ( codedExtent == rhs.codedExtent ) && ( baseArrayLayer == rhs.baseArrayLayer ) && + ( imageViewBinding == rhs.imageViewBinding ); } - bool operator!=( ClearRect const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( VideoPictureResourceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - VULKAN_HPP_NAMESPACE::Rect2D rect = {}; - uint32_t baseArrayLayer = {}; - uint32_t layerCount = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoPictureResourceKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Offset2D codedOffset = {}; + VULKAN_HPP_NAMESPACE::Extent2D codedExtent = {}; + uint32_t baseArrayLayer = {}; + VULKAN_HPP_NAMESPACE::ImageView imageViewBinding = {}; }; - static_assert( sizeof( ClearRect ) == sizeof( VkClearRect ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VideoPictureResourceKHR ) == sizeof( VkVideoPictureResourceKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct IndirectCommandsTokenNVX + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR IndirectCommandsTokenNVX( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNVX tokenType_ = VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNVX::ePipeline, - VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {} ) VULKAN_HPP_NOEXCEPT - : tokenType( tokenType_ ) - , buffer( buffer_ ) - , offset( offset_ ) + using Type = VideoPictureResourceKHR; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoReferenceSlotKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoReferenceSlotKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoReferenceSlotKHR( + int8_t slotIndex_ = {}, + const VULKAN_HPP_NAMESPACE::VideoPictureResourceKHR * pPictureResource_ = {} ) VULKAN_HPP_NOEXCEPT + : slotIndex( slotIndex_ ) + , pPictureResource( pPictureResource_ ) {} - IndirectCommandsTokenNVX( VkIndirectCommandsTokenNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR VideoReferenceSlotKHR( VideoReferenceSlotKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoReferenceSlotKHR( VkVideoReferenceSlotKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoReferenceSlotKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoReferenceSlotKHR & + operator=( VideoReferenceSlotKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - IndirectCommandsTokenNVX& operator=( VkIndirectCommandsTokenNVX const & rhs ) VULKAN_HPP_NOEXCEPT + VideoReferenceSlotKHR & operator=( VkVideoReferenceSlotKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - IndirectCommandsTokenNVX & setTokenType( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNVX tokenType_ ) VULKAN_HPP_NOEXCEPT + VideoReferenceSlotKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - tokenType = tokenType_; + pNext = pNext_; return *this; } - IndirectCommandsTokenNVX & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT + VideoReferenceSlotKHR & setSlotIndex( int8_t slotIndex_ ) VULKAN_HPP_NOEXCEPT { - buffer = buffer_; + slotIndex = slotIndex_; return *this; } - IndirectCommandsTokenNVX & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT + VideoReferenceSlotKHR & + setPPictureResource( const VULKAN_HPP_NAMESPACE::VideoPictureResourceKHR * pPictureResource_ ) VULKAN_HPP_NOEXCEPT { - offset = offset_; + pPictureResource = pPictureResource_; return *this; } - operator VkIndirectCommandsTokenNVX const&() const VULKAN_HPP_NOEXCEPT + operator VkVideoReferenceSlotKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkIndirectCommandsTokenNVX &() VULKAN_HPP_NOEXCEPT + operator VkVideoReferenceSlotKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( IndirectCommandsTokenNVX const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoReferenceSlotKHR const & ) const = default; +# else + bool operator==( VideoReferenceSlotKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( tokenType == rhs.tokenType ) - && ( buffer == rhs.buffer ) - && ( offset == rhs.offset ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( slotIndex == rhs.slotIndex ) && + ( pPictureResource == rhs.pPictureResource ); } - bool operator!=( IndirectCommandsTokenNVX const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( VideoReferenceSlotKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNVX tokenType = VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNVX::ePipeline; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoReferenceSlotKHR; + const void * pNext = {}; + int8_t slotIndex = {}; + const VULKAN_HPP_NAMESPACE::VideoPictureResourceKHR * pPictureResource = {}; }; - static_assert( sizeof( IndirectCommandsTokenNVX ) == sizeof( VkIndirectCommandsTokenNVX ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct CmdProcessCommandsInfoNVX - { - VULKAN_HPP_CONSTEXPR CmdProcessCommandsInfoNVX( VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable_ = {}, - VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNVX indirectCommandsLayout_ = {}, - uint32_t indirectCommandsTokenCount_ = {}, - const VULKAN_HPP_NAMESPACE::IndirectCommandsTokenNVX* pIndirectCommandsTokens_ = {}, - uint32_t maxSequencesCount_ = {}, - VULKAN_HPP_NAMESPACE::CommandBuffer targetCommandBuffer_ = {}, - VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ = {}, - VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ = {} ) VULKAN_HPP_NOEXCEPT - : objectTable( objectTable_ ) - , indirectCommandsLayout( indirectCommandsLayout_ ) - , indirectCommandsTokenCount( indirectCommandsTokenCount_ ) - , pIndirectCommandsTokens( pIndirectCommandsTokens_ ) - , maxSequencesCount( maxSequencesCount_ ) - , targetCommandBuffer( targetCommandBuffer_ ) - , sequencesCountBuffer( sequencesCountBuffer_ ) - , sequencesCountOffset( sequencesCountOffset_ ) - , sequencesIndexBuffer( sequencesIndexBuffer_ ) - , sequencesIndexOffset( sequencesIndexOffset_ ) + static_assert( sizeof( VideoReferenceSlotKHR ) == sizeof( VkVideoReferenceSlotKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoReferenceSlotKHR; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoBeginCodingInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoBeginCodingInfoKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoBeginCodingInfoKHR( + VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagsKHR flags_ = {}, + VULKAN_HPP_NAMESPACE::VideoCodingQualityPresetFlagsKHR codecQualityPreset_ = {}, + VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession_ = {}, + VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters_ = {}, + uint32_t referenceSlotCount_ = {}, + const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pReferenceSlots_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , codecQualityPreset( codecQualityPreset_ ) + , videoSession( videoSession_ ) + , videoSessionParameters( videoSessionParameters_ ) + , referenceSlotCount( referenceSlotCount_ ) + , pReferenceSlots( pReferenceSlots_ ) {} - VULKAN_HPP_NAMESPACE::CmdProcessCommandsInfoNVX & operator=( VULKAN_HPP_NAMESPACE::CmdProcessCommandsInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::CmdProcessCommandsInfoNVX ) - offsetof( CmdProcessCommandsInfoNVX, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR VideoBeginCodingInfoKHR( VideoBeginCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - CmdProcessCommandsInfoNVX( VkCmdProcessCommandsInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VideoBeginCodingInfoKHR( VkVideoBeginCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoBeginCodingInfoKHR( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoBeginCodingInfoKHR( + VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagsKHR flags_, + VULKAN_HPP_NAMESPACE::VideoCodingQualityPresetFlagsKHR codecQualityPreset_, + VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession_, + VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + referenceSlots_ ) + : flags( flags_ ) + , codecQualityPreset( codecQualityPreset_ ) + , videoSession( videoSession_ ) + , videoSessionParameters( videoSessionParameters_ ) + , referenceSlotCount( static_cast( referenceSlots_.size() ) ) + , pReferenceSlots( referenceSlots_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - CmdProcessCommandsInfoNVX& operator=( VkCmdProcessCommandsInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 VideoBeginCodingInfoKHR & + operator=( VideoBeginCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoBeginCodingInfoKHR & operator=( VkVideoBeginCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - CmdProcessCommandsInfoNVX & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + VideoBeginCodingInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - CmdProcessCommandsInfoNVX & setObjectTable( VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable_ ) VULKAN_HPP_NOEXCEPT + VideoBeginCodingInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT { - objectTable = objectTable_; + flags = flags_; return *this; } - CmdProcessCommandsInfoNVX & setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNVX indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT + VideoBeginCodingInfoKHR & setCodecQualityPreset( + VULKAN_HPP_NAMESPACE::VideoCodingQualityPresetFlagsKHR codecQualityPreset_ ) VULKAN_HPP_NOEXCEPT { - indirectCommandsLayout = indirectCommandsLayout_; + codecQualityPreset = codecQualityPreset_; return *this; } - CmdProcessCommandsInfoNVX & setIndirectCommandsTokenCount( uint32_t indirectCommandsTokenCount_ ) VULKAN_HPP_NOEXCEPT + VideoBeginCodingInfoKHR & setVideoSession( VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession_ ) VULKAN_HPP_NOEXCEPT { - indirectCommandsTokenCount = indirectCommandsTokenCount_; + videoSession = videoSession_; return *this; } - CmdProcessCommandsInfoNVX & setPIndirectCommandsTokens( const VULKAN_HPP_NAMESPACE::IndirectCommandsTokenNVX* pIndirectCommandsTokens_ ) VULKAN_HPP_NOEXCEPT + VideoBeginCodingInfoKHR & setVideoSessionParameters( + VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters_ ) VULKAN_HPP_NOEXCEPT { - pIndirectCommandsTokens = pIndirectCommandsTokens_; + videoSessionParameters = videoSessionParameters_; return *this; } - CmdProcessCommandsInfoNVX & setMaxSequencesCount( uint32_t maxSequencesCount_ ) VULKAN_HPP_NOEXCEPT + VideoBeginCodingInfoKHR & setReferenceSlotCount( uint32_t referenceSlotCount_ ) VULKAN_HPP_NOEXCEPT { - maxSequencesCount = maxSequencesCount_; + referenceSlotCount = referenceSlotCount_; return *this; } - CmdProcessCommandsInfoNVX & setTargetCommandBuffer( VULKAN_HPP_NAMESPACE::CommandBuffer targetCommandBuffer_ ) VULKAN_HPP_NOEXCEPT + VideoBeginCodingInfoKHR & + setPReferenceSlots( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pReferenceSlots_ ) VULKAN_HPP_NOEXCEPT { - targetCommandBuffer = targetCommandBuffer_; + pReferenceSlots = pReferenceSlots_; return *this; } - CmdProcessCommandsInfoNVX & setSequencesCountBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ ) VULKAN_HPP_NOEXCEPT +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoBeginCodingInfoKHR & setReferenceSlots( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + referenceSlots_ ) VULKAN_HPP_NOEXCEPT { - sequencesCountBuffer = sequencesCountBuffer_; + referenceSlotCount = static_cast( referenceSlots_.size() ); + pReferenceSlots = referenceSlots_.data(); return *this; } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - CmdProcessCommandsInfoNVX & setSequencesCountOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ ) VULKAN_HPP_NOEXCEPT + operator VkVideoBeginCodingInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - sequencesCountOffset = sequencesCountOffset_; - return *this; + return *reinterpret_cast( this ); } - CmdProcessCommandsInfoNVX & setSequencesIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ ) VULKAN_HPP_NOEXCEPT + operator VkVideoBeginCodingInfoKHR &() VULKAN_HPP_NOEXCEPT { - sequencesIndexBuffer = sequencesIndexBuffer_; - return *this; + return *reinterpret_cast( this ); } - CmdProcessCommandsInfoNVX & setSequencesIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ ) VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoBeginCodingInfoKHR const & ) const = default; +# else + bool operator==( VideoBeginCodingInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - sequencesIndexOffset = sequencesIndexOffset_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( codecQualityPreset == rhs.codecQualityPreset ) && ( videoSession == rhs.videoSession ) && + ( videoSessionParameters == rhs.videoSessionParameters ) && + ( referenceSlotCount == rhs.referenceSlotCount ) && ( pReferenceSlots == rhs.pReferenceSlots ); } - operator VkCmdProcessCommandsInfoNVX const&() const VULKAN_HPP_NOEXCEPT + bool operator!=( VideoBeginCodingInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); - } - - operator VkCmdProcessCommandsInfoNVX &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( CmdProcessCommandsInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( objectTable == rhs.objectTable ) - && ( indirectCommandsLayout == rhs.indirectCommandsLayout ) - && ( indirectCommandsTokenCount == rhs.indirectCommandsTokenCount ) - && ( pIndirectCommandsTokens == rhs.pIndirectCommandsTokens ) - && ( maxSequencesCount == rhs.maxSequencesCount ) - && ( targetCommandBuffer == rhs.targetCommandBuffer ) - && ( sequencesCountBuffer == rhs.sequencesCountBuffer ) - && ( sequencesCountOffset == rhs.sequencesCountOffset ) - && ( sequencesIndexBuffer == rhs.sequencesIndexBuffer ) - && ( sequencesIndexOffset == rhs.sequencesIndexOffset ); - } - - bool operator!=( CmdProcessCommandsInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); + return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCmdProcessCommandsInfoNVX; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable = {}; - VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNVX indirectCommandsLayout = {}; - uint32_t indirectCommandsTokenCount = {}; - const VULKAN_HPP_NAMESPACE::IndirectCommandsTokenNVX* pIndirectCommandsTokens = {}; - uint32_t maxSequencesCount = {}; - VULKAN_HPP_NAMESPACE::CommandBuffer targetCommandBuffer = {}; - VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer = {}; - VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset = {}; - VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer = {}; - VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoBeginCodingInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::VideoBeginCodingFlagsKHR flags = {}; + VULKAN_HPP_NAMESPACE::VideoCodingQualityPresetFlagsKHR codecQualityPreset = {}; + VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession = {}; + VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters = {}; + uint32_t referenceSlotCount = {}; + const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pReferenceSlots = {}; }; - static_assert( sizeof( CmdProcessCommandsInfoNVX ) == sizeof( VkCmdProcessCommandsInfoNVX ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VideoBeginCodingInfoKHR ) == sizeof( VkVideoBeginCodingInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct CmdReserveSpaceForCommandsInfoNVX + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR CmdReserveSpaceForCommandsInfoNVX( VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable_ = {}, - VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNVX indirectCommandsLayout_ = {}, - uint32_t maxSequencesCount_ = {} ) VULKAN_HPP_NOEXCEPT - : objectTable( objectTable_ ) - , indirectCommandsLayout( indirectCommandsLayout_ ) - , maxSequencesCount( maxSequencesCount_ ) - {} + using Type = VideoBeginCodingInfoKHR; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - VULKAN_HPP_NAMESPACE::CmdReserveSpaceForCommandsInfoNVX & operator=( VULKAN_HPP_NAMESPACE::CmdReserveSpaceForCommandsInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::CmdReserveSpaceForCommandsInfoNVX ) - offsetof( CmdReserveSpaceForCommandsInfoNVX, pNext ) ); - return *this; - } + class PipelineLayout + { + public: + using CType = VkPipelineLayout; - CmdReserveSpaceForCommandsInfoNVX( VkCmdReserveSpaceForCommandsInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + 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; - CmdReserveSpaceForCommandsInfoNVX& operator=( VkCmdReserveSpaceForCommandsInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + public: + VULKAN_HPP_CONSTEXPR PipelineLayout() = default; + VULKAN_HPP_CONSTEXPR PipelineLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT PipelineLayout( VkPipelineLayout pipelineLayout ) VULKAN_HPP_NOEXCEPT + : m_pipelineLayout( pipelineLayout ) + {} - CmdReserveSpaceForCommandsInfoNVX & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + PipelineLayout & operator=( VkPipelineLayout pipelineLayout ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + m_pipelineLayout = pipelineLayout; return *this; } +#endif - CmdReserveSpaceForCommandsInfoNVX & setObjectTable( VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable_ ) VULKAN_HPP_NOEXCEPT + PipelineLayout & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - objectTable = objectTable_; + m_pipelineLayout = {}; return *this; } - CmdReserveSpaceForCommandsInfoNVX & setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNVX indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineLayout const & ) const = default; +#else + bool operator==( PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT { - indirectCommandsLayout = indirectCommandsLayout_; - return *this; + return m_pipelineLayout == rhs.m_pipelineLayout; } - CmdReserveSpaceForCommandsInfoNVX & setMaxSequencesCount( uint32_t maxSequencesCount_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT { - maxSequencesCount = maxSequencesCount_; - return *this; + return m_pipelineLayout != rhs.m_pipelineLayout; } - operator VkCmdReserveSpaceForCommandsInfoNVX const&() const VULKAN_HPP_NOEXCEPT + bool operator<( PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_pipelineLayout < rhs.m_pipelineLayout; } +#endif - operator VkCmdReserveSpaceForCommandsInfoNVX &() VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipelineLayout() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_pipelineLayout; } - bool operator==( CmdReserveSpaceForCommandsInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( objectTable == rhs.objectTable ) - && ( indirectCommandsLayout == rhs.indirectCommandsLayout ) - && ( maxSequencesCount == rhs.maxSequencesCount ); + return m_pipelineLayout != VK_NULL_HANDLE; } - bool operator!=( CmdReserveSpaceForCommandsInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_pipelineLayout == VK_NULL_HANDLE; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCmdReserveSpaceForCommandsInfoNVX; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable = {}; - VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNVX indirectCommandsLayout = {}; - uint32_t maxSequencesCount = {}; + private: + VkPipelineLayout m_pipelineLayout = {}; }; - static_assert( sizeof( CmdReserveSpaceForCommandsInfoNVX ) == sizeof( VkCmdReserveSpaceForCommandsInfoNVX ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::PipelineLayout ) == sizeof( VkPipelineLayout ), + "handle and wrapper have different size!" ); - struct CoarseSampleLocationNV + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - VULKAN_HPP_CONSTEXPR CoarseSampleLocationNV( uint32_t pixelX_ = {}, - uint32_t pixelY_ = {}, - uint32_t sample_ = {} ) VULKAN_HPP_NOEXCEPT - : pixelX( pixelX_ ) - , pixelY( pixelY_ ) - , sample( sample_ ) - {} + using type = VULKAN_HPP_NAMESPACE::PipelineLayout; + }; - CoarseSampleLocationNV( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::PipelineLayout; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::PipelineLayout; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + class DescriptorSet + { + public: + using CType = VkDescriptorSet; - CoarseSampleLocationNV& operator=( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT + 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: + VULKAN_HPP_CONSTEXPR DescriptorSet() = default; + VULKAN_HPP_CONSTEXPR DescriptorSet( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSet( VkDescriptorSet descriptorSet ) VULKAN_HPP_NOEXCEPT + : m_descriptorSet( descriptorSet ) + {} + +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + DescriptorSet & operator=( VkDescriptorSet descriptorSet ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + m_descriptorSet = descriptorSet; return *this; } +#endif - CoarseSampleLocationNV & setPixelX( uint32_t pixelX_ ) VULKAN_HPP_NOEXCEPT + DescriptorSet & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - pixelX = pixelX_; + m_descriptorSet = {}; return *this; } - CoarseSampleLocationNV & setPixelY( uint32_t pixelY_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DescriptorSet const & ) const = default; +#else + bool operator==( DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT { - pixelY = pixelY_; - return *this; + return m_descriptorSet == rhs.m_descriptorSet; } - CoarseSampleLocationNV & setSample( uint32_t sample_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT { - sample = sample_; - return *this; + return m_descriptorSet != rhs.m_descriptorSet; } - operator VkCoarseSampleLocationNV const&() const VULKAN_HPP_NOEXCEPT + bool operator<( DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_descriptorSet < rhs.m_descriptorSet; } +#endif - operator VkCoarseSampleLocationNV &() VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorSet() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_descriptorSet; } - bool operator==( CoarseSampleLocationNV const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return ( pixelX == rhs.pixelX ) - && ( pixelY == rhs.pixelY ) - && ( sample == rhs.sample ); + return m_descriptorSet != VK_NULL_HANDLE; } - bool operator!=( CoarseSampleLocationNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_descriptorSet == VK_NULL_HANDLE; } - public: - uint32_t pixelX = {}; - uint32_t pixelY = {}; - uint32_t sample = {}; + private: + VkDescriptorSet m_descriptorSet = {}; }; - static_assert( sizeof( CoarseSampleLocationNV ) == sizeof( VkCoarseSampleLocationNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorSet ) == sizeof( VkDescriptorSet ), + "handle and wrapper have different size!" ); - struct CoarseSampleOrderCustomNV + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - VULKAN_HPP_CONSTEXPR CoarseSampleOrderCustomNV( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_ = VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV::eNoInvocations, - uint32_t sampleCount_ = {}, - uint32_t sampleLocationCount_ = {}, - const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV* pSampleLocations_ = {} ) VULKAN_HPP_NOEXCEPT - : shadingRate( shadingRate_ ) - , sampleCount( sampleCount_ ) - , sampleLocationCount( sampleLocationCount_ ) - , pSampleLocations( pSampleLocations_ ) - {} + using type = VULKAN_HPP_NAMESPACE::DescriptorSet; + }; - CoarseSampleOrderCustomNV( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::DescriptorSet; + }; - CoarseSampleOrderCustomNV& operator=( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::DescriptorSet; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + 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: + VULKAN_HPP_CONSTEXPR Pipeline() = default; + VULKAN_HPP_CONSTEXPR Pipeline( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT Pipeline( VkPipeline pipeline ) VULKAN_HPP_NOEXCEPT : m_pipeline( pipeline ) {} - CoarseSampleOrderCustomNV & setShadingRate( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + Pipeline & operator=( VkPipeline pipeline ) VULKAN_HPP_NOEXCEPT { - shadingRate = shadingRate_; + m_pipeline = pipeline; return *this; } +#endif - CoarseSampleOrderCustomNV & setSampleCount( uint32_t sampleCount_ ) VULKAN_HPP_NOEXCEPT + Pipeline & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - sampleCount = sampleCount_; + m_pipeline = {}; return *this; } - CoarseSampleOrderCustomNV & setSampleLocationCount( uint32_t sampleLocationCount_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( Pipeline const & ) const = default; +#else + bool operator==( Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT { - sampleLocationCount = sampleLocationCount_; - return *this; + return m_pipeline == rhs.m_pipeline; } - CoarseSampleOrderCustomNV & setPSampleLocations( const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV* pSampleLocations_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT { - pSampleLocations = pSampleLocations_; - return *this; + return m_pipeline != rhs.m_pipeline; } - operator VkCoarseSampleOrderCustomNV const&() const VULKAN_HPP_NOEXCEPT + bool operator<( Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_pipeline < rhs.m_pipeline; } +#endif - operator VkCoarseSampleOrderCustomNV &() VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipeline() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_pipeline; } - bool operator==( CoarseSampleOrderCustomNV const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return ( shadingRate == rhs.shadingRate ) - && ( sampleCount == rhs.sampleCount ) - && ( sampleLocationCount == rhs.sampleLocationCount ) - && ( pSampleLocations == rhs.pSampleLocations ); + return m_pipeline != VK_NULL_HANDLE; } - bool operator!=( CoarseSampleOrderCustomNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_pipeline == VK_NULL_HANDLE; } - public: - VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate = VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV::eNoInvocations; - uint32_t sampleCount = {}; - uint32_t sampleLocationCount = {}; - const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV* pSampleLocations = {}; + private: + VkPipeline m_pipeline = {}; }; - static_assert( sizeof( CoarseSampleOrderCustomNV ) == sizeof( VkCoarseSampleOrderCustomNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::Pipeline ) == sizeof( VkPipeline ), + "handle and wrapper have different size!" ); - struct CommandBufferAllocateInfo + template <> + struct VULKAN_HPP_DEPRECATED( "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - VULKAN_HPP_CONSTEXPR CommandBufferAllocateInfo( VULKAN_HPP_NAMESPACE::CommandPool commandPool_ = {}, - VULKAN_HPP_NAMESPACE::CommandBufferLevel level_ = VULKAN_HPP_NAMESPACE::CommandBufferLevel::ePrimary, - uint32_t commandBufferCount_ = {} ) VULKAN_HPP_NOEXCEPT - : commandPool( commandPool_ ) - , level( level_ ) - , commandBufferCount( commandBufferCount_ ) + using type = VULKAN_HPP_NAMESPACE::Pipeline; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::Pipeline; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::Pipeline; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + struct ImageBlit + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 + ImageBlit( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, + std::array const & srcOffsets_ = {}, + VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, + std::array const & dstOffsets_ = {} ) VULKAN_HPP_NOEXCEPT + : srcSubresource( srcSubresource_ ) + , srcOffsets( srcOffsets_ ) + , dstSubresource( dstSubresource_ ) + , dstOffsets( dstOffsets_ ) {} - VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo & operator=( VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo ) - offsetof( CommandBufferAllocateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 ImageBlit( ImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT = default; - CommandBufferAllocateInfo( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ImageBlit( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT : ImageBlit( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - CommandBufferAllocateInfo& operator=( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 ImageBlit & operator=( ImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImageBlit & operator=( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - CommandBufferAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ImageBlit & + setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + srcSubresource = srcSubresource_; return *this; } - CommandBufferAllocateInfo & setCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool_ ) VULKAN_HPP_NOEXCEPT + ImageBlit & setSrcOffsets( std::array const & srcOffsets_ ) VULKAN_HPP_NOEXCEPT { - commandPool = commandPool_; + srcOffsets = srcOffsets_; return *this; } - CommandBufferAllocateInfo & setLevel( VULKAN_HPP_NAMESPACE::CommandBufferLevel level_ ) VULKAN_HPP_NOEXCEPT + ImageBlit & + setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT { - level = level_; + dstSubresource = dstSubresource_; return *this; } - CommandBufferAllocateInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT + ImageBlit & setDstOffsets( std::array const & dstOffsets_ ) VULKAN_HPP_NOEXCEPT { - commandBufferCount = commandBufferCount_; + dstOffsets = dstOffsets_; return *this; } - operator VkCommandBufferAllocateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkImageBlit const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkCommandBufferAllocateInfo &() VULKAN_HPP_NOEXCEPT + operator VkImageBlit &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( CommandBufferAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageBlit const & ) const = default; +#else + bool operator==( ImageBlit const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( commandPool == rhs.commandPool ) - && ( level == rhs.level ) - && ( commandBufferCount == rhs.commandBufferCount ); + return ( srcSubresource == rhs.srcSubresource ) && ( srcOffsets == rhs.srcOffsets ) && + ( dstSubresource == rhs.dstSubresource ) && ( dstOffsets == rhs.dstOffsets ); } - bool operator!=( CommandBufferAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageBlit const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferAllocateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::CommandPool commandPool = {}; - VULKAN_HPP_NAMESPACE::CommandBufferLevel level = VULKAN_HPP_NAMESPACE::CommandBufferLevel::ePrimary; - uint32_t commandBufferCount = {}; + VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D srcOffsets = {}; + VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D dstOffsets = {}; }; - static_assert( sizeof( CommandBufferAllocateInfo ) == sizeof( VkCommandBufferAllocateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageBlit ) == sizeof( VkImageBlit ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct CommandBufferInheritanceInfo + struct ImageSubresourceRange { - VULKAN_HPP_CONSTEXPR CommandBufferInheritanceInfo( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, - uint32_t subpass_ = {}, - VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable_ = {}, - VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags_ = {}, - VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ = {} ) VULKAN_HPP_NOEXCEPT - : renderPass( renderPass_ ) - , subpass( subpass_ ) - , framebuffer( framebuffer_ ) - , occlusionQueryEnable( occlusionQueryEnable_ ) - , queryFlags( queryFlags_ ) - , pipelineStatistics( pipelineStatistics_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ImageSubresourceRange( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, + uint32_t baseMipLevel_ = {}, + uint32_t levelCount_ = {}, + uint32_t baseArrayLayer_ = {}, + uint32_t layerCount_ = {} ) VULKAN_HPP_NOEXCEPT + : aspectMask( aspectMask_ ) + , baseMipLevel( baseMipLevel_ ) + , levelCount( levelCount_ ) + , baseArrayLayer( baseArrayLayer_ ) + , layerCount( layerCount_ ) {} - VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo & operator=( VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo ) - offsetof( CommandBufferInheritanceInfo, pNext ) ); - return *this; - } - - CommandBufferInheritanceInfo( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR ImageSubresourceRange( ImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT = default; - CommandBufferInheritanceInfo& operator=( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + ImageSubresourceRange( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageSubresourceRange( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - CommandBufferInheritanceInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 ImageSubresourceRange & + operator=( ImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT = default; - CommandBufferInheritanceInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT + ImageSubresourceRange & operator=( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT { - renderPass = renderPass_; + *this = *reinterpret_cast( &rhs ); return *this; } - CommandBufferInheritanceInfo & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT + ImageSubresourceRange & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT { - subpass = subpass_; + aspectMask = aspectMask_; return *this; } - CommandBufferInheritanceInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT + ImageSubresourceRange & setBaseMipLevel( uint32_t baseMipLevel_ ) VULKAN_HPP_NOEXCEPT { - framebuffer = framebuffer_; + baseMipLevel = baseMipLevel_; return *this; } - CommandBufferInheritanceInfo & setOcclusionQueryEnable( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable_ ) VULKAN_HPP_NOEXCEPT + ImageSubresourceRange & setLevelCount( uint32_t levelCount_ ) VULKAN_HPP_NOEXCEPT { - occlusionQueryEnable = occlusionQueryEnable_; + levelCount = levelCount_; return *this; } - CommandBufferInheritanceInfo & setQueryFlags( VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags_ ) VULKAN_HPP_NOEXCEPT + ImageSubresourceRange & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT { - queryFlags = queryFlags_; + baseArrayLayer = baseArrayLayer_; return *this; } - CommandBufferInheritanceInfo & setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT + ImageSubresourceRange & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT { - pipelineStatistics = pipelineStatistics_; + layerCount = layerCount_; return *this; } - operator VkCommandBufferInheritanceInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkImageSubresourceRange const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkCommandBufferInheritanceInfo &() VULKAN_HPP_NOEXCEPT + operator VkImageSubresourceRange &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( CommandBufferInheritanceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageSubresourceRange const & ) const = default; +#else + bool operator==( ImageSubresourceRange const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( renderPass == rhs.renderPass ) - && ( subpass == rhs.subpass ) - && ( framebuffer == rhs.framebuffer ) - && ( occlusionQueryEnable == rhs.occlusionQueryEnable ) - && ( queryFlags == rhs.queryFlags ) - && ( pipelineStatistics == rhs.pipelineStatistics ); + return ( aspectMask == rhs.aspectMask ) && ( baseMipLevel == rhs.baseMipLevel ) && + ( levelCount == rhs.levelCount ) && ( baseArrayLayer == rhs.baseArrayLayer ) && + ( layerCount == rhs.layerCount ); } - bool operator!=( CommandBufferInheritanceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageSubresourceRange const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::RenderPass renderPass = {}; - uint32_t subpass = {}; - VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {}; - VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable = {}; - VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags = {}; - VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {}; + VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; + uint32_t baseMipLevel = {}; + uint32_t levelCount = {}; + uint32_t baseArrayLayer = {}; + uint32_t layerCount = {}; }; - static_assert( sizeof( CommandBufferInheritanceInfo ) == sizeof( VkCommandBufferInheritanceInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageSubresourceRange ) == sizeof( VkImageSubresourceRange ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct CommandBufferBeginInfo +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoCodingControlInfoKHR { - VULKAN_HPP_CONSTEXPR CommandBufferBeginInfo( VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ = {}, - const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo_ = {} ) VULKAN_HPP_NOEXCEPT + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoCodingControlInfoKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + VideoCodingControlInfoKHR( VULKAN_HPP_NAMESPACE::VideoCodingControlFlagsKHR flags_ = {} ) VULKAN_HPP_NOEXCEPT : flags( flags_ ) - , pInheritanceInfo( pInheritanceInfo_ ) {} - VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo & operator=( VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo ) - offsetof( CommandBufferBeginInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + VideoCodingControlInfoKHR( VideoCodingControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - CommandBufferBeginInfo( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VideoCodingControlInfoKHR( VkVideoCodingControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoCodingControlInfoKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoCodingControlInfoKHR & + operator=( VideoCodingControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - CommandBufferBeginInfo& operator=( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VideoCodingControlInfoKHR & operator=( VkVideoCodingControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - CommandBufferBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + VideoCodingControlInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - CommandBufferBeginInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ ) VULKAN_HPP_NOEXCEPT + VideoCodingControlInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoCodingControlFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT { flags = flags_; return *this; } - CommandBufferBeginInfo & setPInheritanceInfo( const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo_ ) VULKAN_HPP_NOEXCEPT - { - pInheritanceInfo = pInheritanceInfo_; - return *this; - } - - operator VkCommandBufferBeginInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkVideoCodingControlInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT + operator VkVideoCodingControlInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( CommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoCodingControlInfoKHR const & ) const = default; +# else + bool operator==( VideoCodingControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pInheritanceInfo == rhs.pInheritanceInfo ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ); } - bool operator!=( CommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( VideoCodingControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferBeginInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags = {}; - const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoCodingControlInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::VideoCodingControlFlagsKHR flags = {}; }; - static_assert( sizeof( CommandBufferBeginInfo ) == sizeof( VkCommandBufferBeginInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VideoCodingControlInfoKHR ) == sizeof( VkVideoCodingControlInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct CommandBufferInheritanceConditionalRenderingInfoEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR CommandBufferInheritanceConditionalRenderingInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ = {} ) VULKAN_HPP_NOEXCEPT - : conditionalRenderingEnable( conditionalRenderingEnable_ ) + using Type = VideoCodingControlInfoKHR; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + struct CopyAccelerationStructureInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyAccelerationStructureInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR CopyAccelerationStructureInfoKHR( + VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ = {}, + VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ = {}, + VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = + VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone ) VULKAN_HPP_NOEXCEPT + : src( src_ ) + , dst( dst_ ) + , mode( mode_ ) + {} + + VULKAN_HPP_CONSTEXPR + CopyAccelerationStructureInfoKHR( CopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + CopyAccelerationStructureInfoKHR( VkCopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : CopyAccelerationStructureInfoKHR( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 CopyAccelerationStructureInfoKHR & + operator=( CopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT & operator=( VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + CopyAccelerationStructureInfoKHR & operator=( VkCopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT ) - offsetof( CommandBufferInheritanceConditionalRenderingInfoEXT, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - CommandBufferInheritanceConditionalRenderingInfoEXT( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + CopyAccelerationStructureInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - CommandBufferInheritanceConditionalRenderingInfoEXT& operator=( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + CopyAccelerationStructureInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + src = src_; return *this; } - CommandBufferInheritanceConditionalRenderingInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + CopyAccelerationStructureInfoKHR & setDst( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + dst = dst_; return *this; } - CommandBufferInheritanceConditionalRenderingInfoEXT & setConditionalRenderingEnable( VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ ) VULKAN_HPP_NOEXCEPT + CopyAccelerationStructureInfoKHR & + setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT { - conditionalRenderingEnable = conditionalRenderingEnable_; + mode = mode_; return *this; } - operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkCopyAccelerationStructureInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkCommandBufferInheritanceConditionalRenderingInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkCopyAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( CommandBufferInheritanceConditionalRenderingInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CopyAccelerationStructureInfoKHR const & ) const = default; +#else + bool operator==( CopyAccelerationStructureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( conditionalRenderingEnable == rhs.conditionalRenderingEnable ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( src == rhs.src ) && ( dst == rhs.dst ) && + ( mode == rhs.mode ); } - bool operator!=( CommandBufferInheritanceConditionalRenderingInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( CopyAccelerationStructureInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyAccelerationStructureInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src = {}; + VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst = {}; + VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = + VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone; }; - static_assert( sizeof( CommandBufferInheritanceConditionalRenderingInfoEXT ) == sizeof( VkCommandBufferInheritanceConditionalRenderingInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( CopyAccelerationStructureInfoKHR ) == sizeof( VkCopyAccelerationStructureInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct CommandPoolCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR CommandPoolCreateInfo( VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ = {}, - uint32_t queueFamilyIndex_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , queueFamilyIndex( queueFamilyIndex_ ) + using Type = CopyAccelerationStructureInfoKHR; + }; + + struct CopyAccelerationStructureToMemoryInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eCopyAccelerationStructureToMemoryInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + CopyAccelerationStructureToMemoryInfoKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ = {}, + VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst_ = {}, + VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = + VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone ) + VULKAN_HPP_NOEXCEPT + : src( src_ ) + , dst( dst_ ) + , mode( mode_ ) {} - VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo & operator=( VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo ) - offsetof( CommandPoolCreateInfo, pNext ) ); - return *this; - } + CopyAccelerationStructureToMemoryInfoKHR( CopyAccelerationStructureToMemoryInfoKHR const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - CommandPoolCreateInfo( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + CopyAccelerationStructureToMemoryInfoKHR( VkCopyAccelerationStructureToMemoryInfoKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + : CopyAccelerationStructureToMemoryInfoKHR( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - CommandPoolCreateInfo& operator=( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + CopyAccelerationStructureToMemoryInfoKHR & + operator=( CopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + CopyAccelerationStructureToMemoryInfoKHR & + operator=( VkCopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - CommandPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + CopyAccelerationStructureToMemoryInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - CommandPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + CopyAccelerationStructureToMemoryInfoKHR & + setSrc( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + src = src_; return *this; } - CommandPoolCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT + CopyAccelerationStructureToMemoryInfoKHR & + setDst( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & dst_ ) VULKAN_HPP_NOEXCEPT { - queueFamilyIndex = queueFamilyIndex_; + dst = dst_; return *this; } - operator VkCommandPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCommandPoolCreateInfo &() VULKAN_HPP_NOEXCEPT + CopyAccelerationStructureToMemoryInfoKHR & + setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + mode = mode_; + return *this; } - bool operator==( CommandPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkCopyAccelerationStructureToMemoryInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( queueFamilyIndex == rhs.queueFamilyIndex ); + return *reinterpret_cast( this ); } - bool operator!=( CommandPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkCopyAccelerationStructureToMemoryInfoKHR &() VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return *reinterpret_cast( this ); } public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandPoolCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags = {}; - uint32_t queueFamilyIndex = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyAccelerationStructureToMemoryInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src = {}; + VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst = {}; + VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = + VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone; }; - static_assert( sizeof( CommandPoolCreateInfo ) == sizeof( VkCommandPoolCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( CopyAccelerationStructureToMemoryInfoKHR ) == + sizeof( VkCopyAccelerationStructureToMemoryInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SpecializationMapEntry + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SpecializationMapEntry( uint32_t constantID_ = {}, - uint32_t offset_ = {}, - size_t size_ = {} ) VULKAN_HPP_NOEXCEPT - : constantID( constantID_ ) - , offset( offset_ ) - , size( size_ ) + using Type = CopyAccelerationStructureToMemoryInfoKHR; + }; + + struct CopyBufferInfo2KHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyBufferInfo2KHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + CopyBufferInfo2KHR( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ = {}, + VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ = {}, + uint32_t regionCount_ = {}, + const VULKAN_HPP_NAMESPACE::BufferCopy2KHR * pRegions_ = {} ) VULKAN_HPP_NOEXCEPT + : srcBuffer( srcBuffer_ ) + , dstBuffer( dstBuffer_ ) + , regionCount( regionCount_ ) + , pRegions( pRegions_ ) {} - SpecializationMapEntry( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR CopyBufferInfo2KHR( CopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + CopyBufferInfo2KHR( VkCopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : CopyBufferInfo2KHR( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + CopyBufferInfo2KHR( + VULKAN_HPP_NAMESPACE::Buffer srcBuffer_, + VULKAN_HPP_NAMESPACE::Buffer dstBuffer_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) + : srcBuffer( srcBuffer_ ) + , dstBuffer( dstBuffer_ ) + , regionCount( static_cast( regions_.size() ) ) + , pRegions( regions_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 CopyBufferInfo2KHR & + operator=( CopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + CopyBufferInfo2KHR & operator=( VkCopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + CopyBufferInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - SpecializationMapEntry& operator=( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT + CopyBufferInfo2KHR & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + srcBuffer = srcBuffer_; return *this; } - SpecializationMapEntry & setConstantID( uint32_t constantID_ ) VULKAN_HPP_NOEXCEPT + CopyBufferInfo2KHR & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT { - constantID = constantID_; + dstBuffer = dstBuffer_; return *this; } - SpecializationMapEntry & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT + CopyBufferInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT { - offset = offset_; + regionCount = regionCount_; return *this; } - SpecializationMapEntry & setSize( size_t size_ ) VULKAN_HPP_NOEXCEPT + CopyBufferInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::BufferCopy2KHR * pRegions_ ) VULKAN_HPP_NOEXCEPT { - size = size_; + pRegions = pRegions_; return *this; } - operator VkSpecializationMapEntry const&() const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + CopyBufferInfo2KHR & setRegions( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) + VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + regionCount = static_cast( regions_.size() ); + pRegions = regions_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkSpecializationMapEntry &() VULKAN_HPP_NOEXCEPT + operator VkCopyBufferInfo2KHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkCopyBufferInfo2KHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SpecializationMapEntry const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CopyBufferInfo2KHR const & ) const = default; +#else + bool operator==( CopyBufferInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( constantID == rhs.constantID ) - && ( offset == rhs.offset ) - && ( size == rhs.size ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcBuffer == rhs.srcBuffer ) && + ( dstBuffer == rhs.dstBuffer ) && ( regionCount == rhs.regionCount ) && ( pRegions == rhs.pRegions ); } - bool operator!=( SpecializationMapEntry const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( CopyBufferInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint32_t constantID = {}; - uint32_t offset = {}; - size_t size = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyBufferInfo2KHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {}; + VULKAN_HPP_NAMESPACE::Buffer dstBuffer = {}; + uint32_t regionCount = {}; + const VULKAN_HPP_NAMESPACE::BufferCopy2KHR * pRegions = {}; }; - static_assert( sizeof( SpecializationMapEntry ) == sizeof( VkSpecializationMapEntry ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( CopyBufferInfo2KHR ) == sizeof( VkCopyBufferInfo2KHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct SpecializationInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SpecializationInfo( uint32_t mapEntryCount_ = {}, - const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries_ = {}, - size_t dataSize_ = {}, - const void* pData_ = {} ) VULKAN_HPP_NOEXCEPT - : mapEntryCount( mapEntryCount_ ) - , pMapEntries( pMapEntries_ ) - , dataSize( dataSize_ ) - , pData( pData_ ) + using Type = CopyBufferInfo2KHR; + }; + + struct CopyBufferToImageInfo2KHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyBufferToImageInfo2KHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR CopyBufferToImageInfo2KHR( + VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ = {}, + VULKAN_HPP_NAMESPACE::Image dstImage_ = {}, + VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, + uint32_t regionCount_ = {}, + const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR * pRegions_ = {} ) VULKAN_HPP_NOEXCEPT + : srcBuffer( srcBuffer_ ) + , dstImage( dstImage_ ) + , dstImageLayout( dstImageLayout_ ) + , regionCount( regionCount_ ) + , pRegions( pRegions_ ) {} - SpecializationInfo( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR + CopyBufferToImageInfo2KHR( CopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + CopyBufferToImageInfo2KHR( VkCopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : CopyBufferToImageInfo2KHR( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + CopyBufferToImageInfo2KHR( + VULKAN_HPP_NAMESPACE::Buffer srcBuffer_, + VULKAN_HPP_NAMESPACE::Image dstImage_, + VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) + : srcBuffer( srcBuffer_ ) + , dstImage( dstImage_ ) + , dstImageLayout( dstImageLayout_ ) + , regionCount( static_cast( regions_.size() ) ) + , pRegions( regions_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 CopyBufferToImageInfo2KHR & + operator=( CopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + CopyBufferToImageInfo2KHR & operator=( VkCopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - SpecializationInfo& operator=( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT + CopyBufferToImageInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - SpecializationInfo & setMapEntryCount( uint32_t mapEntryCount_ ) VULKAN_HPP_NOEXCEPT + CopyBufferToImageInfo2KHR & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT { - mapEntryCount = mapEntryCount_; + srcBuffer = srcBuffer_; return *this; } - SpecializationInfo & setPMapEntries( const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries_ ) VULKAN_HPP_NOEXCEPT + CopyBufferToImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT { - pMapEntries = pMapEntries_; + dstImage = dstImage_; return *this; } - SpecializationInfo & setDataSize( size_t dataSize_ ) VULKAN_HPP_NOEXCEPT + CopyBufferToImageInfo2KHR & + setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT { - dataSize = dataSize_; + dstImageLayout = dstImageLayout_; return *this; } - SpecializationInfo & setPData( const void* pData_ ) VULKAN_HPP_NOEXCEPT + CopyBufferToImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT { - pData = pData_; + regionCount = regionCount_; + return *this; + } + + CopyBufferToImageInfo2KHR & + setPRegions( const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR * pRegions_ ) VULKAN_HPP_NOEXCEPT + { + pRegions = pRegions_; return *this; } - operator VkSpecializationInfo const&() const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + CopyBufferToImageInfo2KHR & setRegions( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) + VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + regionCount = static_cast( regions_.size() ); + pRegions = regions_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkSpecializationInfo &() VULKAN_HPP_NOEXCEPT + operator VkCopyBufferToImageInfo2KHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkCopyBufferToImageInfo2KHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SpecializationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CopyBufferToImageInfo2KHR const & ) const = default; +#else + bool operator==( CopyBufferToImageInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( mapEntryCount == rhs.mapEntryCount ) - && ( pMapEntries == rhs.pMapEntries ) - && ( dataSize == rhs.dataSize ) - && ( pData == rhs.pData ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcBuffer == rhs.srcBuffer ) && + ( dstImage == rhs.dstImage ) && ( dstImageLayout == rhs.dstImageLayout ) && + ( regionCount == rhs.regionCount ) && ( pRegions == rhs.pRegions ); } - bool operator!=( SpecializationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( CopyBufferToImageInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint32_t mapEntryCount = {}; - const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries = {}; - size_t dataSize = {}; - const void* pData = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyBufferToImageInfo2KHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {}; + VULKAN_HPP_NAMESPACE::Image dstImage = {}; + VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + uint32_t regionCount = {}; + const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR * pRegions = {}; }; - static_assert( sizeof( SpecializationInfo ) == sizeof( VkSpecializationInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( CopyBufferToImageInfo2KHR ) == sizeof( VkCopyBufferToImageInfo2KHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineShaderStageCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateInfo( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex, - VULKAN_HPP_NAMESPACE::ShaderModule module_ = {}, - const char* pName_ = {}, - const VULKAN_HPP_NAMESPACE::SpecializationInfo* pSpecializationInfo_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , stage( stage_ ) - , module( module_ ) - , pName( pName_ ) - , pSpecializationInfo( pSpecializationInfo_ ) + using Type = CopyBufferToImageInfo2KHR; + }; + + struct ImageCopy + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ImageCopy( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, + VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {}, + VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, + VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {}, + VULKAN_HPP_NAMESPACE::Extent3D extent_ = {} ) VULKAN_HPP_NOEXCEPT + : srcSubresource( srcSubresource_ ) + , srcOffset( srcOffset_ ) + , dstSubresource( dstSubresource_ ) + , dstOffset( dstOffset_ ) + , extent( extent_ ) {} - VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo & operator=( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo ) - offsetof( PipelineShaderStageCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR ImageCopy( ImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineShaderStageCreateInfo( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ImageCopy( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT : ImageCopy( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PipelineShaderStageCreateInfo& operator=( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 ImageCopy & operator=( ImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineShaderStageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ImageCopy & operator=( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineShaderStageCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + ImageCopy & + setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + srcSubresource = srcSubresource_; return *this; } - PipelineShaderStageCreateInfo & setStage( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ ) VULKAN_HPP_NOEXCEPT + ImageCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT { - stage = stage_; + srcOffset = srcOffset_; return *this; } - PipelineShaderStageCreateInfo & setModule( VULKAN_HPP_NAMESPACE::ShaderModule module_ ) VULKAN_HPP_NOEXCEPT + ImageCopy & + setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT { - module = module_; + dstSubresource = dstSubresource_; return *this; } - PipelineShaderStageCreateInfo & setPName( const char* pName_ ) VULKAN_HPP_NOEXCEPT + ImageCopy & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT { - pName = pName_; + dstOffset = dstOffset_; return *this; } - PipelineShaderStageCreateInfo & setPSpecializationInfo( const VULKAN_HPP_NAMESPACE::SpecializationInfo* pSpecializationInfo_ ) VULKAN_HPP_NOEXCEPT + ImageCopy & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT { - pSpecializationInfo = pSpecializationInfo_; + extent = extent_; return *this; } - operator VkPipelineShaderStageCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkImageCopy const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineShaderStageCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkImageCopy &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineShaderStageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageCopy const & ) const = default; +#else + bool operator==( ImageCopy const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( stage == rhs.stage ) - && ( module == rhs.module ) - && ( pName == rhs.pName ) - && ( pSpecializationInfo == rhs.pSpecializationInfo ); + return ( srcSubresource == rhs.srcSubresource ) && ( srcOffset == rhs.srcOffset ) && + ( dstSubresource == rhs.dstSubresource ) && ( dstOffset == rhs.dstOffset ) && ( extent == rhs.extent ); } - bool operator!=( PipelineShaderStageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageCopy const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex; - VULKAN_HPP_NAMESPACE::ShaderModule module = {}; - const char* pName = {}; - const VULKAN_HPP_NAMESPACE::SpecializationInfo* pSpecializationInfo = {}; + VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {}; + VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {}; + VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {}; + VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {}; + VULKAN_HPP_NAMESPACE::Extent3D extent = {}; }; - static_assert( sizeof( PipelineShaderStageCreateInfo ) == sizeof( VkPipelineShaderStageCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageCopy ) == sizeof( VkImageCopy ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ComputePipelineCreateInfo + struct ImageCopy2KHR { - VULKAN_HPP_CONSTEXPR ComputePipelineCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo stage_ = {}, - VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, - VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, - int32_t basePipelineIndex_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , stage( stage_ ) - , layout( layout_ ) - , basePipelineHandle( basePipelineHandle_ ) - , basePipelineIndex( basePipelineIndex_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCopy2KHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ImageCopy2KHR( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, + VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {}, + VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, + VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {}, + VULKAN_HPP_NAMESPACE::Extent3D extent_ = {} ) VULKAN_HPP_NOEXCEPT + : srcSubresource( srcSubresource_ ) + , srcOffset( srcOffset_ ) + , dstSubresource( dstSubresource_ ) + , dstOffset( dstOffset_ ) + , extent( extent_ ) {} - VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & operator=( VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo ) - offsetof( ComputePipelineCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR ImageCopy2KHR( ImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ComputePipelineCreateInfo( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ImageCopy2KHR( VkImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageCopy2KHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ComputePipelineCreateInfo& operator=( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 ImageCopy2KHR & operator=( ImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImageCopy2KHR & operator=( VkImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - ComputePipelineCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ImageCopy2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - ComputePipelineCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + ImageCopy2KHR & + setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + srcSubresource = srcSubresource_; return *this; } - ComputePipelineCreateInfo & setStage( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo stage_ ) VULKAN_HPP_NOEXCEPT + ImageCopy2KHR & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT { - stage = stage_; + srcOffset = srcOffset_; return *this; } - ComputePipelineCreateInfo & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT + ImageCopy2KHR & + setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT { - layout = layout_; + dstSubresource = dstSubresource_; return *this; } - ComputePipelineCreateInfo & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT + ImageCopy2KHR & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT { - basePipelineHandle = basePipelineHandle_; + dstOffset = dstOffset_; return *this; } - ComputePipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT + ImageCopy2KHR & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT { - basePipelineIndex = basePipelineIndex_; + extent = extent_; return *this; } - operator VkComputePipelineCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkImageCopy2KHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkComputePipelineCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkImageCopy2KHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ComputePipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageCopy2KHR const & ) const = default; +#else + bool operator==( ImageCopy2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( stage == rhs.stage ) - && ( layout == rhs.layout ) - && ( basePipelineHandle == rhs.basePipelineHandle ) - && ( basePipelineIndex == rhs.basePipelineIndex ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcSubresource == rhs.srcSubresource ) && + ( srcOffset == rhs.srcOffset ) && ( dstSubresource == rhs.dstSubresource ) && + ( dstOffset == rhs.dstOffset ) && ( extent == rhs.extent ); } - bool operator!=( ComputePipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageCopy2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eComputePipelineCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo stage = {}; - VULKAN_HPP_NAMESPACE::PipelineLayout layout = {}; - VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {}; - int32_t basePipelineIndex = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCopy2KHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {}; + VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {}; + VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {}; + VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {}; + VULKAN_HPP_NAMESPACE::Extent3D extent = {}; }; - static_assert( sizeof( ComputePipelineCreateInfo ) == sizeof( VkComputePipelineCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageCopy2KHR ) == sizeof( VkImageCopy2KHR ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ConditionalRenderingBeginInfoEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ConditionalRenderingBeginInfoEXT( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, - VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ = {} ) VULKAN_HPP_NOEXCEPT - : buffer( buffer_ ) - , offset( offset_ ) - , flags( flags_ ) + using Type = ImageCopy2KHR; + }; + + struct CopyImageInfo2KHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageInfo2KHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR CopyImageInfo2KHR( + VULKAN_HPP_NAMESPACE::Image srcImage_ = {}, + VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, + VULKAN_HPP_NAMESPACE::Image dstImage_ = {}, + VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, + uint32_t regionCount_ = {}, + const VULKAN_HPP_NAMESPACE::ImageCopy2KHR * pRegions_ = {} ) VULKAN_HPP_NOEXCEPT + : srcImage( srcImage_ ) + , srcImageLayout( srcImageLayout_ ) + , dstImage( dstImage_ ) + , dstImageLayout( dstImageLayout_ ) + , regionCount( regionCount_ ) + , pRegions( pRegions_ ) {} - VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT & operator=( VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT ) - offsetof( ConditionalRenderingBeginInfoEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR CopyImageInfo2KHR( CopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ConditionalRenderingBeginInfoEXT( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + CopyImageInfo2KHR( VkCopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : CopyImageInfo2KHR( *reinterpret_cast( &rhs ) ) + {} - ConditionalRenderingBeginInfoEXT& operator=( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + CopyImageInfo2KHR( + VULKAN_HPP_NAMESPACE::Image srcImage_, + VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_, + VULKAN_HPP_NAMESPACE::Image dstImage_, + VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) + : srcImage( srcImage_ ) + , srcImageLayout( srcImageLayout_ ) + , dstImage( dstImage_ ) + , dstImageLayout( dstImageLayout_ ) + , regionCount( static_cast( regions_.size() ) ) + , pRegions( regions_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ConditionalRenderingBeginInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 CopyImageInfo2KHR & + operator=( CopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ConditionalRenderingBeginInfoEXT & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT + CopyImageInfo2KHR & operator=( VkCopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT { - buffer = buffer_; + *this = *reinterpret_cast( &rhs ); return *this; } - ConditionalRenderingBeginInfoEXT & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT + CopyImageInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - offset = offset_; + pNext = pNext_; return *this; } - ConditionalRenderingBeginInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT + CopyImageInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + srcImage = srcImage_; return *this; } - operator VkConditionalRenderingBeginInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkConditionalRenderingBeginInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( ConditionalRenderingBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( buffer == rhs.buffer ) - && ( offset == rhs.offset ) - && ( flags == rhs.flags ); - } - - bool operator!=( ConditionalRenderingBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eConditionalRenderingBeginInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags = {}; - }; - static_assert( sizeof( ConditionalRenderingBeginInfoEXT ) == sizeof( VkConditionalRenderingBeginInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ConformanceVersion - { - VULKAN_HPP_CONSTEXPR ConformanceVersion( uint8_t major_ = {}, - uint8_t minor_ = {}, - uint8_t subminor_ = {}, - uint8_t patch_ = {} ) VULKAN_HPP_NOEXCEPT - : major( major_ ) - , minor( minor_ ) - , subminor( subminor_ ) - , patch( patch_ ) - {} - - ConformanceVersion( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT + CopyImageInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + srcImageLayout = srcImageLayout_; + return *this; } - ConformanceVersion& operator=( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT + CopyImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + dstImage = dstImage_; return *this; } - ConformanceVersion & setMajor( uint8_t major_ ) VULKAN_HPP_NOEXCEPT + CopyImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT { - major = major_; + dstImageLayout = dstImageLayout_; return *this; } - ConformanceVersion & setMinor( uint8_t minor_ ) VULKAN_HPP_NOEXCEPT + CopyImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT { - minor = minor_; + regionCount = regionCount_; return *this; } - ConformanceVersion & setSubminor( uint8_t subminor_ ) VULKAN_HPP_NOEXCEPT + CopyImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::ImageCopy2KHR * pRegions_ ) VULKAN_HPP_NOEXCEPT { - subminor = subminor_; + pRegions = pRegions_; return *this; } - ConformanceVersion & setPatch( uint8_t patch_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + CopyImageInfo2KHR & setRegions( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) + VULKAN_HPP_NOEXCEPT { - patch = patch_; + regionCount = static_cast( regions_.size() ); + pRegions = regions_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkConformanceVersion const&() const VULKAN_HPP_NOEXCEPT + operator VkCopyImageInfo2KHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkConformanceVersion &() VULKAN_HPP_NOEXCEPT + operator VkCopyImageInfo2KHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ConformanceVersion const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CopyImageInfo2KHR const & ) const = default; +#else + bool operator==( CopyImageInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( major == rhs.major ) - && ( minor == rhs.minor ) - && ( subminor == rhs.subminor ) - && ( patch == rhs.patch ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcImage == rhs.srcImage ) && + ( srcImageLayout == rhs.srcImageLayout ) && ( dstImage == rhs.dstImage ) && + ( dstImageLayout == rhs.dstImageLayout ) && ( regionCount == rhs.regionCount ) && + ( pRegions == rhs.pRegions ); } - bool operator!=( ConformanceVersion const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( CopyImageInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint8_t major = {}; - uint8_t minor = {}; - uint8_t subminor = {}; - uint8_t patch = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageInfo2KHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Image srcImage = {}; + VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + VULKAN_HPP_NAMESPACE::Image dstImage = {}; + VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + uint32_t regionCount = {}; + const VULKAN_HPP_NAMESPACE::ImageCopy2KHR * pRegions = {}; }; - static_assert( sizeof( ConformanceVersion ) == sizeof( VkConformanceVersion ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( CopyImageInfo2KHR ) == sizeof( VkCopyImageInfo2KHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct CooperativeMatrixPropertiesNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesNV( uint32_t MSize_ = {}, - uint32_t NSize_ = {}, - uint32_t KSize_ = {}, - VULKAN_HPP_NAMESPACE::ComponentTypeNV AType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16, - VULKAN_HPP_NAMESPACE::ComponentTypeNV BType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16, - VULKAN_HPP_NAMESPACE::ComponentTypeNV CType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16, - VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16, - VULKAN_HPP_NAMESPACE::ScopeNV scope_ = VULKAN_HPP_NAMESPACE::ScopeNV::eDevice ) VULKAN_HPP_NOEXCEPT - : MSize( MSize_ ) - , NSize( NSize_ ) - , KSize( KSize_ ) - , AType( AType_ ) - , BType( BType_ ) - , CType( CType_ ) - , DType( DType_ ) - , scope( scope_ ) + using Type = CopyImageInfo2KHR; + }; + + struct CopyImageToBufferInfo2KHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageToBufferInfo2KHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR CopyImageToBufferInfo2KHR( + VULKAN_HPP_NAMESPACE::Image srcImage_ = {}, + VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, + VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ = {}, + uint32_t regionCount_ = {}, + const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR * pRegions_ = {} ) VULKAN_HPP_NOEXCEPT + : srcImage( srcImage_ ) + , srcImageLayout( srcImageLayout_ ) + , dstBuffer( dstBuffer_ ) + , regionCount( regionCount_ ) + , pRegions( pRegions_ ) {} - VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV & operator=( VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV ) - offsetof( CooperativeMatrixPropertiesNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + CopyImageToBufferInfo2KHR( CopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - CooperativeMatrixPropertiesNV( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + CopyImageToBufferInfo2KHR( VkCopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : CopyImageToBufferInfo2KHR( *reinterpret_cast( &rhs ) ) + {} - CooperativeMatrixPropertiesNV& operator=( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + CopyImageToBufferInfo2KHR( + VULKAN_HPP_NAMESPACE::Image srcImage_, + VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_, + VULKAN_HPP_NAMESPACE::Buffer dstBuffer_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) + : srcImage( srcImage_ ) + , srcImageLayout( srcImageLayout_ ) + , dstBuffer( dstBuffer_ ) + , regionCount( static_cast( regions_.size() ) ) + , pRegions( regions_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - CooperativeMatrixPropertiesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 CopyImageToBufferInfo2KHR & + operator=( CopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - CooperativeMatrixPropertiesNV & setMSize( uint32_t MSize_ ) VULKAN_HPP_NOEXCEPT + CopyImageToBufferInfo2KHR & operator=( VkCopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT { - MSize = MSize_; + *this = *reinterpret_cast( &rhs ); return *this; } - CooperativeMatrixPropertiesNV & setNSize( uint32_t NSize_ ) VULKAN_HPP_NOEXCEPT + CopyImageToBufferInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - NSize = NSize_; + pNext = pNext_; return *this; } - CooperativeMatrixPropertiesNV & setKSize( uint32_t KSize_ ) VULKAN_HPP_NOEXCEPT + CopyImageToBufferInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT { - KSize = KSize_; + srcImage = srcImage_; return *this; } - CooperativeMatrixPropertiesNV & setAType( VULKAN_HPP_NAMESPACE::ComponentTypeNV AType_ ) VULKAN_HPP_NOEXCEPT + CopyImageToBufferInfo2KHR & + setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT { - AType = AType_; + srcImageLayout = srcImageLayout_; return *this; } - CooperativeMatrixPropertiesNV & setBType( VULKAN_HPP_NAMESPACE::ComponentTypeNV BType_ ) VULKAN_HPP_NOEXCEPT + CopyImageToBufferInfo2KHR & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT { - BType = BType_; + dstBuffer = dstBuffer_; return *this; } - CooperativeMatrixPropertiesNV & setCType( VULKAN_HPP_NAMESPACE::ComponentTypeNV CType_ ) VULKAN_HPP_NOEXCEPT + CopyImageToBufferInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT { - CType = CType_; + regionCount = regionCount_; return *this; } - CooperativeMatrixPropertiesNV & setDType( VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ ) VULKAN_HPP_NOEXCEPT + CopyImageToBufferInfo2KHR & + setPRegions( const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR * pRegions_ ) VULKAN_HPP_NOEXCEPT { - DType = DType_; + pRegions = pRegions_; return *this; } - CooperativeMatrixPropertiesNV & setScope( VULKAN_HPP_NAMESPACE::ScopeNV scope_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + CopyImageToBufferInfo2KHR & setRegions( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) + VULKAN_HPP_NOEXCEPT { - scope = scope_; + regionCount = static_cast( regions_.size() ); + pRegions = regions_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkCooperativeMatrixPropertiesNV const&() const VULKAN_HPP_NOEXCEPT + operator VkCopyImageToBufferInfo2KHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT + operator VkCopyImageToBufferInfo2KHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( CooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CopyImageToBufferInfo2KHR const & ) const = default; +#else + bool operator==( CopyImageToBufferInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( MSize == rhs.MSize ) - && ( NSize == rhs.NSize ) - && ( KSize == rhs.KSize ) - && ( AType == rhs.AType ) - && ( BType == rhs.BType ) - && ( CType == rhs.CType ) - && ( DType == rhs.DType ) - && ( scope == rhs.scope ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcImage == rhs.srcImage ) && + ( srcImageLayout == rhs.srcImageLayout ) && ( dstBuffer == rhs.dstBuffer ) && + ( regionCount == rhs.regionCount ) && ( pRegions == rhs.pRegions ); } - bool operator!=( CooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( CopyImageToBufferInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCooperativeMatrixPropertiesNV; - void* pNext = {}; - uint32_t MSize = {}; - uint32_t NSize = {}; - uint32_t KSize = {}; - VULKAN_HPP_NAMESPACE::ComponentTypeNV AType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16; - VULKAN_HPP_NAMESPACE::ComponentTypeNV BType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16; - VULKAN_HPP_NAMESPACE::ComponentTypeNV CType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16; - VULKAN_HPP_NAMESPACE::ComponentTypeNV DType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16; - VULKAN_HPP_NAMESPACE::ScopeNV scope = VULKAN_HPP_NAMESPACE::ScopeNV::eDevice; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageToBufferInfo2KHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Image srcImage = {}; + VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + VULKAN_HPP_NAMESPACE::Buffer dstBuffer = {}; + uint32_t regionCount = {}; + const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR * pRegions = {}; }; - static_assert( sizeof( CooperativeMatrixPropertiesNV ) == sizeof( VkCooperativeMatrixPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( CopyImageToBufferInfo2KHR ) == sizeof( VkCopyImageToBufferInfo2KHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct CopyDescriptorSet + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR CopyDescriptorSet( VULKAN_HPP_NAMESPACE::DescriptorSet srcSet_ = {}, - uint32_t srcBinding_ = {}, - uint32_t srcArrayElement_ = {}, - VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ = {}, - uint32_t dstBinding_ = {}, - uint32_t dstArrayElement_ = {}, - uint32_t descriptorCount_ = {} ) VULKAN_HPP_NOEXCEPT - : srcSet( srcSet_ ) - , srcBinding( srcBinding_ ) - , srcArrayElement( srcArrayElement_ ) - , dstSet( dstSet_ ) - , dstBinding( dstBinding_ ) - , dstArrayElement( dstArrayElement_ ) - , descriptorCount( descriptorCount_ ) + using Type = CopyImageToBufferInfo2KHR; + }; + + struct CopyMemoryToAccelerationStructureInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eCopyMemoryToAccelerationStructureInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + CopyMemoryToAccelerationStructureInfoKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src_ = {}, + VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ = {}, + VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = + VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone ) + VULKAN_HPP_NOEXCEPT + : src( src_ ) + , dst( dst_ ) + , mode( mode_ ) + {} + + CopyMemoryToAccelerationStructureInfoKHR( CopyMemoryToAccelerationStructureInfoKHR const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + CopyMemoryToAccelerationStructureInfoKHR( VkCopyMemoryToAccelerationStructureInfoKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + : CopyMemoryToAccelerationStructureInfoKHR( + *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::CopyDescriptorSet & operator=( VULKAN_HPP_NAMESPACE::CopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT + CopyMemoryToAccelerationStructureInfoKHR & + operator=( CopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + CopyMemoryToAccelerationStructureInfoKHR & + operator=( VkCopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::CopyDescriptorSet ) - offsetof( CopyDescriptorSet, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - CopyDescriptorSet( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT + CopyMemoryToAccelerationStructureInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - CopyDescriptorSet& operator=( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT + CopyMemoryToAccelerationStructureInfoKHR & + setSrc( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & src_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + src = src_; return *this; } - CopyDescriptorSet & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + CopyMemoryToAccelerationStructureInfoKHR & + setDst( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + dst = dst_; return *this; } - CopyDescriptorSet & setSrcSet( VULKAN_HPP_NAMESPACE::DescriptorSet srcSet_ ) VULKAN_HPP_NOEXCEPT + CopyMemoryToAccelerationStructureInfoKHR & + setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT { - srcSet = srcSet_; + mode = mode_; return *this; } - CopyDescriptorSet & setSrcBinding( uint32_t srcBinding_ ) VULKAN_HPP_NOEXCEPT + operator VkCopyMemoryToAccelerationStructureInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - srcBinding = srcBinding_; - return *this; + return *reinterpret_cast( this ); } - CopyDescriptorSet & setSrcArrayElement( uint32_t srcArrayElement_ ) VULKAN_HPP_NOEXCEPT + operator VkCopyMemoryToAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT { - srcArrayElement = srcArrayElement_; - return *this; + return *reinterpret_cast( this ); } - CopyDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyMemoryToAccelerationStructureInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src = {}; + VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst = {}; + VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = + VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone; + }; + static_assert( sizeof( CopyMemoryToAccelerationStructureInfoKHR ) == + sizeof( VkCopyMemoryToAccelerationStructureInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = CopyMemoryToAccelerationStructureInfoKHR; + }; + + struct DebugMarkerMarkerInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerMarkerInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT( const char * pMarkerName_ = {}, + std::array const & color_ = {} ) VULKAN_HPP_NOEXCEPT + : pMarkerName( pMarkerName_ ) + , color( color_ ) + {} + + VULKAN_HPP_CONSTEXPR_14 + DebugMarkerMarkerInfoEXT( DebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DebugMarkerMarkerInfoEXT( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : DebugMarkerMarkerInfoEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT & + operator=( DebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DebugMarkerMarkerInfoEXT & operator=( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - dstSet = dstSet_; + *this = *reinterpret_cast( &rhs ); return *this; } - CopyDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT + DebugMarkerMarkerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - dstBinding = dstBinding_; + pNext = pNext_; return *this; } - CopyDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT + DebugMarkerMarkerInfoEXT & setPMarkerName( const char * pMarkerName_ ) VULKAN_HPP_NOEXCEPT { - dstArrayElement = dstArrayElement_; + pMarkerName = pMarkerName_; return *this; } - CopyDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT + DebugMarkerMarkerInfoEXT & setColor( std::array color_ ) VULKAN_HPP_NOEXCEPT { - descriptorCount = descriptorCount_; + color = color_; return *this; } - operator VkCopyDescriptorSet const&() const VULKAN_HPP_NOEXCEPT + operator VkDebugMarkerMarkerInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkCopyDescriptorSet &() VULKAN_HPP_NOEXCEPT + operator VkDebugMarkerMarkerInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( CopyDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DebugMarkerMarkerInfoEXT const & ) const = default; +#else + bool operator==( DebugMarkerMarkerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcSet == rhs.srcSet ) - && ( srcBinding == rhs.srcBinding ) - && ( srcArrayElement == rhs.srcArrayElement ) - && ( dstSet == rhs.dstSet ) - && ( dstBinding == rhs.dstBinding ) - && ( dstArrayElement == rhs.dstArrayElement ) - && ( descriptorCount == rhs.descriptorCount ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pMarkerName == rhs.pMarkerName ) && + ( color == rhs.color ); } - bool operator!=( CopyDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DebugMarkerMarkerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyDescriptorSet; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DescriptorSet srcSet = {}; - uint32_t srcBinding = {}; - uint32_t srcArrayElement = {}; - VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {}; - uint32_t dstBinding = {}; - uint32_t dstArrayElement = {}; - uint32_t descriptorCount = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerMarkerInfoEXT; + const void * pNext = {}; + const char * pMarkerName = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D color = {}; }; - static_assert( sizeof( CopyDescriptorSet ) == sizeof( VkCopyDescriptorSet ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DebugMarkerMarkerInfoEXT ) == sizeof( VkDebugMarkerMarkerInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_WIN32_KHR + template <> + struct CppType + { + using Type = DebugMarkerMarkerInfoEXT; + }; - struct D3D12FenceSubmitInfoKHR +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoDecodeInfoKHR { - VULKAN_HPP_CONSTEXPR D3D12FenceSubmitInfoKHR( uint32_t waitSemaphoreValuesCount_ = {}, - const uint64_t* pWaitSemaphoreValues_ = {}, - uint32_t signalSemaphoreValuesCount_ = {}, - const uint64_t* pSignalSemaphoreValues_ = {} ) VULKAN_HPP_NOEXCEPT - : waitSemaphoreValuesCount( waitSemaphoreValuesCount_ ) - , pWaitSemaphoreValues( pWaitSemaphoreValues_ ) - , signalSemaphoreValuesCount( signalSemaphoreValuesCount_ ) - , pSignalSemaphoreValues( pSignalSemaphoreValues_ ) - {} + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeInfoKHR; - VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR & operator=( VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR ) - offsetof( D3D12FenceSubmitInfoKHR, pNext ) ); - return *this; - } +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoDecodeInfoKHR( + VULKAN_HPP_NAMESPACE::VideoDecodeFlagsKHR flags_ = {}, + VULKAN_HPP_NAMESPACE::Offset2D codedOffset_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D codedExtent_ = {}, + VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize srcBufferOffset_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize srcBufferRange_ = {}, + VULKAN_HPP_NAMESPACE::VideoPictureResourceKHR dstPictureResource_ = {}, + const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pSetupReferenceSlot_ = {}, + uint32_t referenceSlotCount_ = {}, + const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pReferenceSlots_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , codedOffset( codedOffset_ ) + , codedExtent( codedExtent_ ) + , srcBuffer( srcBuffer_ ) + , srcBufferOffset( srcBufferOffset_ ) + , srcBufferRange( srcBufferRange_ ) + , dstPictureResource( dstPictureResource_ ) + , pSetupReferenceSlot( pSetupReferenceSlot_ ) + , referenceSlotCount( referenceSlotCount_ ) + , pReferenceSlots( pReferenceSlots_ ) + {} + + VULKAN_HPP_CONSTEXPR VideoDecodeInfoKHR( VideoDecodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeInfoKHR( VkVideoDecodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoDecodeInfoKHR( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoDecodeInfoKHR( + VULKAN_HPP_NAMESPACE::VideoDecodeFlagsKHR flags_, + VULKAN_HPP_NAMESPACE::Offset2D codedOffset_, + VULKAN_HPP_NAMESPACE::Extent2D codedExtent_, + VULKAN_HPP_NAMESPACE::Buffer srcBuffer_, + VULKAN_HPP_NAMESPACE::DeviceSize srcBufferOffset_, + VULKAN_HPP_NAMESPACE::DeviceSize srcBufferRange_, + VULKAN_HPP_NAMESPACE::VideoPictureResourceKHR dstPictureResource_, + const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pSetupReferenceSlot_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + referenceSlots_ ) + : flags( flags_ ) + , codedOffset( codedOffset_ ) + , codedExtent( codedExtent_ ) + , srcBuffer( srcBuffer_ ) + , srcBufferOffset( srcBufferOffset_ ) + , srcBufferRange( srcBufferRange_ ) + , dstPictureResource( dstPictureResource_ ) + , pSetupReferenceSlot( pSetupReferenceSlot_ ) + , referenceSlotCount( static_cast( referenceSlots_.size() ) ) + , pReferenceSlots( referenceSlots_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - D3D12FenceSubmitInfoKHR( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR_14 VideoDecodeInfoKHR & + operator=( VideoDecodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - D3D12FenceSubmitInfoKHR& operator=( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VideoDecodeInfoKHR & operator=( VkVideoDecodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - D3D12FenceSubmitInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + VideoDecodeInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - D3D12FenceSubmitInfoKHR & setWaitSemaphoreValuesCount( uint32_t waitSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT + VideoDecodeInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoDecodeFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT { - waitSemaphoreValuesCount = waitSemaphoreValuesCount_; + flags = flags_; return *this; } - D3D12FenceSubmitInfoKHR & setPWaitSemaphoreValues( const uint64_t* pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT + VideoDecodeInfoKHR & setCodedOffset( VULKAN_HPP_NAMESPACE::Offset2D const & codedOffset_ ) VULKAN_HPP_NOEXCEPT { - pWaitSemaphoreValues = pWaitSemaphoreValues_; + codedOffset = codedOffset_; return *this; } - D3D12FenceSubmitInfoKHR & setSignalSemaphoreValuesCount( uint32_t signalSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT + VideoDecodeInfoKHR & setCodedExtent( VULKAN_HPP_NAMESPACE::Extent2D const & codedExtent_ ) VULKAN_HPP_NOEXCEPT { - signalSemaphoreValuesCount = signalSemaphoreValuesCount_; + codedExtent = codedExtent_; return *this; } - D3D12FenceSubmitInfoKHR & setPSignalSemaphoreValues( const uint64_t* pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT + VideoDecodeInfoKHR & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT { - pSignalSemaphoreValues = pSignalSemaphoreValues_; + srcBuffer = srcBuffer_; return *this; } - operator VkD3D12FenceSubmitInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkD3D12FenceSubmitInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( D3D12FenceSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( waitSemaphoreValuesCount == rhs.waitSemaphoreValuesCount ) - && ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues ) - && ( signalSemaphoreValuesCount == rhs.signalSemaphoreValuesCount ) - && ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues ); - } - - bool operator!=( D3D12FenceSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eD3D12FenceSubmitInfoKHR; - const void* pNext = {}; - uint32_t waitSemaphoreValuesCount = {}; - const uint64_t* pWaitSemaphoreValues = {}; - uint32_t signalSemaphoreValuesCount = {}; - const uint64_t* pSignalSemaphoreValues = {}; - }; - static_assert( sizeof( D3D12FenceSubmitInfoKHR ) == sizeof( VkD3D12FenceSubmitInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct DebugMarkerMarkerInfoEXT - { - VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT( const char* pMarkerName_ = {}, - std::array const& color_ = {} ) VULKAN_HPP_NOEXCEPT - : pMarkerName( pMarkerName_ ) - , color{} + VideoDecodeInfoKHR & setSrcBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcBufferOffset_ ) VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( color, color_ ); + srcBufferOffset = srcBufferOffset_; + return *this; } - VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT & operator=( VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VideoDecodeInfoKHR & setSrcBufferRange( VULKAN_HPP_NAMESPACE::DeviceSize srcBufferRange_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT ) - offsetof( DebugMarkerMarkerInfoEXT, pNext ) ); + srcBufferRange = srcBufferRange_; return *this; } - DebugMarkerMarkerInfoEXT( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VideoDecodeInfoKHR & setDstPictureResource( + VULKAN_HPP_NAMESPACE::VideoPictureResourceKHR const & dstPictureResource_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + dstPictureResource = dstPictureResource_; + return *this; } - DebugMarkerMarkerInfoEXT& operator=( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VideoDecodeInfoKHR & setPSetupReferenceSlot( + const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pSetupReferenceSlot_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pSetupReferenceSlot = pSetupReferenceSlot_; return *this; } - DebugMarkerMarkerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + VideoDecodeInfoKHR & setReferenceSlotCount( uint32_t referenceSlotCount_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + referenceSlotCount = referenceSlotCount_; return *this; } - DebugMarkerMarkerInfoEXT & setPMarkerName( const char* pMarkerName_ ) VULKAN_HPP_NOEXCEPT + VideoDecodeInfoKHR & + setPReferenceSlots( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pReferenceSlots_ ) VULKAN_HPP_NOEXCEPT { - pMarkerName = pMarkerName_; + pReferenceSlots = pReferenceSlots_; return *this; } - DebugMarkerMarkerInfoEXT & setColor( std::array color_ ) VULKAN_HPP_NOEXCEPT +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoDecodeInfoKHR & setReferenceSlots( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + referenceSlots_ ) VULKAN_HPP_NOEXCEPT { - memcpy( color, color_.data(), 4 * sizeof( float ) ); + referenceSlotCount = static_cast( referenceSlots_.size() ); + pReferenceSlots = referenceSlots_.data(); return *this; } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkDebugMarkerMarkerInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkVideoDecodeInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDebugMarkerMarkerInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkVideoDecodeInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DebugMarkerMarkerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoDecodeInfoKHR const & ) const = default; +# else + bool operator==( VideoDecodeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pMarkerName == rhs.pMarkerName ) - && ( memcmp( color, rhs.color, 4 * sizeof( float ) ) == 0 ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( codedOffset == rhs.codedOffset ) && ( codedExtent == rhs.codedExtent ) && + ( srcBuffer == rhs.srcBuffer ) && ( srcBufferOffset == rhs.srcBufferOffset ) && + ( srcBufferRange == rhs.srcBufferRange ) && ( dstPictureResource == rhs.dstPictureResource ) && + ( pSetupReferenceSlot == rhs.pSetupReferenceSlot ) && ( referenceSlotCount == rhs.referenceSlotCount ) && + ( pReferenceSlots == rhs.pReferenceSlots ); } - bool operator!=( DebugMarkerMarkerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( VideoDecodeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerMarkerInfoEXT; - const void* pNext = {}; - const char* pMarkerName = {}; - float color[4] = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::VideoDecodeFlagsKHR flags = {}; + VULKAN_HPP_NAMESPACE::Offset2D codedOffset = {}; + VULKAN_HPP_NAMESPACE::Extent2D codedExtent = {}; + VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {}; + VULKAN_HPP_NAMESPACE::DeviceSize srcBufferOffset = {}; + VULKAN_HPP_NAMESPACE::DeviceSize srcBufferRange = {}; + VULKAN_HPP_NAMESPACE::VideoPictureResourceKHR dstPictureResource = {}; + const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pSetupReferenceSlot = {}; + uint32_t referenceSlotCount = {}; + const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pReferenceSlots = {}; }; - static_assert( sizeof( DebugMarkerMarkerInfoEXT ) == sizeof( VkDebugMarkerMarkerInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VideoDecodeInfoKHR ) == sizeof( VkVideoDecodeInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct DebugMarkerObjectNameInfoEXT - { - VULKAN_HPP_CONSTEXPR DebugMarkerObjectNameInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown, - uint64_t object_ = {}, - const char* pObjectName_ = {} ) VULKAN_HPP_NOEXCEPT - : objectType( objectType_ ) - , object( object_ ) - , pObjectName( pObjectName_ ) + template <> + struct CppType + { + using Type = VideoDecodeInfoKHR; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoEncodeInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeInfoKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoEncodeInfoKHR( + VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR flags_ = {}, + uint32_t qualityLevel_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D codedExtent_ = {}, + VULKAN_HPP_NAMESPACE::Buffer dstBitstreamBuffer_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize dstBitstreamBufferOffset_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize dstBitstreamBufferMaxRange_ = {}, + VULKAN_HPP_NAMESPACE::VideoPictureResourceKHR srcPictureResource_ = {}, + const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pSetupReferenceSlot_ = {}, + uint32_t referenceSlotCount_ = {}, + const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pReferenceSlots_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , qualityLevel( qualityLevel_ ) + , codedExtent( codedExtent_ ) + , dstBitstreamBuffer( dstBitstreamBuffer_ ) + , dstBitstreamBufferOffset( dstBitstreamBufferOffset_ ) + , dstBitstreamBufferMaxRange( dstBitstreamBufferMaxRange_ ) + , srcPictureResource( srcPictureResource_ ) + , pSetupReferenceSlot( pSetupReferenceSlot_ ) + , referenceSlotCount( referenceSlotCount_ ) + , pReferenceSlots( pReferenceSlots_ ) + {} + + VULKAN_HPP_CONSTEXPR VideoEncodeInfoKHR( VideoEncodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoEncodeInfoKHR( VkVideoEncodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoEncodeInfoKHR( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoEncodeInfoKHR( + VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR flags_, + uint32_t qualityLevel_, + VULKAN_HPP_NAMESPACE::Extent2D codedExtent_, + VULKAN_HPP_NAMESPACE::Buffer dstBitstreamBuffer_, + VULKAN_HPP_NAMESPACE::DeviceSize dstBitstreamBufferOffset_, + VULKAN_HPP_NAMESPACE::DeviceSize dstBitstreamBufferMaxRange_, + VULKAN_HPP_NAMESPACE::VideoPictureResourceKHR srcPictureResource_, + const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pSetupReferenceSlot_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + referenceSlots_ ) + : flags( flags_ ) + , qualityLevel( qualityLevel_ ) + , codedExtent( codedExtent_ ) + , dstBitstreamBuffer( dstBitstreamBuffer_ ) + , dstBitstreamBufferOffset( dstBitstreamBufferOffset_ ) + , dstBitstreamBufferMaxRange( dstBitstreamBufferMaxRange_ ) + , srcPictureResource( srcPictureResource_ ) + , pSetupReferenceSlot( pSetupReferenceSlot_ ) + , referenceSlotCount( static_cast( referenceSlots_.size() ) ) + , pReferenceSlots( referenceSlots_.data() ) {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT & operator=( VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT ) - offsetof( DebugMarkerObjectNameInfoEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 VideoEncodeInfoKHR & + operator=( VideoEncodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DebugMarkerObjectNameInfoEXT( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VideoEncodeInfoKHR & operator=( VkVideoEncodeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - DebugMarkerObjectNameInfoEXT& operator=( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VideoEncodeInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - DebugMarkerObjectNameInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + VideoEncodeInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + flags = flags_; return *this; } - DebugMarkerObjectNameInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT + VideoEncodeInfoKHR & setQualityLevel( uint32_t qualityLevel_ ) VULKAN_HPP_NOEXCEPT { - objectType = objectType_; + qualityLevel = qualityLevel_; return *this; } - DebugMarkerObjectNameInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT + VideoEncodeInfoKHR & setCodedExtent( VULKAN_HPP_NAMESPACE::Extent2D const & codedExtent_ ) VULKAN_HPP_NOEXCEPT { - object = object_; + codedExtent = codedExtent_; return *this; } - DebugMarkerObjectNameInfoEXT & setPObjectName( const char* pObjectName_ ) VULKAN_HPP_NOEXCEPT + VideoEncodeInfoKHR & setDstBitstreamBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBitstreamBuffer_ ) VULKAN_HPP_NOEXCEPT { - pObjectName = pObjectName_; + dstBitstreamBuffer = dstBitstreamBuffer_; return *this; } - operator VkDebugMarkerObjectNameInfoEXT const&() const VULKAN_HPP_NOEXCEPT + VideoEncodeInfoKHR & + setDstBitstreamBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstBitstreamBufferOffset_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + dstBitstreamBufferOffset = dstBitstreamBufferOffset_; + return *this; } - operator VkDebugMarkerObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT + VideoEncodeInfoKHR & + setDstBitstreamBufferMaxRange( VULKAN_HPP_NAMESPACE::DeviceSize dstBitstreamBufferMaxRange_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + dstBitstreamBufferMaxRange = dstBitstreamBufferMaxRange_; + return *this; } - bool operator==( DebugMarkerObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + VideoEncodeInfoKHR & setSrcPictureResource( + VULKAN_HPP_NAMESPACE::VideoPictureResourceKHR const & srcPictureResource_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( objectType == rhs.objectType ) - && ( object == rhs.object ) - && ( pObjectName == rhs.pObjectName ); + srcPictureResource = srcPictureResource_; + return *this; } - bool operator!=( DebugMarkerObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + VideoEncodeInfoKHR & setPSetupReferenceSlot( + const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pSetupReferenceSlot_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + pSetupReferenceSlot = pSetupReferenceSlot_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectNameInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; - uint64_t object = {}; - const char* pObjectName = {}; - }; - static_assert( sizeof( DebugMarkerObjectNameInfoEXT ) == sizeof( VkDebugMarkerObjectNameInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DebugMarkerObjectTagInfoEXT - { - VULKAN_HPP_CONSTEXPR DebugMarkerObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown, - uint64_t object_ = {}, - uint64_t tagName_ = {}, - size_t tagSize_ = {}, - const void* pTag_ = {} ) VULKAN_HPP_NOEXCEPT - : objectType( objectType_ ) - , object( object_ ) - , tagName( tagName_ ) - , tagSize( tagSize_ ) - , pTag( pTag_ ) - {} - - VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT & operator=( VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VideoEncodeInfoKHR & setReferenceSlotCount( uint32_t referenceSlotCount_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT ) - offsetof( DebugMarkerObjectTagInfoEXT, pNext ) ); + referenceSlotCount = referenceSlotCount_; return *this; } - DebugMarkerObjectTagInfoEXT( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VideoEncodeInfoKHR & + setPReferenceSlots( const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pReferenceSlots_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pReferenceSlots = pReferenceSlots_; + return *this; } - DebugMarkerObjectTagInfoEXT& operator=( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoEncodeInfoKHR & setReferenceSlots( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + referenceSlots_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + referenceSlotCount = static_cast( referenceSlots_.size() ); + pReferenceSlots = referenceSlots_.data(); return *this; } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - DebugMarkerObjectTagInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + operator VkVideoEncodeInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; - return *this; + return *reinterpret_cast( this ); } - DebugMarkerObjectTagInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT + operator VkVideoEncodeInfoKHR &() VULKAN_HPP_NOEXCEPT { - objectType = objectType_; - return *this; + return *reinterpret_cast( this ); } - DebugMarkerObjectTagInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoEncodeInfoKHR const & ) const = default; +# else + bool operator==( VideoEncodeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - object = object_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( qualityLevel == rhs.qualityLevel ) && ( codedExtent == rhs.codedExtent ) && + ( dstBitstreamBuffer == rhs.dstBitstreamBuffer ) && + ( dstBitstreamBufferOffset == rhs.dstBitstreamBufferOffset ) && + ( dstBitstreamBufferMaxRange == rhs.dstBitstreamBufferMaxRange ) && + ( srcPictureResource == rhs.srcPictureResource ) && ( pSetupReferenceSlot == rhs.pSetupReferenceSlot ) && + ( referenceSlotCount == rhs.referenceSlotCount ) && ( pReferenceSlots == rhs.pReferenceSlots ); } - DebugMarkerObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( VideoEncodeInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - tagName = tagName_; - return *this; + return !operator==( rhs ); } +# endif - DebugMarkerObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::VideoEncodeFlagsKHR flags = {}; + uint32_t qualityLevel = {}; + VULKAN_HPP_NAMESPACE::Extent2D codedExtent = {}; + VULKAN_HPP_NAMESPACE::Buffer dstBitstreamBuffer = {}; + VULKAN_HPP_NAMESPACE::DeviceSize dstBitstreamBufferOffset = {}; + VULKAN_HPP_NAMESPACE::DeviceSize dstBitstreamBufferMaxRange = {}; + VULKAN_HPP_NAMESPACE::VideoPictureResourceKHR srcPictureResource = {}; + const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pSetupReferenceSlot = {}; + uint32_t referenceSlotCount = {}; + const VULKAN_HPP_NAMESPACE::VideoReferenceSlotKHR * pReferenceSlots = {}; + }; + static_assert( sizeof( VideoEncodeInfoKHR ) == sizeof( VkVideoEncodeInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoEncodeInfoKHR; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + struct SubpassEndInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassEndInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SubpassEndInfo() VULKAN_HPP_NOEXCEPT {} + + VULKAN_HPP_CONSTEXPR SubpassEndInfo( SubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SubpassEndInfo( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : SubpassEndInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SubpassEndInfo & operator=( SubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SubpassEndInfo & operator=( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - tagSize = tagSize_; + *this = *reinterpret_cast( &rhs ); return *this; } - DebugMarkerObjectTagInfoEXT & setPTag( const void* pTag_ ) VULKAN_HPP_NOEXCEPT + SubpassEndInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - pTag = pTag_; + pNext = pNext_; return *this; } - operator VkDebugMarkerObjectTagInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkSubpassEndInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDebugMarkerObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkSubpassEndInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DebugMarkerObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SubpassEndInfo const & ) const = default; +#else + bool operator==( SubpassEndInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( objectType == rhs.objectType ) - && ( object == rhs.object ) - && ( tagName == rhs.tagName ) - && ( tagSize == rhs.tagSize ) - && ( pTag == rhs.pTag ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ); } - bool operator!=( DebugMarkerObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SubpassEndInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectTagInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; - uint64_t object = {}; - uint64_t tagName = {}; - size_t tagSize = {}; - const void* pTag = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassEndInfo; + const void * pNext = {}; }; - static_assert( sizeof( DebugMarkerObjectTagInfoEXT ) == sizeof( VkDebugMarkerObjectTagInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SubpassEndInfo ) == sizeof( VkSubpassEndInfo ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct DebugReportCallbackCreateInfoEXT + template <> + struct CppType + { + using Type = SubpassEndInfo; + }; + using SubpassEndInfoKHR = SubpassEndInfo; + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoEndCodingInfoKHR { - VULKAN_HPP_CONSTEXPR DebugReportCallbackCreateInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ = {}, - PFN_vkDebugReportCallbackEXT pfnCallback_ = {}, - void* pUserData_ = {} ) VULKAN_HPP_NOEXCEPT + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEndCodingInfoKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + VideoEndCodingInfoKHR( VULKAN_HPP_NAMESPACE::VideoEndCodingFlagsKHR flags_ = {} ) VULKAN_HPP_NOEXCEPT : flags( flags_ ) - , pfnCallback( pfnCallback_ ) - , pUserData( pUserData_ ) {} - VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT ) - offsetof( DebugReportCallbackCreateInfoEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR VideoEndCodingInfoKHR( VideoEndCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DebugReportCallbackCreateInfoEXT( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VideoEndCodingInfoKHR( VkVideoEndCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoEndCodingInfoKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - DebugReportCallbackCreateInfoEXT& operator=( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 VideoEndCodingInfoKHR & + operator=( VideoEndCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoEndCodingInfoKHR & operator=( VkVideoEndCodingInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - DebugReportCallbackCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + VideoEndCodingInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - DebugReportCallbackCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT + VideoEndCodingInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoEndCodingFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT { flags = flags_; return *this; } - DebugReportCallbackCreateInfoEXT & setPfnCallback( PFN_vkDebugReportCallbackEXT pfnCallback_ ) VULKAN_HPP_NOEXCEPT - { - pfnCallback = pfnCallback_; - return *this; - } - - DebugReportCallbackCreateInfoEXT & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT - { - pUserData = pUserData_; - return *this; - } - - operator VkDebugReportCallbackCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkVideoEndCodingInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDebugReportCallbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkVideoEndCodingInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DebugReportCallbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoEndCodingInfoKHR const & ) const = default; +# else + bool operator==( VideoEndCodingInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pfnCallback == rhs.pfnCallback ) - && ( pUserData == rhs.pUserData ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ); } - bool operator!=( DebugReportCallbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( VideoEndCodingInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugReportCallbackCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags = {}; - PFN_vkDebugReportCallbackEXT pfnCallback = {}; - void* pUserData = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEndCodingInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::VideoEndCodingFlagsKHR flags = {}; }; - static_assert( sizeof( DebugReportCallbackCreateInfoEXT ) == sizeof( VkDebugReportCallbackCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VideoEndCodingInfoKHR ) == sizeof( VkVideoEndCodingInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct DebugUtilsLabelEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT( const char* pLabelName_ = {}, - std::array const& color_ = {} ) VULKAN_HPP_NOEXCEPT - : pLabelName( pLabelName_ ) - , color{} - { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( color, color_ ); - } + using Type = VideoEndCodingInfoKHR; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & operator=( VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT ) - offsetof( DebugUtilsLabelEXT, pNext ) ); - return *this; - } + class IndirectCommandsLayoutNV + { + public: + using CType = VkIndirectCommandsLayoutNV; - DebugUtilsLabelEXT( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + 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; - DebugUtilsLabelEXT& operator=( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT + public: + VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNV() = default; + VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT + IndirectCommandsLayoutNV( VkIndirectCommandsLayoutNV indirectCommandsLayoutNV ) VULKAN_HPP_NOEXCEPT + : m_indirectCommandsLayoutNV( indirectCommandsLayoutNV ) + {} + +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + IndirectCommandsLayoutNV & operator=( VkIndirectCommandsLayoutNV indirectCommandsLayoutNV ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + m_indirectCommandsLayoutNV = indirectCommandsLayoutNV; return *this; } +#endif - DebugUtilsLabelEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + IndirectCommandsLayoutNV & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + m_indirectCommandsLayoutNV = {}; return *this; } - DebugUtilsLabelEXT & setPLabelName( const char* pLabelName_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( IndirectCommandsLayoutNV const & ) const = default; +#else + bool operator==( IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - pLabelName = pLabelName_; - return *this; + return m_indirectCommandsLayoutNV == rhs.m_indirectCommandsLayoutNV; } - DebugUtilsLabelEXT & setColor( std::array color_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - memcpy( color, color_.data(), 4 * sizeof( float ) ); - return *this; + return m_indirectCommandsLayoutNV != rhs.m_indirectCommandsLayoutNV; } - operator VkDebugUtilsLabelEXT const&() const VULKAN_HPP_NOEXCEPT + bool operator<( IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_indirectCommandsLayoutNV < rhs.m_indirectCommandsLayoutNV; } +#endif - operator VkDebugUtilsLabelEXT &() VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkIndirectCommandsLayoutNV() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_indirectCommandsLayoutNV; } - bool operator==( DebugUtilsLabelEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pLabelName == rhs.pLabelName ) - && ( memcmp( color, rhs.color, 4 * sizeof( float ) ) == 0 ); + return m_indirectCommandsLayoutNV != VK_NULL_HANDLE; } - bool operator!=( DebugUtilsLabelEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_indirectCommandsLayoutNV == VK_NULL_HANDLE; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsLabelEXT; - const void* pNext = {}; - const char* pLabelName = {}; - float color[4] = {}; + private: + VkIndirectCommandsLayoutNV m_indirectCommandsLayoutNV = {}; }; - static_assert( sizeof( DebugUtilsLabelEXT ) == sizeof( VkDebugUtilsLabelEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV ) == sizeof( VkIndirectCommandsLayoutNV ), + "handle and wrapper have different size!" ); - struct DebugUtilsObjectNameInfoEXT + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - VULKAN_HPP_CONSTEXPR DebugUtilsObjectNameInfoEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown, - uint64_t objectHandle_ = {}, - const char* pObjectName_ = {} ) VULKAN_HPP_NOEXCEPT - : objectType( objectType_ ) - , objectHandle( objectHandle_ ) - , pObjectName( pObjectName_ ) - {} + using type = VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV; + }; - VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT & operator=( VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT ) - offsetof( DebugUtilsObjectNameInfoEXT, pNext ) ); - return *this; - } + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV; + }; - DebugUtilsObjectNameInfoEXT( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; - DebugUtilsObjectNameInfoEXT& operator=( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + struct IndirectCommandsStreamNV + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR IndirectCommandsStreamNV( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {} ) VULKAN_HPP_NOEXCEPT + : buffer( buffer_ ) + , offset( offset_ ) + {} - DebugUtilsObjectNameInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + VULKAN_HPP_CONSTEXPR IndirectCommandsStreamNV( IndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DebugUtilsObjectNameInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT + IndirectCommandsStreamNV( VkIndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT + : IndirectCommandsStreamNV( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 IndirectCommandsStreamNV & + operator=( IndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + IndirectCommandsStreamNV & operator=( VkIndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT { - objectType = objectType_; + *this = *reinterpret_cast( &rhs ); return *this; } - DebugUtilsObjectNameInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT + IndirectCommandsStreamNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT { - objectHandle = objectHandle_; + buffer = buffer_; return *this; } - DebugUtilsObjectNameInfoEXT & setPObjectName( const char* pObjectName_ ) VULKAN_HPP_NOEXCEPT + IndirectCommandsStreamNV & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT { - pObjectName = pObjectName_; + offset = offset_; return *this; } - operator VkDebugUtilsObjectNameInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkIndirectCommandsStreamNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDebugUtilsObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkIndirectCommandsStreamNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DebugUtilsObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( IndirectCommandsStreamNV const & ) const = default; +#else + bool operator==( IndirectCommandsStreamNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( objectType == rhs.objectType ) - && ( objectHandle == rhs.objectHandle ) - && ( pObjectName == rhs.pObjectName ); + return ( buffer == rhs.buffer ) && ( offset == rhs.offset ); } - bool operator!=( DebugUtilsObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( IndirectCommandsStreamNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectNameInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown; - uint64_t objectHandle = {}; - const char* pObjectName = {}; + VULKAN_HPP_NAMESPACE::Buffer buffer = {}; + VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; }; - static_assert( sizeof( DebugUtilsObjectNameInfoEXT ) == sizeof( VkDebugUtilsObjectNameInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( IndirectCommandsStreamNV ) == sizeof( VkIndirectCommandsStreamNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + struct GeneratedCommandsInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeneratedCommandsInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR GeneratedCommandsInfoNV( + VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, + VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, + VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ = {}, + uint32_t streamCount_ = {}, + const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV * pStreams_ = {}, + uint32_t sequencesCount_ = {}, + VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ = {}, + VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ = {}, + VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ = {} ) VULKAN_HPP_NOEXCEPT + : pipelineBindPoint( pipelineBindPoint_ ) + , pipeline( pipeline_ ) + , indirectCommandsLayout( indirectCommandsLayout_ ) + , streamCount( streamCount_ ) + , pStreams( pStreams_ ) + , sequencesCount( sequencesCount_ ) + , preprocessBuffer( preprocessBuffer_ ) + , preprocessOffset( preprocessOffset_ ) + , preprocessSize( preprocessSize_ ) + , sequencesCountBuffer( sequencesCountBuffer_ ) + , sequencesCountOffset( sequencesCountOffset_ ) + , sequencesIndexBuffer( sequencesIndexBuffer_ ) + , sequencesIndexOffset( sequencesIndexOffset_ ) + {} - struct DebugUtilsMessengerCallbackDataEXT - { - VULKAN_HPP_CONSTEXPR DebugUtilsMessengerCallbackDataEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_ = {}, - const char* pMessageIdName_ = {}, - int32_t messageIdNumber_ = {}, - const char* pMessage_ = {}, - uint32_t queueLabelCount_ = {}, - const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pQueueLabels_ = {}, - uint32_t cmdBufLabelCount_ = {}, - const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pCmdBufLabels_ = {}, - uint32_t objectCount_ = {}, - const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pObjects_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , pMessageIdName( pMessageIdName_ ) - , messageIdNumber( messageIdNumber_ ) - , pMessage( pMessage_ ) - , queueLabelCount( queueLabelCount_ ) - , pQueueLabels( pQueueLabels_ ) - , cmdBufLabelCount( cmdBufLabelCount_ ) - , pCmdBufLabels( pCmdBufLabels_ ) - , objectCount( objectCount_ ) - , pObjects( pObjects_ ) + VULKAN_HPP_CONSTEXPR GeneratedCommandsInfoNV( GeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + GeneratedCommandsInfoNV( VkGeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : GeneratedCommandsInfoNV( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + GeneratedCommandsInfoNV( + VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_, + VULKAN_HPP_NAMESPACE::Pipeline pipeline_, + VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + streams_, + uint32_t sequencesCount_ = {}, + VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ = {}, + VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ = {}, + VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ = {} ) + : pipelineBindPoint( pipelineBindPoint_ ) + , pipeline( pipeline_ ) + , indirectCommandsLayout( indirectCommandsLayout_ ) + , streamCount( static_cast( streams_.size() ) ) + , pStreams( streams_.data() ) + , sequencesCount( sequencesCount_ ) + , preprocessBuffer( preprocessBuffer_ ) + , preprocessOffset( preprocessOffset_ ) + , preprocessSize( preprocessSize_ ) + , sequencesCountBuffer( sequencesCountBuffer_ ) + , sequencesCountOffset( sequencesCountOffset_ ) + , sequencesIndexBuffer( sequencesIndexBuffer_ ) + , sequencesIndexOffset( sequencesIndexOffset_ ) {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT & operator=( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoNV & + operator=( GeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + GeneratedCommandsInfoNV & operator=( VkGeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT ) - offsetof( DebugUtilsMessengerCallbackDataEXT, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - DebugUtilsMessengerCallbackDataEXT( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT + GeneratedCommandsInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - DebugUtilsMessengerCallbackDataEXT& operator=( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT + GeneratedCommandsInfoNV & + setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pipelineBindPoint = pipelineBindPoint_; return *this; } - DebugUtilsMessengerCallbackDataEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + GeneratedCommandsInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + pipeline = pipeline_; return *this; } - DebugUtilsMessengerCallbackDataEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT + GeneratedCommandsInfoNV & setIndirectCommandsLayout( + VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + indirectCommandsLayout = indirectCommandsLayout_; return *this; } - DebugUtilsMessengerCallbackDataEXT & setPMessageIdName( const char* pMessageIdName_ ) VULKAN_HPP_NOEXCEPT + GeneratedCommandsInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT { - pMessageIdName = pMessageIdName_; + streamCount = streamCount_; return *this; } - DebugUtilsMessengerCallbackDataEXT & setMessageIdNumber( int32_t messageIdNumber_ ) VULKAN_HPP_NOEXCEPT + GeneratedCommandsInfoNV & + setPStreams( const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV * pStreams_ ) VULKAN_HPP_NOEXCEPT { - messageIdNumber = messageIdNumber_; + pStreams = pStreams_; return *this; } - DebugUtilsMessengerCallbackDataEXT & setPMessage( const char* pMessage_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + GeneratedCommandsInfoNV & setStreams( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + streams_ ) VULKAN_HPP_NOEXCEPT { - pMessage = pMessage_; + streamCount = static_cast( streams_.size() ); + pStreams = streams_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - DebugUtilsMessengerCallbackDataEXT & setQueueLabelCount( uint32_t queueLabelCount_ ) VULKAN_HPP_NOEXCEPT + GeneratedCommandsInfoNV & setSequencesCount( uint32_t sequencesCount_ ) VULKAN_HPP_NOEXCEPT { - queueLabelCount = queueLabelCount_; + sequencesCount = sequencesCount_; return *this; } - DebugUtilsMessengerCallbackDataEXT & setPQueueLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pQueueLabels_ ) VULKAN_HPP_NOEXCEPT + GeneratedCommandsInfoNV & setPreprocessBuffer( VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ ) VULKAN_HPP_NOEXCEPT { - pQueueLabels = pQueueLabels_; + preprocessBuffer = preprocessBuffer_; return *this; } - DebugUtilsMessengerCallbackDataEXT & setCmdBufLabelCount( uint32_t cmdBufLabelCount_ ) VULKAN_HPP_NOEXCEPT + GeneratedCommandsInfoNV & + setPreprocessOffset( VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ ) VULKAN_HPP_NOEXCEPT { - cmdBufLabelCount = cmdBufLabelCount_; + preprocessOffset = preprocessOffset_; return *this; } - DebugUtilsMessengerCallbackDataEXT & setPCmdBufLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pCmdBufLabels_ ) VULKAN_HPP_NOEXCEPT + GeneratedCommandsInfoNV & setPreprocessSize( VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ ) VULKAN_HPP_NOEXCEPT { - pCmdBufLabels = pCmdBufLabels_; + preprocessSize = preprocessSize_; return *this; } - DebugUtilsMessengerCallbackDataEXT & setObjectCount( uint32_t objectCount_ ) VULKAN_HPP_NOEXCEPT + GeneratedCommandsInfoNV & + setSequencesCountBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ ) VULKAN_HPP_NOEXCEPT { - objectCount = objectCount_; + sequencesCountBuffer = sequencesCountBuffer_; return *this; } - DebugUtilsMessengerCallbackDataEXT & setPObjects( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pObjects_ ) VULKAN_HPP_NOEXCEPT + GeneratedCommandsInfoNV & + setSequencesCountOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ ) VULKAN_HPP_NOEXCEPT { - pObjects = pObjects_; + sequencesCountOffset = sequencesCountOffset_; return *this; } - operator VkDebugUtilsMessengerCallbackDataEXT const&() const VULKAN_HPP_NOEXCEPT + GeneratedCommandsInfoNV & + setSequencesIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + sequencesIndexBuffer = sequencesIndexBuffer_; + return *this; } - operator VkDebugUtilsMessengerCallbackDataEXT &() VULKAN_HPP_NOEXCEPT + GeneratedCommandsInfoNV & + setSequencesIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + sequencesIndexOffset = sequencesIndexOffset_; + return *this; } - bool operator==( DebugUtilsMessengerCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkGeneratedCommandsInfoNV const &() const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pMessageIdName == rhs.pMessageIdName ) - && ( messageIdNumber == rhs.messageIdNumber ) - && ( pMessage == rhs.pMessage ) - && ( queueLabelCount == rhs.queueLabelCount ) - && ( pQueueLabels == rhs.pQueueLabels ) - && ( cmdBufLabelCount == rhs.cmdBufLabelCount ) - && ( pCmdBufLabels == rhs.pCmdBufLabels ) - && ( objectCount == rhs.objectCount ) - && ( pObjects == rhs.pObjects ); + return *reinterpret_cast( this ); } - bool operator!=( DebugUtilsMessengerCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkGeneratedCommandsInfoNV &() VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return *reinterpret_cast( this ); } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCallbackDataEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags = {}; - const char* pMessageIdName = {}; - int32_t messageIdNumber = {}; - const char* pMessage = {}; - uint32_t queueLabelCount = {}; - const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pQueueLabels = {}; - uint32_t cmdBufLabelCount = {}; - const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pCmdBufLabels = {}; - uint32_t objectCount = {}; - const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pObjects = {}; - }; - static_assert( sizeof( DebugUtilsMessengerCallbackDataEXT ) == sizeof( VkDebugUtilsMessengerCallbackDataEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( GeneratedCommandsInfoNV const & ) const = default; +#else + bool operator==( GeneratedCommandsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipelineBindPoint == rhs.pipelineBindPoint ) && + ( pipeline == rhs.pipeline ) && ( indirectCommandsLayout == rhs.indirectCommandsLayout ) && + ( streamCount == rhs.streamCount ) && ( pStreams == rhs.pStreams ) && + ( sequencesCount == rhs.sequencesCount ) && ( preprocessBuffer == rhs.preprocessBuffer ) && + ( preprocessOffset == rhs.preprocessOffset ) && ( preprocessSize == rhs.preprocessSize ) && + ( sequencesCountBuffer == rhs.sequencesCountBuffer ) && + ( sequencesCountOffset == rhs.sequencesCountOffset ) && + ( sequencesIndexBuffer == rhs.sequencesIndexBuffer ) && + ( sequencesIndexOffset == rhs.sequencesIndexOffset ); + } - struct DebugUtilsMessengerCreateInfoEXT - { - VULKAN_HPP_CONSTEXPR DebugUtilsMessengerCreateInfoEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags_ = {}, - VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ = {}, - VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType_ = {}, - PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ = {}, - void* pUserData_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , messageSeverity( messageSeverity_ ) - , messageType( messageType_ ) - , pfnUserCallback( pfnUserCallback_ ) - , pUserData( pUserData_ ) - {} - - VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + bool operator!=( GeneratedCommandsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT ) - offsetof( DebugUtilsMessengerCreateInfoEXT, pNext ) ); - return *this; + return !operator==( rhs ); } +#endif - DebugUtilsMessengerCreateInfoEXT( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeneratedCommandsInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics; + VULKAN_HPP_NAMESPACE::Pipeline pipeline = {}; + VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout = {}; + uint32_t streamCount = {}; + const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV * pStreams = {}; + uint32_t sequencesCount = {}; + VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer = {}; + VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset = {}; + VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize = {}; + VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer = {}; + VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset = {}; + VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer = {}; + VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset = {}; + }; + static_assert( sizeof( GeneratedCommandsInfoNV ) == sizeof( VkGeneratedCommandsInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - DebugUtilsMessengerCreateInfoEXT& operator=( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + template <> + struct CppType + { + using Type = GeneratedCommandsInfoNV; + }; - DebugUtilsMessengerCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + struct MemoryBarrier + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryBarrier; - DebugUtilsMessengerCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR MemoryBarrier( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, + VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {} ) VULKAN_HPP_NOEXCEPT + : srcAccessMask( srcAccessMask_ ) + , dstAccessMask( dstAccessMask_ ) + {} + + VULKAN_HPP_CONSTEXPR MemoryBarrier( MemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + MemoryBarrier( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT + : MemoryBarrier( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - DebugUtilsMessengerCreateInfoEXT & setMessageSeverity( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 MemoryBarrier & operator=( MemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + MemoryBarrier & operator=( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT { - messageSeverity = messageSeverity_; + *this = *reinterpret_cast( &rhs ); return *this; } - DebugUtilsMessengerCreateInfoEXT & setMessageType( VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType_ ) VULKAN_HPP_NOEXCEPT + MemoryBarrier & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - messageType = messageType_; + pNext = pNext_; return *this; } - DebugUtilsMessengerCreateInfoEXT & setPfnUserCallback( PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT + MemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT { - pfnUserCallback = pfnUserCallback_; + srcAccessMask = srcAccessMask_; return *this; } - DebugUtilsMessengerCreateInfoEXT & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT + MemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT { - pUserData = pUserData_; + dstAccessMask = dstAccessMask_; return *this; } - operator VkDebugUtilsMessengerCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkMemoryBarrier const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDebugUtilsMessengerCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkMemoryBarrier &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DebugUtilsMessengerCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MemoryBarrier const & ) const = default; +#else + bool operator==( MemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( messageSeverity == rhs.messageSeverity ) - && ( messageType == rhs.messageType ) - && ( pfnUserCallback == rhs.pfnUserCallback ) - && ( pUserData == rhs.pUserData ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcAccessMask == rhs.srcAccessMask ) && + ( dstAccessMask == rhs.dstAccessMask ); } - bool operator!=( DebugUtilsMessengerCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( MemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags = {}; - VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity = {}; - VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType = {}; - PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback = {}; - void* pUserData = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryBarrier; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {}; + VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {}; }; - static_assert( sizeof( DebugUtilsMessengerCreateInfoEXT ) == sizeof( VkDebugUtilsMessengerCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( MemoryBarrier ) == sizeof( VkMemoryBarrier ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct DebugUtilsObjectTagInfoEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DebugUtilsObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown, - uint64_t objectHandle_ = {}, - uint64_t tagName_ = {}, - size_t tagSize_ = {}, - const void* pTag_ = {} ) VULKAN_HPP_NOEXCEPT - : objectType( objectType_ ) - , objectHandle( objectHandle_ ) - , tagName( tagName_ ) - , tagSize( tagSize_ ) - , pTag( pTag_ ) + using Type = MemoryBarrier; + }; + + struct ImageMemoryBarrier + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryBarrier; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ImageMemoryBarrier( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, + VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, + VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, + VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, + uint32_t srcQueueFamilyIndex_ = {}, + uint32_t dstQueueFamilyIndex_ = {}, + VULKAN_HPP_NAMESPACE::Image image_ = {}, + VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {} ) VULKAN_HPP_NOEXCEPT + : srcAccessMask( srcAccessMask_ ) + , dstAccessMask( dstAccessMask_ ) + , oldLayout( oldLayout_ ) + , newLayout( newLayout_ ) + , srcQueueFamilyIndex( srcQueueFamilyIndex_ ) + , dstQueueFamilyIndex( dstQueueFamilyIndex_ ) + , image( image_ ) + , subresourceRange( subresourceRange_ ) + {} + + VULKAN_HPP_CONSTEXPR ImageMemoryBarrier( ImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImageMemoryBarrier( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageMemoryBarrier( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier & + operator=( ImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT & operator=( VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + ImageMemoryBarrier & operator=( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT ) - offsetof( DebugUtilsObjectTagInfoEXT, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - DebugUtilsObjectTagInfoEXT( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + ImageMemoryBarrier & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - DebugUtilsObjectTagInfoEXT& operator=( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + ImageMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + srcAccessMask = srcAccessMask_; return *this; } - DebugUtilsObjectTagInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ImageMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + dstAccessMask = dstAccessMask_; return *this; } - DebugUtilsObjectTagInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT + ImageMemoryBarrier & setOldLayout( VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ ) VULKAN_HPP_NOEXCEPT { - objectType = objectType_; + oldLayout = oldLayout_; return *this; } - DebugUtilsObjectTagInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT + ImageMemoryBarrier & setNewLayout( VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ ) VULKAN_HPP_NOEXCEPT { - objectHandle = objectHandle_; + newLayout = newLayout_; return *this; } - DebugUtilsObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT + ImageMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT { - tagName = tagName_; + srcQueueFamilyIndex = srcQueueFamilyIndex_; return *this; } - DebugUtilsObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT + ImageMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT { - tagSize = tagSize_; + dstQueueFamilyIndex = dstQueueFamilyIndex_; return *this; } - DebugUtilsObjectTagInfoEXT & setPTag( const void* pTag_ ) VULKAN_HPP_NOEXCEPT + ImageMemoryBarrier & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT { - pTag = pTag_; + image = image_; + return *this; + } + + ImageMemoryBarrier & + setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT + { + subresourceRange = subresourceRange_; return *this; } - operator VkDebugUtilsObjectTagInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkImageMemoryBarrier const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDebugUtilsObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkImageMemoryBarrier &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DebugUtilsObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageMemoryBarrier const & ) const = default; +#else + bool operator==( ImageMemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( objectType == rhs.objectType ) - && ( objectHandle == rhs.objectHandle ) - && ( tagName == rhs.tagName ) - && ( tagSize == rhs.tagSize ) - && ( pTag == rhs.pTag ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcAccessMask == rhs.srcAccessMask ) && + ( dstAccessMask == rhs.dstAccessMask ) && ( oldLayout == rhs.oldLayout ) && + ( newLayout == rhs.newLayout ) && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex ) && + ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex ) && ( image == rhs.image ) && + ( subresourceRange == rhs.subresourceRange ); } - bool operator!=( DebugUtilsObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageMemoryBarrier const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectTagInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown; - uint64_t objectHandle = {}; - uint64_t tagName = {}; - size_t tagSize = {}; - const void* pTag = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryBarrier; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {}; + VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {}; + VULKAN_HPP_NAMESPACE::ImageLayout oldLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + VULKAN_HPP_NAMESPACE::ImageLayout newLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + uint32_t srcQueueFamilyIndex = {}; + uint32_t dstQueueFamilyIndex = {}; + VULKAN_HPP_NAMESPACE::Image image = {}; + VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {}; }; - static_assert( sizeof( DebugUtilsObjectTagInfoEXT ) == sizeof( VkDebugUtilsObjectTagInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageMemoryBarrier ) == sizeof( VkImageMemoryBarrier ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct DedicatedAllocationBufferCreateInfoNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DedicatedAllocationBufferCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {} ) VULKAN_HPP_NOEXCEPT - : dedicatedAllocation( dedicatedAllocation_ ) + using Type = ImageMemoryBarrier; + }; + + struct MemoryBarrier2KHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryBarrier2KHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + MemoryBarrier2KHR( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask_ = {}, + VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask_ = {}, + VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask_ = {}, + VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask_ = {} ) VULKAN_HPP_NOEXCEPT + : srcStageMask( srcStageMask_ ) + , srcAccessMask( srcAccessMask_ ) + , dstStageMask( dstStageMask_ ) + , dstAccessMask( dstAccessMask_ ) + {} + + VULKAN_HPP_CONSTEXPR MemoryBarrier2KHR( MemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + MemoryBarrier2KHR( VkMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : MemoryBarrier2KHR( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV & operator=( VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 MemoryBarrier2KHR & + operator=( MemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + MemoryBarrier2KHR & operator=( VkMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV ) - offsetof( DedicatedAllocationBufferCreateInfoNV, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - DedicatedAllocationBufferCreateInfoNV( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + MemoryBarrier2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - DedicatedAllocationBufferCreateInfoNV& operator=( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + MemoryBarrier2KHR & + setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + srcStageMask = srcStageMask_; return *this; } - DedicatedAllocationBufferCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + MemoryBarrier2KHR & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + srcAccessMask = srcAccessMask_; return *this; } - DedicatedAllocationBufferCreateInfoNV & setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT + MemoryBarrier2KHR & + setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask_ ) VULKAN_HPP_NOEXCEPT { - dedicatedAllocation = dedicatedAllocation_; + dstStageMask = dstStageMask_; + return *this; + } + + MemoryBarrier2KHR & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask_ ) VULKAN_HPP_NOEXCEPT + { + dstAccessMask = dstAccessMask_; return *this; } - operator VkDedicatedAllocationBufferCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT + operator VkMemoryBarrier2KHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDedicatedAllocationBufferCreateInfoNV &() VULKAN_HPP_NOEXCEPT + operator VkMemoryBarrier2KHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DedicatedAllocationBufferCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MemoryBarrier2KHR const & ) const = default; +#else + bool operator==( MemoryBarrier2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( dedicatedAllocation == rhs.dedicatedAllocation ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcStageMask == rhs.srcStageMask ) && + ( srcAccessMask == rhs.srcAccessMask ) && ( dstStageMask == rhs.dstStageMask ) && + ( dstAccessMask == rhs.dstAccessMask ); } - bool operator!=( DedicatedAllocationBufferCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( MemoryBarrier2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationBufferCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryBarrier2KHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask = {}; + VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask = {}; + VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask = {}; + VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask = {}; }; - static_assert( sizeof( DedicatedAllocationBufferCreateInfoNV ) == sizeof( VkDedicatedAllocationBufferCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( MemoryBarrier2KHR ) == sizeof( VkMemoryBarrier2KHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct DedicatedAllocationImageCreateInfoNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DedicatedAllocationImageCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {} ) VULKAN_HPP_NOEXCEPT - : dedicatedAllocation( dedicatedAllocation_ ) + using Type = MemoryBarrier2KHR; + }; + + struct ImageMemoryBarrier2KHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryBarrier2KHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ImageMemoryBarrier2KHR( + VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask_ = {}, + VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask_ = {}, + VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask_ = {}, + VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask_ = {}, + VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, + VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, + uint32_t srcQueueFamilyIndex_ = {}, + uint32_t dstQueueFamilyIndex_ = {}, + VULKAN_HPP_NAMESPACE::Image image_ = {}, + VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {} ) VULKAN_HPP_NOEXCEPT + : srcStageMask( srcStageMask_ ) + , srcAccessMask( srcAccessMask_ ) + , dstStageMask( dstStageMask_ ) + , dstAccessMask( dstAccessMask_ ) + , oldLayout( oldLayout_ ) + , newLayout( newLayout_ ) + , srcQueueFamilyIndex( srcQueueFamilyIndex_ ) + , dstQueueFamilyIndex( dstQueueFamilyIndex_ ) + , image( image_ ) + , subresourceRange( subresourceRange_ ) {} - VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV & operator=( VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV ) - offsetof( DedicatedAllocationImageCreateInfoNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR ImageMemoryBarrier2KHR( ImageMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DedicatedAllocationImageCreateInfoNV( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ImageMemoryBarrier2KHR( VkImageMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageMemoryBarrier2KHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - DedicatedAllocationImageCreateInfoNV& operator=( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 ImageMemoryBarrier2KHR & + operator=( ImageMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImageMemoryBarrier2KHR & operator=( VkImageMemoryBarrier2KHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - DedicatedAllocationImageCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ImageMemoryBarrier2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - DedicatedAllocationImageCreateInfoNV & setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT + ImageMemoryBarrier2KHR & + setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask_ ) VULKAN_HPP_NOEXCEPT { - dedicatedAllocation = dedicatedAllocation_; + srcStageMask = srcStageMask_; return *this; } - operator VkDedicatedAllocationImageCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDedicatedAllocationImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT + ImageMemoryBarrier2KHR & + setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + srcAccessMask = srcAccessMask_; + return *this; } - bool operator==( DedicatedAllocationImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + ImageMemoryBarrier2KHR & + setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( dedicatedAllocation == rhs.dedicatedAllocation ); + dstStageMask = dstStageMask_; + return *this; } - bool operator!=( DedicatedAllocationImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + ImageMemoryBarrier2KHR & + setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + dstAccessMask = dstAccessMask_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationImageCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {}; - }; - static_assert( sizeof( DedicatedAllocationImageCreateInfoNV ) == sizeof( VkDedicatedAllocationImageCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DedicatedAllocationMemoryAllocateInfoNV - { - VULKAN_HPP_CONSTEXPR DedicatedAllocationMemoryAllocateInfoNV( VULKAN_HPP_NAMESPACE::Image image_ = {}, - VULKAN_HPP_NAMESPACE::Buffer buffer_ = {} ) VULKAN_HPP_NOEXCEPT - : image( image_ ) - , buffer( buffer_ ) - {} - - VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV & operator=( VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + ImageMemoryBarrier2KHR & setOldLayout( VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV ) - offsetof( DedicatedAllocationMemoryAllocateInfoNV, pNext ) ); + oldLayout = oldLayout_; return *this; } - DedicatedAllocationMemoryAllocateInfoNV( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + ImageMemoryBarrier2KHR & setNewLayout( VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + newLayout = newLayout_; + return *this; } - DedicatedAllocationMemoryAllocateInfoNV& operator=( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + ImageMemoryBarrier2KHR & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + srcQueueFamilyIndex = srcQueueFamilyIndex_; return *this; } - DedicatedAllocationMemoryAllocateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ImageMemoryBarrier2KHR & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + dstQueueFamilyIndex = dstQueueFamilyIndex_; return *this; } - DedicatedAllocationMemoryAllocateInfoNV & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT + ImageMemoryBarrier2KHR & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT { image = image_; return *this; } - DedicatedAllocationMemoryAllocateInfoNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT + ImageMemoryBarrier2KHR & + setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT { - buffer = buffer_; + subresourceRange = subresourceRange_; return *this; } - operator VkDedicatedAllocationMemoryAllocateInfoNV const&() const VULKAN_HPP_NOEXCEPT + operator VkImageMemoryBarrier2KHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDedicatedAllocationMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT + operator VkImageMemoryBarrier2KHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DedicatedAllocationMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageMemoryBarrier2KHR const & ) const = default; +#else + bool operator==( ImageMemoryBarrier2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( image == rhs.image ) - && ( buffer == rhs.buffer ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcStageMask == rhs.srcStageMask ) && + ( srcAccessMask == rhs.srcAccessMask ) && ( dstStageMask == rhs.dstStageMask ) && + ( dstAccessMask == rhs.dstAccessMask ) && ( oldLayout == rhs.oldLayout ) && + ( newLayout == rhs.newLayout ) && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex ) && + ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex ) && ( image == rhs.image ) && + ( subresourceRange == rhs.subresourceRange ); } - bool operator!=( DedicatedAllocationMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageMemoryBarrier2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Image image = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryBarrier2KHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR srcStageMask = {}; + VULKAN_HPP_NAMESPACE::AccessFlags2KHR srcAccessMask = {}; + VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR dstStageMask = {}; + VULKAN_HPP_NAMESPACE::AccessFlags2KHR dstAccessMask = {}; + VULKAN_HPP_NAMESPACE::ImageLayout oldLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + VULKAN_HPP_NAMESPACE::ImageLayout newLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + uint32_t srcQueueFamilyIndex = {}; + uint32_t dstQueueFamilyIndex = {}; + VULKAN_HPP_NAMESPACE::Image image = {}; + VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {}; }; - static_assert( sizeof( DedicatedAllocationMemoryAllocateInfoNV ) == sizeof( VkDedicatedAllocationMemoryAllocateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageMemoryBarrier2KHR ) == sizeof( VkImageMemoryBarrier2KHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct DescriptorBufferInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DescriptorBufferInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize range_ = {} ) VULKAN_HPP_NOEXCEPT - : buffer( buffer_ ) - , offset( offset_ ) - , range( range_ ) + using Type = ImageMemoryBarrier2KHR; + }; + + struct DependencyInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDependencyInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DependencyInfoKHR( + VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {}, + uint32_t memoryBarrierCount_ = {}, + const VULKAN_HPP_NAMESPACE::MemoryBarrier2KHR * pMemoryBarriers_ = {}, + uint32_t bufferMemoryBarrierCount_ = {}, + const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR * pBufferMemoryBarriers_ = {}, + uint32_t imageMemoryBarrierCount_ = {}, + const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR * pImageMemoryBarriers_ = {} ) VULKAN_HPP_NOEXCEPT + : dependencyFlags( dependencyFlags_ ) + , memoryBarrierCount( memoryBarrierCount_ ) + , pMemoryBarriers( pMemoryBarriers_ ) + , bufferMemoryBarrierCount( bufferMemoryBarrierCount_ ) + , pBufferMemoryBarriers( pBufferMemoryBarriers_ ) + , imageMemoryBarrierCount( imageMemoryBarrierCount_ ) + , pImageMemoryBarriers( pImageMemoryBarriers_ ) {} - DescriptorBufferInfo( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR DependencyInfoKHR( DependencyInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DescriptorBufferInfo& operator=( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + DependencyInfoKHR( VkDependencyInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : DependencyInfoKHR( *reinterpret_cast( &rhs ) ) + {} - DescriptorBufferInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DependencyInfoKHR( + VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + memoryBarriers_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + bufferMemoryBarriers_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + imageMemoryBarriers_ = {} ) + : dependencyFlags( dependencyFlags_ ) + , memoryBarrierCount( static_cast( memoryBarriers_.size() ) ) + , pMemoryBarriers( memoryBarriers_.data() ) + , bufferMemoryBarrierCount( static_cast( bufferMemoryBarriers_.size() ) ) + , pBufferMemoryBarriers( bufferMemoryBarriers_.data() ) + , imageMemoryBarrierCount( static_cast( imageMemoryBarriers_.size() ) ) + , pImageMemoryBarriers( imageMemoryBarriers_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DependencyInfoKHR & + operator=( DependencyInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DependencyInfoKHR & operator=( VkDependencyInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - buffer = buffer_; + *this = *reinterpret_cast( &rhs ); return *this; } - DescriptorBufferInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT + DependencyInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - offset = offset_; + pNext = pNext_; return *this; } - DescriptorBufferInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT + DependencyInfoKHR & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT { - range = range_; + dependencyFlags = dependencyFlags_; return *this; } - operator VkDescriptorBufferInfo const&() const VULKAN_HPP_NOEXCEPT + DependencyInfoKHR & setMemoryBarrierCount( uint32_t memoryBarrierCount_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + memoryBarrierCount = memoryBarrierCount_; + return *this; } - operator VkDescriptorBufferInfo &() VULKAN_HPP_NOEXCEPT + DependencyInfoKHR & + setPMemoryBarriers( const VULKAN_HPP_NAMESPACE::MemoryBarrier2KHR * pMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + pMemoryBarriers = pMemoryBarriers_; + return *this; } - bool operator==( DescriptorBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DependencyInfoKHR & setMemoryBarriers( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + memoryBarriers_ ) VULKAN_HPP_NOEXCEPT { - return ( buffer == rhs.buffer ) - && ( offset == rhs.offset ) - && ( range == rhs.range ); + memoryBarrierCount = static_cast( memoryBarriers_.size() ); + pMemoryBarriers = memoryBarriers_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - bool operator!=( DescriptorBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + DependencyInfoKHR & setBufferMemoryBarrierCount( uint32_t bufferMemoryBarrierCount_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + bufferMemoryBarrierCount = bufferMemoryBarrierCount_; + return *this; } - public: - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize range = {}; - }; - static_assert( sizeof( DescriptorBufferInfo ) == sizeof( VkDescriptorBufferInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DescriptorImageInfo - { - VULKAN_HPP_CONSTEXPR DescriptorImageInfo( VULKAN_HPP_NAMESPACE::Sampler sampler_ = {}, - VULKAN_HPP_NAMESPACE::ImageView imageView_ = {}, - VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT - : sampler( sampler_ ) - , imageView( imageView_ ) - , imageLayout( imageLayout_ ) - {} - - DescriptorImageInfo( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT + DependencyInfoKHR & setPBufferMemoryBarriers( + const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR * pBufferMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pBufferMemoryBarriers = pBufferMemoryBarriers_; + return *this; } - DescriptorImageInfo& operator=( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DependencyInfoKHR & setBufferMemoryBarriers( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + bufferMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + bufferMemoryBarrierCount = static_cast( bufferMemoryBarriers_.size() ); + pBufferMemoryBarriers = bufferMemoryBarriers_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - DescriptorImageInfo & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT + DependencyInfoKHR & setImageMemoryBarrierCount( uint32_t imageMemoryBarrierCount_ ) VULKAN_HPP_NOEXCEPT { - sampler = sampler_; + imageMemoryBarrierCount = imageMemoryBarrierCount_; return *this; } - DescriptorImageInfo & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT + DependencyInfoKHR & setPImageMemoryBarriers( + const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR * pImageMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT { - imageView = imageView_; + pImageMemoryBarriers = pImageMemoryBarriers_; return *this; } - DescriptorImageInfo & setImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DependencyInfoKHR & setImageMemoryBarriers( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + imageMemoryBarriers_ ) VULKAN_HPP_NOEXCEPT { - imageLayout = imageLayout_; + imageMemoryBarrierCount = static_cast( imageMemoryBarriers_.size() ); + pImageMemoryBarriers = imageMemoryBarriers_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkDescriptorImageInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkDependencyInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDescriptorImageInfo &() VULKAN_HPP_NOEXCEPT + operator VkDependencyInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DescriptorImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DependencyInfoKHR const & ) const = default; +#else + bool operator==( DependencyInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sampler == rhs.sampler ) - && ( imageView == rhs.imageView ) - && ( imageLayout == rhs.imageLayout ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dependencyFlags == rhs.dependencyFlags ) && + ( memoryBarrierCount == rhs.memoryBarrierCount ) && ( pMemoryBarriers == rhs.pMemoryBarriers ) && + ( bufferMemoryBarrierCount == rhs.bufferMemoryBarrierCount ) && + ( pBufferMemoryBarriers == rhs.pBufferMemoryBarriers ) && + ( imageMemoryBarrierCount == rhs.imageMemoryBarrierCount ) && + ( pImageMemoryBarriers == rhs.pImageMemoryBarriers ); } - bool operator!=( DescriptorImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DependencyInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::Sampler sampler = {}; - VULKAN_HPP_NAMESPACE::ImageView imageView = {}; - VULKAN_HPP_NAMESPACE::ImageLayout imageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDependencyInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {}; + uint32_t memoryBarrierCount = {}; + const VULKAN_HPP_NAMESPACE::MemoryBarrier2KHR * pMemoryBarriers = {}; + uint32_t bufferMemoryBarrierCount = {}; + const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2KHR * pBufferMemoryBarriers = {}; + uint32_t imageMemoryBarrierCount = {}; + const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2KHR * pImageMemoryBarriers = {}; }; - static_assert( sizeof( DescriptorImageInfo ) == sizeof( VkDescriptorImageInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DependencyInfoKHR ) == sizeof( VkDependencyInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct DescriptorPoolSize + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DescriptorPoolSize( VULKAN_HPP_NAMESPACE::DescriptorType type_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, - uint32_t descriptorCount_ = {} ) VULKAN_HPP_NOEXCEPT - : type( type_ ) - , descriptorCount( descriptorCount_ ) - {} + using Type = DependencyInfoKHR; + }; - DescriptorPoolSize( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT + 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: + VULKAN_HPP_CONSTEXPR Sampler() = default; + VULKAN_HPP_CONSTEXPR Sampler( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT Sampler( VkSampler sampler ) VULKAN_HPP_NOEXCEPT : m_sampler( sampler ) {} + +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + Sampler & operator=( VkSampler sampler ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + m_sampler = sampler; + return *this; } +#endif - DescriptorPoolSize& operator=( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT + Sampler & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + m_sampler = {}; return *this; } - DescriptorPoolSize & setType( VULKAN_HPP_NAMESPACE::DescriptorType type_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( Sampler const & ) const = default; +#else + bool operator==( Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT { - type = type_; - return *this; + return m_sampler == rhs.m_sampler; } - DescriptorPoolSize & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT { - descriptorCount = descriptorCount_; - return *this; + return m_sampler != rhs.m_sampler; } - operator VkDescriptorPoolSize const&() const VULKAN_HPP_NOEXCEPT + bool operator<( Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_sampler < rhs.m_sampler; } +#endif - operator VkDescriptorPoolSize &() VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSampler() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_sampler; } - bool operator==( DescriptorPoolSize const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return ( type == rhs.type ) - && ( descriptorCount == rhs.descriptorCount ); + return m_sampler != VK_NULL_HANDLE; } - bool operator!=( DescriptorPoolSize const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_sampler == VK_NULL_HANDLE; } - public: - VULKAN_HPP_NAMESPACE::DescriptorType type = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler; - uint32_t descriptorCount = {}; + private: + VkSampler m_sampler = {}; }; - static_assert( sizeof( DescriptorPoolSize ) == sizeof( VkDescriptorPoolSize ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::Sampler ) == sizeof( VkSampler ), + "handle and wrapper have different size!" ); - struct DescriptorPoolCreateInfo + template <> + struct VULKAN_HPP_DEPRECATED( "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - VULKAN_HPP_CONSTEXPR DescriptorPoolCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ = {}, - uint32_t maxSets_ = {}, - uint32_t poolSizeCount_ = {}, - const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , maxSets( maxSets_ ) - , poolSizeCount( poolSizeCount_ ) - , pPoolSizes( pPoolSizes_ ) - {} + using type = VULKAN_HPP_NAMESPACE::Sampler; + }; - VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo & operator=( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo ) - offsetof( DescriptorPoolCreateInfo, pNext ) ); - return *this; - } + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::Sampler; + }; - DescriptorPoolCreateInfo( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::Sampler; + }; - DescriptorPoolCreateInfo& operator=( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; - DescriptorPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + struct DescriptorImageInfo + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DescriptorImageInfo( VULKAN_HPP_NAMESPACE::Sampler sampler_ = {}, + VULKAN_HPP_NAMESPACE::ImageView imageView_ = {}, + VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ = + VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT + : sampler( sampler_ ) + , imageView( imageView_ ) + , imageLayout( imageLayout_ ) + {} - DescriptorPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR DescriptorImageInfo( DescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DescriptorImageInfo( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : DescriptorImageInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DescriptorImageInfo & + operator=( DescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DescriptorImageInfo & operator=( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + *this = *reinterpret_cast( &rhs ); return *this; } - DescriptorPoolCreateInfo & setMaxSets( uint32_t maxSets_ ) VULKAN_HPP_NOEXCEPT + DescriptorImageInfo & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT { - maxSets = maxSets_; + sampler = sampler_; return *this; } - DescriptorPoolCreateInfo & setPoolSizeCount( uint32_t poolSizeCount_ ) VULKAN_HPP_NOEXCEPT + DescriptorImageInfo & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT { - poolSizeCount = poolSizeCount_; + imageView = imageView_; return *this; } - DescriptorPoolCreateInfo & setPPoolSizes( const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes_ ) VULKAN_HPP_NOEXCEPT + DescriptorImageInfo & setImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ ) VULKAN_HPP_NOEXCEPT { - pPoolSizes = pPoolSizes_; + imageLayout = imageLayout_; return *this; } - operator VkDescriptorPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkDescriptorImageInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDescriptorPoolCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkDescriptorImageInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DescriptorPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DescriptorImageInfo const & ) const = default; +#else + bool operator==( DescriptorImageInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( maxSets == rhs.maxSets ) - && ( poolSizeCount == rhs.poolSizeCount ) - && ( pPoolSizes == rhs.pPoolSizes ); + return ( sampler == rhs.sampler ) && ( imageView == rhs.imageView ) && ( imageLayout == rhs.imageLayout ); } - bool operator!=( DescriptorPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DescriptorImageInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags = {}; - uint32_t maxSets = {}; - uint32_t poolSizeCount = {}; - const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes = {}; + VULKAN_HPP_NAMESPACE::Sampler sampler = {}; + VULKAN_HPP_NAMESPACE::ImageView imageView = {}; + VULKAN_HPP_NAMESPACE::ImageLayout imageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; }; - static_assert( sizeof( DescriptorPoolCreateInfo ) == sizeof( VkDescriptorPoolCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DescriptorImageInfo ) == sizeof( VkDescriptorImageInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct DescriptorPoolInlineUniformBlockCreateInfoEXT + struct DescriptorBufferInfo { - VULKAN_HPP_CONSTEXPR DescriptorPoolInlineUniformBlockCreateInfoEXT( uint32_t maxInlineUniformBlockBindings_ = {} ) VULKAN_HPP_NOEXCEPT - : maxInlineUniformBlockBindings( maxInlineUniformBlockBindings_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DescriptorBufferInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize range_ = {} ) VULKAN_HPP_NOEXCEPT + : buffer( buffer_ ) + , offset( offset_ ) + , range( range_ ) {} - VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfoEXT ) - offsetof( DescriptorPoolInlineUniformBlockCreateInfoEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR DescriptorBufferInfo( DescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DescriptorBufferInfo( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : DescriptorBufferInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DescriptorBufferInfo & + operator=( DescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DescriptorPoolInlineUniformBlockCreateInfoEXT( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DescriptorBufferInfo & operator=( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - DescriptorPoolInlineUniformBlockCreateInfoEXT& operator=( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DescriptorBufferInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + buffer = buffer_; return *this; } - DescriptorPoolInlineUniformBlockCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + DescriptorBufferInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + offset = offset_; return *this; } - DescriptorPoolInlineUniformBlockCreateInfoEXT & setMaxInlineUniformBlockBindings( uint32_t maxInlineUniformBlockBindings_ ) VULKAN_HPP_NOEXCEPT + DescriptorBufferInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT { - maxInlineUniformBlockBindings = maxInlineUniformBlockBindings_; + range = range_; return *this; } - operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkDescriptorBufferInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkDescriptorBufferInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DescriptorPoolInlineUniformBlockCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DescriptorBufferInfo const & ) const = default; +#else + bool operator==( DescriptorBufferInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxInlineUniformBlockBindings == rhs.maxInlineUniformBlockBindings ); + return ( buffer == rhs.buffer ) && ( offset == rhs.offset ) && ( range == rhs.range ); } - bool operator!=( DescriptorPoolInlineUniformBlockCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DescriptorBufferInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT; - const void* pNext = {}; - uint32_t maxInlineUniformBlockBindings = {}; + VULKAN_HPP_NAMESPACE::Buffer buffer = {}; + VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; + VULKAN_HPP_NAMESPACE::DeviceSize range = {}; }; - static_assert( sizeof( DescriptorPoolInlineUniformBlockCreateInfoEXT ) == sizeof( VkDescriptorPoolInlineUniformBlockCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DescriptorBufferInfo ) == sizeof( VkDescriptorBufferInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct DescriptorSetAllocateInfo + class BufferView { - VULKAN_HPP_CONSTEXPR DescriptorSetAllocateInfo( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ = {}, - uint32_t descriptorSetCount_ = {}, - const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ = {} ) VULKAN_HPP_NOEXCEPT - : descriptorPool( descriptorPool_ ) - , descriptorSetCount( descriptorSetCount_ ) - , pSetLayouts( pSetLayouts_ ) - {} + public: + using CType = VkBufferView; - VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo & operator=( VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo ) - offsetof( DescriptorSetAllocateInfo, pNext ) ); - return *this; - } + 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; - DescriptorSetAllocateInfo( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + public: + VULKAN_HPP_CONSTEXPR BufferView() = default; + VULKAN_HPP_CONSTEXPR BufferView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT BufferView( VkBufferView bufferView ) VULKAN_HPP_NOEXCEPT : m_bufferView( bufferView ) + {} - DescriptorSetAllocateInfo& operator=( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + BufferView & operator=( VkBufferView bufferView ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + m_bufferView = bufferView; return *this; } +#endif - DescriptorSetAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + BufferView & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + m_bufferView = {}; return *this; } - DescriptorSetAllocateInfo & setDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( BufferView const & ) const = default; +#else + bool operator==( BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT { - descriptorPool = descriptorPool_; - return *this; + return m_bufferView == rhs.m_bufferView; } - DescriptorSetAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT { - descriptorSetCount = descriptorSetCount_; - return *this; + return m_bufferView != rhs.m_bufferView; } - DescriptorSetAllocateInfo & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ ) VULKAN_HPP_NOEXCEPT + bool operator<( BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT { - pSetLayouts = pSetLayouts_; - return *this; + return m_bufferView < rhs.m_bufferView; } +#endif - operator VkDescriptorSetAllocateInfo const&() const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkBufferView() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_bufferView; } - operator VkDescriptorSetAllocateInfo &() VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_bufferView != VK_NULL_HANDLE; } - bool operator==( DescriptorSetAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( descriptorPool == rhs.descriptorPool ) - && ( descriptorSetCount == rhs.descriptorSetCount ) - && ( pSetLayouts == rhs.pSetLayouts ); + return m_bufferView == VK_NULL_HANDLE; } - bool operator!=( DescriptorSetAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } + private: + VkBufferView m_bufferView = {}; + }; + static_assert( sizeof( VULKAN_HPP_NAMESPACE::BufferView ) == sizeof( VkBufferView ), + "handle and wrapper have different size!" ); - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetAllocateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool = {}; - uint32_t descriptorSetCount = {}; - const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts = {}; + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type + { + using type = VULKAN_HPP_NAMESPACE::BufferView; }; - static_assert( sizeof( DescriptorSetAllocateInfo ) == sizeof( VkDescriptorSetAllocateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct DescriptorSetLayoutBinding + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBinding( uint32_t binding_ = {}, - VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, - uint32_t descriptorCount_ = {}, - VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {}, - const VULKAN_HPP_NAMESPACE::Sampler* pImmutableSamplers_ = {} ) VULKAN_HPP_NOEXCEPT - : binding( binding_ ) - , descriptorType( descriptorType_ ) + using Type = VULKAN_HPP_NAMESPACE::BufferView; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::BufferView; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + struct WriteDescriptorSet + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSet; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR WriteDescriptorSet( + VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ = {}, + uint32_t dstBinding_ = {}, + uint32_t dstArrayElement_ = {}, + uint32_t descriptorCount_ = {}, + VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, + const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pImageInfo_ = {}, + const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * pBufferInfo_ = {}, + const VULKAN_HPP_NAMESPACE::BufferView * pTexelBufferView_ = {} ) VULKAN_HPP_NOEXCEPT + : dstSet( dstSet_ ) + , dstBinding( dstBinding_ ) + , dstArrayElement( dstArrayElement_ ) , descriptorCount( descriptorCount_ ) - , stageFlags( stageFlags_ ) - , pImmutableSamplers( pImmutableSamplers_ ) + , descriptorType( descriptorType_ ) + , pImageInfo( pImageInfo_ ) + , pBufferInfo( pBufferInfo_ ) + , pTexelBufferView( pTexelBufferView_ ) {} - DescriptorSetLayoutBinding( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; + VULKAN_HPP_CONSTEXPR WriteDescriptorSet( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + WriteDescriptorSet( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT + : WriteDescriptorSet( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + WriteDescriptorSet( + VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_, + uint32_t dstBinding_, + uint32_t dstArrayElement_, + VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & imageInfo_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + bufferInfo_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + texelBufferView_ = {} ) + : dstSet( dstSet_ ) + , dstBinding( dstBinding_ ) + , dstArrayElement( dstArrayElement_ ) + , descriptorCount( static_cast( !imageInfo_.empty() ? imageInfo_.size() + : !bufferInfo_.empty() ? bufferInfo_.size() + : texelBufferView_.size() ) ) + , descriptorType( descriptorType_ ) + , pImageInfo( imageInfo_.data() ) + , pBufferInfo( bufferInfo_.data() ) + , pTexelBufferView( texelBufferView_.data() ) + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) == 1 ); +# else + if ( ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) != 1 ) + { + throw LogicError( + VULKAN_HPP_NAMESPACE_STRING + "::WriteDescriptorSet::WriteDescriptorSet: ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) != 1" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - DescriptorSetLayoutBinding& operator=( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSet & + operator=( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + WriteDescriptorSet & operator=( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - DescriptorSetLayoutBinding & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT + WriteDescriptorSet & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - binding = binding_; + pNext = pNext_; return *this; } - DescriptorSetLayoutBinding & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT + WriteDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT { - descriptorType = descriptorType_; + dstSet = dstSet_; return *this; } - DescriptorSetLayoutBinding & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT + WriteDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT { - descriptorCount = descriptorCount_; + dstBinding = dstBinding_; return *this; } - DescriptorSetLayoutBinding & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT + WriteDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT { - stageFlags = stageFlags_; + dstArrayElement = dstArrayElement_; return *this; } - DescriptorSetLayoutBinding & setPImmutableSamplers( const VULKAN_HPP_NAMESPACE::Sampler* pImmutableSamplers_ ) VULKAN_HPP_NOEXCEPT + WriteDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT { - pImmutableSamplers = pImmutableSamplers_; + descriptorCount = descriptorCount_; return *this; } - operator VkDescriptorSetLayoutBinding const&() const VULKAN_HPP_NOEXCEPT + WriteDescriptorSet & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + descriptorType = descriptorType_; + return *this; } - operator VkDescriptorSetLayoutBinding &() VULKAN_HPP_NOEXCEPT + WriteDescriptorSet & + setPImageInfo( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pImageInfo_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + pImageInfo = pImageInfo_; + return *this; } - bool operator==( DescriptorSetLayoutBinding const& rhs ) const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + WriteDescriptorSet & setImageInfo( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + imageInfo_ ) VULKAN_HPP_NOEXCEPT { - return ( binding == rhs.binding ) - && ( descriptorType == rhs.descriptorType ) - && ( descriptorCount == rhs.descriptorCount ) - && ( stageFlags == rhs.stageFlags ) - && ( pImmutableSamplers == rhs.pImmutableSamplers ); - } - - bool operator!=( DescriptorSetLayoutBinding const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } - - public: - uint32_t binding = {}; - VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler; - uint32_t descriptorCount = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {}; - const VULKAN_HPP_NAMESPACE::Sampler* pImmutableSamplers = {}; - }; - static_assert( sizeof( DescriptorSetLayoutBinding ) == sizeof( VkDescriptorSetLayoutBinding ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DescriptorSetLayoutBindingFlagsCreateInfo - { - VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBindingFlagsCreateInfo( uint32_t bindingCount_ = {}, - const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags_ = {} ) VULKAN_HPP_NOEXCEPT - : bindingCount( bindingCount_ ) - , pBindingFlags( pBindingFlags_ ) - {} - - VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo & operator=( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo ) - offsetof( DescriptorSetLayoutBindingFlagsCreateInfo, pNext ) ); + descriptorCount = static_cast( imageInfo_.size() ); + pImageInfo = imageInfo_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - DescriptorSetLayoutBindingFlagsCreateInfo( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - - DescriptorSetLayoutBindingFlagsCreateInfo& operator=( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + WriteDescriptorSet & + setPBufferInfo( const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * pBufferInfo_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pBufferInfo = pBufferInfo_; return *this; } - DescriptorSetLayoutBindingFlagsCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + WriteDescriptorSet & setBufferInfo( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + bufferInfo_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + descriptorCount = static_cast( bufferInfo_.size() ); + pBufferInfo = bufferInfo_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - DescriptorSetLayoutBindingFlagsCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT + WriteDescriptorSet & + setPTexelBufferView( const VULKAN_HPP_NAMESPACE::BufferView * pTexelBufferView_ ) VULKAN_HPP_NOEXCEPT { - bindingCount = bindingCount_; + pTexelBufferView = pTexelBufferView_; return *this; } - DescriptorSetLayoutBindingFlagsCreateInfo & setPBindingFlags( const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + WriteDescriptorSet & setTexelBufferView( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & texelBufferView_ ) + VULKAN_HPP_NOEXCEPT { - pBindingFlags = pBindingFlags_; + descriptorCount = static_cast( texelBufferView_.size() ); + pTexelBufferView = texelBufferView_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkDescriptorSetLayoutBindingFlagsCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkWriteDescriptorSet const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDescriptorSetLayoutBindingFlagsCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkWriteDescriptorSet &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DescriptorSetLayoutBindingFlagsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( WriteDescriptorSet const & ) const = default; +#else + bool operator==( WriteDescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( bindingCount == rhs.bindingCount ) - && ( pBindingFlags == rhs.pBindingFlags ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dstSet == rhs.dstSet ) && + ( dstBinding == rhs.dstBinding ) && ( dstArrayElement == rhs.dstArrayElement ) && + ( descriptorCount == rhs.descriptorCount ) && ( descriptorType == rhs.descriptorType ) && + ( pImageInfo == rhs.pImageInfo ) && ( pBufferInfo == rhs.pBufferInfo ) && + ( pTexelBufferView == rhs.pTexelBufferView ); } - bool operator!=( DescriptorSetLayoutBindingFlagsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( WriteDescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo; - const void* pNext = {}; - uint32_t bindingCount = {}; - const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSet; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {}; + uint32_t dstBinding = {}; + uint32_t dstArrayElement = {}; + uint32_t descriptorCount = {}; + VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler; + const VULKAN_HPP_NAMESPACE::DescriptorImageInfo * pImageInfo = {}; + const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * pBufferInfo = {}; + const VULKAN_HPP_NAMESPACE::BufferView * pTexelBufferView = {}; }; - static_assert( sizeof( DescriptorSetLayoutBindingFlagsCreateInfo ) == sizeof( VkDescriptorSetLayoutBindingFlagsCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( WriteDescriptorSet ) == sizeof( VkWriteDescriptorSet ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct DescriptorSetLayoutCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ = {}, - uint32_t bindingCount_ = {}, - const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , bindingCount( bindingCount_ ) - , pBindings( pBindings_ ) - {} + using Type = WriteDescriptorSet; + }; - VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & operator=( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo ) - offsetof( DescriptorSetLayoutCreateInfo, pNext ) ); - return *this; - } + class DescriptorUpdateTemplate + { + public: + using CType = VkDescriptorUpdateTemplate; - DescriptorSetLayoutCreateInfo( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + 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; - DescriptorSetLayoutCreateInfo& operator=( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + public: + VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate() = default; + VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT + DescriptorUpdateTemplate( VkDescriptorUpdateTemplate descriptorUpdateTemplate ) VULKAN_HPP_NOEXCEPT + : m_descriptorUpdateTemplate( descriptorUpdateTemplate ) + {} - DescriptorSetLayoutCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + DescriptorUpdateTemplate & operator=( VkDescriptorUpdateTemplate descriptorUpdateTemplate ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + m_descriptorUpdateTemplate = descriptorUpdateTemplate; return *this; } +#endif - DescriptorSetLayoutCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + DescriptorUpdateTemplate & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + m_descriptorUpdateTemplate = {}; return *this; } - DescriptorSetLayoutCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DescriptorUpdateTemplate const & ) const = default; +#else + bool operator==( DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT { - bindingCount = bindingCount_; - return *this; + return m_descriptorUpdateTemplate == rhs.m_descriptorUpdateTemplate; } - DescriptorSetLayoutCreateInfo & setPBindings( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT { - pBindings = pBindings_; - return *this; + return m_descriptorUpdateTemplate != rhs.m_descriptorUpdateTemplate; } - operator VkDescriptorSetLayoutCreateInfo const&() const VULKAN_HPP_NOEXCEPT + bool operator<( DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_descriptorUpdateTemplate < rhs.m_descriptorUpdateTemplate; } +#endif - operator VkDescriptorSetLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorUpdateTemplate() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_descriptorUpdateTemplate; } - bool operator==( DescriptorSetLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( bindingCount == rhs.bindingCount ) - && ( pBindings == rhs.pBindings ); + return m_descriptorUpdateTemplate != VK_NULL_HANDLE; } - bool operator!=( DescriptorSetLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_descriptorUpdateTemplate == VK_NULL_HANDLE; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags = {}; - uint32_t bindingCount = {}; - const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings = {}; + private: + VkDescriptorUpdateTemplate m_descriptorUpdateTemplate = {}; }; - static_assert( sizeof( DescriptorSetLayoutCreateInfo ) == sizeof( VkDescriptorSetLayoutCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate ) == sizeof( VkDescriptorUpdateTemplate ), + "handle and wrapper have different size!" ); - struct DescriptorSetLayoutSupport + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - DescriptorSetLayoutSupport( VULKAN_HPP_NAMESPACE::Bool32 supported_ = {} ) VULKAN_HPP_NOEXCEPT - : supported( supported_ ) - {} + using type = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + using DescriptorUpdateTemplateKHR = DescriptorUpdateTemplate; + + class Event + { + public: + using CType = VkEvent; - VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & operator=( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT + 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: + VULKAN_HPP_CONSTEXPR Event() = default; + VULKAN_HPP_CONSTEXPR Event( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT Event( VkEvent event ) VULKAN_HPP_NOEXCEPT : m_event( event ) {} + +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + Event & operator=( VkEvent event ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport ) - offsetof( DescriptorSetLayoutSupport, pNext ) ); + m_event = event; return *this; } +#endif - DescriptorSetLayoutSupport( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT + Event & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + m_event = {}; + return *this; } - DescriptorSetLayoutSupport& operator=( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( Event const & ) const = default; +#else + bool operator==( Event const & rhs ) const VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return m_event == rhs.m_event; } - operator VkDescriptorSetLayoutSupport const&() const VULKAN_HPP_NOEXCEPT + bool operator!=( Event const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_event != rhs.m_event; } - operator VkDescriptorSetLayoutSupport &() VULKAN_HPP_NOEXCEPT + bool operator<( Event const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_event < rhs.m_event; } +#endif - bool operator==( DescriptorSetLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkEvent() const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( supported == rhs.supported ); + return m_event; } - bool operator!=( DescriptorSetLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_event != VK_NULL_HANDLE; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutSupport; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 supported = {}; + bool operator!() const VULKAN_HPP_NOEXCEPT + { + return m_event == VK_NULL_HANDLE; + } + + private: + VkEvent m_event = {}; }; - static_assert( sizeof( DescriptorSetLayoutSupport ) == sizeof( VkDescriptorSetLayoutSupport ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::Event ) == sizeof( VkEvent ), + "handle and wrapper have different size!" ); - struct DescriptorSetVariableDescriptorCountAllocateInfo + template <> + struct VULKAN_HPP_DEPRECATED( "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountAllocateInfo( uint32_t descriptorSetCount_ = {}, - const uint32_t* pDescriptorCounts_ = {} ) VULKAN_HPP_NOEXCEPT - : descriptorSetCount( descriptorSetCount_ ) - , pDescriptorCounts( pDescriptorCounts_ ) + using type = VULKAN_HPP_NAMESPACE::Event; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::Event; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::Event; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + struct ImageResolve + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ImageResolve( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, + VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {}, + VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, + VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {}, + VULKAN_HPP_NAMESPACE::Extent3D extent_ = {} ) VULKAN_HPP_NOEXCEPT + : srcSubresource( srcSubresource_ ) + , srcOffset( srcOffset_ ) + , dstSubresource( dstSubresource_ ) + , dstOffset( dstOffset_ ) + , extent( extent_ ) + {} + + VULKAN_HPP_CONSTEXPR ImageResolve( ImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImageResolve( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageResolve( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ImageResolve & operator=( ImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo & operator=( VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + ImageResolve & operator=( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo ) - offsetof( DescriptorSetVariableDescriptorCountAllocateInfo, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - DescriptorSetVariableDescriptorCountAllocateInfo( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + ImageResolve & + setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + srcSubresource = srcSubresource_; + return *this; } - DescriptorSetVariableDescriptorCountAllocateInfo& operator=( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + ImageResolve & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + srcOffset = srcOffset_; return *this; } - DescriptorSetVariableDescriptorCountAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ImageResolve & + setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + dstSubresource = dstSubresource_; return *this; } - DescriptorSetVariableDescriptorCountAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT + ImageResolve & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT { - descriptorSetCount = descriptorSetCount_; + dstOffset = dstOffset_; return *this; } - DescriptorSetVariableDescriptorCountAllocateInfo & setPDescriptorCounts( const uint32_t* pDescriptorCounts_ ) VULKAN_HPP_NOEXCEPT + ImageResolve & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT { - pDescriptorCounts = pDescriptorCounts_; + extent = extent_; return *this; } - operator VkDescriptorSetVariableDescriptorCountAllocateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkImageResolve const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDescriptorSetVariableDescriptorCountAllocateInfo &() VULKAN_HPP_NOEXCEPT + operator VkImageResolve &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DescriptorSetVariableDescriptorCountAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageResolve const & ) const = default; +#else + bool operator==( ImageResolve const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( descriptorSetCount == rhs.descriptorSetCount ) - && ( pDescriptorCounts == rhs.pDescriptorCounts ); + return ( srcSubresource == rhs.srcSubresource ) && ( srcOffset == rhs.srcOffset ) && + ( dstSubresource == rhs.dstSubresource ) && ( dstOffset == rhs.dstOffset ) && ( extent == rhs.extent ); } - bool operator!=( DescriptorSetVariableDescriptorCountAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageResolve const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo; - const void* pNext = {}; - uint32_t descriptorSetCount = {}; - const uint32_t* pDescriptorCounts = {}; + VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {}; + VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {}; + VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {}; + VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {}; + VULKAN_HPP_NAMESPACE::Extent3D extent = {}; }; - static_assert( sizeof( DescriptorSetVariableDescriptorCountAllocateInfo ) == sizeof( VkDescriptorSetVariableDescriptorCountAllocateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageResolve ) == sizeof( VkImageResolve ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct DescriptorSetVariableDescriptorCountLayoutSupport + struct ImageResolve2KHR { - DescriptorSetVariableDescriptorCountLayoutSupport( uint32_t maxVariableDescriptorCount_ = {} ) VULKAN_HPP_NOEXCEPT - : maxVariableDescriptorCount( maxVariableDescriptorCount_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageResolve2KHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ImageResolve2KHR( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, + VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {}, + VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, + VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {}, + VULKAN_HPP_NAMESPACE::Extent3D extent_ = {} ) VULKAN_HPP_NOEXCEPT + : srcSubresource( srcSubresource_ ) + , srcOffset( srcOffset_ ) + , dstSubresource( dstSubresource_ ) + , dstOffset( dstOffset_ ) + , extent( extent_ ) + {} + + VULKAN_HPP_CONSTEXPR ImageResolve2KHR( ImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImageResolve2KHR( VkImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageResolve2KHR( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ImageResolve2KHR & operator=( ImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImageResolve2KHR & operator=( VkImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport & operator=( VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT + ImageResolve2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport ) - offsetof( DescriptorSetVariableDescriptorCountLayoutSupport, pNext ) ); + pNext = pNext_; return *this; } - DescriptorSetVariableDescriptorCountLayoutSupport( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT + ImageResolve2KHR & + setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + srcSubresource = srcSubresource_; + return *this; } - DescriptorSetVariableDescriptorCountLayoutSupport& operator=( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT + ImageResolve2KHR & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + srcOffset = srcOffset_; return *this; } - operator VkDescriptorSetVariableDescriptorCountLayoutSupport const&() const VULKAN_HPP_NOEXCEPT + ImageResolve2KHR & + setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + dstSubresource = dstSubresource_; + return *this; } - operator VkDescriptorSetVariableDescriptorCountLayoutSupport &() VULKAN_HPP_NOEXCEPT + ImageResolve2KHR & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + dstOffset = dstOffset_; + return *this; + } + + ImageResolve2KHR & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT + { + extent = extent_; + return *this; + } + + operator VkImageResolve2KHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkImageResolve2KHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); } - bool operator==( DescriptorSetVariableDescriptorCountLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageResolve2KHR const & ) const = default; +#else + bool operator==( ImageResolve2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxVariableDescriptorCount == rhs.maxVariableDescriptorCount ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcSubresource == rhs.srcSubresource ) && + ( srcOffset == rhs.srcOffset ) && ( dstSubresource == rhs.dstSubresource ) && + ( dstOffset == rhs.dstOffset ) && ( extent == rhs.extent ); } - bool operator!=( DescriptorSetVariableDescriptorCountLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageResolve2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport; - void* pNext = {}; - uint32_t maxVariableDescriptorCount = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageResolve2KHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {}; + VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {}; + VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {}; + VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {}; + VULKAN_HPP_NAMESPACE::Extent3D extent = {}; }; - static_assert( sizeof( DescriptorSetVariableDescriptorCountLayoutSupport ) == sizeof( VkDescriptorSetVariableDescriptorCountLayoutSupport ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageResolve2KHR ) == sizeof( VkImageResolve2KHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct DescriptorUpdateTemplateEntry + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateEntry( uint32_t dstBinding_ = {}, - uint32_t dstArrayElement_ = {}, - uint32_t descriptorCount_ = {}, - VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, - size_t offset_ = {}, - size_t stride_ = {} ) VULKAN_HPP_NOEXCEPT - : dstBinding( dstBinding_ ) - , dstArrayElement( dstArrayElement_ ) - , descriptorCount( descriptorCount_ ) - , descriptorType( descriptorType_ ) - , offset( offset_ ) - , stride( stride_ ) + using Type = ImageResolve2KHR; + }; + + struct ResolveImageInfo2KHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eResolveImageInfo2KHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ResolveImageInfo2KHR( + VULKAN_HPP_NAMESPACE::Image srcImage_ = {}, + VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, + VULKAN_HPP_NAMESPACE::Image dstImage_ = {}, + VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, + uint32_t regionCount_ = {}, + const VULKAN_HPP_NAMESPACE::ImageResolve2KHR * pRegions_ = {} ) VULKAN_HPP_NOEXCEPT + : srcImage( srcImage_ ) + , srcImageLayout( srcImageLayout_ ) + , dstImage( dstImage_ ) + , dstImageLayout( dstImageLayout_ ) + , regionCount( regionCount_ ) + , pRegions( pRegions_ ) {} - DescriptorUpdateTemplateEntry( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR ResolveImageInfo2KHR( ResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ResolveImageInfo2KHR( VkResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : ResolveImageInfo2KHR( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + ResolveImageInfo2KHR( + VULKAN_HPP_NAMESPACE::Image srcImage_, + VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_, + VULKAN_HPP_NAMESPACE::Image dstImage_, + VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) + : srcImage( srcImage_ ) + , srcImageLayout( srcImageLayout_ ) + , dstImage( dstImage_ ) + , dstImageLayout( dstImageLayout_ ) + , regionCount( static_cast( regions_.size() ) ) + , pRegions( regions_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ResolveImageInfo2KHR & + operator=( ResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ResolveImageInfo2KHR & operator=( VkResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - DescriptorUpdateTemplateEntry& operator=( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT + ResolveImageInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - DescriptorUpdateTemplateEntry & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT + ResolveImageInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT { - dstBinding = dstBinding_; + srcImage = srcImage_; return *this; } - DescriptorUpdateTemplateEntry & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT + ResolveImageInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT { - dstArrayElement = dstArrayElement_; + srcImageLayout = srcImageLayout_; return *this; } - DescriptorUpdateTemplateEntry & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT + ResolveImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT { - descriptorCount = descriptorCount_; + dstImage = dstImage_; return *this; } - DescriptorUpdateTemplateEntry & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT + ResolveImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT { - descriptorType = descriptorType_; + dstImageLayout = dstImageLayout_; return *this; } - DescriptorUpdateTemplateEntry & setOffset( size_t offset_ ) VULKAN_HPP_NOEXCEPT + ResolveImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT { - offset = offset_; + regionCount = regionCount_; return *this; } - DescriptorUpdateTemplateEntry & setStride( size_t stride_ ) VULKAN_HPP_NOEXCEPT + ResolveImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::ImageResolve2KHR * pRegions_ ) VULKAN_HPP_NOEXCEPT { - stride = stride_; + pRegions = pRegions_; return *this; } - operator VkDescriptorUpdateTemplateEntry const&() const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + ResolveImageInfo2KHR & setRegions( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) + VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + regionCount = static_cast( regions_.size() ); + pRegions = regions_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkDescriptorUpdateTemplateEntry &() VULKAN_HPP_NOEXCEPT + operator VkResolveImageInfo2KHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkResolveImageInfo2KHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DescriptorUpdateTemplateEntry const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ResolveImageInfo2KHR const & ) const = default; +#else + bool operator==( ResolveImageInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( dstBinding == rhs.dstBinding ) - && ( dstArrayElement == rhs.dstArrayElement ) - && ( descriptorCount == rhs.descriptorCount ) - && ( descriptorType == rhs.descriptorType ) - && ( offset == rhs.offset ) - && ( stride == rhs.stride ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcImage == rhs.srcImage ) && + ( srcImageLayout == rhs.srcImageLayout ) && ( dstImage == rhs.dstImage ) && + ( dstImageLayout == rhs.dstImageLayout ) && ( regionCount == rhs.regionCount ) && + ( pRegions == rhs.pRegions ); } - bool operator!=( DescriptorUpdateTemplateEntry const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ResolveImageInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint32_t dstBinding = {}; - uint32_t dstArrayElement = {}; - uint32_t descriptorCount = {}; - VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler; - size_t offset = {}; - size_t stride = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eResolveImageInfo2KHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Image srcImage = {}; + VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + VULKAN_HPP_NAMESPACE::Image dstImage = {}; + VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; + uint32_t regionCount = {}; + const VULKAN_HPP_NAMESPACE::ImageResolve2KHR * pRegions = {}; }; - static_assert( sizeof( DescriptorUpdateTemplateEntry ) == sizeof( VkDescriptorUpdateTemplateEntry ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ResolveImageInfo2KHR ) == sizeof( VkResolveImageInfo2KHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct DescriptorUpdateTemplateCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_ = {}, - uint32_t descriptorUpdateEntryCount_ = {}, - const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries_ = {}, - VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet, - VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ = {}, - VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, - VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ = {}, - uint32_t set_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , descriptorUpdateEntryCount( descriptorUpdateEntryCount_ ) - , pDescriptorUpdateEntries( pDescriptorUpdateEntries_ ) - , templateType( templateType_ ) - , descriptorSetLayout( descriptorSetLayout_ ) - , pipelineBindPoint( pipelineBindPoint_ ) - , pipelineLayout( pipelineLayout_ ) - , set( set_ ) + using Type = ResolveImageInfo2KHR; + }; + + struct PerformanceMarkerInfoINTEL + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceMarkerInfoINTEL; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PerformanceMarkerInfoINTEL( uint64_t marker_ = {} ) VULKAN_HPP_NOEXCEPT : marker( marker_ ) {} + + VULKAN_HPP_CONSTEXPR + PerformanceMarkerInfoINTEL( PerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PerformanceMarkerInfoINTEL( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT + : PerformanceMarkerInfoINTEL( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo & operator=( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PerformanceMarkerInfoINTEL & + operator=( PerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PerformanceMarkerInfoINTEL & operator=( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo ) - offsetof( DescriptorUpdateTemplateCreateInfo, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - DescriptorUpdateTemplateCreateInfo( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PerformanceMarkerInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - DescriptorUpdateTemplateCreateInfo& operator=( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PerformanceMarkerInfoINTEL & setMarker( uint64_t marker_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + marker = marker_; return *this; } - DescriptorUpdateTemplateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + operator VkPerformanceMarkerInfoINTEL const &() const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; - return *this; + return *reinterpret_cast( this ); } - DescriptorUpdateTemplateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + operator VkPerformanceMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT { - flags = flags_; - return *this; + return *reinterpret_cast( this ); } - DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntryCount( uint32_t descriptorUpdateEntryCount_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PerformanceMarkerInfoINTEL const & ) const = default; +#else + bool operator==( PerformanceMarkerInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT { - descriptorUpdateEntryCount = descriptorUpdateEntryCount_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( marker == rhs.marker ); } - DescriptorUpdateTemplateCreateInfo & setPDescriptorUpdateEntries( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( PerformanceMarkerInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT { - pDescriptorUpdateEntries = pDescriptorUpdateEntries_; - return *this; + return !operator==( rhs ); } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceMarkerInfoINTEL; + const void * pNext = {}; + uint64_t marker = {}; + }; + static_assert( sizeof( PerformanceMarkerInfoINTEL ) == sizeof( VkPerformanceMarkerInfoINTEL ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PerformanceMarkerInfoINTEL; + }; + + struct PerformanceOverrideInfoINTEL + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceOverrideInfoINTEL; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PerformanceOverrideInfoINTEL( VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type_ = + VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL::eNullHardware, + VULKAN_HPP_NAMESPACE::Bool32 enable_ = {}, + uint64_t parameter_ = {} ) VULKAN_HPP_NOEXCEPT + : type( type_ ) + , enable( enable_ ) + , parameter( parameter_ ) + {} + + VULKAN_HPP_CONSTEXPR + PerformanceOverrideInfoINTEL( PerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DescriptorUpdateTemplateCreateInfo & setTemplateType( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ ) VULKAN_HPP_NOEXCEPT + PerformanceOverrideInfoINTEL( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT + : PerformanceOverrideInfoINTEL( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PerformanceOverrideInfoINTEL & + operator=( PerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PerformanceOverrideInfoINTEL & operator=( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT { - templateType = templateType_; + *this = *reinterpret_cast( &rhs ); return *this; } - DescriptorUpdateTemplateCreateInfo & setDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ ) VULKAN_HPP_NOEXCEPT + PerformanceOverrideInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - descriptorSetLayout = descriptorSetLayout_; + pNext = pNext_; return *this; } - DescriptorUpdateTemplateCreateInfo & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT + PerformanceOverrideInfoINTEL & + setType( VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT { - pipelineBindPoint = pipelineBindPoint_; + type = type_; return *this; } - DescriptorUpdateTemplateCreateInfo & setPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ ) VULKAN_HPP_NOEXCEPT + PerformanceOverrideInfoINTEL & setEnable( VULKAN_HPP_NAMESPACE::Bool32 enable_ ) VULKAN_HPP_NOEXCEPT { - pipelineLayout = pipelineLayout_; + enable = enable_; return *this; } - DescriptorUpdateTemplateCreateInfo & setSet( uint32_t set_ ) VULKAN_HPP_NOEXCEPT + PerformanceOverrideInfoINTEL & setParameter( uint64_t parameter_ ) VULKAN_HPP_NOEXCEPT { - set = set_; + parameter = parameter_; return *this; } - operator VkDescriptorUpdateTemplateCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPerformanceOverrideInfoINTEL const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDescriptorUpdateTemplateCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkPerformanceOverrideInfoINTEL &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DescriptorUpdateTemplateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PerformanceOverrideInfoINTEL const & ) const = default; +#else + bool operator==( PerformanceOverrideInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( descriptorUpdateEntryCount == rhs.descriptorUpdateEntryCount ) - && ( pDescriptorUpdateEntries == rhs.pDescriptorUpdateEntries ) - && ( templateType == rhs.templateType ) - && ( descriptorSetLayout == rhs.descriptorSetLayout ) - && ( pipelineBindPoint == rhs.pipelineBindPoint ) - && ( pipelineLayout == rhs.pipelineLayout ) - && ( set == rhs.set ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( type == rhs.type ) && ( enable == rhs.enable ) && + ( parameter == rhs.parameter ); } - bool operator!=( DescriptorUpdateTemplateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PerformanceOverrideInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorUpdateTemplateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags = {}; - uint32_t descriptorUpdateEntryCount = {}; - const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries = {}; - VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet; - VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout = {}; - VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics; - VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout = {}; - uint32_t set = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceOverrideInfoINTEL; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type = + VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL::eNullHardware; + VULKAN_HPP_NAMESPACE::Bool32 enable = {}; + uint64_t parameter = {}; }; - static_assert( sizeof( DescriptorUpdateTemplateCreateInfo ) == sizeof( VkDescriptorUpdateTemplateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PerformanceOverrideInfoINTEL ) == sizeof( VkPerformanceOverrideInfoINTEL ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct DeviceQueueCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DeviceQueueCreateInfo( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {}, - uint32_t queueFamilyIndex_ = {}, - uint32_t queueCount_ = {}, - const float* pQueuePriorities_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , queueFamilyIndex( queueFamilyIndex_ ) - , queueCount( queueCount_ ) - , pQueuePriorities( pQueuePriorities_ ) + using Type = PerformanceOverrideInfoINTEL; + }; + + struct PerformanceStreamMarkerInfoINTEL + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceStreamMarkerInfoINTEL; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PerformanceStreamMarkerInfoINTEL( uint32_t marker_ = {} ) VULKAN_HPP_NOEXCEPT + : marker( marker_ ) + {} + + VULKAN_HPP_CONSTEXPR + PerformanceStreamMarkerInfoINTEL( PerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PerformanceStreamMarkerInfoINTEL( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT + : PerformanceStreamMarkerInfoINTEL( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PerformanceStreamMarkerInfoINTEL & + operator=( PerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo & operator=( VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PerformanceStreamMarkerInfoINTEL & operator=( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo ) - offsetof( DeviceQueueCreateInfo, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - DeviceQueueCreateInfo( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PerformanceStreamMarkerInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PerformanceStreamMarkerInfoINTEL & setMarker( uint32_t marker_ ) VULKAN_HPP_NOEXCEPT + { + marker = marker_; + return *this; + } + + operator VkPerformanceStreamMarkerInfoINTEL const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPerformanceStreamMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT { - *this = rhs; + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PerformanceStreamMarkerInfoINTEL const & ) const = default; +#else + bool operator==( PerformanceStreamMarkerInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( marker == rhs.marker ); + } + + bool operator!=( PerformanceStreamMarkerInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceStreamMarkerInfoINTEL; + const void * pNext = {}; + uint32_t marker = {}; + }; + static_assert( sizeof( PerformanceStreamMarkerInfoINTEL ) == sizeof( VkPerformanceStreamMarkerInfoINTEL ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PerformanceStreamMarkerInfoINTEL; + }; + + struct VertexInputBindingDescription2EXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eVertexInputBindingDescription2EXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VertexInputBindingDescription2EXT( + uint32_t binding_ = {}, + uint32_t stride_ = {}, + VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex, + uint32_t divisor_ = {} ) VULKAN_HPP_NOEXCEPT + : binding( binding_ ) + , stride( stride_ ) + , inputRate( inputRate_ ) + , divisor( divisor_ ) + {} - DeviceQueueCreateInfo& operator=( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR + VertexInputBindingDescription2EXT( VertexInputBindingDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VertexInputBindingDescription2EXT( VkVertexInputBindingDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT + : VertexInputBindingDescription2EXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription2EXT & + operator=( VertexInputBindingDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VertexInputBindingDescription2EXT & operator=( VkVertexInputBindingDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - DeviceQueueCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + VertexInputBindingDescription2EXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - DeviceQueueCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + VertexInputBindingDescription2EXT & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + binding = binding_; return *this; } - DeviceQueueCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT + VertexInputBindingDescription2EXT & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT { - queueFamilyIndex = queueFamilyIndex_; + stride = stride_; return *this; } - DeviceQueueCreateInfo & setQueueCount( uint32_t queueCount_ ) VULKAN_HPP_NOEXCEPT + VertexInputBindingDescription2EXT & + setInputRate( VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ ) VULKAN_HPP_NOEXCEPT { - queueCount = queueCount_; + inputRate = inputRate_; return *this; } - DeviceQueueCreateInfo & setPQueuePriorities( const float* pQueuePriorities_ ) VULKAN_HPP_NOEXCEPT + VertexInputBindingDescription2EXT & setDivisor( uint32_t divisor_ ) VULKAN_HPP_NOEXCEPT { - pQueuePriorities = pQueuePriorities_; + divisor = divisor_; return *this; } - operator VkDeviceQueueCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkVertexInputBindingDescription2EXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDeviceQueueCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkVertexInputBindingDescription2EXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DeviceQueueCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VertexInputBindingDescription2EXT const & ) const = default; +#else + bool operator==( VertexInputBindingDescription2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( queueFamilyIndex == rhs.queueFamilyIndex ) - && ( queueCount == rhs.queueCount ) - && ( pQueuePriorities == rhs.pQueuePriorities ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( binding == rhs.binding ) && + ( stride == rhs.stride ) && ( inputRate == rhs.inputRate ) && ( divisor == rhs.divisor ); } - bool operator!=( DeviceQueueCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( VertexInputBindingDescription2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {}; - uint32_t queueFamilyIndex = {}; - uint32_t queueCount = {}; - const float* pQueuePriorities = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVertexInputBindingDescription2EXT; + void * pNext = {}; + uint32_t binding = {}; + uint32_t stride = {}; + VULKAN_HPP_NAMESPACE::VertexInputRate inputRate = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex; + uint32_t divisor = {}; }; - static_assert( sizeof( DeviceQueueCreateInfo ) == sizeof( VkDeviceQueueCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VertexInputBindingDescription2EXT ) == sizeof( VkVertexInputBindingDescription2EXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceFeatures + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 independentBlend_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 geometryShader_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 tessellationShader_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 logicOp_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 depthClamp_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 depthBounds_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 wideLines_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 largePoints_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 alphaToOne_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 multiViewport_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderInt64_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderInt16_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 sparseBinding_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries_ = {} ) VULKAN_HPP_NOEXCEPT - : robustBufferAccess( robustBufferAccess_ ) - , fullDrawIndexUint32( fullDrawIndexUint32_ ) - , imageCubeArray( imageCubeArray_ ) - , independentBlend( independentBlend_ ) - , geometryShader( geometryShader_ ) - , tessellationShader( tessellationShader_ ) - , sampleRateShading( sampleRateShading_ ) - , dualSrcBlend( dualSrcBlend_ ) - , logicOp( logicOp_ ) - , multiDrawIndirect( multiDrawIndirect_ ) - , drawIndirectFirstInstance( drawIndirectFirstInstance_ ) - , depthClamp( depthClamp_ ) - , depthBiasClamp( depthBiasClamp_ ) - , fillModeNonSolid( fillModeNonSolid_ ) - , depthBounds( depthBounds_ ) - , wideLines( wideLines_ ) - , largePoints( largePoints_ ) - , alphaToOne( alphaToOne_ ) - , multiViewport( multiViewport_ ) - , samplerAnisotropy( samplerAnisotropy_ ) - , textureCompressionETC2( textureCompressionETC2_ ) - , textureCompressionASTC_LDR( textureCompressionASTC_LDR_ ) - , textureCompressionBC( textureCompressionBC_ ) - , occlusionQueryPrecise( occlusionQueryPrecise_ ) - , pipelineStatisticsQuery( pipelineStatisticsQuery_ ) - , vertexPipelineStoresAndAtomics( vertexPipelineStoresAndAtomics_ ) - , fragmentStoresAndAtomics( fragmentStoresAndAtomics_ ) - , shaderTessellationAndGeometryPointSize( shaderTessellationAndGeometryPointSize_ ) - , shaderImageGatherExtended( shaderImageGatherExtended_ ) - , shaderStorageImageExtendedFormats( shaderStorageImageExtendedFormats_ ) - , shaderStorageImageMultisample( shaderStorageImageMultisample_ ) - , shaderStorageImageReadWithoutFormat( shaderStorageImageReadWithoutFormat_ ) - , shaderStorageImageWriteWithoutFormat( shaderStorageImageWriteWithoutFormat_ ) - , shaderUniformBufferArrayDynamicIndexing( shaderUniformBufferArrayDynamicIndexing_ ) - , shaderSampledImageArrayDynamicIndexing( shaderSampledImageArrayDynamicIndexing_ ) - , shaderStorageBufferArrayDynamicIndexing( shaderStorageBufferArrayDynamicIndexing_ ) - , shaderStorageImageArrayDynamicIndexing( shaderStorageImageArrayDynamicIndexing_ ) - , shaderClipDistance( shaderClipDistance_ ) - , shaderCullDistance( shaderCullDistance_ ) - , shaderFloat64( shaderFloat64_ ) - , shaderInt64( shaderInt64_ ) - , shaderInt16( shaderInt16_ ) - , shaderResourceResidency( shaderResourceResidency_ ) - , shaderResourceMinLod( shaderResourceMinLod_ ) - , sparseBinding( sparseBinding_ ) - , sparseResidencyBuffer( sparseResidencyBuffer_ ) - , sparseResidencyImage2D( sparseResidencyImage2D_ ) - , sparseResidencyImage3D( sparseResidencyImage3D_ ) - , sparseResidency2Samples( sparseResidency2Samples_ ) - , sparseResidency4Samples( sparseResidency4Samples_ ) - , sparseResidency8Samples( sparseResidency8Samples_ ) - , sparseResidency16Samples( sparseResidency16Samples_ ) - , sparseResidencyAliased( sparseResidencyAliased_ ) - , variableMultisampleRate( variableMultisampleRate_ ) - , inheritedQueries( inheritedQueries_ ) + using Type = VertexInputBindingDescription2EXT; + }; + + struct VertexInputAttributeDescription2EXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eVertexInputAttributeDescription2EXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription2EXT( + uint32_t location_ = {}, + uint32_t binding_ = {}, + VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, + uint32_t offset_ = {} ) VULKAN_HPP_NOEXCEPT + : location( location_ ) + , binding( binding_ ) + , format( format_ ) + , offset( offset_ ) {} - PhysicalDeviceFeatures( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription2EXT( VertexInputAttributeDescription2EXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + VertexInputAttributeDescription2EXT( VkVertexInputAttributeDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT + : VertexInputAttributeDescription2EXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription2EXT & + operator=( VertexInputAttributeDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VertexInputAttributeDescription2EXT & + operator=( VkVertexInputAttributeDescription2EXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - PhysicalDeviceFeatures& operator=( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + VertexInputAttributeDescription2EXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - PhysicalDeviceFeatures & setRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess_ ) VULKAN_HPP_NOEXCEPT + VertexInputAttributeDescription2EXT & setLocation( uint32_t location_ ) VULKAN_HPP_NOEXCEPT { - robustBufferAccess = robustBufferAccess_; + location = location_; return *this; } - PhysicalDeviceFeatures & setFullDrawIndexUint32( VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32_ ) VULKAN_HPP_NOEXCEPT + VertexInputAttributeDescription2EXT & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT { - fullDrawIndexUint32 = fullDrawIndexUint32_; + binding = binding_; return *this; } - PhysicalDeviceFeatures & setImageCubeArray( VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray_ ) VULKAN_HPP_NOEXCEPT + VertexInputAttributeDescription2EXT & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT { - imageCubeArray = imageCubeArray_; + format = format_; return *this; } - PhysicalDeviceFeatures & setIndependentBlend( VULKAN_HPP_NAMESPACE::Bool32 independentBlend_ ) VULKAN_HPP_NOEXCEPT + VertexInputAttributeDescription2EXT & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT { - independentBlend = independentBlend_; + offset = offset_; return *this; } - PhysicalDeviceFeatures & setGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 geometryShader_ ) VULKAN_HPP_NOEXCEPT + operator VkVertexInputAttributeDescription2EXT const &() const VULKAN_HPP_NOEXCEPT { - geometryShader = geometryShader_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceFeatures & setTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 tessellationShader_ ) VULKAN_HPP_NOEXCEPT + operator VkVertexInputAttributeDescription2EXT &() VULKAN_HPP_NOEXCEPT { - tessellationShader = tessellationShader_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceFeatures & setSampleRateShading( VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VertexInputAttributeDescription2EXT const & ) const = default; +#else + bool operator==( VertexInputAttributeDescription2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - sampleRateShading = sampleRateShading_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( location == rhs.location ) && + ( binding == rhs.binding ) && ( format == rhs.format ) && ( offset == rhs.offset ); } - PhysicalDeviceFeatures & setDualSrcBlend( VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( VertexInputAttributeDescription2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - dualSrcBlend = dualSrcBlend_; - return *this; + return !operator==( rhs ); } +#endif - PhysicalDeviceFeatures & setLogicOp( VULKAN_HPP_NAMESPACE::Bool32 logicOp_ ) VULKAN_HPP_NOEXCEPT - { - logicOp = logicOp_; - return *this; - } + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVertexInputAttributeDescription2EXT; + void * pNext = {}; + uint32_t location = {}; + uint32_t binding = {}; + VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; + uint32_t offset = {}; + }; + static_assert( sizeof( VertexInputAttributeDescription2EXT ) == sizeof( VkVertexInputAttributeDescription2EXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - PhysicalDeviceFeatures & setMultiDrawIndirect( VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect_ ) VULKAN_HPP_NOEXCEPT - { - multiDrawIndirect = multiDrawIndirect_; - return *this; - } + template <> + struct CppType + { + using Type = VertexInputAttributeDescription2EXT; + }; - PhysicalDeviceFeatures & setDrawIndirectFirstInstance( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance_ ) VULKAN_HPP_NOEXCEPT - { - drawIndirectFirstInstance = drawIndirectFirstInstance_; - return *this; - } + struct ShadingRatePaletteNV + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ShadingRatePaletteNV( + uint32_t shadingRatePaletteEntryCount_ = {}, + const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV * pShadingRatePaletteEntries_ = {} ) VULKAN_HPP_NOEXCEPT + : shadingRatePaletteEntryCount( shadingRatePaletteEntryCount_ ) + , pShadingRatePaletteEntries( pShadingRatePaletteEntries_ ) + {} - PhysicalDeviceFeatures & setDepthClamp( VULKAN_HPP_NAMESPACE::Bool32 depthClamp_ ) VULKAN_HPP_NOEXCEPT - { - depthClamp = depthClamp_; - return *this; - } + VULKAN_HPP_CONSTEXPR ShadingRatePaletteNV( ShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceFeatures & setDepthBiasClamp( VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT - { - depthBiasClamp = depthBiasClamp_; - return *this; - } + ShadingRatePaletteNV( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT + : ShadingRatePaletteNV( *reinterpret_cast( &rhs ) ) + {} - PhysicalDeviceFeatures & setFillModeNonSolid( VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid_ ) VULKAN_HPP_NOEXCEPT - { - fillModeNonSolid = fillModeNonSolid_; - return *this; - } +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + ShadingRatePaletteNV( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + shadingRatePaletteEntries_ ) + : shadingRatePaletteEntryCount( static_cast( shadingRatePaletteEntries_.size() ) ) + , pShadingRatePaletteEntries( shadingRatePaletteEntries_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceFeatures & setDepthBounds( VULKAN_HPP_NAMESPACE::Bool32 depthBounds_ ) VULKAN_HPP_NOEXCEPT - { - depthBounds = depthBounds_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 ShadingRatePaletteNV & + operator=( ShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceFeatures & setWideLines( VULKAN_HPP_NAMESPACE::Bool32 wideLines_ ) VULKAN_HPP_NOEXCEPT + ShadingRatePaletteNV & operator=( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT { - wideLines = wideLines_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceFeatures & setLargePoints( VULKAN_HPP_NAMESPACE::Bool32 largePoints_ ) VULKAN_HPP_NOEXCEPT + ShadingRatePaletteNV & setShadingRatePaletteEntryCount( uint32_t shadingRatePaletteEntryCount_ ) VULKAN_HPP_NOEXCEPT { - largePoints = largePoints_; + shadingRatePaletteEntryCount = shadingRatePaletteEntryCount_; return *this; } - PhysicalDeviceFeatures & setAlphaToOne( VULKAN_HPP_NAMESPACE::Bool32 alphaToOne_ ) VULKAN_HPP_NOEXCEPT + ShadingRatePaletteNV & setPShadingRatePaletteEntries( + const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV * pShadingRatePaletteEntries_ ) VULKAN_HPP_NOEXCEPT { - alphaToOne = alphaToOne_; + pShadingRatePaletteEntries = pShadingRatePaletteEntries_; return *this; } - PhysicalDeviceFeatures & setMultiViewport( VULKAN_HPP_NAMESPACE::Bool32 multiViewport_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + ShadingRatePaletteNV & setShadingRatePaletteEntries( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + shadingRatePaletteEntries_ ) VULKAN_HPP_NOEXCEPT { - multiViewport = multiViewport_; + shadingRatePaletteEntryCount = static_cast( shadingRatePaletteEntries_.size() ); + pShadingRatePaletteEntries = shadingRatePaletteEntries_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceFeatures & setSamplerAnisotropy( VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy_ ) VULKAN_HPP_NOEXCEPT + operator VkShadingRatePaletteNV const &() const VULKAN_HPP_NOEXCEPT { - samplerAnisotropy = samplerAnisotropy_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceFeatures & setTextureCompressionETC2( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2_ ) VULKAN_HPP_NOEXCEPT + operator VkShadingRatePaletteNV &() VULKAN_HPP_NOEXCEPT { - textureCompressionETC2 = textureCompressionETC2_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceFeatures & setTextureCompressionASTC_LDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ShadingRatePaletteNV const & ) const = default; +#else + bool operator==( ShadingRatePaletteNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - textureCompressionASTC_LDR = textureCompressionASTC_LDR_; - return *this; + return ( shadingRatePaletteEntryCount == rhs.shadingRatePaletteEntryCount ) && + ( pShadingRatePaletteEntries == rhs.pShadingRatePaletteEntries ); } - PhysicalDeviceFeatures & setTextureCompressionBC( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( ShadingRatePaletteNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - textureCompressionBC = textureCompressionBC_; - return *this; + return !operator==( rhs ); } +#endif - PhysicalDeviceFeatures & setOcclusionQueryPrecise( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise_ ) VULKAN_HPP_NOEXCEPT - { - occlusionQueryPrecise = occlusionQueryPrecise_; - return *this; - } + public: + uint32_t shadingRatePaletteEntryCount = {}; + const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV * pShadingRatePaletteEntries = {}; + }; + static_assert( sizeof( ShadingRatePaletteNV ) == sizeof( VkShadingRatePaletteNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - PhysicalDeviceFeatures & setPipelineStatisticsQuery( VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery_ ) VULKAN_HPP_NOEXCEPT - { - pipelineStatisticsQuery = pipelineStatisticsQuery_; - return *this; - } + struct ViewportWScalingNV + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ViewportWScalingNV( float xcoeff_ = {}, float ycoeff_ = {} ) VULKAN_HPP_NOEXCEPT + : xcoeff( xcoeff_ ) + , ycoeff( ycoeff_ ) + {} + + VULKAN_HPP_CONSTEXPR ViewportWScalingNV( ViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ViewportWScalingNV( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT + : ViewportWScalingNV( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceFeatures & setVertexPipelineStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 ViewportWScalingNV & + operator=( ViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ViewportWScalingNV & operator=( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT { - vertexPipelineStoresAndAtomics = vertexPipelineStoresAndAtomics_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceFeatures & setFragmentStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT + ViewportWScalingNV & setXcoeff( float xcoeff_ ) VULKAN_HPP_NOEXCEPT { - fragmentStoresAndAtomics = fragmentStoresAndAtomics_; + xcoeff = xcoeff_; return *this; } - PhysicalDeviceFeatures & setShaderTessellationAndGeometryPointSize( VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize_ ) VULKAN_HPP_NOEXCEPT + ViewportWScalingNV & setYcoeff( float ycoeff_ ) VULKAN_HPP_NOEXCEPT { - shaderTessellationAndGeometryPointSize = shaderTessellationAndGeometryPointSize_; + ycoeff = ycoeff_; return *this; } - PhysicalDeviceFeatures & setShaderImageGatherExtended( VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended_ ) VULKAN_HPP_NOEXCEPT + operator VkViewportWScalingNV const &() const VULKAN_HPP_NOEXCEPT { - shaderImageGatherExtended = shaderImageGatherExtended_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceFeatures & setShaderStorageImageExtendedFormats( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats_ ) VULKAN_HPP_NOEXCEPT + operator VkViewportWScalingNV &() VULKAN_HPP_NOEXCEPT { - shaderStorageImageExtendedFormats = shaderStorageImageExtendedFormats_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceFeatures & setShaderStorageImageMultisample( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ViewportWScalingNV const & ) const = default; +#else + bool operator==( ViewportWScalingNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - shaderStorageImageMultisample = shaderStorageImageMultisample_; - return *this; + return ( xcoeff == rhs.xcoeff ) && ( ycoeff == rhs.ycoeff ); } - PhysicalDeviceFeatures & setShaderStorageImageReadWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( ViewportWScalingNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - shaderStorageImageReadWithoutFormat = shaderStorageImageReadWithoutFormat_; - return *this; + return !operator==( rhs ); } +#endif + + public: + float xcoeff = {}; + float ycoeff = {}; + }; + static_assert( sizeof( ViewportWScalingNV ) == sizeof( VkViewportWScalingNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + struct StridedDeviceAddressRegionKHR + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + StridedDeviceAddressRegionKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT + : deviceAddress( deviceAddress_ ) + , stride( stride_ ) + , size( size_ ) + {} - PhysicalDeviceFeatures & setShaderStorageImageWriteWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR + StridedDeviceAddressRegionKHR( StridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + StridedDeviceAddressRegionKHR( VkStridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : StridedDeviceAddressRegionKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 StridedDeviceAddressRegionKHR & + operator=( StridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + StridedDeviceAddressRegionKHR & operator=( VkStridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - shaderStorageImageWriteWithoutFormat = shaderStorageImageWriteWithoutFormat_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceFeatures & setShaderUniformBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT + StridedDeviceAddressRegionKHR & + setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT { - shaderUniformBufferArrayDynamicIndexing = shaderUniformBufferArrayDynamicIndexing_; + deviceAddress = deviceAddress_; return *this; } - PhysicalDeviceFeatures & setShaderSampledImageArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT + StridedDeviceAddressRegionKHR & setStride( VULKAN_HPP_NAMESPACE::DeviceSize stride_ ) VULKAN_HPP_NOEXCEPT { - shaderSampledImageArrayDynamicIndexing = shaderSampledImageArrayDynamicIndexing_; + stride = stride_; return *this; } - PhysicalDeviceFeatures & setShaderStorageBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT + StridedDeviceAddressRegionKHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT { - shaderStorageBufferArrayDynamicIndexing = shaderStorageBufferArrayDynamicIndexing_; + size = size_; return *this; } - PhysicalDeviceFeatures & setShaderStorageImageArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT + operator VkStridedDeviceAddressRegionKHR const &() const VULKAN_HPP_NOEXCEPT { - shaderStorageImageArrayDynamicIndexing = shaderStorageImageArrayDynamicIndexing_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceFeatures & setShaderClipDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance_ ) VULKAN_HPP_NOEXCEPT + operator VkStridedDeviceAddressRegionKHR &() VULKAN_HPP_NOEXCEPT { - shaderClipDistance = shaderClipDistance_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceFeatures & setShaderCullDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( StridedDeviceAddressRegionKHR const & ) const = default; +#else + bool operator==( StridedDeviceAddressRegionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - shaderCullDistance = shaderCullDistance_; - return *this; + return ( deviceAddress == rhs.deviceAddress ) && ( stride == rhs.stride ) && ( size == rhs.size ); } - PhysicalDeviceFeatures & setShaderFloat64( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( StridedDeviceAddressRegionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - shaderFloat64 = shaderFloat64_; - return *this; + return !operator==( rhs ); } +#endif - PhysicalDeviceFeatures & setShaderInt64( VULKAN_HPP_NAMESPACE::Bool32 shaderInt64_ ) VULKAN_HPP_NOEXCEPT + public: + VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {}; + VULKAN_HPP_NAMESPACE::DeviceSize stride = {}; + VULKAN_HPP_NAMESPACE::DeviceSize size = {}; + }; + static_assert( sizeof( StridedDeviceAddressRegionKHR ) == sizeof( VkStridedDeviceAddressRegionKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + 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: + VULKAN_HPP_CONSTEXPR CommandBuffer() = default; + VULKAN_HPP_CONSTEXPR CommandBuffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT CommandBuffer( VkCommandBuffer commandBuffer ) VULKAN_HPP_NOEXCEPT + : m_commandBuffer( commandBuffer ) + {} + +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + CommandBuffer & operator=( VkCommandBuffer commandBuffer ) VULKAN_HPP_NOEXCEPT { - shaderInt64 = shaderInt64_; + m_commandBuffer = commandBuffer; return *this; } +#endif - PhysicalDeviceFeatures & setShaderInt16( VULKAN_HPP_NAMESPACE::Bool32 shaderInt16_ ) VULKAN_HPP_NOEXCEPT + CommandBuffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - shaderInt16 = shaderInt16_; + m_commandBuffer = {}; return *this; } - PhysicalDeviceFeatures & setShaderResourceResidency( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CommandBuffer const & ) const = default; +#else + bool operator==( CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT { - shaderResourceResidency = shaderResourceResidency_; - return *this; + return m_commandBuffer == rhs.m_commandBuffer; } - PhysicalDeviceFeatures & setShaderResourceMinLod( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT { - shaderResourceMinLod = shaderResourceMinLod_; - return *this; + return m_commandBuffer != rhs.m_commandBuffer; } - PhysicalDeviceFeatures & setSparseBinding( VULKAN_HPP_NAMESPACE::Bool32 sparseBinding_ ) VULKAN_HPP_NOEXCEPT + bool operator<( CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT { - sparseBinding = sparseBinding_; - return *this; + return m_commandBuffer < rhs.m_commandBuffer; } +#endif + + template + VULKAN_HPP_NODISCARD Result + begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo * pBeginInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + begin( const CommandBufferBeginInfo & beginInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void beginConditionalRenderingEXT( + const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void + beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void + beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void beginQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t query, + VULKAN_HPP_NAMESPACE::QueryControlFlags flags, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void beginQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t query, + VULKAN_HPP_NAMESPACE::QueryControlFlags flags, + uint32_t index, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void beginRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin, + VULKAN_HPP_NAMESPACE::SubpassContents contents, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void beginRenderPass( const RenderPassBeginInfo & renderPassBegin, + VULKAN_HPP_NAMESPACE::SubpassContents contents, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void beginRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin, + const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void beginRenderPass2( const RenderPassBeginInfo & renderPassBegin, + const SubpassBeginInfo & subpassBeginInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void beginRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin, + const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, + const SubpassBeginInfo & subpassBeginInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void beginTransformFeedbackEXT( uint32_t firstCounterBuffer, + uint32_t counterBufferCount, + const VULKAN_HPP_NAMESPACE::Buffer * pCounterBuffers, + const VULKAN_HPP_NAMESPACE::DeviceSize * pCounterBufferOffsets, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void beginTransformFeedbackEXT( uint32_t firstCounterBuffer, + ArrayProxy const & counterBuffers, + ArrayProxy const & counterBufferOffsets + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + void beginVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR * pBeginInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void beginVideoCodingKHR( const VideoBeginCodingInfoKHR & beginInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + template + void bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, + VULKAN_HPP_NAMESPACE::PipelineLayout layout, + uint32_t firstSet, + uint32_t descriptorSetCount, + const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets, + uint32_t dynamicOffsetCount, + const uint32_t * pDynamicOffsets, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, + VULKAN_HPP_NAMESPACE::PipelineLayout layout, + uint32_t firstSet, + ArrayProxy const & descriptorSets, + ArrayProxy const & dynamicOffsets, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void bindIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, + VULKAN_HPP_NAMESPACE::DeviceSize offset, + VULKAN_HPP_NAMESPACE::IndexType indexType, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, + VULKAN_HPP_NAMESPACE::Pipeline pipeline, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void bindPipelineShaderGroupNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, + VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t groupIndex, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; + + template + void + bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, + VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void bindTransformFeedbackBuffersEXT( uint32_t firstBinding, + uint32_t bindingCount, + const VULKAN_HPP_NAMESPACE::Buffer * pBuffers, + const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets, + const VULKAN_HPP_NAMESPACE::DeviceSize * pSizes, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void bindTransformFeedbackBuffersEXT( + uint32_t firstBinding, + ArrayProxy const & buffers, + ArrayProxy const & offsets, + ArrayProxy const & sizes VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void bindVertexBuffers( uint32_t firstBinding, + uint32_t bindingCount, + const VULKAN_HPP_NAMESPACE::Buffer * pBuffers, + const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void bindVertexBuffers( uint32_t firstBinding, + ArrayProxy const & buffers, + ArrayProxy const & offsets, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void bindVertexBuffers2EXT( uint32_t firstBinding, + uint32_t bindingCount, + const VULKAN_HPP_NAMESPACE::Buffer * pBuffers, + const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets, + const VULKAN_HPP_NAMESPACE::DeviceSize * pSizes, + const VULKAN_HPP_NAMESPACE::DeviceSize * pStrides, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void bindVertexBuffers2EXT( + uint32_t firstBinding, + ArrayProxy const & buffers, + ArrayProxy const & offsets, + ArrayProxy const & sizes VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + ArrayProxy const & strides VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void blitImage( VULKAN_HPP_NAMESPACE::Image srcImage, + VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, + VULKAN_HPP_NAMESPACE::Image dstImage, + VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, + uint32_t regionCount, + const VULKAN_HPP_NAMESPACE::ImageBlit * pRegions, + VULKAN_HPP_NAMESPACE::Filter filter, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void blitImage( VULKAN_HPP_NAMESPACE::Image srcImage, + VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, + VULKAN_HPP_NAMESPACE::Image dstImage, + VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, + ArrayProxy const & regions, + VULKAN_HPP_NAMESPACE::Filter filter, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void blitImage2KHR( const VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR * pBlitImageInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void blitImage2KHR( const BlitImageInfo2KHR & blitImageInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void buildAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV * pInfo, + VULKAN_HPP_NAMESPACE::Buffer instanceData, + VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, + VULKAN_HPP_NAMESPACE::Bool32 update, + VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, + VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, + VULKAN_HPP_NAMESPACE::Buffer scratch, + VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void buildAccelerationStructureNV( const AccelerationStructureInfoNV & info, + VULKAN_HPP_NAMESPACE::Buffer instanceData, + VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, + VULKAN_HPP_NAMESPACE::Bool32 update, + VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, + VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, + VULKAN_HPP_NAMESPACE::Buffer scratch, + VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void buildAccelerationStructuresIndirectKHR( + uint32_t infoCount, + const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pInfos, + const VULKAN_HPP_NAMESPACE::DeviceAddress * pIndirectDeviceAddresses, + const uint32_t * pIndirectStrides, + const uint32_t * const * ppMaxPrimitiveCounts, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void buildAccelerationStructuresIndirectKHR( + ArrayProxy const & infos, + ArrayProxy const & indirectDeviceAddresses, + ArrayProxy const & indirectStrides, + ArrayProxy const & pMaxPrimitiveCounts, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void buildAccelerationStructuresKHR( + uint32_t infoCount, + const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pInfos, + const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void buildAccelerationStructuresKHR( + ArrayProxy const & infos, + ArrayProxy const & pBuildRangeInfos, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void clearAttachments( uint32_t attachmentCount, + const VULKAN_HPP_NAMESPACE::ClearAttachment * pAttachments, + uint32_t rectCount, + const VULKAN_HPP_NAMESPACE::ClearRect * pRects, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void clearAttachments( ArrayProxy const & attachments, + ArrayProxy const & rects, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void clearColorImage( VULKAN_HPP_NAMESPACE::Image image, + VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, + const VULKAN_HPP_NAMESPACE::ClearColorValue * pColor, + uint32_t rangeCount, + const VULKAN_HPP_NAMESPACE::ImageSubresourceRange * pRanges, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void clearColorImage( VULKAN_HPP_NAMESPACE::Image image, + VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, + const ClearColorValue & color, + ArrayProxy const & ranges, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void + clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, + VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, + const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue * pDepthStencil, + uint32_t rangeCount, + const VULKAN_HPP_NAMESPACE::ImageSubresourceRange * pRanges, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void + clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, + VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, + const ClearDepthStencilValue & depthStencil, + ArrayProxy const & ranges, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + void controlVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR * pCodingControlInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void controlVideoCodingKHR( const VideoCodingControlInfoKHR & codingControlInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + template + void copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR * pInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void copyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, + VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, + VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; + + template + void copyAccelerationStructureToMemoryKHR( + const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR * pInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, + VULKAN_HPP_NAMESPACE::Buffer dstBuffer, + uint32_t regionCount, + const VULKAN_HPP_NAMESPACE::BufferCopy * pRegions, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, + VULKAN_HPP_NAMESPACE::Buffer dstBuffer, + ArrayProxy const & regions, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void copyBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR * pCopyBufferInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void copyBuffer2KHR( const CopyBufferInfo2KHR & copyBufferInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, + VULKAN_HPP_NAMESPACE::Image dstImage, + VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, + uint32_t regionCount, + const VULKAN_HPP_NAMESPACE::BufferImageCopy * pRegions, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, + VULKAN_HPP_NAMESPACE::Image dstImage, + VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, + ArrayProxy const & regions, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void copyBufferToImage2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR * pCopyBufferToImageInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void copyBufferToImage2KHR( const CopyBufferToImageInfo2KHR & copyBufferToImageInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void copyImage( VULKAN_HPP_NAMESPACE::Image srcImage, + VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, + VULKAN_HPP_NAMESPACE::Image dstImage, + VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, + uint32_t regionCount, + const VULKAN_HPP_NAMESPACE::ImageCopy * pRegions, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void copyImage( VULKAN_HPP_NAMESPACE::Image srcImage, + VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, + VULKAN_HPP_NAMESPACE::Image dstImage, + VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, + ArrayProxy const & regions, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void copyImage2KHR( const VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR * pCopyImageInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void copyImage2KHR( const CopyImageInfo2KHR & copyImageInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, + VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, + VULKAN_HPP_NAMESPACE::Buffer dstBuffer, + uint32_t regionCount, + const VULKAN_HPP_NAMESPACE::BufferImageCopy * pRegions, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, + VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, + VULKAN_HPP_NAMESPACE::Buffer dstBuffer, + ArrayProxy const & regions, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void copyImageToBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR * pCopyImageToBufferInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void copyImageToBuffer2KHR( const CopyImageToBufferInfo2KHR & copyImageToBufferInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void copyMemoryToAccelerationStructureKHR( + const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR * pInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + 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, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT * pMarkerInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void debugMarkerEndEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT * pMarkerInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + void decodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR * pFrameInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void decodeVideoKHR( const VideoDecodeInfoKHR & frameInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + template + void dispatch( uint32_t groupCountX, + uint32_t groupCountY, + uint32_t groupCountZ, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void dispatchBase( uint32_t baseGroupX, + uint32_t baseGroupY, + uint32_t baseGroupZ, + uint32_t groupCountX, + uint32_t groupCountY, + uint32_t groupCountZ, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void dispatchBaseKHR( uint32_t baseGroupX, + uint32_t baseGroupY, + uint32_t baseGroupZ, + uint32_t groupCountX, + uint32_t groupCountY, + uint32_t groupCountZ, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, + VULKAN_HPP_NAMESPACE::DeviceSize offset, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void draw( uint32_t vertexCount, + uint32_t instanceCount, + uint32_t firstVertex, + uint32_t firstInstance, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void drawIndexed( uint32_t indexCount, + uint32_t instanceCount, + uint32_t firstIndex, + int32_t vertexOffset, + uint32_t firstInstance, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void drawIndexedIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, + VULKAN_HPP_NAMESPACE::DeviceSize offset, + uint32_t drawCount, + uint32_t stride, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + 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, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + 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, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; + + template + 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, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; + + template + void drawIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, + VULKAN_HPP_NAMESPACE::DeviceSize offset, + uint32_t drawCount, + uint32_t stride, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void + drawIndirectByteCountEXT( uint32_t instanceCount, + uint32_t firstInstance, + VULKAN_HPP_NAMESPACE::Buffer counterBuffer, + VULKAN_HPP_NAMESPACE::DeviceSize counterBufferOffset, + uint32_t counterOffset, + uint32_t vertexStride, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + 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, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + 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, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + 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, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + 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, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; + + template + void + drawMeshTasksIndirectNV( VULKAN_HPP_NAMESPACE::Buffer buffer, + VULKAN_HPP_NAMESPACE::DeviceSize offset, + uint32_t drawCount, + uint32_t stride, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void drawMeshTasksNV( uint32_t taskCount, + uint32_t firstTask, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + void encodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR * pEncodeInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void encodeVideoKHR( const VideoEncodeInfoKHR & encodeInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + template + void endConditionalRenderingEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; + + template + void endDebugUtilsLabelEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t query, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t query, + uint32_t index, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void endRenderPass( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void endRenderPass2( const SubpassEndInfo & subpassEndInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void endRenderPass2KHR( const SubpassEndInfo & subpassEndInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void + endTransformFeedbackEXT( uint32_t firstCounterBuffer, + uint32_t counterBufferCount, + const VULKAN_HPP_NAMESPACE::Buffer * pCounterBuffers, + const VULKAN_HPP_NAMESPACE::DeviceSize * pCounterBufferOffsets, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void endTransformFeedbackEXT( uint32_t firstCounterBuffer, + ArrayProxy const & counterBuffers, + ArrayProxy const & counterBufferOffsets + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + void endVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR * pEndCodingInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void endVideoCodingKHR( const VideoEndCodingInfoKHR & endCodingInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + template + void executeCommands( uint32_t commandBufferCount, + const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void executeCommands( ArrayProxy const & commandBuffers, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, + const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV * pGeneratedCommandsInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, + const GeneratedCommandsInfoNV & generatedCommandsInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void fillBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, + VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, + VULKAN_HPP_NAMESPACE::DeviceSize size, + uint32_t data, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void + insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void + insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void nextSubpass2( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo, + const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void nextSubpass2( const SubpassBeginInfo & subpassBeginInfo, + const SubpassEndInfo & subpassEndInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void nextSubpass2KHR( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo, + const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void nextSubpass2KHR( const SubpassBeginInfo & subpassBeginInfo, + const SubpassEndInfo & subpassEndInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, + VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, + VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, + uint32_t memoryBarrierCount, + const VULKAN_HPP_NAMESPACE::MemoryBarrier * pMemoryBarriers, + uint32_t bufferMemoryBarrierCount, + const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier * pBufferMemoryBarriers, + uint32_t imageMemoryBarrierCount, + const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier * pImageMemoryBarriers, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, + VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, + VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, + ArrayProxy const & memoryBarriers, + ArrayProxy const & bufferMemoryBarriers, + ArrayProxy const & imageMemoryBarriers, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void pipelineBarrier2KHR( const VULKAN_HPP_NAMESPACE::DependencyInfoKHR * pDependencyInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void pipelineBarrier2KHR( const DependencyInfoKHR & dependencyInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void preprocessGeneratedCommandsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV * pGeneratedCommandsInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void preprocessGeneratedCommandsNV( const GeneratedCommandsInfoNV & generatedCommandsInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, + VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, + uint32_t offset, + uint32_t size, + const void * pValues, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, + VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, + uint32_t offset, + ArrayProxy const & values, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, + VULKAN_HPP_NAMESPACE::PipelineLayout layout, + uint32_t set, + uint32_t descriptorWriteCount, + const VULKAN_HPP_NAMESPACE::WriteDescriptorSet * pDescriptorWrites, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, + VULKAN_HPP_NAMESPACE::PipelineLayout layout, + uint32_t set, + ArrayProxy const & descriptorWrites, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void pushDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, + VULKAN_HPP_NAMESPACE::PipelineLayout layout, + uint32_t set, + const void * pData, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; + + template + void resetEvent( VULKAN_HPP_NAMESPACE::Event event, + VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void resetEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, + VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stageMask, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void resolveImage( VULKAN_HPP_NAMESPACE::Image srcImage, + VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, + VULKAN_HPP_NAMESPACE::Image dstImage, + VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, + uint32_t regionCount, + const VULKAN_HPP_NAMESPACE::ImageResolve * pRegions, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void resolveImage( VULKAN_HPP_NAMESPACE::Image srcImage, + VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, + VULKAN_HPP_NAMESPACE::Image dstImage, + VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, + ArrayProxy const & regions, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void resolveImage2KHR( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR * pResolveImageInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void resolveImage2KHR( const ResolveImageInfo2KHR & resolveImageInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void setBlendConstants( const float blendConstants[4], + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void setCheckpointNV( const void * pCheckpointMarker, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void + setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, + uint32_t customSampleOrderCount, + const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void setCoarseSampleOrderNV( + VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, + ArrayProxy const & customSampleOrders, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void + setColorWriteEnableEXT( uint32_t attachmentCount, + const VULKAN_HPP_NAMESPACE::Bool32 * pColorWriteEnables, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void + setColorWriteEnableEXT( ArrayProxy const & colorWriteEnables, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void setDepthBias( float depthBiasConstantFactor, + float depthBiasClamp, + float depthBiasSlopeFactor, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void setDepthBiasEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void setDepthBounds( float minDepthBounds, + float maxDepthBounds, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void setDepthBoundsTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; + + template + void setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void + setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void setDeviceMask( uint32_t deviceMask, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void setDeviceMaskKHR( uint32_t deviceMask, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void + setDiscardRectangleEXT( uint32_t firstDiscardRectangle, + uint32_t discardRectangleCount, + const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void + setDiscardRectangleEXT( uint32_t firstDiscardRectangle, + ArrayProxy const & discardRectangles, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void setEvent( VULKAN_HPP_NAMESPACE::Event event, + VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void setEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, + const VULKAN_HPP_NAMESPACE::DependencyInfoKHR * pDependencyInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void setEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, + const DependencyInfoKHR & dependencyInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void setExclusiveScissorNV( uint32_t firstExclusiveScissor, + uint32_t exclusiveScissorCount, + const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void setExclusiveScissorNV( uint32_t firstExclusiveScissor, + ArrayProxy const & exclusiveScissors, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void setFragmentShadingRateEnumNV( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate, + const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; + + template + void setFragmentShadingRateKHR( const VULKAN_HPP_NAMESPACE::Extent2D * pFragmentSize, + const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void setFragmentShadingRateKHR( const Extent2D & fragmentSize, + const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void setLineStippleEXT( uint32_t lineStippleFactor, + uint16_t lineStipplePattern, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void setLineWidth( float lineWidth, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void setLogicOpEXT( VULKAN_HPP_NAMESPACE::LogicOp logicOp, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void + setPatchControlPointsEXT( uint32_t patchControlPoints, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + VULKAN_HPP_NODISCARD Result setPerformanceMarkerINTEL( + const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL * pMarkerInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result setPerformanceOverrideINTEL( + const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL * pOverrideInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result setPerformanceStreamMarkerINTEL( + const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL * pMarkerInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void setPrimitiveRestartEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; + + template + void + setPrimitiveTopologyEXT( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void setRasterizerDiscardEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; + + template + void setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; + + template + void setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT * pSampleLocationsInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void setScissor( uint32_t firstScissor, + uint32_t scissorCount, + const VULKAN_HPP_NAMESPACE::Rect2D * pScissors, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void setScissor( uint32_t firstScissor, + ArrayProxy const & scissors, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void + setScissorWithCountEXT( uint32_t scissorCount, + const VULKAN_HPP_NAMESPACE::Rect2D * pScissors, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void + setScissorWithCountEXT( ArrayProxy const & scissors, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, + uint32_t compareMask, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + 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, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, + uint32_t reference, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void + setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, + uint32_t writeMask, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void + setVertexInputEXT( uint32_t vertexBindingDescriptionCount, + const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT * pVertexBindingDescriptions, + uint32_t vertexAttributeDescriptionCount, + const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT * pVertexAttributeDescriptions, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void setVertexInputEXT( + ArrayProxy const & vertexBindingDescriptions, + ArrayProxy const & vertexAttributeDescriptions, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void setViewport( uint32_t firstViewport, + uint32_t viewportCount, + const VULKAN_HPP_NAMESPACE::Viewport * pViewports, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void setViewport( uint32_t firstViewport, + ArrayProxy const & viewports, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void setViewportShadingRatePaletteNV( uint32_t firstViewport, + uint32_t viewportCount, + const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void setViewportShadingRatePaletteNV( + uint32_t firstViewport, + ArrayProxy const & shadingRatePalettes, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void setViewportWScalingNV( uint32_t firstViewport, + uint32_t viewportCount, + const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void setViewportWScalingNV( uint32_t firstViewport, + ArrayProxy const & viewportWScalings, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void + setViewportWithCountEXT( uint32_t viewportCount, + const VULKAN_HPP_NAMESPACE::Viewport * pViewports, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void + setViewportWithCountEXT( ArrayProxy const & viewports, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pRaygenShaderBindingTable, + const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pMissShaderBindingTable, + const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pHitShaderBindingTable, + const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pCallableShaderBindingTable, + VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void traceRaysIndirectKHR( const StridedDeviceAddressRegionKHR & raygenShaderBindingTable, + const StridedDeviceAddressRegionKHR & missShaderBindingTable, + const StridedDeviceAddressRegionKHR & hitShaderBindingTable, + const StridedDeviceAddressRegionKHR & callableShaderBindingTable, + VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pRaygenShaderBindingTable, + const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pMissShaderBindingTable, + const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pHitShaderBindingTable, + const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pCallableShaderBindingTable, + uint32_t width, + uint32_t height, + uint32_t depth, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void traceRaysKHR( const StridedDeviceAddressRegionKHR & raygenShaderBindingTable, + const StridedDeviceAddressRegionKHR & missShaderBindingTable, + const StridedDeviceAddressRegionKHR & hitShaderBindingTable, + const StridedDeviceAddressRegionKHR & callableShaderBindingTable, + uint32_t width, + uint32_t height, + uint32_t depth, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + 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, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, + VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, + VULKAN_HPP_NAMESPACE::DeviceSize dataSize, + const void * pData, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, + VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, + ArrayProxy const & data, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void waitEvents( uint32_t eventCount, + const VULKAN_HPP_NAMESPACE::Event * pEvents, + VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, + VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, + uint32_t memoryBarrierCount, + const VULKAN_HPP_NAMESPACE::MemoryBarrier * pMemoryBarriers, + uint32_t bufferMemoryBarrierCount, + const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier * pBufferMemoryBarriers, + uint32_t imageMemoryBarrierCount, + const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier * pImageMemoryBarriers, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void waitEvents( ArrayProxy const & events, + VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, + VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, + ArrayProxy const & memoryBarriers, + ArrayProxy const & bufferMemoryBarriers, + ArrayProxy const & imageMemoryBarriers, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void waitEvents2KHR( uint32_t eventCount, + const VULKAN_HPP_NAMESPACE::Event * pEvents, + const VULKAN_HPP_NAMESPACE::DependencyInfoKHR * pDependencyInfos, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void waitEvents2KHR( ArrayProxy const & events, + ArrayProxy const & dependencyInfos, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void writeAccelerationStructuresPropertiesKHR( + uint32_t accelerationStructureCount, + const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures, + VULKAN_HPP_NAMESPACE::QueryType queryType, + VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t firstQuery, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void writeAccelerationStructuresPropertiesKHR( + ArrayProxy const & accelerationStructures, + VULKAN_HPP_NAMESPACE::QueryType queryType, + VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t firstQuery, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void writeAccelerationStructuresPropertiesNV( + uint32_t accelerationStructureCount, + const VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructures, + VULKAN_HPP_NAMESPACE::QueryType queryType, + VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t firstQuery, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void writeAccelerationStructuresPropertiesNV( + ArrayProxy const & accelerationStructures, + VULKAN_HPP_NAMESPACE::QueryType queryType, + VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t firstQuery, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void writeBufferMarker2AMD( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage, + VULKAN_HPP_NAMESPACE::Buffer dstBuffer, + VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, + uint32_t marker, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void writeBufferMarkerAMD( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, + VULKAN_HPP_NAMESPACE::Buffer dstBuffer, + VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, + uint32_t marker, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void writeTimestamp( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, + VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t query, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void writeTimestamp2KHR( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage, + VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t query, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result + end( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + end( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result + reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#else + template + typename ResultValueType::type + reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceFeatures & setSparseResidencyBuffer( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCommandBuffer() const VULKAN_HPP_NOEXCEPT { - sparseResidencyBuffer = sparseResidencyBuffer_; - return *this; + return m_commandBuffer; } - PhysicalDeviceFeatures & setSparseResidencyImage2D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D_ ) VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - sparseResidencyImage2D = sparseResidencyImage2D_; - return *this; + return m_commandBuffer != VK_NULL_HANDLE; } - PhysicalDeviceFeatures & setSparseResidencyImage3D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D_ ) VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - sparseResidencyImage3D = sparseResidencyImage3D_; - return *this; + return m_commandBuffer == VK_NULL_HANDLE; } - PhysicalDeviceFeatures & setSparseResidency2Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples_ ) VULKAN_HPP_NOEXCEPT + private: + VkCommandBuffer m_commandBuffer = {}; + }; + static_assert( sizeof( VULKAN_HPP_NAMESPACE::CommandBuffer ) == sizeof( VkCommandBuffer ), + "handle and wrapper have different size!" ); + + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type + { + using type = VULKAN_HPP_NAMESPACE::CommandBuffer; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::CommandBuffer; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::CommandBuffer; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + struct CommandBufferSubmitInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferSubmitInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR CommandBufferSubmitInfoKHR( VULKAN_HPP_NAMESPACE::CommandBuffer commandBuffer_ = {}, + uint32_t deviceMask_ = {} ) VULKAN_HPP_NOEXCEPT + : commandBuffer( commandBuffer_ ) + , deviceMask( deviceMask_ ) + {} + + VULKAN_HPP_CONSTEXPR + CommandBufferSubmitInfoKHR( CommandBufferSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + CommandBufferSubmitInfoKHR( VkCommandBufferSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : CommandBufferSubmitInfoKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 CommandBufferSubmitInfoKHR & + operator=( CommandBufferSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + CommandBufferSubmitInfoKHR & operator=( VkCommandBufferSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - sparseResidency2Samples = sparseResidency2Samples_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceFeatures & setSparseResidency4Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples_ ) VULKAN_HPP_NOEXCEPT + CommandBufferSubmitInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - sparseResidency4Samples = sparseResidency4Samples_; + pNext = pNext_; return *this; } - PhysicalDeviceFeatures & setSparseResidency8Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples_ ) VULKAN_HPP_NOEXCEPT + CommandBufferSubmitInfoKHR & + setCommandBuffer( VULKAN_HPP_NAMESPACE::CommandBuffer commandBuffer_ ) VULKAN_HPP_NOEXCEPT { - sparseResidency8Samples = sparseResidency8Samples_; + commandBuffer = commandBuffer_; return *this; } - PhysicalDeviceFeatures & setSparseResidency16Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples_ ) VULKAN_HPP_NOEXCEPT + CommandBufferSubmitInfoKHR & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT { - sparseResidency16Samples = sparseResidency16Samples_; + deviceMask = deviceMask_; return *this; } - PhysicalDeviceFeatures & setSparseResidencyAliased( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased_ ) VULKAN_HPP_NOEXCEPT + operator VkCommandBufferSubmitInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - sparseResidencyAliased = sparseResidencyAliased_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceFeatures & setVariableMultisampleRate( VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate_ ) VULKAN_HPP_NOEXCEPT + operator VkCommandBufferSubmitInfoKHR &() VULKAN_HPP_NOEXCEPT { - variableMultisampleRate = variableMultisampleRate_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceFeatures & setInheritedQueries( VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CommandBufferSubmitInfoKHR const & ) const = default; +#else + bool operator==( CommandBufferSubmitInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - inheritedQueries = inheritedQueries_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( commandBuffer == rhs.commandBuffer ) && + ( deviceMask == rhs.deviceMask ); } - operator VkPhysicalDeviceFeatures const&() const VULKAN_HPP_NOEXCEPT + bool operator!=( CommandBufferSubmitInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return !operator==( rhs ); } +#endif - operator VkPhysicalDeviceFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( PhysicalDeviceFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( robustBufferAccess == rhs.robustBufferAccess ) - && ( fullDrawIndexUint32 == rhs.fullDrawIndexUint32 ) - && ( imageCubeArray == rhs.imageCubeArray ) - && ( independentBlend == rhs.independentBlend ) - && ( geometryShader == rhs.geometryShader ) - && ( tessellationShader == rhs.tessellationShader ) - && ( sampleRateShading == rhs.sampleRateShading ) - && ( dualSrcBlend == rhs.dualSrcBlend ) - && ( logicOp == rhs.logicOp ) - && ( multiDrawIndirect == rhs.multiDrawIndirect ) - && ( drawIndirectFirstInstance == rhs.drawIndirectFirstInstance ) - && ( depthClamp == rhs.depthClamp ) - && ( depthBiasClamp == rhs.depthBiasClamp ) - && ( fillModeNonSolid == rhs.fillModeNonSolid ) - && ( depthBounds == rhs.depthBounds ) - && ( wideLines == rhs.wideLines ) - && ( largePoints == rhs.largePoints ) - && ( alphaToOne == rhs.alphaToOne ) - && ( multiViewport == rhs.multiViewport ) - && ( samplerAnisotropy == rhs.samplerAnisotropy ) - && ( textureCompressionETC2 == rhs.textureCompressionETC2 ) - && ( textureCompressionASTC_LDR == rhs.textureCompressionASTC_LDR ) - && ( textureCompressionBC == rhs.textureCompressionBC ) - && ( occlusionQueryPrecise == rhs.occlusionQueryPrecise ) - && ( pipelineStatisticsQuery == rhs.pipelineStatisticsQuery ) - && ( vertexPipelineStoresAndAtomics == rhs.vertexPipelineStoresAndAtomics ) - && ( fragmentStoresAndAtomics == rhs.fragmentStoresAndAtomics ) - && ( shaderTessellationAndGeometryPointSize == rhs.shaderTessellationAndGeometryPointSize ) - && ( shaderImageGatherExtended == rhs.shaderImageGatherExtended ) - && ( shaderStorageImageExtendedFormats == rhs.shaderStorageImageExtendedFormats ) - && ( shaderStorageImageMultisample == rhs.shaderStorageImageMultisample ) - && ( shaderStorageImageReadWithoutFormat == rhs.shaderStorageImageReadWithoutFormat ) - && ( shaderStorageImageWriteWithoutFormat == rhs.shaderStorageImageWriteWithoutFormat ) - && ( shaderUniformBufferArrayDynamicIndexing == rhs.shaderUniformBufferArrayDynamicIndexing ) - && ( shaderSampledImageArrayDynamicIndexing == rhs.shaderSampledImageArrayDynamicIndexing ) - && ( shaderStorageBufferArrayDynamicIndexing == rhs.shaderStorageBufferArrayDynamicIndexing ) - && ( shaderStorageImageArrayDynamicIndexing == rhs.shaderStorageImageArrayDynamicIndexing ) - && ( shaderClipDistance == rhs.shaderClipDistance ) - && ( shaderCullDistance == rhs.shaderCullDistance ) - && ( shaderFloat64 == rhs.shaderFloat64 ) - && ( shaderInt64 == rhs.shaderInt64 ) - && ( shaderInt16 == rhs.shaderInt16 ) - && ( shaderResourceResidency == rhs.shaderResourceResidency ) - && ( shaderResourceMinLod == rhs.shaderResourceMinLod ) - && ( sparseBinding == rhs.sparseBinding ) - && ( sparseResidencyBuffer == rhs.sparseResidencyBuffer ) - && ( sparseResidencyImage2D == rhs.sparseResidencyImage2D ) - && ( sparseResidencyImage3D == rhs.sparseResidencyImage3D ) - && ( sparseResidency2Samples == rhs.sparseResidency2Samples ) - && ( sparseResidency4Samples == rhs.sparseResidency4Samples ) - && ( sparseResidency8Samples == rhs.sparseResidency8Samples ) - && ( sparseResidency16Samples == rhs.sparseResidency16Samples ) - && ( sparseResidencyAliased == rhs.sparseResidencyAliased ) - && ( variableMultisampleRate == rhs.variableMultisampleRate ) - && ( inheritedQueries == rhs.inheritedQueries ); - } - - bool operator!=( PhysicalDeviceFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } - - public: - VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray = {}; - VULKAN_HPP_NAMESPACE::Bool32 independentBlend = {}; - VULKAN_HPP_NAMESPACE::Bool32 geometryShader = {}; - VULKAN_HPP_NAMESPACE::Bool32 tessellationShader = {}; - VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading = {}; - VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend = {}; - VULKAN_HPP_NAMESPACE::Bool32 logicOp = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect = {}; - VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthClamp = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp = {}; - VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthBounds = {}; - VULKAN_HPP_NAMESPACE::Bool32 wideLines = {}; - VULKAN_HPP_NAMESPACE::Bool32 largePoints = {}; - VULKAN_HPP_NAMESPACE::Bool32 alphaToOne = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiViewport = {}; - VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy = {}; - VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2 = {}; - VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR = {}; - VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC = {}; - VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise = {}; - VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery = {}; - VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInt64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInt16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseBinding = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased = {}; - VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate = {}; - VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries = {}; - }; - static_assert( sizeof( PhysicalDeviceFeatures ) == sizeof( VkPhysicalDeviceFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferSubmitInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::CommandBuffer commandBuffer = {}; + uint32_t deviceMask = {}; + }; + static_assert( sizeof( CommandBufferSubmitInfoKHR ) == sizeof( VkCommandBufferSubmitInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct DeviceCreateInfo + template <> + struct CppType + { + using Type = CommandBufferSubmitInfoKHR; + }; + + struct CommandPoolCreateInfo { - VULKAN_HPP_CONSTEXPR DeviceCreateInfo( VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_ = {}, - uint32_t queueCreateInfoCount_ = {}, - const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo* pQueueCreateInfos_ = {}, - uint32_t enabledLayerCount_ = {}, - const char* const* ppEnabledLayerNames_ = {}, - uint32_t enabledExtensionCount_ = {}, - const char* const* ppEnabledExtensionNames_ = {}, - const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures_ = {} ) VULKAN_HPP_NOEXCEPT + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandPoolCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR CommandPoolCreateInfo( VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ = {}, + uint32_t queueFamilyIndex_ = {} ) VULKAN_HPP_NOEXCEPT : flags( flags_ ) - , queueCreateInfoCount( queueCreateInfoCount_ ) - , pQueueCreateInfos( pQueueCreateInfos_ ) - , enabledLayerCount( enabledLayerCount_ ) - , ppEnabledLayerNames( ppEnabledLayerNames_ ) - , enabledExtensionCount( enabledExtensionCount_ ) - , ppEnabledExtensionNames( ppEnabledExtensionNames_ ) - , pEnabledFeatures( pEnabledFeatures_ ) + , queueFamilyIndex( queueFamilyIndex_ ) + {} + + VULKAN_HPP_CONSTEXPR CommandPoolCreateInfo( CommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + CommandPoolCreateInfo( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : CommandPoolCreateInfo( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 CommandPoolCreateInfo & + operator=( CommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::DeviceCreateInfo & operator=( VULKAN_HPP_NAMESPACE::DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + CommandPoolCreateInfo & operator=( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DeviceCreateInfo ) - offsetof( DeviceCreateInfo, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - DeviceCreateInfo( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + CommandPoolCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - DeviceCreateInfo& operator=( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + CommandPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + flags = flags_; return *this; } - DeviceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + CommandPoolCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + queueFamilyIndex = queueFamilyIndex_; return *this; } - DeviceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + operator VkCommandPoolCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - flags = flags_; - return *this; + return *reinterpret_cast( this ); } - DeviceCreateInfo & setQueueCreateInfoCount( uint32_t queueCreateInfoCount_ ) VULKAN_HPP_NOEXCEPT + operator VkCommandPoolCreateInfo &() VULKAN_HPP_NOEXCEPT { - queueCreateInfoCount = queueCreateInfoCount_; - return *this; + return *reinterpret_cast( this ); } - DeviceCreateInfo & setPQueueCreateInfos( const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo* pQueueCreateInfos_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CommandPoolCreateInfo const & ) const = default; +#else + bool operator==( CommandPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - pQueueCreateInfos = pQueueCreateInfos_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( queueFamilyIndex == rhs.queueFamilyIndex ); } - DeviceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( CommandPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - enabledLayerCount = enabledLayerCount_; - return *this; + return !operator==( rhs ); } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandPoolCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags = {}; + uint32_t queueFamilyIndex = {}; + }; + static_assert( sizeof( CommandPoolCreateInfo ) == sizeof( VkCommandPoolCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = CommandPoolCreateInfo; + }; + + 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: + VULKAN_HPP_CONSTEXPR ShaderModule() = default; + VULKAN_HPP_CONSTEXPR ShaderModule( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT ShaderModule( VkShaderModule shaderModule ) VULKAN_HPP_NOEXCEPT + : m_shaderModule( shaderModule ) + {} - DeviceCreateInfo & setPpEnabledLayerNames( const char* const* ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + ShaderModule & operator=( VkShaderModule shaderModule ) VULKAN_HPP_NOEXCEPT { - ppEnabledLayerNames = ppEnabledLayerNames_; + m_shaderModule = shaderModule; return *this; } +#endif - DeviceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT + ShaderModule & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - enabledExtensionCount = enabledExtensionCount_; + m_shaderModule = {}; return *this; } - DeviceCreateInfo & setPpEnabledExtensionNames( const char* const* ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ShaderModule const & ) const = default; +#else + bool operator==( ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT { - ppEnabledExtensionNames = ppEnabledExtensionNames_; - return *this; + return m_shaderModule == rhs.m_shaderModule; } - DeviceCreateInfo & setPEnabledFeatures( const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT { - pEnabledFeatures = pEnabledFeatures_; - return *this; + return m_shaderModule != rhs.m_shaderModule; } - operator VkDeviceCreateInfo const&() const VULKAN_HPP_NOEXCEPT + bool operator<( ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_shaderModule < rhs.m_shaderModule; } +#endif - operator VkDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkShaderModule() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_shaderModule; } - bool operator==( DeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( queueCreateInfoCount == rhs.queueCreateInfoCount ) - && ( pQueueCreateInfos == rhs.pQueueCreateInfos ) - && ( enabledLayerCount == rhs.enabledLayerCount ) - && ( ppEnabledLayerNames == rhs.ppEnabledLayerNames ) - && ( enabledExtensionCount == rhs.enabledExtensionCount ) - && ( ppEnabledExtensionNames == rhs.ppEnabledExtensionNames ) - && ( pEnabledFeatures == rhs.pEnabledFeatures ); + return m_shaderModule != VK_NULL_HANDLE; } - bool operator!=( DeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_shaderModule == VK_NULL_HANDLE; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags = {}; - uint32_t queueCreateInfoCount = {}; - const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo* pQueueCreateInfos = {}; - uint32_t enabledLayerCount = {}; - const char* const* ppEnabledLayerNames = {}; - uint32_t enabledExtensionCount = {}; - const char* const* ppEnabledExtensionNames = {}; - const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures = {}; + private: + VkShaderModule m_shaderModule = {}; }; - static_assert( sizeof( DeviceCreateInfo ) == sizeof( VkDeviceCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::ShaderModule ) == sizeof( VkShaderModule ), + "handle and wrapper have different size!" ); - struct DeviceEventInfoEXT + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - VULKAN_HPP_CONSTEXPR DeviceEventInfoEXT( VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug ) VULKAN_HPP_NOEXCEPT - : deviceEvent( deviceEvent_ ) + using type = VULKAN_HPP_NAMESPACE::ShaderModule; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::ShaderModule; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::ShaderModule; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + struct SpecializationMapEntry + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + SpecializationMapEntry( uint32_t constantID_ = {}, uint32_t offset_ = {}, size_t size_ = {} ) VULKAN_HPP_NOEXCEPT + : constantID( constantID_ ) + , offset( offset_ ) + , size( size_ ) {} - VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT & operator=( VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT ) - offsetof( DeviceEventInfoEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR SpecializationMapEntry( SpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DeviceEventInfoEXT( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + SpecializationMapEntry( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT + : SpecializationMapEntry( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SpecializationMapEntry & + operator=( SpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SpecializationMapEntry & operator=( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - DeviceEventInfoEXT& operator=( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + SpecializationMapEntry & setConstantID( uint32_t constantID_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + constantID = constantID_; return *this; } - DeviceEventInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + SpecializationMapEntry & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + offset = offset_; return *this; } - DeviceEventInfoEXT & setDeviceEvent( VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ ) VULKAN_HPP_NOEXCEPT + SpecializationMapEntry & setSize( size_t size_ ) VULKAN_HPP_NOEXCEPT { - deviceEvent = deviceEvent_; + size = size_; return *this; } - operator VkDeviceEventInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkSpecializationMapEntry const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDeviceEventInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkSpecializationMapEntry &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DeviceEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SpecializationMapEntry const & ) const = default; +#else + bool operator==( SpecializationMapEntry const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceEvent == rhs.deviceEvent ); + return ( constantID == rhs.constantID ) && ( offset == rhs.offset ) && ( size == rhs.size ); } - bool operator!=( DeviceEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SpecializationMapEntry const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceEventInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug; + uint32_t constantID = {}; + uint32_t offset = {}; + size_t size = {}; }; - static_assert( sizeof( DeviceEventInfoEXT ) == sizeof( VkDeviceEventInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SpecializationMapEntry ) == sizeof( VkSpecializationMapEntry ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct DeviceGeneratedCommandsFeaturesNVX + struct SpecializationInfo { - VULKAN_HPP_CONSTEXPR DeviceGeneratedCommandsFeaturesNVX( VULKAN_HPP_NAMESPACE::Bool32 computeBindingPointSupport_ = {} ) VULKAN_HPP_NOEXCEPT - : computeBindingPointSupport( computeBindingPointSupport_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SpecializationInfo( uint32_t mapEntryCount_ = {}, + const VULKAN_HPP_NAMESPACE::SpecializationMapEntry * pMapEntries_ = {}, + size_t dataSize_ = {}, + const void * pData_ = {} ) VULKAN_HPP_NOEXCEPT + : mapEntryCount( mapEntryCount_ ) + , pMapEntries( pMapEntries_ ) + , dataSize( dataSize_ ) + , pData( pData_ ) + {} + + VULKAN_HPP_CONSTEXPR SpecializationInfo( SpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SpecializationInfo( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : SpecializationInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + template + SpecializationInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries< + const VULKAN_HPP_NAMESPACE::SpecializationMapEntry> const & mapEntries_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & data_ = {} ) + : mapEntryCount( static_cast( mapEntries_.size() ) ) + , pMapEntries( mapEntries_.data() ) + , dataSize( data_.size() * sizeof( T ) ) + , pData( data_.data() ) {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SpecializationInfo & + operator=( SpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsFeaturesNVX & operator=( VULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsFeaturesNVX const & rhs ) VULKAN_HPP_NOEXCEPT + SpecializationInfo & operator=( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsFeaturesNVX ) - offsetof( DeviceGeneratedCommandsFeaturesNVX, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - DeviceGeneratedCommandsFeaturesNVX( VkDeviceGeneratedCommandsFeaturesNVX const & rhs ) VULKAN_HPP_NOEXCEPT + SpecializationInfo & setMapEntryCount( uint32_t mapEntryCount_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + mapEntryCount = mapEntryCount_; + return *this; } - DeviceGeneratedCommandsFeaturesNVX& operator=( VkDeviceGeneratedCommandsFeaturesNVX const & rhs ) VULKAN_HPP_NOEXCEPT + SpecializationInfo & + setPMapEntries( const VULKAN_HPP_NAMESPACE::SpecializationMapEntry * pMapEntries_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pMapEntries = pMapEntries_; return *this; } - DeviceGeneratedCommandsFeaturesNVX & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SpecializationInfo & setMapEntries( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + mapEntries_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + mapEntryCount = static_cast( mapEntries_.size() ); + pMapEntries = mapEntries_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + SpecializationInfo & setDataSize( size_t dataSize_ ) VULKAN_HPP_NOEXCEPT + { + dataSize = dataSize_; + return *this; + } + + SpecializationInfo & setPData( const void * pData_ ) VULKAN_HPP_NOEXCEPT + { + pData = pData_; return *this; } - DeviceGeneratedCommandsFeaturesNVX & setComputeBindingPointSupport( VULKAN_HPP_NAMESPACE::Bool32 computeBindingPointSupport_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + template + SpecializationInfo & + setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & data_ ) VULKAN_HPP_NOEXCEPT { - computeBindingPointSupport = computeBindingPointSupport_; + dataSize = data_.size() * sizeof( T ); + pData = data_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkDeviceGeneratedCommandsFeaturesNVX const&() const VULKAN_HPP_NOEXCEPT + operator VkSpecializationInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDeviceGeneratedCommandsFeaturesNVX &() VULKAN_HPP_NOEXCEPT + operator VkSpecializationInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DeviceGeneratedCommandsFeaturesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SpecializationInfo const & ) const = default; +#else + bool operator==( SpecializationInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( computeBindingPointSupport == rhs.computeBindingPointSupport ); + return ( mapEntryCount == rhs.mapEntryCount ) && ( pMapEntries == rhs.pMapEntries ) && + ( dataSize == rhs.dataSize ) && ( pData == rhs.pData ); } - bool operator!=( DeviceGeneratedCommandsFeaturesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SpecializationInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGeneratedCommandsFeaturesNVX; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 computeBindingPointSupport = {}; + uint32_t mapEntryCount = {}; + const VULKAN_HPP_NAMESPACE::SpecializationMapEntry * pMapEntries = {}; + size_t dataSize = {}; + const void * pData = {}; }; - static_assert( sizeof( DeviceGeneratedCommandsFeaturesNVX ) == sizeof( VkDeviceGeneratedCommandsFeaturesNVX ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SpecializationInfo ) == sizeof( VkSpecializationInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct DeviceGeneratedCommandsLimitsNVX + struct PipelineShaderStageCreateInfo { - VULKAN_HPP_CONSTEXPR DeviceGeneratedCommandsLimitsNVX( uint32_t maxIndirectCommandsLayoutTokenCount_ = {}, - uint32_t maxObjectEntryCounts_ = {}, - uint32_t minSequenceCountBufferOffsetAlignment_ = {}, - uint32_t minSequenceIndexBufferOffsetAlignment_ = {}, - uint32_t minCommandsTokenBufferOffsetAlignment_ = {} ) VULKAN_HPP_NOEXCEPT - : maxIndirectCommandsLayoutTokenCount( maxIndirectCommandsLayoutTokenCount_ ) - , maxObjectEntryCounts( maxObjectEntryCounts_ ) - , minSequenceCountBufferOffsetAlignment( minSequenceCountBufferOffsetAlignment_ ) - , minSequenceIndexBufferOffsetAlignment( minSequenceIndexBufferOffsetAlignment_ ) - , minCommandsTokenBufferOffsetAlignment( minCommandsTokenBufferOffsetAlignment_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateInfo( + VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex, + VULKAN_HPP_NAMESPACE::ShaderModule module_ = {}, + const char * pName_ = {}, + const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , stage( stage_ ) + , module( module_ ) + , pName( pName_ ) + , pSpecializationInfo( pSpecializationInfo_ ) {} - VULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsLimitsNVX & operator=( VULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsLimitsNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsLimitsNVX ) - offsetof( DeviceGeneratedCommandsLimitsNVX, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + PipelineShaderStageCreateInfo( PipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DeviceGeneratedCommandsLimitsNVX( VkDeviceGeneratedCommandsLimitsNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PipelineShaderStageCreateInfo( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : PipelineShaderStageCreateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageCreateInfo & + operator=( PipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DeviceGeneratedCommandsLimitsNVX& operator=( VkDeviceGeneratedCommandsLimitsNVX const & rhs ) VULKAN_HPP_NOEXCEPT + PipelineShaderStageCreateInfo & operator=( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - DeviceGeneratedCommandsLimitsNVX & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PipelineShaderStageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - DeviceGeneratedCommandsLimitsNVX & setMaxIndirectCommandsLayoutTokenCount( uint32_t maxIndirectCommandsLayoutTokenCount_ ) VULKAN_HPP_NOEXCEPT + PipelineShaderStageCreateInfo & + setFlags( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - maxIndirectCommandsLayoutTokenCount = maxIndirectCommandsLayoutTokenCount_; + flags = flags_; return *this; } - DeviceGeneratedCommandsLimitsNVX & setMaxObjectEntryCounts( uint32_t maxObjectEntryCounts_ ) VULKAN_HPP_NOEXCEPT + PipelineShaderStageCreateInfo & setStage( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ ) VULKAN_HPP_NOEXCEPT { - maxObjectEntryCounts = maxObjectEntryCounts_; + stage = stage_; return *this; } - DeviceGeneratedCommandsLimitsNVX & setMinSequenceCountBufferOffsetAlignment( uint32_t minSequenceCountBufferOffsetAlignment_ ) VULKAN_HPP_NOEXCEPT + PipelineShaderStageCreateInfo & setModule( VULKAN_HPP_NAMESPACE::ShaderModule module_ ) VULKAN_HPP_NOEXCEPT { - minSequenceCountBufferOffsetAlignment = minSequenceCountBufferOffsetAlignment_; + module = module_; return *this; } - DeviceGeneratedCommandsLimitsNVX & setMinSequenceIndexBufferOffsetAlignment( uint32_t minSequenceIndexBufferOffsetAlignment_ ) VULKAN_HPP_NOEXCEPT + PipelineShaderStageCreateInfo & setPName( const char * pName_ ) VULKAN_HPP_NOEXCEPT { - minSequenceIndexBufferOffsetAlignment = minSequenceIndexBufferOffsetAlignment_; + pName = pName_; return *this; } - DeviceGeneratedCommandsLimitsNVX & setMinCommandsTokenBufferOffsetAlignment( uint32_t minCommandsTokenBufferOffsetAlignment_ ) VULKAN_HPP_NOEXCEPT + PipelineShaderStageCreateInfo & setPSpecializationInfo( + const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo_ ) VULKAN_HPP_NOEXCEPT { - minCommandsTokenBufferOffsetAlignment = minCommandsTokenBufferOffsetAlignment_; + pSpecializationInfo = pSpecializationInfo_; return *this; } - operator VkDeviceGeneratedCommandsLimitsNVX const&() const VULKAN_HPP_NOEXCEPT + operator VkPipelineShaderStageCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDeviceGeneratedCommandsLimitsNVX &() VULKAN_HPP_NOEXCEPT + operator VkPipelineShaderStageCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DeviceGeneratedCommandsLimitsNVX const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineShaderStageCreateInfo const & ) const = default; +#else + bool operator==( PipelineShaderStageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxIndirectCommandsLayoutTokenCount == rhs.maxIndirectCommandsLayoutTokenCount ) - && ( maxObjectEntryCounts == rhs.maxObjectEntryCounts ) - && ( minSequenceCountBufferOffsetAlignment == rhs.minSequenceCountBufferOffsetAlignment ) - && ( minSequenceIndexBufferOffsetAlignment == rhs.minSequenceIndexBufferOffsetAlignment ) - && ( minCommandsTokenBufferOffsetAlignment == rhs.minCommandsTokenBufferOffsetAlignment ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( stage == rhs.stage ) && + ( module == rhs.module ) && ( pName == rhs.pName ) && ( pSpecializationInfo == rhs.pSpecializationInfo ); } - bool operator!=( DeviceGeneratedCommandsLimitsNVX const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PipelineShaderStageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGeneratedCommandsLimitsNVX; - const void* pNext = {}; - uint32_t maxIndirectCommandsLayoutTokenCount = {}; - uint32_t maxObjectEntryCounts = {}; - uint32_t minSequenceCountBufferOffsetAlignment = {}; - uint32_t minSequenceIndexBufferOffsetAlignment = {}; - uint32_t minCommandsTokenBufferOffsetAlignment = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags = {}; + VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex; + VULKAN_HPP_NAMESPACE::ShaderModule module = {}; + const char * pName = {}; + const VULKAN_HPP_NAMESPACE::SpecializationInfo * pSpecializationInfo = {}; }; - static_assert( sizeof( DeviceGeneratedCommandsLimitsNVX ) == sizeof( VkDeviceGeneratedCommandsLimitsNVX ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PipelineShaderStageCreateInfo ) == sizeof( VkPipelineShaderStageCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct DeviceGroupBindSparseInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DeviceGroupBindSparseInfo( uint32_t resourceDeviceIndex_ = {}, - uint32_t memoryDeviceIndex_ = {} ) VULKAN_HPP_NOEXCEPT - : resourceDeviceIndex( resourceDeviceIndex_ ) - , memoryDeviceIndex( memoryDeviceIndex_ ) + using Type = PipelineShaderStageCreateInfo; + }; + + struct ComputePipelineCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eComputePipelineCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ComputePipelineCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo stage_ = {}, + VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, + VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, + int32_t basePipelineIndex_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , stage( stage_ ) + , layout( layout_ ) + , basePipelineHandle( basePipelineHandle_ ) + , basePipelineIndex( basePipelineIndex_ ) + {} + + VULKAN_HPP_CONSTEXPR + ComputePipelineCreateInfo( ComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ComputePipelineCreateInfo( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : ComputePipelineCreateInfo( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo & operator=( VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 ComputePipelineCreateInfo & + operator=( ComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ComputePipelineCreateInfo & operator=( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo ) - offsetof( DeviceGroupBindSparseInfo, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - DeviceGroupBindSparseInfo( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT + ComputePipelineCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - DeviceGroupBindSparseInfo& operator=( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT + ComputePipelineCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + flags = flags_; return *this; } - DeviceGroupBindSparseInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ComputePipelineCreateInfo & + setStage( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const & stage_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + stage = stage_; return *this; } - DeviceGroupBindSparseInfo & setResourceDeviceIndex( uint32_t resourceDeviceIndex_ ) VULKAN_HPP_NOEXCEPT + ComputePipelineCreateInfo & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT { - resourceDeviceIndex = resourceDeviceIndex_; + layout = layout_; return *this; } - DeviceGroupBindSparseInfo & setMemoryDeviceIndex( uint32_t memoryDeviceIndex_ ) VULKAN_HPP_NOEXCEPT + ComputePipelineCreateInfo & + setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT { - memoryDeviceIndex = memoryDeviceIndex_; + basePipelineHandle = basePipelineHandle_; + return *this; + } + + ComputePipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT + { + basePipelineIndex = basePipelineIndex_; return *this; } - operator VkDeviceGroupBindSparseInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkComputePipelineCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDeviceGroupBindSparseInfo &() VULKAN_HPP_NOEXCEPT + operator VkComputePipelineCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DeviceGroupBindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ComputePipelineCreateInfo const & ) const = default; +#else + bool operator==( ComputePipelineCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( resourceDeviceIndex == rhs.resourceDeviceIndex ) - && ( memoryDeviceIndex == rhs.memoryDeviceIndex ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( stage == rhs.stage ) && + ( layout == rhs.layout ) && ( basePipelineHandle == rhs.basePipelineHandle ) && + ( basePipelineIndex == rhs.basePipelineIndex ); } - bool operator!=( DeviceGroupBindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ComputePipelineCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupBindSparseInfo; - const void* pNext = {}; - uint32_t resourceDeviceIndex = {}; - uint32_t memoryDeviceIndex = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eComputePipelineCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {}; + VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo stage = {}; + VULKAN_HPP_NAMESPACE::PipelineLayout layout = {}; + VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {}; + int32_t basePipelineIndex = {}; }; - static_assert( sizeof( DeviceGroupBindSparseInfo ) == sizeof( VkDeviceGroupBindSparseInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ComputePipelineCreateInfo ) == sizeof( VkComputePipelineCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct DeviceGroupCommandBufferBeginInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DeviceGroupCommandBufferBeginInfo( uint32_t deviceMask_ = {} ) VULKAN_HPP_NOEXCEPT - : deviceMask( deviceMask_ ) - {} + using Type = ComputePipelineCreateInfo; + }; - VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo & operator=( VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo ) - offsetof( DeviceGroupCommandBufferBeginInfo, pNext ) ); - return *this; - } + struct ConformanceVersion + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ConformanceVersion( uint8_t major_ = {}, + uint8_t minor_ = {}, + uint8_t subminor_ = {}, + uint8_t patch_ = {} ) VULKAN_HPP_NOEXCEPT + : major( major_ ) + , minor( minor_ ) + , subminor( subminor_ ) + , patch( patch_ ) + {} - DeviceGroupCommandBufferBeginInfo( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR ConformanceVersion( ConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ConformanceVersion( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT + : ConformanceVersion( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ConformanceVersion & + operator=( ConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ConformanceVersion & operator=( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + ConformanceVersion & setMajor( uint8_t major_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + major = major_; + return *this; } - DeviceGroupCommandBufferBeginInfo& operator=( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT + ConformanceVersion & setMinor( uint8_t minor_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + minor = minor_; return *this; } - DeviceGroupCommandBufferBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ConformanceVersion & setSubminor( uint8_t subminor_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + subminor = subminor_; return *this; } - DeviceGroupCommandBufferBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT + ConformanceVersion & setPatch( uint8_t patch_ ) VULKAN_HPP_NOEXCEPT { - deviceMask = deviceMask_; + patch = patch_; return *this; } - operator VkDeviceGroupCommandBufferBeginInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkConformanceVersion const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDeviceGroupCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT + operator VkConformanceVersion &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DeviceGroupCommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ConformanceVersion const & ) const = default; +#else + bool operator==( ConformanceVersion const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceMask == rhs.deviceMask ); + return ( major == rhs.major ) && ( minor == rhs.minor ) && ( subminor == rhs.subminor ) && ( patch == rhs.patch ); } - bool operator!=( DeviceGroupCommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ConformanceVersion const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupCommandBufferBeginInfo; - const void* pNext = {}; - uint32_t deviceMask = {}; + uint8_t major = {}; + uint8_t minor = {}; + uint8_t subminor = {}; + uint8_t patch = {}; }; - static_assert( sizeof( DeviceGroupCommandBufferBeginInfo ) == sizeof( VkDeviceGroupCommandBufferBeginInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ConformanceVersion ) == sizeof( VkConformanceVersion ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + using ConformanceVersionKHR = ConformanceVersion; - struct DeviceGroupDeviceCreateInfo + struct CooperativeMatrixPropertiesNV { - VULKAN_HPP_CONSTEXPR DeviceGroupDeviceCreateInfo( uint32_t physicalDeviceCount_ = {}, - const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices_ = {} ) VULKAN_HPP_NOEXCEPT - : physicalDeviceCount( physicalDeviceCount_ ) - , pPhysicalDevices( pPhysicalDevices_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCooperativeMatrixPropertiesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesNV( + uint32_t MSize_ = {}, + uint32_t NSize_ = {}, + uint32_t KSize_ = {}, + VULKAN_HPP_NAMESPACE::ComponentTypeNV AType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16, + VULKAN_HPP_NAMESPACE::ComponentTypeNV BType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16, + VULKAN_HPP_NAMESPACE::ComponentTypeNV CType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16, + VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16, + VULKAN_HPP_NAMESPACE::ScopeNV scope_ = VULKAN_HPP_NAMESPACE::ScopeNV::eDevice ) VULKAN_HPP_NOEXCEPT + : MSize( MSize_ ) + , NSize( NSize_ ) + , KSize( KSize_ ) + , AType( AType_ ) + , BType( BType_ ) + , CType( CType_ ) + , DType( DType_ ) + , scope( scope_ ) {} - VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo & operator=( VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo ) - offsetof( DeviceGroupDeviceCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + CooperativeMatrixPropertiesNV( CooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DeviceGroupDeviceCreateInfo( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + CooperativeMatrixPropertiesNV( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + : CooperativeMatrixPropertiesNV( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 CooperativeMatrixPropertiesNV & + operator=( CooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DeviceGroupDeviceCreateInfo& operator=( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + CooperativeMatrixPropertiesNV & operator=( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - DeviceGroupDeviceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + CooperativeMatrixPropertiesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - DeviceGroupDeviceCreateInfo & setPhysicalDeviceCount( uint32_t physicalDeviceCount_ ) VULKAN_HPP_NOEXCEPT + CooperativeMatrixPropertiesNV & setMSize( uint32_t MSize_ ) VULKAN_HPP_NOEXCEPT { - physicalDeviceCount = physicalDeviceCount_; + MSize = MSize_; return *this; } - DeviceGroupDeviceCreateInfo & setPPhysicalDevices( const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices_ ) VULKAN_HPP_NOEXCEPT + CooperativeMatrixPropertiesNV & setNSize( uint32_t NSize_ ) VULKAN_HPP_NOEXCEPT { - pPhysicalDevices = pPhysicalDevices_; + NSize = NSize_; return *this; } - operator VkDeviceGroupDeviceCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceGroupDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( DeviceGroupDeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + CooperativeMatrixPropertiesNV & setKSize( uint32_t KSize_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( physicalDeviceCount == rhs.physicalDeviceCount ) - && ( pPhysicalDevices == rhs.pPhysicalDevices ); + KSize = KSize_; + return *this; } - bool operator!=( DeviceGroupDeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + CooperativeMatrixPropertiesNV & setAType( VULKAN_HPP_NAMESPACE::ComponentTypeNV AType_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + AType = AType_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupDeviceCreateInfo; - const void* pNext = {}; - uint32_t physicalDeviceCount = {}; - const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices = {}; - }; - static_assert( sizeof( DeviceGroupDeviceCreateInfo ) == sizeof( VkDeviceGroupDeviceCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DeviceGroupPresentCapabilitiesKHR - { - DeviceGroupPresentCapabilitiesKHR( std::array const& presentMask_ = {}, - VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {} ) VULKAN_HPP_NOEXCEPT - : presentMask{} - , modes( modes_ ) + CooperativeMatrixPropertiesNV & setBType( VULKAN_HPP_NAMESPACE::ComponentTypeNV BType_ ) VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( presentMask, presentMask_ ); + BType = BType_; + return *this; } - VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR & operator=( VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + CooperativeMatrixPropertiesNV & setCType( VULKAN_HPP_NAMESPACE::ComponentTypeNV CType_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR ) - offsetof( DeviceGroupPresentCapabilitiesKHR, pNext ) ); + CType = CType_; return *this; } - DeviceGroupPresentCapabilitiesKHR( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + CooperativeMatrixPropertiesNV & setDType( VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + DType = DType_; + return *this; } - DeviceGroupPresentCapabilitiesKHR& operator=( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + CooperativeMatrixPropertiesNV & setScope( VULKAN_HPP_NAMESPACE::ScopeNV scope_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + scope = scope_; return *this; } - operator VkDeviceGroupPresentCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkCooperativeMatrixPropertiesNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDeviceGroupPresentCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT + operator VkCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DeviceGroupPresentCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CooperativeMatrixPropertiesNV const & ) const = default; +#else + bool operator==( CooperativeMatrixPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memcmp( presentMask, rhs.presentMask, VK_MAX_DEVICE_GROUP_SIZE * sizeof( uint32_t ) ) == 0 ) - && ( modes == rhs.modes ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( MSize == rhs.MSize ) && ( NSize == rhs.NSize ) && + ( KSize == rhs.KSize ) && ( AType == rhs.AType ) && ( BType == rhs.BType ) && ( CType == rhs.CType ) && + ( DType == rhs.DType ) && ( scope == rhs.scope ); } - bool operator!=( DeviceGroupPresentCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( CooperativeMatrixPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentCapabilitiesKHR; - const void* pNext = {}; - uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE] = {}; - VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCooperativeMatrixPropertiesNV; + void * pNext = {}; + uint32_t MSize = {}; + uint32_t NSize = {}; + uint32_t KSize = {}; + VULKAN_HPP_NAMESPACE::ComponentTypeNV AType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16; + VULKAN_HPP_NAMESPACE::ComponentTypeNV BType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16; + VULKAN_HPP_NAMESPACE::ComponentTypeNV CType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16; + VULKAN_HPP_NAMESPACE::ComponentTypeNV DType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16; + VULKAN_HPP_NAMESPACE::ScopeNV scope = VULKAN_HPP_NAMESPACE::ScopeNV::eDevice; }; - static_assert( sizeof( DeviceGroupPresentCapabilitiesKHR ) == sizeof( VkDeviceGroupPresentCapabilitiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( CooperativeMatrixPropertiesNV ) == sizeof( VkCooperativeMatrixPropertiesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct DeviceGroupPresentInfoKHR + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DeviceGroupPresentInfoKHR( uint32_t swapchainCount_ = {}, - const uint32_t* pDeviceMasks_ = {}, - VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal ) VULKAN_HPP_NOEXCEPT - : swapchainCount( swapchainCount_ ) - , pDeviceMasks( pDeviceMasks_ ) - , mode( mode_ ) - {} + using Type = CooperativeMatrixPropertiesNV; + }; - VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR & operator=( VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR ) - offsetof( DeviceGroupPresentInfoKHR, pNext ) ); - return *this; - } + struct CopyCommandTransformInfoQCOM + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyCommandTransformInfoQCOM; - DeviceGroupPresentInfoKHR( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + CopyCommandTransformInfoQCOM( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity ) VULKAN_HPP_NOEXCEPT + : transform( transform_ ) + {} - DeviceGroupPresentInfoKHR& operator=( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR + CopyCommandTransformInfoQCOM( CopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DeviceGroupPresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + CopyCommandTransformInfoQCOM( VkCopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT + : CopyCommandTransformInfoQCOM( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - DeviceGroupPresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 CopyCommandTransformInfoQCOM & + operator=( CopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + CopyCommandTransformInfoQCOM & operator=( VkCopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT { - swapchainCount = swapchainCount_; + *this = *reinterpret_cast( &rhs ); return *this; } - DeviceGroupPresentInfoKHR & setPDeviceMasks( const uint32_t* pDeviceMasks_ ) VULKAN_HPP_NOEXCEPT + CopyCommandTransformInfoQCOM & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - pDeviceMasks = pDeviceMasks_; + pNext = pNext_; return *this; } - DeviceGroupPresentInfoKHR & setMode( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ ) VULKAN_HPP_NOEXCEPT + CopyCommandTransformInfoQCOM & + setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT { - mode = mode_; + transform = transform_; return *this; } - operator VkDeviceGroupPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkCopyCommandTransformInfoQCOM const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDeviceGroupPresentInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkCopyCommandTransformInfoQCOM &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DeviceGroupPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CopyCommandTransformInfoQCOM const & ) const = default; +#else + bool operator==( CopyCommandTransformInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( swapchainCount == rhs.swapchainCount ) - && ( pDeviceMasks == rhs.pDeviceMasks ) - && ( mode == rhs.mode ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( transform == rhs.transform ); } - bool operator!=( DeviceGroupPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( CopyCommandTransformInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentInfoKHR; - const void* pNext = {}; - uint32_t swapchainCount = {}; - const uint32_t* pDeviceMasks = {}; - VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyCommandTransformInfoQCOM; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; }; - static_assert( sizeof( DeviceGroupPresentInfoKHR ) == sizeof( VkDeviceGroupPresentInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( CopyCommandTransformInfoQCOM ) == sizeof( VkCopyCommandTransformInfoQCOM ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct DeviceGroupRenderPassBeginInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DeviceGroupRenderPassBeginInfo( uint32_t deviceMask_ = {}, - uint32_t deviceRenderAreaCount_ = {}, - const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas_ = {} ) VULKAN_HPP_NOEXCEPT - : deviceMask( deviceMask_ ) - , deviceRenderAreaCount( deviceRenderAreaCount_ ) - , pDeviceRenderAreas( pDeviceRenderAreas_ ) + using Type = CopyCommandTransformInfoQCOM; + }; + + struct CopyDescriptorSet + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyDescriptorSet; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR CopyDescriptorSet( VULKAN_HPP_NAMESPACE::DescriptorSet srcSet_ = {}, + uint32_t srcBinding_ = {}, + uint32_t srcArrayElement_ = {}, + VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ = {}, + uint32_t dstBinding_ = {}, + uint32_t dstArrayElement_ = {}, + uint32_t descriptorCount_ = {} ) VULKAN_HPP_NOEXCEPT + : srcSet( srcSet_ ) + , srcBinding( srcBinding_ ) + , srcArrayElement( srcArrayElement_ ) + , dstSet( dstSet_ ) + , dstBinding( dstBinding_ ) + , dstArrayElement( dstArrayElement_ ) + , descriptorCount( descriptorCount_ ) + {} + + VULKAN_HPP_CONSTEXPR CopyDescriptorSet( CopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + CopyDescriptorSet( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT + : CopyDescriptorSet( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo & operator=( VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 CopyDescriptorSet & + operator=( CopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + CopyDescriptorSet & operator=( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo ) - offsetof( DeviceGroupRenderPassBeginInfo, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - DeviceGroupRenderPassBeginInfo( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT + CopyDescriptorSet & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - DeviceGroupRenderPassBeginInfo& operator=( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT + CopyDescriptorSet & setSrcSet( VULKAN_HPP_NAMESPACE::DescriptorSet srcSet_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + srcSet = srcSet_; return *this; } - DeviceGroupRenderPassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + CopyDescriptorSet & setSrcBinding( uint32_t srcBinding_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + srcBinding = srcBinding_; return *this; } - DeviceGroupRenderPassBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT + CopyDescriptorSet & setSrcArrayElement( uint32_t srcArrayElement_ ) VULKAN_HPP_NOEXCEPT { - deviceMask = deviceMask_; + srcArrayElement = srcArrayElement_; return *this; } - DeviceGroupRenderPassBeginInfo & setDeviceRenderAreaCount( uint32_t deviceRenderAreaCount_ ) VULKAN_HPP_NOEXCEPT + CopyDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT { - deviceRenderAreaCount = deviceRenderAreaCount_; + dstSet = dstSet_; return *this; } - DeviceGroupRenderPassBeginInfo & setPDeviceRenderAreas( const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas_ ) VULKAN_HPP_NOEXCEPT + CopyDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT { - pDeviceRenderAreas = pDeviceRenderAreas_; + dstBinding = dstBinding_; return *this; } - operator VkDeviceGroupRenderPassBeginInfo const&() const VULKAN_HPP_NOEXCEPT + CopyDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + dstArrayElement = dstArrayElement_; + return *this; } - operator VkDeviceGroupRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT + CopyDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT + { + descriptorCount = descriptorCount_; + return *this; + } + + operator VkCopyDescriptorSet const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkCopyDescriptorSet &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DeviceGroupRenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CopyDescriptorSet const & ) const = default; +#else + bool operator==( CopyDescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceMask == rhs.deviceMask ) - && ( deviceRenderAreaCount == rhs.deviceRenderAreaCount ) - && ( pDeviceRenderAreas == rhs.pDeviceRenderAreas ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcSet == rhs.srcSet ) && + ( srcBinding == rhs.srcBinding ) && ( srcArrayElement == rhs.srcArrayElement ) && + ( dstSet == rhs.dstSet ) && ( dstBinding == rhs.dstBinding ) && + ( dstArrayElement == rhs.dstArrayElement ) && ( descriptorCount == rhs.descriptorCount ); } - bool operator!=( DeviceGroupRenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( CopyDescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupRenderPassBeginInfo; - const void* pNext = {}; - uint32_t deviceMask = {}; - uint32_t deviceRenderAreaCount = {}; - const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyDescriptorSet; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DescriptorSet srcSet = {}; + uint32_t srcBinding = {}; + uint32_t srcArrayElement = {}; + VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {}; + uint32_t dstBinding = {}; + uint32_t dstArrayElement = {}; + uint32_t descriptorCount = {}; }; - static_assert( sizeof( DeviceGroupRenderPassBeginInfo ) == sizeof( VkDeviceGroupRenderPassBeginInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( CopyDescriptorSet ) == sizeof( VkCopyDescriptorSet ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct DeviceGroupSubmitInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DeviceGroupSubmitInfo( uint32_t waitSemaphoreCount_ = {}, - const uint32_t* pWaitSemaphoreDeviceIndices_ = {}, - uint32_t commandBufferCount_ = {}, - const uint32_t* pCommandBufferDeviceMasks_ = {}, - uint32_t signalSemaphoreCount_ = {}, - const uint32_t* pSignalSemaphoreDeviceIndices_ = {} ) VULKAN_HPP_NOEXCEPT - : waitSemaphoreCount( waitSemaphoreCount_ ) - , pWaitSemaphoreDeviceIndices( pWaitSemaphoreDeviceIndices_ ) - , commandBufferCount( commandBufferCount_ ) - , pCommandBufferDeviceMasks( pCommandBufferDeviceMasks_ ) - , signalSemaphoreCount( signalSemaphoreCount_ ) - , pSignalSemaphoreDeviceIndices( pSignalSemaphoreDeviceIndices_ ) + using Type = CopyDescriptorSet; + }; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + struct D3D12FenceSubmitInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eD3D12FenceSubmitInfoKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR D3D12FenceSubmitInfoKHR( uint32_t waitSemaphoreValuesCount_ = {}, + const uint64_t * pWaitSemaphoreValues_ = {}, + uint32_t signalSemaphoreValuesCount_ = {}, + const uint64_t * pSignalSemaphoreValues_ = {} ) VULKAN_HPP_NOEXCEPT + : waitSemaphoreValuesCount( waitSemaphoreValuesCount_ ) + , pWaitSemaphoreValues( pWaitSemaphoreValues_ ) + , signalSemaphoreValuesCount( signalSemaphoreValuesCount_ ) + , pSignalSemaphoreValues( pSignalSemaphoreValues_ ) {} - VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo & operator=( VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo ) - offsetof( DeviceGroupSubmitInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR D3D12FenceSubmitInfoKHR( D3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DeviceGroupSubmitInfo( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + D3D12FenceSubmitInfoKHR( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : D3D12FenceSubmitInfoKHR( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + D3D12FenceSubmitInfoKHR( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphoreValues_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphoreValues_ = {} ) + : waitSemaphoreValuesCount( static_cast( waitSemaphoreValues_.size() ) ) + , pWaitSemaphoreValues( waitSemaphoreValues_.data() ) + , signalSemaphoreValuesCount( static_cast( signalSemaphoreValues_.size() ) ) + , pSignalSemaphoreValues( signalSemaphoreValues_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - DeviceGroupSubmitInfo& operator=( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 D3D12FenceSubmitInfoKHR & + operator=( D3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + D3D12FenceSubmitInfoKHR & operator=( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - DeviceGroupSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + D3D12FenceSubmitInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - DeviceGroupSubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT + D3D12FenceSubmitInfoKHR & setWaitSemaphoreValuesCount( uint32_t waitSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT { - waitSemaphoreCount = waitSemaphoreCount_; + waitSemaphoreValuesCount = waitSemaphoreValuesCount_; return *this; } - DeviceGroupSubmitInfo & setPWaitSemaphoreDeviceIndices( const uint32_t* pWaitSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT + D3D12FenceSubmitInfoKHR & setPWaitSemaphoreValues( const uint64_t * pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT { - pWaitSemaphoreDeviceIndices = pWaitSemaphoreDeviceIndices_; + pWaitSemaphoreValues = pWaitSemaphoreValues_; return *this; } - DeviceGroupSubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + D3D12FenceSubmitInfoKHR & setWaitSemaphoreValues( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT { - commandBufferCount = commandBufferCount_; + waitSemaphoreValuesCount = static_cast( waitSemaphoreValues_.size() ); + pWaitSemaphoreValues = waitSemaphoreValues_.data(); return *this; } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - DeviceGroupSubmitInfo & setPCommandBufferDeviceMasks( const uint32_t* pCommandBufferDeviceMasks_ ) VULKAN_HPP_NOEXCEPT + D3D12FenceSubmitInfoKHR & setSignalSemaphoreValuesCount( uint32_t signalSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT { - pCommandBufferDeviceMasks = pCommandBufferDeviceMasks_; + signalSemaphoreValuesCount = signalSemaphoreValuesCount_; return *this; } - DeviceGroupSubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT + D3D12FenceSubmitInfoKHR & setPSignalSemaphoreValues( const uint64_t * pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT { - signalSemaphoreCount = signalSemaphoreCount_; + pSignalSemaphoreValues = pSignalSemaphoreValues_; return *this; } - DeviceGroupSubmitInfo & setPSignalSemaphoreDeviceIndices( const uint32_t* pSignalSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + D3D12FenceSubmitInfoKHR & setSignalSemaphoreValues( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT { - pSignalSemaphoreDeviceIndices = pSignalSemaphoreDeviceIndices_; + signalSemaphoreValuesCount = static_cast( signalSemaphoreValues_.size() ); + pSignalSemaphoreValues = signalSemaphoreValues_.data(); return *this; } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkDeviceGroupSubmitInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkD3D12FenceSubmitInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDeviceGroupSubmitInfo &() VULKAN_HPP_NOEXCEPT + operator VkD3D12FenceSubmitInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DeviceGroupSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( D3D12FenceSubmitInfoKHR const & ) const = default; +# else + bool operator==( D3D12FenceSubmitInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) - && ( pWaitSemaphoreDeviceIndices == rhs.pWaitSemaphoreDeviceIndices ) - && ( commandBufferCount == rhs.commandBufferCount ) - && ( pCommandBufferDeviceMasks == rhs.pCommandBufferDeviceMasks ) - && ( signalSemaphoreCount == rhs.signalSemaphoreCount ) - && ( pSignalSemaphoreDeviceIndices == rhs.pSignalSemaphoreDeviceIndices ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( waitSemaphoreValuesCount == rhs.waitSemaphoreValuesCount ) && + ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues ) && + ( signalSemaphoreValuesCount == rhs.signalSemaphoreValuesCount ) && + ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues ); } - bool operator!=( DeviceGroupSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( D3D12FenceSubmitInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSubmitInfo; - const void* pNext = {}; - uint32_t waitSemaphoreCount = {}; - const uint32_t* pWaitSemaphoreDeviceIndices = {}; - uint32_t commandBufferCount = {}; - const uint32_t* pCommandBufferDeviceMasks = {}; - uint32_t signalSemaphoreCount = {}; - const uint32_t* pSignalSemaphoreDeviceIndices = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eD3D12FenceSubmitInfoKHR; + const void * pNext = {}; + uint32_t waitSemaphoreValuesCount = {}; + const uint64_t * pWaitSemaphoreValues = {}; + uint32_t signalSemaphoreValuesCount = {}; + const uint64_t * pSignalSemaphoreValues = {}; }; - static_assert( sizeof( DeviceGroupSubmitInfo ) == sizeof( VkDeviceGroupSubmitInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( D3D12FenceSubmitInfoKHR ) == sizeof( VkD3D12FenceSubmitInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct DeviceGroupSwapchainCreateInfoKHR + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DeviceGroupSwapchainCreateInfoKHR( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {} ) VULKAN_HPP_NOEXCEPT - : modes( modes_ ) + using Type = D3D12FenceSubmitInfoKHR; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + struct DebugMarkerObjectNameInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerObjectNameInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DebugMarkerObjectNameInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ = + VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown, + uint64_t object_ = {}, + const char * pObjectName_ = {} ) VULKAN_HPP_NOEXCEPT + : objectType( objectType_ ) + , object( object_ ) + , pObjectName( pObjectName_ ) + {} + + VULKAN_HPP_CONSTEXPR + DebugMarkerObjectNameInfoEXT( DebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DebugMarkerObjectNameInfoEXT( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : DebugMarkerObjectNameInfoEXT( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectNameInfoEXT & + operator=( DebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR & operator=( VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + DebugMarkerObjectNameInfoEXT & operator=( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR ) - offsetof( DeviceGroupSwapchainCreateInfoKHR, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - DeviceGroupSwapchainCreateInfoKHR( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + DebugMarkerObjectNameInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - DeviceGroupSwapchainCreateInfoKHR& operator=( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + DebugMarkerObjectNameInfoEXT & + setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + objectType = objectType_; return *this; } - DeviceGroupSwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + DebugMarkerObjectNameInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + object = object_; return *this; } - DeviceGroupSwapchainCreateInfoKHR & setModes( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ ) VULKAN_HPP_NOEXCEPT + DebugMarkerObjectNameInfoEXT & setPObjectName( const char * pObjectName_ ) VULKAN_HPP_NOEXCEPT { - modes = modes_; + pObjectName = pObjectName_; return *this; } - operator VkDeviceGroupSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkDebugMarkerObjectNameInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDeviceGroupSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkDebugMarkerObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DeviceGroupSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DebugMarkerObjectNameInfoEXT const & ) const = default; +#else + bool operator==( DebugMarkerObjectNameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( modes == rhs.modes ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( objectType == rhs.objectType ) && + ( object == rhs.object ) && ( pObjectName == rhs.pObjectName ); } - bool operator!=( DeviceGroupSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DebugMarkerObjectNameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSwapchainCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectNameInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = + VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + uint64_t object = {}; + const char * pObjectName = {}; }; - static_assert( sizeof( DeviceGroupSwapchainCreateInfoKHR ) == sizeof( VkDeviceGroupSwapchainCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DebugMarkerObjectNameInfoEXT ) == sizeof( VkDebugMarkerObjectNameInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct DeviceMemoryOpaqueCaptureAddressInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DeviceMemoryOpaqueCaptureAddressInfo( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {} ) VULKAN_HPP_NOEXCEPT - : memory( memory_ ) + using Type = DebugMarkerObjectNameInfoEXT; + }; + + struct DebugMarkerObjectTagInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerObjectTagInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DebugMarkerObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ = + VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown, + uint64_t object_ = {}, + uint64_t tagName_ = {}, + size_t tagSize_ = {}, + const void * pTag_ = {} ) VULKAN_HPP_NOEXCEPT + : objectType( objectType_ ) + , object( object_ ) + , tagName( tagName_ ) + , tagSize( tagSize_ ) + , pTag( pTag_ ) + {} + + VULKAN_HPP_CONSTEXPR + DebugMarkerObjectTagInfoEXT( DebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DebugMarkerObjectTagInfoEXT( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : DebugMarkerObjectTagInfoEXT( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + template + DebugMarkerObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_, + uint64_t object_, + uint64_t tagName_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & tag_ ) + : objectType( objectType_ ) + , object( object_ ) + , tagName( tagName_ ) + , tagSize( tag_.size() * sizeof( T ) ) + , pTag( tag_.data() ) {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DebugMarkerObjectTagInfoEXT & + operator=( DebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo & operator=( VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT + DebugMarkerObjectTagInfoEXT & operator=( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo ) - offsetof( DeviceMemoryOpaqueCaptureAddressInfo, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - DeviceMemoryOpaqueCaptureAddressInfo( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT + DebugMarkerObjectTagInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + DebugMarkerObjectTagInfoEXT & + setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + objectType = objectType_; + return *this; } - DeviceMemoryOpaqueCaptureAddressInfo& operator=( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT + DebugMarkerObjectTagInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + object = object_; return *this; } - DeviceMemoryOpaqueCaptureAddressInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + DebugMarkerObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + tagName = tagName_; return *this; } - DeviceMemoryOpaqueCaptureAddressInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT + DebugMarkerObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT { - memory = memory_; + tagSize = tagSize_; return *this; } - operator VkDeviceMemoryOpaqueCaptureAddressInfo const&() const VULKAN_HPP_NOEXCEPT + DebugMarkerObjectTagInfoEXT & setPTag( const void * pTag_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + pTag = pTag_; + return *this; } - operator VkDeviceMemoryOpaqueCaptureAddressInfo &() VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + template + DebugMarkerObjectTagInfoEXT & + setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & tag_ ) VULKAN_HPP_NOEXCEPT + { + tagSize = tag_.size() * sizeof( T ); + pTag = tag_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkDebugMarkerObjectTagInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkDebugMarkerObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DeviceMemoryOpaqueCaptureAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DebugMarkerObjectTagInfoEXT const & ) const = default; +#else + bool operator==( DebugMarkerObjectTagInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memory == rhs.memory ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( objectType == rhs.objectType ) && + ( object == rhs.object ) && ( tagName == rhs.tagName ) && ( tagSize == rhs.tagSize ) && + ( pTag == rhs.pTag ); } - bool operator!=( DeviceMemoryOpaqueCaptureAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DebugMarkerObjectTagInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOpaqueCaptureAddressInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectTagInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = + VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + uint64_t object = {}; + uint64_t tagName = {}; + size_t tagSize = {}; + const void * pTag = {}; }; - static_assert( sizeof( DeviceMemoryOpaqueCaptureAddressInfo ) == sizeof( VkDeviceMemoryOpaqueCaptureAddressInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DebugMarkerObjectTagInfoEXT ) == sizeof( VkDebugMarkerObjectTagInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct DeviceMemoryOverallocationCreateInfoAMD + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DeviceMemoryOverallocationCreateInfoAMD( VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ = VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault ) VULKAN_HPP_NOEXCEPT - : overallocationBehavior( overallocationBehavior_ ) + using Type = DebugMarkerObjectTagInfoEXT; + }; + + struct DebugReportCallbackCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugReportCallbackCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DebugReportCallbackCreateInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ = {}, + PFN_vkDebugReportCallbackEXT pfnCallback_ = {}, + void * pUserData_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , pfnCallback( pfnCallback_ ) + , pUserData( pUserData_ ) + {} + + VULKAN_HPP_CONSTEXPR + DebugReportCallbackCreateInfoEXT( DebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DebugReportCallbackCreateInfoEXT( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : DebugReportCallbackCreateInfoEXT( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DebugReportCallbackCreateInfoEXT & + operator=( DebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD & operator=( VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT + DebugReportCallbackCreateInfoEXT & operator=( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD ) - offsetof( DeviceMemoryOverallocationCreateInfoAMD, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - DeviceMemoryOverallocationCreateInfoAMD( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT + DebugReportCallbackCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - DeviceMemoryOverallocationCreateInfoAMD& operator=( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT + DebugReportCallbackCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + flags = flags_; return *this; } - DeviceMemoryOverallocationCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + DebugReportCallbackCreateInfoEXT & setPfnCallback( PFN_vkDebugReportCallbackEXT pfnCallback_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + pfnCallback = pfnCallback_; return *this; } - DeviceMemoryOverallocationCreateInfoAMD & setOverallocationBehavior( VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ ) VULKAN_HPP_NOEXCEPT + DebugReportCallbackCreateInfoEXT & setPUserData( void * pUserData_ ) VULKAN_HPP_NOEXCEPT { - overallocationBehavior = overallocationBehavior_; + pUserData = pUserData_; return *this; } - operator VkDeviceMemoryOverallocationCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT + operator VkDebugReportCallbackCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDeviceMemoryOverallocationCreateInfoAMD &() VULKAN_HPP_NOEXCEPT + operator VkDebugReportCallbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DeviceMemoryOverallocationCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DebugReportCallbackCreateInfoEXT const & ) const = default; +#else + bool operator==( DebugReportCallbackCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( overallocationBehavior == rhs.overallocationBehavior ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( pfnCallback == rhs.pfnCallback ) && ( pUserData == rhs.pUserData ); } - bool operator!=( DeviceMemoryOverallocationCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DebugReportCallbackCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior = VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugReportCallbackCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags = {}; + PFN_vkDebugReportCallbackEXT pfnCallback = {}; + void * pUserData = {}; }; - static_assert( sizeof( DeviceMemoryOverallocationCreateInfoAMD ) == sizeof( VkDeviceMemoryOverallocationCreateInfoAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DebugReportCallbackCreateInfoEXT ) == sizeof( VkDebugReportCallbackCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct DeviceQueueGlobalPriorityCreateInfoEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DeviceQueueGlobalPriorityCreateInfoEXT( VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority_ = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT::eLow ) VULKAN_HPP_NOEXCEPT - : globalPriority( globalPriority_ ) + using Type = DebugReportCallbackCreateInfoEXT; + }; + + struct DebugUtilsObjectNameInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsObjectNameInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DebugUtilsObjectNameInfoEXT( + VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown, + uint64_t objectHandle_ = {}, + const char * pObjectName_ = {} ) VULKAN_HPP_NOEXCEPT + : objectType( objectType_ ) + , objectHandle( objectHandle_ ) + , pObjectName( pObjectName_ ) + {} + + VULKAN_HPP_CONSTEXPR + DebugUtilsObjectNameInfoEXT( DebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DebugUtilsObjectNameInfoEXT( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : DebugUtilsObjectNameInfoEXT( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectNameInfoEXT & + operator=( DebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DebugUtilsObjectNameInfoEXT & operator=( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoEXT ) - offsetof( DeviceQueueGlobalPriorityCreateInfoEXT, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - DeviceQueueGlobalPriorityCreateInfoEXT( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DebugUtilsObjectNameInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - DeviceQueueGlobalPriorityCreateInfoEXT& operator=( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DebugUtilsObjectNameInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + objectType = objectType_; return *this; } - DeviceQueueGlobalPriorityCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + DebugUtilsObjectNameInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + objectHandle = objectHandle_; return *this; } - DeviceQueueGlobalPriorityCreateInfoEXT & setGlobalPriority( VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority_ ) VULKAN_HPP_NOEXCEPT + DebugUtilsObjectNameInfoEXT & setPObjectName( const char * pObjectName_ ) VULKAN_HPP_NOEXCEPT { - globalPriority = globalPriority_; + pObjectName = pObjectName_; return *this; } - operator VkDeviceQueueGlobalPriorityCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkDebugUtilsObjectNameInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDeviceQueueGlobalPriorityCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkDebugUtilsObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DeviceQueueGlobalPriorityCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DebugUtilsObjectNameInfoEXT const & ) const = default; +#else + bool operator==( DebugUtilsObjectNameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( globalPriority == rhs.globalPriority ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( objectType == rhs.objectType ) && + ( objectHandle == rhs.objectHandle ) && ( pObjectName == rhs.pObjectName ); } - bool operator!=( DeviceQueueGlobalPriorityCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DebugUtilsObjectNameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT::eLow; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectNameInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown; + uint64_t objectHandle = {}; + const char * pObjectName = {}; }; - static_assert( sizeof( DeviceQueueGlobalPriorityCreateInfoEXT ) == sizeof( VkDeviceQueueGlobalPriorityCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DebugUtilsObjectNameInfoEXT ) == sizeof( VkDebugUtilsObjectNameInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct DeviceQueueInfo2 + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DeviceQueueInfo2( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {}, - uint32_t queueFamilyIndex_ = {}, - uint32_t queueIndex_ = {} ) VULKAN_HPP_NOEXCEPT + using Type = DebugUtilsObjectNameInfoEXT; + }; + + struct DebugUtilsMessengerCallbackDataEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eDebugUtilsMessengerCallbackDataEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT( + VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_ = {}, + const char * pMessageIdName_ = {}, + int32_t messageIdNumber_ = {}, + const char * pMessage_ = {}, + uint32_t queueLabelCount_ = {}, + const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pQueueLabels_ = {}, + uint32_t cmdBufLabelCount_ = {}, + const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pCmdBufLabels_ = {}, + uint32_t objectCount_ = {}, + const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pObjects_ = {} ) VULKAN_HPP_NOEXCEPT : flags( flags_ ) - , queueFamilyIndex( queueFamilyIndex_ ) - , queueIndex( queueIndex_ ) + , pMessageIdName( pMessageIdName_ ) + , messageIdNumber( messageIdNumber_ ) + , pMessage( pMessage_ ) + , queueLabelCount( queueLabelCount_ ) + , pQueueLabels( pQueueLabels_ ) + , cmdBufLabelCount( cmdBufLabelCount_ ) + , pCmdBufLabels( pCmdBufLabels_ ) + , objectCount( objectCount_ ) + , pObjects( pObjects_ ) {} - VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 & operator=( VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 ) - offsetof( DeviceQueueInfo2, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT( DebugUtilsMessengerCallbackDataEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - DeviceQueueInfo2( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + DebugUtilsMessengerCallbackDataEXT( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : DebugUtilsMessengerCallbackDataEXT( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DebugUtilsMessengerCallbackDataEXT( + VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_, + const char * pMessageIdName_, + int32_t messageIdNumber_, + const char * pMessage_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + queueLabels_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + cmdBufLabels_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + objects_ = {} ) + : flags( flags_ ) + , pMessageIdName( pMessageIdName_ ) + , messageIdNumber( messageIdNumber_ ) + , pMessage( pMessage_ ) + , queueLabelCount( static_cast( queueLabels_.size() ) ) + , pQueueLabels( queueLabels_.data() ) + , cmdBufLabelCount( static_cast( cmdBufLabels_.size() ) ) + , pCmdBufLabels( cmdBufLabels_.data() ) + , objectCount( static_cast( objects_.size() ) ) + , pObjects( objects_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT & + operator=( DebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DeviceQueueInfo2& operator=( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT + DebugUtilsMessengerCallbackDataEXT & + operator=( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - DeviceQueueInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + DebugUtilsMessengerCallbackDataEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - DeviceQueueInfo2 & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + DebugUtilsMessengerCallbackDataEXT & + setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT { flags = flags_; return *this; } - DeviceQueueInfo2 & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT + DebugUtilsMessengerCallbackDataEXT & setPMessageIdName( const char * pMessageIdName_ ) VULKAN_HPP_NOEXCEPT { - queueFamilyIndex = queueFamilyIndex_; + pMessageIdName = pMessageIdName_; return *this; } - DeviceQueueInfo2 & setQueueIndex( uint32_t queueIndex_ ) VULKAN_HPP_NOEXCEPT + DebugUtilsMessengerCallbackDataEXT & setMessageIdNumber( int32_t messageIdNumber_ ) VULKAN_HPP_NOEXCEPT { - queueIndex = queueIndex_; + messageIdNumber = messageIdNumber_; return *this; } - operator VkDeviceQueueInfo2 const&() const VULKAN_HPP_NOEXCEPT + DebugUtilsMessengerCallbackDataEXT & setPMessage( const char * pMessage_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + pMessage = pMessage_; + return *this; } - operator VkDeviceQueueInfo2 &() VULKAN_HPP_NOEXCEPT + DebugUtilsMessengerCallbackDataEXT & setQueueLabelCount( uint32_t queueLabelCount_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + queueLabelCount = queueLabelCount_; + return *this; } - bool operator==( DeviceQueueInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT + DebugUtilsMessengerCallbackDataEXT & + setPQueueLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pQueueLabels_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( queueFamilyIndex == rhs.queueFamilyIndex ) - && ( queueIndex == rhs.queueIndex ); + pQueueLabels = pQueueLabels_; + return *this; } - bool operator!=( DeviceQueueInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DebugUtilsMessengerCallbackDataEXT & setQueueLabels( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + queueLabels_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + queueLabelCount = static_cast( queueLabels_.size() ); + pQueueLabels = queueLabels_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueInfo2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {}; - uint32_t queueFamilyIndex = {}; - uint32_t queueIndex = {}; - }; - static_assert( sizeof( DeviceQueueInfo2 ) == sizeof( VkDeviceQueueInfo2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DispatchIndirectCommand - { - VULKAN_HPP_CONSTEXPR DispatchIndirectCommand( uint32_t x_ = {}, - uint32_t y_ = {}, - uint32_t z_ = {} ) VULKAN_HPP_NOEXCEPT - : x( x_ ) - , y( y_ ) - , z( z_ ) - {} + DebugUtilsMessengerCallbackDataEXT & setCmdBufLabelCount( uint32_t cmdBufLabelCount_ ) VULKAN_HPP_NOEXCEPT + { + cmdBufLabelCount = cmdBufLabelCount_; + return *this; + } - DispatchIndirectCommand( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT + DebugUtilsMessengerCallbackDataEXT & + setPCmdBufLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pCmdBufLabels_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pCmdBufLabels = pCmdBufLabels_; + return *this; } - DispatchIndirectCommand& operator=( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DebugUtilsMessengerCallbackDataEXT & setCmdBufLabels( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + cmdBufLabels_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + cmdBufLabelCount = static_cast( cmdBufLabels_.size() ); + pCmdBufLabels = cmdBufLabels_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - DispatchIndirectCommand & setX( uint32_t x_ ) VULKAN_HPP_NOEXCEPT + DebugUtilsMessengerCallbackDataEXT & setObjectCount( uint32_t objectCount_ ) VULKAN_HPP_NOEXCEPT { - x = x_; + objectCount = objectCount_; return *this; } - DispatchIndirectCommand & setY( uint32_t y_ ) VULKAN_HPP_NOEXCEPT + DebugUtilsMessengerCallbackDataEXT & + setPObjects( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pObjects_ ) VULKAN_HPP_NOEXCEPT { - y = y_; + pObjects = pObjects_; return *this; } - DispatchIndirectCommand & setZ( uint32_t z_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DebugUtilsMessengerCallbackDataEXT & setObjects( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + objects_ ) VULKAN_HPP_NOEXCEPT { - z = z_; + objectCount = static_cast( objects_.size() ); + pObjects = objects_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkDispatchIndirectCommand const&() const VULKAN_HPP_NOEXCEPT + operator VkDebugUtilsMessengerCallbackDataEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDispatchIndirectCommand &() VULKAN_HPP_NOEXCEPT + operator VkDebugUtilsMessengerCallbackDataEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DispatchIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DebugUtilsMessengerCallbackDataEXT const & ) const = default; +#else + bool operator==( DebugUtilsMessengerCallbackDataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( x == rhs.x ) - && ( y == rhs.y ) - && ( z == rhs.z ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( pMessageIdName == rhs.pMessageIdName ) && ( messageIdNumber == rhs.messageIdNumber ) && + ( pMessage == rhs.pMessage ) && ( queueLabelCount == rhs.queueLabelCount ) && + ( pQueueLabels == rhs.pQueueLabels ) && ( cmdBufLabelCount == rhs.cmdBufLabelCount ) && + ( pCmdBufLabels == rhs.pCmdBufLabels ) && ( objectCount == rhs.objectCount ) && + ( pObjects == rhs.pObjects ); } - bool operator!=( DispatchIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DebugUtilsMessengerCallbackDataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint32_t x = {}; - uint32_t y = {}; - uint32_t z = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCallbackDataEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags = {}; + const char * pMessageIdName = {}; + int32_t messageIdNumber = {}; + const char * pMessage = {}; + uint32_t queueLabelCount = {}; + const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pQueueLabels = {}; + uint32_t cmdBufLabelCount = {}; + const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pCmdBufLabels = {}; + uint32_t objectCount = {}; + const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pObjects = {}; + }; + static_assert( sizeof( DebugUtilsMessengerCallbackDataEXT ) == sizeof( VkDebugUtilsMessengerCallbackDataEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = DebugUtilsMessengerCallbackDataEXT; }; - static_assert( sizeof( DispatchIndirectCommand ) == sizeof( VkDispatchIndirectCommand ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct DisplayEventInfoEXT + struct DebugUtilsMessengerCreateInfoEXT { - VULKAN_HPP_CONSTEXPR DisplayEventInfoEXT( VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut ) VULKAN_HPP_NOEXCEPT - : displayEvent( displayEvent_ ) + static const bool allowDuplicate = true; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsMessengerCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + DebugUtilsMessengerCreateInfoEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags_ = {}, + VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ = {}, + VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType_ = {}, + PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ = {}, + void * pUserData_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , messageSeverity( messageSeverity_ ) + , messageType( messageType_ ) + , pfnUserCallback( pfnUserCallback_ ) + , pUserData( pUserData_ ) + {} + + VULKAN_HPP_CONSTEXPR + DebugUtilsMessengerCreateInfoEXT( DebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DebugUtilsMessengerCreateInfoEXT( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : DebugUtilsMessengerCreateInfoEXT( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT & operator=( VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCreateInfoEXT & + operator=( DebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DebugUtilsMessengerCreateInfoEXT & operator=( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT ) - offsetof( DisplayEventInfoEXT, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - DisplayEventInfoEXT( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DebugUtilsMessengerCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - DisplayEventInfoEXT& operator=( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DebugUtilsMessengerCreateInfoEXT & + setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + flags = flags_; return *this; } - DisplayEventInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + DebugUtilsMessengerCreateInfoEXT & + setMessageSeverity( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + messageSeverity = messageSeverity_; return *this; } - DisplayEventInfoEXT & setDisplayEvent( VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ ) VULKAN_HPP_NOEXCEPT + DebugUtilsMessengerCreateInfoEXT & + setMessageType( VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType_ ) VULKAN_HPP_NOEXCEPT { - displayEvent = displayEvent_; + messageType = messageType_; return *this; } - operator VkDisplayEventInfoEXT const&() const VULKAN_HPP_NOEXCEPT + DebugUtilsMessengerCreateInfoEXT & + setPfnUserCallback( PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + pfnUserCallback = pfnUserCallback_; + return *this; } - operator VkDisplayEventInfoEXT &() VULKAN_HPP_NOEXCEPT + DebugUtilsMessengerCreateInfoEXT & setPUserData( void * pUserData_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + pUserData = pUserData_; + return *this; } - bool operator==( DisplayEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkDebugUtilsMessengerCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( displayEvent == rhs.displayEvent ); + return *reinterpret_cast( this ); } - bool operator!=( DisplayEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkDebugUtilsMessengerCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DebugUtilsMessengerCreateInfoEXT const & ) const = default; +#else + bool operator==( DebugUtilsMessengerCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( messageSeverity == rhs.messageSeverity ) && ( messageType == rhs.messageType ) && + ( pfnUserCallback == rhs.pfnUserCallback ) && ( pUserData == rhs.pUserData ); + } + + bool operator!=( DebugUtilsMessengerCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayEventInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags = {}; + VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity = {}; + VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType = {}; + PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback = {}; + void * pUserData = {}; }; - static_assert( sizeof( DisplayEventInfoEXT ) == sizeof( VkDisplayEventInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DebugUtilsMessengerCreateInfoEXT ) == sizeof( VkDebugUtilsMessengerCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct DisplayModeParametersKHR + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DisplayModeParametersKHR( VULKAN_HPP_NAMESPACE::Extent2D visibleRegion_ = {}, - uint32_t refreshRate_ = {} ) VULKAN_HPP_NOEXCEPT - : visibleRegion( visibleRegion_ ) - , refreshRate( refreshRate_ ) + using Type = DebugUtilsMessengerCreateInfoEXT; + }; + + struct DebugUtilsObjectTagInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsObjectTagInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DebugUtilsObjectTagInfoEXT( + VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown, + uint64_t objectHandle_ = {}, + uint64_t tagName_ = {}, + size_t tagSize_ = {}, + const void * pTag_ = {} ) VULKAN_HPP_NOEXCEPT + : objectType( objectType_ ) + , objectHandle( objectHandle_ ) + , tagName( tagName_ ) + , tagSize( tagSize_ ) + , pTag( pTag_ ) {} - DisplayModeParametersKHR( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR + DebugUtilsObjectTagInfoEXT( DebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DebugUtilsObjectTagInfoEXT( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : DebugUtilsObjectTagInfoEXT( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + template + DebugUtilsObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_, + uint64_t objectHandle_, + uint64_t tagName_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & tag_ ) + : objectType( objectType_ ) + , objectHandle( objectHandle_ ) + , tagName( tagName_ ) + , tagSize( tag_.size() * sizeof( T ) ) + , pTag( tag_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DebugUtilsObjectTagInfoEXT & + operator=( DebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DebugUtilsObjectTagInfoEXT & operator=( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - DisplayModeParametersKHR& operator=( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT + DebugUtilsObjectTagInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - DisplayModeParametersKHR & setVisibleRegion( VULKAN_HPP_NAMESPACE::Extent2D visibleRegion_ ) VULKAN_HPP_NOEXCEPT + DebugUtilsObjectTagInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT { - visibleRegion = visibleRegion_; + objectType = objectType_; return *this; } - DisplayModeParametersKHR & setRefreshRate( uint32_t refreshRate_ ) VULKAN_HPP_NOEXCEPT + DebugUtilsObjectTagInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT { - refreshRate = refreshRate_; + objectHandle = objectHandle_; return *this; } - operator VkDisplayModeParametersKHR const&() const VULKAN_HPP_NOEXCEPT + DebugUtilsObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + tagName = tagName_; + return *this; } - operator VkDisplayModeParametersKHR &() VULKAN_HPP_NOEXCEPT + DebugUtilsObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + tagSize = tagSize_; + return *this; } - bool operator==( DisplayModeParametersKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + DebugUtilsObjectTagInfoEXT & setPTag( const void * pTag_ ) VULKAN_HPP_NOEXCEPT { - return ( visibleRegion == rhs.visibleRegion ) - && ( refreshRate == rhs.refreshRate ); + pTag = pTag_; + return *this; } - bool operator!=( DisplayModeParametersKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + template + DebugUtilsObjectTagInfoEXT & + setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & tag_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + tagSize = tag_.size() * sizeof( T ); + pTag = tag_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - public: - VULKAN_HPP_NAMESPACE::Extent2D visibleRegion = {}; - uint32_t refreshRate = {}; - }; - static_assert( sizeof( DisplayModeParametersKHR ) == sizeof( VkDisplayModeParametersKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DisplayModeCreateInfoKHR - { - VULKAN_HPP_CONSTEXPR DisplayModeCreateInfoKHR( VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ = {}, - VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , parameters( parameters_ ) - {} + operator VkDebugUtilsObjectTagInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR & operator=( VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkDebugUtilsObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR ) - offsetof( DisplayModeCreateInfoKHR, pNext ) ); - return *this; + return *reinterpret_cast( this ); } - DisplayModeCreateInfoKHR( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DebugUtilsObjectTagInfoEXT const & ) const = default; +#else + bool operator==( DebugUtilsObjectTagInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - *this = rhs; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( objectType == rhs.objectType ) && + ( objectHandle == rhs.objectHandle ) && ( tagName == rhs.tagName ) && ( tagSize == rhs.tagSize ) && + ( pTag == rhs.pTag ); } - DisplayModeCreateInfoKHR& operator=( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + bool operator!=( DebugUtilsObjectTagInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return !operator==( rhs ); } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectTagInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown; + uint64_t objectHandle = {}; + uint64_t tagName = {}; + size_t tagSize = {}; + const void * pTag = {}; + }; + static_assert( sizeof( DebugUtilsObjectTagInfoEXT ) == sizeof( VkDebugUtilsObjectTagInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = DebugUtilsObjectTagInfoEXT; + }; + + struct DedicatedAllocationBufferCreateInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eDedicatedAllocationBufferCreateInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DedicatedAllocationBufferCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {} ) + VULKAN_HPP_NOEXCEPT : dedicatedAllocation( dedicatedAllocation_ ) + {} + + VULKAN_HPP_CONSTEXPR DedicatedAllocationBufferCreateInfoNV( DedicatedAllocationBufferCreateInfoNV const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + DedicatedAllocationBufferCreateInfoNV( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : DedicatedAllocationBufferCreateInfoNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationBufferCreateInfoNV & + operator=( DedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DisplayModeCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + DedicatedAllocationBufferCreateInfoNV & + operator=( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - DisplayModeCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT + DedicatedAllocationBufferCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + pNext = pNext_; return *this; } - DisplayModeCreateInfoKHR & setParameters( VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ ) VULKAN_HPP_NOEXCEPT + DedicatedAllocationBufferCreateInfoNV & + setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT { - parameters = parameters_; + dedicatedAllocation = dedicatedAllocation_; return *this; } - operator VkDisplayModeCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkDedicatedAllocationBufferCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDisplayModeCreateInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkDedicatedAllocationBufferCreateInfoNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DisplayModeCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DedicatedAllocationBufferCreateInfoNV const & ) const = default; +#else + bool operator==( DedicatedAllocationBufferCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( parameters == rhs.parameters ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dedicatedAllocation == rhs.dedicatedAllocation ); } - bool operator!=( DisplayModeCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DedicatedAllocationBufferCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags = {}; - VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationBufferCreateInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {}; }; - static_assert( sizeof( DisplayModeCreateInfoKHR ) == sizeof( VkDisplayModeCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DedicatedAllocationBufferCreateInfoNV ) == sizeof( VkDedicatedAllocationBufferCreateInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct DisplayModePropertiesKHR + template <> + struct CppType { - DisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ = {}, - VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {} ) VULKAN_HPP_NOEXCEPT - : displayMode( displayMode_ ) - , parameters( parameters_ ) + using Type = DedicatedAllocationBufferCreateInfoNV; + }; + + struct DedicatedAllocationImageCreateInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eDedicatedAllocationImageCreateInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + DedicatedAllocationImageCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {} ) VULKAN_HPP_NOEXCEPT + : dedicatedAllocation( dedicatedAllocation_ ) {} - DisplayModePropertiesKHR( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR DedicatedAllocationImageCreateInfoNV( DedicatedAllocationImageCreateInfoNV const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + DedicatedAllocationImageCreateInfoNV( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : DedicatedAllocationImageCreateInfoNV( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationImageCreateInfoNV & + operator=( DedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DedicatedAllocationImageCreateInfoNV & + operator=( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + DedicatedAllocationImageCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - DisplayModePropertiesKHR& operator=( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + DedicatedAllocationImageCreateInfoNV & + setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + dedicatedAllocation = dedicatedAllocation_; return *this; } - operator VkDisplayModePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkDedicatedAllocationImageCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDisplayModePropertiesKHR &() VULKAN_HPP_NOEXCEPT + operator VkDedicatedAllocationImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DisplayModePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DedicatedAllocationImageCreateInfoNV const & ) const = default; +#else + bool operator==( DedicatedAllocationImageCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( displayMode == rhs.displayMode ) - && ( parameters == rhs.parameters ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dedicatedAllocation == rhs.dedicatedAllocation ); } - bool operator!=( DisplayModePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DedicatedAllocationImageCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {}; - VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationImageCreateInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {}; }; - static_assert( sizeof( DisplayModePropertiesKHR ) == sizeof( VkDisplayModePropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DedicatedAllocationImageCreateInfoNV ) == sizeof( VkDedicatedAllocationImageCreateInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct DisplayModeProperties2KHR + template <> + struct CppType { - DisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties_ = {} ) VULKAN_HPP_NOEXCEPT - : displayModeProperties( displayModeProperties_ ) + using Type = DedicatedAllocationImageCreateInfoNV; + }; + + struct DedicatedAllocationMemoryAllocateInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eDedicatedAllocationMemoryAllocateInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + DedicatedAllocationMemoryAllocateInfoNV( VULKAN_HPP_NAMESPACE::Image image_ = {}, + VULKAN_HPP_NAMESPACE::Buffer buffer_ = {} ) VULKAN_HPP_NOEXCEPT + : image( image_ ) + , buffer( buffer_ ) + {} + + VULKAN_HPP_CONSTEXPR DedicatedAllocationMemoryAllocateInfoNV( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + DedicatedAllocationMemoryAllocateInfoNV( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : DedicatedAllocationMemoryAllocateInfoNV( + *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DedicatedAllocationMemoryAllocateInfoNV & + operator=( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR & operator=( VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + DedicatedAllocationMemoryAllocateInfoNV & + operator=( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR ) - offsetof( DisplayModeProperties2KHR, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - DisplayModeProperties2KHR( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + DedicatedAllocationMemoryAllocateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + DedicatedAllocationMemoryAllocateInfoNV & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + image = image_; + return *this; } - DisplayModeProperties2KHR& operator=( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + DedicatedAllocationMemoryAllocateInfoNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + buffer = buffer_; return *this; } - operator VkDisplayModeProperties2KHR const&() const VULKAN_HPP_NOEXCEPT + operator VkDedicatedAllocationMemoryAllocateInfoNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDisplayModeProperties2KHR &() VULKAN_HPP_NOEXCEPT + operator VkDedicatedAllocationMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DisplayModeProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DedicatedAllocationMemoryAllocateInfoNV const & ) const = default; +#else + bool operator==( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( displayModeProperties == rhs.displayModeProperties ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image == rhs.image ) && ( buffer == rhs.buffer ); } - bool operator!=( DisplayModeProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeProperties2KHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Image image = {}; + VULKAN_HPP_NAMESPACE::Buffer buffer = {}; }; - static_assert( sizeof( DisplayModeProperties2KHR ) == sizeof( VkDisplayModeProperties2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DedicatedAllocationMemoryAllocateInfoNV ) == + sizeof( VkDedicatedAllocationMemoryAllocateInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct DisplayNativeHdrSurfaceCapabilitiesAMD + template <> + struct CppType { - DisplayNativeHdrSurfaceCapabilitiesAMD( VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport_ = {} ) VULKAN_HPP_NOEXCEPT - : localDimmingSupport( localDimmingSupport_ ) + using Type = DedicatedAllocationMemoryAllocateInfoNV; + }; + + struct DescriptorPoolSize + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + DescriptorPoolSize( VULKAN_HPP_NAMESPACE::DescriptorType type_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, + uint32_t descriptorCount_ = {} ) VULKAN_HPP_NOEXCEPT + : type( type_ ) + , descriptorCount( descriptorCount_ ) + {} + + VULKAN_HPP_CONSTEXPR DescriptorPoolSize( DescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DescriptorPoolSize( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT + : DescriptorPoolSize( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DescriptorPoolSize & + operator=( DescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD & operator=( VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT + DescriptorPoolSize & operator=( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD ) - offsetof( DisplayNativeHdrSurfaceCapabilitiesAMD, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - DisplayNativeHdrSurfaceCapabilitiesAMD( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT + DescriptorPoolSize & setType( VULKAN_HPP_NAMESPACE::DescriptorType type_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + type = type_; + return *this; } - DisplayNativeHdrSurfaceCapabilitiesAMD& operator=( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT + DescriptorPoolSize & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + descriptorCount = descriptorCount_; return *this; } - operator VkDisplayNativeHdrSurfaceCapabilitiesAMD const&() const VULKAN_HPP_NOEXCEPT + operator VkDescriptorPoolSize const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDisplayNativeHdrSurfaceCapabilitiesAMD &() VULKAN_HPP_NOEXCEPT + operator VkDescriptorPoolSize &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DisplayNativeHdrSurfaceCapabilitiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DescriptorPoolSize const & ) const = default; +#else + bool operator==( DescriptorPoolSize const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( localDimmingSupport == rhs.localDimmingSupport ); + return ( type == rhs.type ) && ( descriptorCount == rhs.descriptorCount ); } - bool operator!=( DisplayNativeHdrSurfaceCapabilitiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DescriptorPoolSize const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport = {}; + VULKAN_HPP_NAMESPACE::DescriptorType type = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler; + uint32_t descriptorCount = {}; }; - static_assert( sizeof( DisplayNativeHdrSurfaceCapabilitiesAMD ) == sizeof( VkDisplayNativeHdrSurfaceCapabilitiesAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DescriptorPoolSize ) == sizeof( VkDescriptorPoolSize ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct DisplayPlaneCapabilitiesKHR + struct DescriptorPoolCreateInfo { - DisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR supportedAlpha_ = {}, - VULKAN_HPP_NAMESPACE::Offset2D minSrcPosition_ = {}, - VULKAN_HPP_NAMESPACE::Offset2D maxSrcPosition_ = {}, - VULKAN_HPP_NAMESPACE::Extent2D minSrcExtent_ = {}, - VULKAN_HPP_NAMESPACE::Extent2D maxSrcExtent_ = {}, - VULKAN_HPP_NAMESPACE::Offset2D minDstPosition_ = {}, - VULKAN_HPP_NAMESPACE::Offset2D maxDstPosition_ = {}, - VULKAN_HPP_NAMESPACE::Extent2D minDstExtent_ = {}, - VULKAN_HPP_NAMESPACE::Extent2D maxDstExtent_ = {} ) VULKAN_HPP_NOEXCEPT - : supportedAlpha( supportedAlpha_ ) - , minSrcPosition( minSrcPosition_ ) - , maxSrcPosition( maxSrcPosition_ ) - , minSrcExtent( minSrcExtent_ ) - , maxSrcExtent( maxSrcExtent_ ) - , minDstPosition( minDstPosition_ ) - , maxDstPosition( maxDstPosition_ ) - , minDstExtent( minDstExtent_ ) - , maxDstExtent( maxDstExtent_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorPoolCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + DescriptorPoolCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ = {}, + uint32_t maxSets_ = {}, + uint32_t poolSizeCount_ = {}, + const VULKAN_HPP_NAMESPACE::DescriptorPoolSize * pPoolSizes_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , maxSets( maxSets_ ) + , poolSizeCount( poolSizeCount_ ) + , pPoolSizes( pPoolSizes_ ) {} - DisplayPlaneCapabilitiesKHR( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR DescriptorPoolCreateInfo( DescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DisplayPlaneCapabilitiesKHR& operator=( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + DescriptorPoolCreateInfo( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : DescriptorPoolCreateInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DescriptorPoolCreateInfo( + VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_, + uint32_t maxSets_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & poolSizes_ ) + : flags( flags_ ) + , maxSets( maxSets_ ) + , poolSizeCount( static_cast( poolSizes_.size() ) ) + , pPoolSizes( poolSizes_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DescriptorPoolCreateInfo & + operator=( DescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - operator VkDisplayPlaneCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT + DescriptorPoolCreateInfo & operator=( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + *this = *reinterpret_cast( &rhs ); + return *this; } - operator VkDisplayPlaneCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT + DescriptorPoolCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + pNext = pNext_; + return *this; } - bool operator==( DisplayPlaneCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + DescriptorPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - return ( supportedAlpha == rhs.supportedAlpha ) - && ( minSrcPosition == rhs.minSrcPosition ) - && ( maxSrcPosition == rhs.maxSrcPosition ) - && ( minSrcExtent == rhs.minSrcExtent ) - && ( maxSrcExtent == rhs.maxSrcExtent ) - && ( minDstPosition == rhs.minDstPosition ) - && ( maxDstPosition == rhs.maxDstPosition ) - && ( minDstExtent == rhs.minDstExtent ) - && ( maxDstExtent == rhs.maxDstExtent ); + flags = flags_; + return *this; } - bool operator!=( DisplayPlaneCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + DescriptorPoolCreateInfo & setMaxSets( uint32_t maxSets_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + maxSets = maxSets_; + return *this; } - public: - VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR supportedAlpha = {}; - VULKAN_HPP_NAMESPACE::Offset2D minSrcPosition = {}; - VULKAN_HPP_NAMESPACE::Offset2D maxSrcPosition = {}; - VULKAN_HPP_NAMESPACE::Extent2D minSrcExtent = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxSrcExtent = {}; - VULKAN_HPP_NAMESPACE::Offset2D minDstPosition = {}; - VULKAN_HPP_NAMESPACE::Offset2D maxDstPosition = {}; - VULKAN_HPP_NAMESPACE::Extent2D minDstExtent = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxDstExtent = {}; - }; - static_assert( sizeof( DisplayPlaneCapabilitiesKHR ) == sizeof( VkDisplayPlaneCapabilitiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DisplayPlaneCapabilities2KHR - { - DisplayPlaneCapabilities2KHR( VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities_ = {} ) VULKAN_HPP_NOEXCEPT - : capabilities( capabilities_ ) - {} - - VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR & operator=( VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + DescriptorPoolCreateInfo & setPoolSizeCount( uint32_t poolSizeCount_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR ) - offsetof( DisplayPlaneCapabilities2KHR, pNext ) ); + poolSizeCount = poolSizeCount_; return *this; } - DisplayPlaneCapabilities2KHR( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + DescriptorPoolCreateInfo & + setPPoolSizes( const VULKAN_HPP_NAMESPACE::DescriptorPoolSize * pPoolSizes_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pPoolSizes = pPoolSizes_; + return *this; } - DisplayPlaneCapabilities2KHR& operator=( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DescriptorPoolCreateInfo & setPoolSizes( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & poolSizes_ ) + VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + poolSizeCount = static_cast( poolSizes_.size() ); + pPoolSizes = poolSizes_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkDisplayPlaneCapabilities2KHR const&() const VULKAN_HPP_NOEXCEPT + operator VkDescriptorPoolCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDisplayPlaneCapabilities2KHR &() VULKAN_HPP_NOEXCEPT + operator VkDescriptorPoolCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DisplayPlaneCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DescriptorPoolCreateInfo const & ) const = default; +#else + bool operator==( DescriptorPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( capabilities == rhs.capabilities ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( maxSets == rhs.maxSets ) && + ( poolSizeCount == rhs.poolSizeCount ) && ( pPoolSizes == rhs.pPoolSizes ); } - bool operator!=( DisplayPlaneCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DescriptorPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneCapabilities2KHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags = {}; + uint32_t maxSets = {}; + uint32_t poolSizeCount = {}; + const VULKAN_HPP_NAMESPACE::DescriptorPoolSize * pPoolSizes = {}; }; - static_assert( sizeof( DisplayPlaneCapabilities2KHR ) == sizeof( VkDisplayPlaneCapabilities2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DescriptorPoolCreateInfo ) == sizeof( VkDescriptorPoolCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct DisplayPlaneInfo2KHR + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DisplayPlaneInfo2KHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ = {}, - uint32_t planeIndex_ = {} ) VULKAN_HPP_NOEXCEPT - : mode( mode_ ) - , planeIndex( planeIndex_ ) + using Type = DescriptorPoolCreateInfo; + }; + + struct DescriptorPoolInlineUniformBlockCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + DescriptorPoolInlineUniformBlockCreateInfoEXT( uint32_t maxInlineUniformBlockBindings_ = {} ) VULKAN_HPP_NOEXCEPT + : maxInlineUniformBlockBindings( maxInlineUniformBlockBindings_ ) {} - VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR & operator=( VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR ) - offsetof( DisplayPlaneInfo2KHR, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR DescriptorPoolInlineUniformBlockCreateInfoEXT( + DescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DisplayPlaneInfo2KHR( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + DescriptorPoolInlineUniformBlockCreateInfoEXT( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : DescriptorPoolInlineUniformBlockCreateInfoEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - DisplayPlaneInfo2KHR& operator=( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 DescriptorPoolInlineUniformBlockCreateInfoEXT & + operator=( DescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DisplayPlaneInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + DescriptorPoolInlineUniformBlockCreateInfoEXT & + operator=( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - DisplayPlaneInfo2KHR & setMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ ) VULKAN_HPP_NOEXCEPT + DescriptorPoolInlineUniformBlockCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - mode = mode_; + pNext = pNext_; return *this; } - DisplayPlaneInfo2KHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT + DescriptorPoolInlineUniformBlockCreateInfoEXT & + setMaxInlineUniformBlockBindings( uint32_t maxInlineUniformBlockBindings_ ) VULKAN_HPP_NOEXCEPT { - planeIndex = planeIndex_; + maxInlineUniformBlockBindings = maxInlineUniformBlockBindings_; return *this; } - operator VkDisplayPlaneInfo2KHR const&() const VULKAN_HPP_NOEXCEPT + operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDisplayPlaneInfo2KHR &() VULKAN_HPP_NOEXCEPT + operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DisplayPlaneInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DescriptorPoolInlineUniformBlockCreateInfoEXT const & ) const = default; +#else + bool operator==( DescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( mode == rhs.mode ) - && ( planeIndex == rhs.planeIndex ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( maxInlineUniformBlockBindings == rhs.maxInlineUniformBlockBindings ); } - bool operator!=( DisplayPlaneInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneInfo2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayModeKHR mode = {}; - uint32_t planeIndex = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT; + const void * pNext = {}; + uint32_t maxInlineUniformBlockBindings = {}; }; - static_assert( sizeof( DisplayPlaneInfo2KHR ) == sizeof( VkDisplayPlaneInfo2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DescriptorPoolInlineUniformBlockCreateInfoEXT ) == + sizeof( VkDescriptorPoolInlineUniformBlockCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct DisplayPlanePropertiesKHR + template <> + struct CppType { - DisplayPlanePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay_ = {}, - uint32_t currentStackIndex_ = {} ) VULKAN_HPP_NOEXCEPT - : currentDisplay( currentDisplay_ ) - , currentStackIndex( currentStackIndex_ ) + using Type = DescriptorPoolInlineUniformBlockCreateInfoEXT; + }; + + 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: + VULKAN_HPP_CONSTEXPR DescriptorPool() = default; + VULKAN_HPP_CONSTEXPR DescriptorPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorPool( VkDescriptorPool descriptorPool ) VULKAN_HPP_NOEXCEPT + : m_descriptorPool( descriptorPool ) {} - DisplayPlanePropertiesKHR( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + DescriptorPool & operator=( VkDescriptorPool descriptorPool ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + m_descriptorPool = descriptorPool; + return *this; } +#endif - DisplayPlanePropertiesKHR& operator=( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + DescriptorPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + m_descriptorPool = {}; return *this; } - operator VkDisplayPlanePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DescriptorPool const & ) const = default; +#else + bool operator==( DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_descriptorPool == rhs.m_descriptorPool; } - operator VkDisplayPlanePropertiesKHR &() VULKAN_HPP_NOEXCEPT + bool operator!=( DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_descriptorPool != rhs.m_descriptorPool; } - bool operator==( DisplayPlanePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator<( DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( currentDisplay == rhs.currentDisplay ) - && ( currentStackIndex == rhs.currentStackIndex ); + return m_descriptorPool < rhs.m_descriptorPool; } +#endif - bool operator!=( DisplayPlanePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorPool() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_descriptorPool; } - public: - VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay = {}; - uint32_t currentStackIndex = {}; + explicit operator bool() const VULKAN_HPP_NOEXCEPT + { + return m_descriptorPool != VK_NULL_HANDLE; + } + + bool operator!() const VULKAN_HPP_NOEXCEPT + { + return m_descriptorPool == VK_NULL_HANDLE; + } + + private: + VkDescriptorPool m_descriptorPool = {}; }; - static_assert( sizeof( DisplayPlanePropertiesKHR ) == sizeof( VkDisplayPlanePropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorPool ) == sizeof( VkDescriptorPool ), + "handle and wrapper have different size!" ); - struct DisplayPlaneProperties2KHR + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - DisplayPlaneProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties_ = {} ) VULKAN_HPP_NOEXCEPT - : displayPlaneProperties( displayPlaneProperties_ ) + using type = VULKAN_HPP_NAMESPACE::DescriptorPool; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::DescriptorPool; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::DescriptorPool; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + 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: + VULKAN_HPP_CONSTEXPR DescriptorSetLayout() = default; + VULKAN_HPP_CONSTEXPR DescriptorSetLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSetLayout( VkDescriptorSetLayout descriptorSetLayout ) VULKAN_HPP_NOEXCEPT + : m_descriptorSetLayout( descriptorSetLayout ) {} - VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR & operator=( VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + DescriptorSetLayout & operator=( VkDescriptorSetLayout descriptorSetLayout ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR ) - offsetof( DisplayPlaneProperties2KHR, pNext ) ); + m_descriptorSetLayout = descriptorSetLayout; return *this; } +#endif - DisplayPlaneProperties2KHR( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + DescriptorSetLayout & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + m_descriptorSetLayout = {}; + return *this; } - DisplayPlaneProperties2KHR& operator=( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DescriptorSetLayout const & ) const = default; +#else + bool operator==( DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return m_descriptorSetLayout == rhs.m_descriptorSetLayout; } - operator VkDisplayPlaneProperties2KHR const&() const VULKAN_HPP_NOEXCEPT + bool operator!=( DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_descriptorSetLayout != rhs.m_descriptorSetLayout; } - operator VkDisplayPlaneProperties2KHR &() VULKAN_HPP_NOEXCEPT + bool operator<( DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_descriptorSetLayout < rhs.m_descriptorSetLayout; + } +#endif + + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorSetLayout() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_descriptorSetLayout; } - bool operator==( DisplayPlaneProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( displayPlaneProperties == rhs.displayPlaneProperties ); + return m_descriptorSetLayout != VK_NULL_HANDLE; } - bool operator!=( DisplayPlaneProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_descriptorSetLayout == VK_NULL_HANDLE; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneProperties2KHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties = {}; + private: + VkDescriptorSetLayout m_descriptorSetLayout = {}; }; - static_assert( sizeof( DisplayPlaneProperties2KHR ) == sizeof( VkDisplayPlaneProperties2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorSetLayout ) == sizeof( VkDescriptorSetLayout ), + "handle and wrapper have different size!" ); - struct DisplayPowerInfoEXT + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - VULKAN_HPP_CONSTEXPR DisplayPowerInfoEXT( VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff ) VULKAN_HPP_NOEXCEPT - : powerState( powerState_ ) + using type = VULKAN_HPP_NAMESPACE::DescriptorSetLayout; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::DescriptorSetLayout; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::DescriptorSetLayout; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + struct DescriptorSetAllocateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetAllocateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DescriptorSetAllocateInfo( + VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ = {}, + uint32_t descriptorSetCount_ = {}, + const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_ = {} ) VULKAN_HPP_NOEXCEPT + : descriptorPool( descriptorPool_ ) + , descriptorSetCount( descriptorSetCount_ ) + , pSetLayouts( pSetLayouts_ ) + {} + + VULKAN_HPP_CONSTEXPR + DescriptorSetAllocateInfo( DescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DescriptorSetAllocateInfo( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : DescriptorSetAllocateInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DescriptorSetAllocateInfo( + VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + setLayouts_ ) + : descriptorPool( descriptorPool_ ) + , descriptorSetCount( static_cast( setLayouts_.size() ) ) + , pSetLayouts( setLayouts_.data() ) {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT & operator=( VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 DescriptorSetAllocateInfo & + operator=( DescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DescriptorSetAllocateInfo & operator=( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT ) - offsetof( DisplayPowerInfoEXT, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - DisplayPowerInfoEXT( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DescriptorSetAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + DescriptorSetAllocateInfo & + setDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + descriptorPool = descriptorPool_; + return *this; } - DisplayPowerInfoEXT& operator=( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DescriptorSetAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + descriptorSetCount = descriptorSetCount_; return *this; } - DisplayPowerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + DescriptorSetAllocateInfo & + setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + pSetLayouts = pSetLayouts_; return *this; } - DisplayPowerInfoEXT & setPowerState( VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DescriptorSetAllocateInfo & setSetLayouts( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + setLayouts_ ) VULKAN_HPP_NOEXCEPT { - powerState = powerState_; + descriptorSetCount = static_cast( setLayouts_.size() ); + pSetLayouts = setLayouts_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkDisplayPowerInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkDescriptorSetAllocateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDisplayPowerInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkDescriptorSetAllocateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DisplayPowerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DescriptorSetAllocateInfo const & ) const = default; +#else + bool operator==( DescriptorSetAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( powerState == rhs.powerState ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( descriptorPool == rhs.descriptorPool ) && + ( descriptorSetCount == rhs.descriptorSetCount ) && ( pSetLayouts == rhs.pSetLayouts ); } - bool operator!=( DisplayPowerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DescriptorSetAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPowerInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetAllocateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool = {}; + uint32_t descriptorSetCount = {}; + const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts = {}; }; - static_assert( sizeof( DisplayPowerInfoEXT ) == sizeof( VkDisplayPowerInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DescriptorSetAllocateInfo ) == sizeof( VkDescriptorSetAllocateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct DisplayPresentInfoKHR + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DisplayPresentInfoKHR( VULKAN_HPP_NAMESPACE::Rect2D srcRect_ = {}, - VULKAN_HPP_NAMESPACE::Rect2D dstRect_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 persistent_ = {} ) VULKAN_HPP_NOEXCEPT - : srcRect( srcRect_ ) - , dstRect( dstRect_ ) - , persistent( persistent_ ) + using Type = DescriptorSetAllocateInfo; + }; + + struct DescriptorSetLayoutBinding + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBinding( + uint32_t binding_ = {}, + VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, + uint32_t descriptorCount_ = {}, + VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {}, + const VULKAN_HPP_NAMESPACE::Sampler * pImmutableSamplers_ = {} ) VULKAN_HPP_NOEXCEPT + : binding( binding_ ) + , descriptorType( descriptorType_ ) + , descriptorCount( descriptorCount_ ) + , stageFlags( stageFlags_ ) + , pImmutableSamplers( pImmutableSamplers_ ) + {} + + VULKAN_HPP_CONSTEXPR + DescriptorSetLayoutBinding( DescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DescriptorSetLayoutBinding( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT + : DescriptorSetLayoutBinding( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DescriptorSetLayoutBinding( + uint32_t binding_, + VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_, + VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & immutableSamplers_ ) + : binding( binding_ ) + , descriptorType( descriptorType_ ) + , descriptorCount( static_cast( immutableSamplers_.size() ) ) + , stageFlags( stageFlags_ ) + , pImmutableSamplers( immutableSamplers_.data() ) {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR & operator=( VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBinding & + operator=( DescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DescriptorSetLayoutBinding & operator=( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR ) - offsetof( DisplayPresentInfoKHR, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - DisplayPresentInfoKHR( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + DescriptorSetLayoutBinding & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + binding = binding_; + return *this; } - DisplayPresentInfoKHR& operator=( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + DescriptorSetLayoutBinding & + setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + descriptorType = descriptorType_; return *this; } - DisplayPresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + DescriptorSetLayoutBinding & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + descriptorCount = descriptorCount_; return *this; } - DisplayPresentInfoKHR & setSrcRect( VULKAN_HPP_NAMESPACE::Rect2D srcRect_ ) VULKAN_HPP_NOEXCEPT + DescriptorSetLayoutBinding & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT { - srcRect = srcRect_; + stageFlags = stageFlags_; return *this; } - DisplayPresentInfoKHR & setDstRect( VULKAN_HPP_NAMESPACE::Rect2D dstRect_ ) VULKAN_HPP_NOEXCEPT + DescriptorSetLayoutBinding & + setPImmutableSamplers( const VULKAN_HPP_NAMESPACE::Sampler * pImmutableSamplers_ ) VULKAN_HPP_NOEXCEPT { - dstRect = dstRect_; + pImmutableSamplers = pImmutableSamplers_; return *this; } - DisplayPresentInfoKHR & setPersistent( VULKAN_HPP_NAMESPACE::Bool32 persistent_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DescriptorSetLayoutBinding & setImmutableSamplers( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & immutableSamplers_ ) + VULKAN_HPP_NOEXCEPT { - persistent = persistent_; + descriptorCount = static_cast( immutableSamplers_.size() ); + pImmutableSamplers = immutableSamplers_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkDisplayPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkDescriptorSetLayoutBinding const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDisplayPresentInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkDescriptorSetLayoutBinding &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DisplayPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DescriptorSetLayoutBinding const & ) const = default; +#else + bool operator==( DescriptorSetLayoutBinding const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcRect == rhs.srcRect ) - && ( dstRect == rhs.dstRect ) - && ( persistent == rhs.persistent ); + return ( binding == rhs.binding ) && ( descriptorType == rhs.descriptorType ) && + ( descriptorCount == rhs.descriptorCount ) && ( stageFlags == rhs.stageFlags ) && + ( pImmutableSamplers == rhs.pImmutableSamplers ); } - bool operator!=( DisplayPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DescriptorSetLayoutBinding const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPresentInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Rect2D srcRect = {}; - VULKAN_HPP_NAMESPACE::Rect2D dstRect = {}; - VULKAN_HPP_NAMESPACE::Bool32 persistent = {}; + uint32_t binding = {}; + VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler; + uint32_t descriptorCount = {}; + VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {}; + const VULKAN_HPP_NAMESPACE::Sampler * pImmutableSamplers = {}; }; - static_assert( sizeof( DisplayPresentInfoKHR ) == sizeof( VkDisplayPresentInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DescriptorSetLayoutBinding ) == sizeof( VkDescriptorSetLayoutBinding ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct DisplayPropertiesKHR + struct DescriptorSetLayoutBindingFlagsCreateInfo { - DisplayPropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display_ = {}, - const char* displayName_ = {}, - VULKAN_HPP_NAMESPACE::Extent2D physicalDimensions_ = {}, - VULKAN_HPP_NAMESPACE::Extent2D physicalResolution_ = {}, - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 planeReorderPossible_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 persistentContent_ = {} ) VULKAN_HPP_NOEXCEPT - : display( display_ ) - , displayName( displayName_ ) - , physicalDimensions( physicalDimensions_ ) - , physicalResolution( physicalResolution_ ) - , supportedTransforms( supportedTransforms_ ) - , planeReorderPossible( planeReorderPossible_ ) - , persistentContent( persistentContent_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBindingFlagsCreateInfo( + uint32_t bindingCount_ = {}, + const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags * pBindingFlags_ = {} ) VULKAN_HPP_NOEXCEPT + : bindingCount( bindingCount_ ) + , pBindingFlags( pBindingFlags_ ) {} - DisplayPropertiesKHR( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBindingFlagsCreateInfo( + DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DescriptorSetLayoutBindingFlagsCreateInfo( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) + VULKAN_HPP_NOEXCEPT + : DescriptorSetLayoutBindingFlagsCreateInfo( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DescriptorSetLayoutBindingFlagsCreateInfo( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + bindingFlags_ ) + : bindingCount( static_cast( bindingFlags_.size() ) ), pBindingFlags( bindingFlags_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutBindingFlagsCreateInfo & + operator=( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DescriptorSetLayoutBindingFlagsCreateInfo & + operator=( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - DisplayPropertiesKHR& operator=( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + DescriptorSetLayoutBindingFlagsCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - operator VkDisplayPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT + DescriptorSetLayoutBindingFlagsCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + bindingCount = bindingCount_; + return *this; } - operator VkDisplayPropertiesKHR &() VULKAN_HPP_NOEXCEPT + DescriptorSetLayoutBindingFlagsCreateInfo & + setPBindingFlags( const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags * pBindingFlags_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + pBindingFlags = pBindingFlags_; + return *this; } - bool operator==( DisplayPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DescriptorSetLayoutBindingFlagsCreateInfo & setBindingFlags( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + bindingFlags_ ) VULKAN_HPP_NOEXCEPT { - return ( display == rhs.display ) - && ( displayName == rhs.displayName ) - && ( physicalDimensions == rhs.physicalDimensions ) - && ( physicalResolution == rhs.physicalResolution ) - && ( supportedTransforms == rhs.supportedTransforms ) - && ( planeReorderPossible == rhs.planeReorderPossible ) - && ( persistentContent == rhs.persistentContent ); + bindingCount = static_cast( bindingFlags_.size() ); + pBindingFlags = bindingFlags_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - bool operator!=( DisplayPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkDescriptorSetLayoutBindingFlagsCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return *reinterpret_cast( this ); } - public: - VULKAN_HPP_NAMESPACE::DisplayKHR display = {}; - const char* displayName = {}; - VULKAN_HPP_NAMESPACE::Extent2D physicalDimensions = {}; - VULKAN_HPP_NAMESPACE::Extent2D physicalResolution = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {}; - VULKAN_HPP_NAMESPACE::Bool32 planeReorderPossible = {}; - VULKAN_HPP_NAMESPACE::Bool32 persistentContent = {}; - }; - static_assert( sizeof( DisplayPropertiesKHR ) == sizeof( VkDisplayPropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DisplayProperties2KHR - { - DisplayProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties_ = {} ) VULKAN_HPP_NOEXCEPT - : displayProperties( displayProperties_ ) - {} - - VULKAN_HPP_NAMESPACE::DisplayProperties2KHR & operator=( VULKAN_HPP_NAMESPACE::DisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DisplayProperties2KHR ) - offsetof( DisplayProperties2KHR, pNext ) ); - return *this; - } - - DisplayProperties2KHR( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - - DisplayProperties2KHR& operator=( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } - - operator VkDisplayProperties2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayProperties2KHR &() VULKAN_HPP_NOEXCEPT + operator VkDescriptorSetLayoutBindingFlagsCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DisplayProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DescriptorSetLayoutBindingFlagsCreateInfo const & ) const = default; +#else + bool operator==( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( displayProperties == rhs.displayProperties ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( bindingCount == rhs.bindingCount ) && + ( pBindingFlags == rhs.pBindingFlags ); } - bool operator!=( DisplayProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayProperties2KHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo; + const void * pNext = {}; + uint32_t bindingCount = {}; + const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags * pBindingFlags = {}; }; - static_assert( sizeof( DisplayProperties2KHR ) == sizeof( VkDisplayProperties2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DescriptorSetLayoutBindingFlagsCreateInfo ) == + sizeof( VkDescriptorSetLayoutBindingFlagsCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct DisplaySurfaceCreateInfoKHR + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DisplaySurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags_ = {}, - VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ = {}, - uint32_t planeIndex_ = {}, - uint32_t planeStackIndex_ = {}, - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, - float globalAlpha_ = {}, - VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode_ = VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR::eOpaque, - VULKAN_HPP_NAMESPACE::Extent2D imageExtent_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , displayMode( displayMode_ ) - , planeIndex( planeIndex_ ) - , planeStackIndex( planeStackIndex_ ) - , transform( transform_ ) - , globalAlpha( globalAlpha_ ) - , alphaMode( alphaMode_ ) - , imageExtent( imageExtent_ ) - {} + using Type = DescriptorSetLayoutBindingFlagsCreateInfo; + }; + using DescriptorSetLayoutBindingFlagsCreateInfoEXT = DescriptorSetLayoutBindingFlagsCreateInfo; - VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR & operator=( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR ) - offsetof( DisplaySurfaceCreateInfoKHR, pNext ) ); - return *this; - } + struct DescriptorSetLayoutCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutCreateInfo; - DisplaySurfaceCreateInfoKHR( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateInfo( + VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ = {}, + uint32_t bindingCount_ = {}, + const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding * pBindings_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , bindingCount( bindingCount_ ) + , pBindings( pBindings_ ) + {} - DisplaySurfaceCreateInfoKHR& operator=( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR + DescriptorSetLayoutCreateInfo( DescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DisplaySurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + DescriptorSetLayoutCreateInfo( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : DescriptorSetLayoutCreateInfo( *reinterpret_cast( &rhs ) ) + {} - DisplaySurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DescriptorSetLayoutCreateInfo( + VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + bindings_ ) + : flags( flags_ ), bindingCount( static_cast( bindings_.size() ) ), pBindings( bindings_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - DisplaySurfaceCreateInfoKHR & setDisplayMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ ) VULKAN_HPP_NOEXCEPT - { - displayMode = displayMode_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutCreateInfo & + operator=( DescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DisplaySurfaceCreateInfoKHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT + DescriptorSetLayoutCreateInfo & operator=( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - planeIndex = planeIndex_; + *this = *reinterpret_cast( &rhs ); return *this; } - DisplaySurfaceCreateInfoKHR & setPlaneStackIndex( uint32_t planeStackIndex_ ) VULKAN_HPP_NOEXCEPT + DescriptorSetLayoutCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - planeStackIndex = planeStackIndex_; + pNext = pNext_; return *this; } - DisplaySurfaceCreateInfoKHR & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT + DescriptorSetLayoutCreateInfo & + setFlags( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - transform = transform_; + flags = flags_; return *this; } - DisplaySurfaceCreateInfoKHR & setGlobalAlpha( float globalAlpha_ ) VULKAN_HPP_NOEXCEPT + DescriptorSetLayoutCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT { - globalAlpha = globalAlpha_; + bindingCount = bindingCount_; return *this; } - DisplaySurfaceCreateInfoKHR & setAlphaMode( VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode_ ) VULKAN_HPP_NOEXCEPT + DescriptorSetLayoutCreateInfo & + setPBindings( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding * pBindings_ ) VULKAN_HPP_NOEXCEPT { - alphaMode = alphaMode_; + pBindings = pBindings_; return *this; } - DisplaySurfaceCreateInfoKHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D imageExtent_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DescriptorSetLayoutCreateInfo & setBindings( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + bindings_ ) VULKAN_HPP_NOEXCEPT { - imageExtent = imageExtent_; + bindingCount = static_cast( bindings_.size() ); + pBindings = bindings_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkDisplaySurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkDescriptorSetLayoutCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDisplaySurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkDescriptorSetLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DisplaySurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DescriptorSetLayoutCreateInfo const & ) const = default; +#else + bool operator==( DescriptorSetLayoutCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( displayMode == rhs.displayMode ) - && ( planeIndex == rhs.planeIndex ) - && ( planeStackIndex == rhs.planeStackIndex ) - && ( transform == rhs.transform ) - && ( globalAlpha == rhs.globalAlpha ) - && ( alphaMode == rhs.alphaMode ) - && ( imageExtent == rhs.imageExtent ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( bindingCount == rhs.bindingCount ) && ( pBindings == rhs.pBindings ); } - bool operator!=( DisplaySurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DescriptorSetLayoutCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplaySurfaceCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags = {}; - VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {}; - uint32_t planeIndex = {}; - uint32_t planeStackIndex = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; - float globalAlpha = {}; - VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode = VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR::eOpaque; - VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags = {}; + uint32_t bindingCount = {}; + const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding * pBindings = {}; }; - static_assert( sizeof( DisplaySurfaceCreateInfoKHR ) == sizeof( VkDisplaySurfaceCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DescriptorSetLayoutCreateInfo ) == sizeof( VkDescriptorSetLayoutCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct DrawIndexedIndirectCommand + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DrawIndexedIndirectCommand( uint32_t indexCount_ = {}, - uint32_t instanceCount_ = {}, - uint32_t firstIndex_ = {}, - int32_t vertexOffset_ = {}, - uint32_t firstInstance_ = {} ) VULKAN_HPP_NOEXCEPT - : indexCount( indexCount_ ) - , instanceCount( instanceCount_ ) - , firstIndex( firstIndex_ ) - , vertexOffset( vertexOffset_ ) - , firstInstance( firstInstance_ ) - {} - - DrawIndexedIndirectCommand( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + using Type = DescriptorSetLayoutCreateInfo; + }; - DrawIndexedIndirectCommand& operator=( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + struct DescriptorSetLayoutSupport + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutSupport; - DrawIndexedIndirectCommand & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT - { - indexCount = indexCount_; - return *this; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DescriptorSetLayoutSupport( VULKAN_HPP_NAMESPACE::Bool32 supported_ = {} ) VULKAN_HPP_NOEXCEPT + : supported( supported_ ) + {} - DrawIndexedIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT - { - instanceCount = instanceCount_; - return *this; - } + VULKAN_HPP_CONSTEXPR + DescriptorSetLayoutSupport( DescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DrawIndexedIndirectCommand & setFirstIndex( uint32_t firstIndex_ ) VULKAN_HPP_NOEXCEPT - { - firstIndex = firstIndex_; - return *this; - } + DescriptorSetLayoutSupport( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT + : DescriptorSetLayoutSupport( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - DrawIndexedIndirectCommand & setVertexOffset( int32_t vertexOffset_ ) VULKAN_HPP_NOEXCEPT - { - vertexOffset = vertexOffset_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 DescriptorSetLayoutSupport & + operator=( DescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DrawIndexedIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT + DescriptorSetLayoutSupport & operator=( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT { - firstInstance = firstInstance_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkDrawIndexedIndirectCommand const&() const VULKAN_HPP_NOEXCEPT + operator VkDescriptorSetLayoutSupport const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDrawIndexedIndirectCommand &() VULKAN_HPP_NOEXCEPT + operator VkDescriptorSetLayoutSupport &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DrawIndexedIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DescriptorSetLayoutSupport const & ) const = default; +#else + bool operator==( DescriptorSetLayoutSupport const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( indexCount == rhs.indexCount ) - && ( instanceCount == rhs.instanceCount ) - && ( firstIndex == rhs.firstIndex ) - && ( vertexOffset == rhs.vertexOffset ) - && ( firstInstance == rhs.firstInstance ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( supported == rhs.supported ); } - bool operator!=( DrawIndexedIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DescriptorSetLayoutSupport const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint32_t indexCount = {}; - uint32_t instanceCount = {}; - uint32_t firstIndex = {}; - int32_t vertexOffset = {}; - uint32_t firstInstance = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutSupport; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 supported = {}; }; - static_assert( sizeof( DrawIndexedIndirectCommand ) == sizeof( VkDrawIndexedIndirectCommand ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DescriptorSetLayoutSupport ) == sizeof( VkDescriptorSetLayoutSupport ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct DrawIndirectCommand + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DrawIndirectCommand( uint32_t vertexCount_ = {}, - uint32_t instanceCount_ = {}, - uint32_t firstVertex_ = {}, - uint32_t firstInstance_ = {} ) VULKAN_HPP_NOEXCEPT - : vertexCount( vertexCount_ ) - , instanceCount( instanceCount_ ) - , firstVertex( firstVertex_ ) - , firstInstance( firstInstance_ ) + using Type = DescriptorSetLayoutSupport; + }; + using DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport; + + struct DescriptorSetVariableDescriptorCountAllocateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + DescriptorSetVariableDescriptorCountAllocateInfo( uint32_t descriptorSetCount_ = {}, + const uint32_t * pDescriptorCounts_ = {} ) VULKAN_HPP_NOEXCEPT + : descriptorSetCount( descriptorSetCount_ ) + , pDescriptorCounts( pDescriptorCounts_ ) {} - DrawIndirectCommand( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountAllocateInfo( + DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DrawIndirectCommand& operator=( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT + DescriptorSetVariableDescriptorCountAllocateInfo( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) + VULKAN_HPP_NOEXCEPT + : DescriptorSetVariableDescriptorCountAllocateInfo( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DescriptorSetVariableDescriptorCountAllocateInfo( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & descriptorCounts_ ) + : descriptorSetCount( static_cast( descriptorCounts_.size() ) ) + , pDescriptorCounts( descriptorCounts_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DescriptorSetVariableDescriptorCountAllocateInfo & + operator=( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DescriptorSetVariableDescriptorCountAllocateInfo & + operator=( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - DrawIndirectCommand & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT + DescriptorSetVariableDescriptorCountAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - vertexCount = vertexCount_; + pNext = pNext_; return *this; } - DrawIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT + DescriptorSetVariableDescriptorCountAllocateInfo & + setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT { - instanceCount = instanceCount_; + descriptorSetCount = descriptorSetCount_; return *this; } - DrawIndirectCommand & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT + DescriptorSetVariableDescriptorCountAllocateInfo & + setPDescriptorCounts( const uint32_t * pDescriptorCounts_ ) VULKAN_HPP_NOEXCEPT { - firstVertex = firstVertex_; + pDescriptorCounts = pDescriptorCounts_; return *this; } - DrawIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DescriptorSetVariableDescriptorCountAllocateInfo & setDescriptorCounts( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & descriptorCounts_ ) VULKAN_HPP_NOEXCEPT { - firstInstance = firstInstance_; + descriptorSetCount = static_cast( descriptorCounts_.size() ); + pDescriptorCounts = descriptorCounts_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkDrawIndirectCommand const&() const VULKAN_HPP_NOEXCEPT + operator VkDescriptorSetVariableDescriptorCountAllocateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDrawIndirectCommand &() VULKAN_HPP_NOEXCEPT + operator VkDescriptorSetVariableDescriptorCountAllocateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DrawIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DescriptorSetVariableDescriptorCountAllocateInfo const & ) const = default; +#else + bool operator==( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( vertexCount == rhs.vertexCount ) - && ( instanceCount == rhs.instanceCount ) - && ( firstVertex == rhs.firstVertex ) - && ( firstInstance == rhs.firstInstance ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( descriptorSetCount == rhs.descriptorSetCount ) && + ( pDescriptorCounts == rhs.pDescriptorCounts ); } - bool operator!=( DrawIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint32_t vertexCount = {}; - uint32_t instanceCount = {}; - uint32_t firstVertex = {}; - uint32_t firstInstance = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo; + const void * pNext = {}; + uint32_t descriptorSetCount = {}; + const uint32_t * pDescriptorCounts = {}; }; - static_assert( sizeof( DrawIndirectCommand ) == sizeof( VkDrawIndirectCommand ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DescriptorSetVariableDescriptorCountAllocateInfo ) == + sizeof( VkDescriptorSetVariableDescriptorCountAllocateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct DrawMeshTasksIndirectCommandNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandNV( uint32_t taskCount_ = {}, - uint32_t firstTask_ = {} ) VULKAN_HPP_NOEXCEPT - : taskCount( taskCount_ ) - , firstTask( firstTask_ ) + using Type = DescriptorSetVariableDescriptorCountAllocateInfo; + }; + using DescriptorSetVariableDescriptorCountAllocateInfoEXT = DescriptorSetVariableDescriptorCountAllocateInfo; + + struct DescriptorSetVariableDescriptorCountLayoutSupport + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + DescriptorSetVariableDescriptorCountLayoutSupport( uint32_t maxVariableDescriptorCount_ = {} ) VULKAN_HPP_NOEXCEPT + : maxVariableDescriptorCount( maxVariableDescriptorCount_ ) {} - DrawMeshTasksIndirectCommandNV( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountLayoutSupport( + DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DrawMeshTasksIndirectCommandNV& operator=( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + DescriptorSetVariableDescriptorCountLayoutSupport( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) + VULKAN_HPP_NOEXCEPT + : DescriptorSetVariableDescriptorCountLayoutSupport( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - DrawMeshTasksIndirectCommandNV & setTaskCount( uint32_t taskCount_ ) VULKAN_HPP_NOEXCEPT - { - taskCount = taskCount_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 DescriptorSetVariableDescriptorCountLayoutSupport & + operator=( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DrawMeshTasksIndirectCommandNV & setFirstTask( uint32_t firstTask_ ) VULKAN_HPP_NOEXCEPT + DescriptorSetVariableDescriptorCountLayoutSupport & + operator=( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT { - firstTask = firstTask_; + *this = + *reinterpret_cast( &rhs ); return *this; } - operator VkDrawMeshTasksIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT + operator VkDescriptorSetVariableDescriptorCountLayoutSupport const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDrawMeshTasksIndirectCommandNV &() VULKAN_HPP_NOEXCEPT + operator VkDescriptorSetVariableDescriptorCountLayoutSupport &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DrawMeshTasksIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DescriptorSetVariableDescriptorCountLayoutSupport const & ) const = default; +#else + bool operator==( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( taskCount == rhs.taskCount ) - && ( firstTask == rhs.firstTask ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( maxVariableDescriptorCount == rhs.maxVariableDescriptorCount ); } - bool operator!=( DrawMeshTasksIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint32_t taskCount = {}; - uint32_t firstTask = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport; + void * pNext = {}; + uint32_t maxVariableDescriptorCount = {}; }; - static_assert( sizeof( DrawMeshTasksIndirectCommandNV ) == sizeof( VkDrawMeshTasksIndirectCommandNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DescriptorSetVariableDescriptorCountLayoutSupport ) == + sizeof( VkDescriptorSetVariableDescriptorCountLayoutSupport ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct DrmFormatModifierPropertiesEXT + template <> + struct CppType { - DrmFormatModifierPropertiesEXT( uint64_t drmFormatModifier_ = {}, - uint32_t drmFormatModifierPlaneCount_ = {}, - VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures_ = {} ) VULKAN_HPP_NOEXCEPT - : drmFormatModifier( drmFormatModifier_ ) - , drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ ) - , drmFormatModifierTilingFeatures( drmFormatModifierTilingFeatures_ ) + using Type = DescriptorSetVariableDescriptorCountLayoutSupport; + }; + using DescriptorSetVariableDescriptorCountLayoutSupportEXT = DescriptorSetVariableDescriptorCountLayoutSupport; + + struct DescriptorUpdateTemplateEntry + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateEntry( + uint32_t dstBinding_ = {}, + uint32_t dstArrayElement_ = {}, + uint32_t descriptorCount_ = {}, + VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, + size_t offset_ = {}, + size_t stride_ = {} ) VULKAN_HPP_NOEXCEPT + : dstBinding( dstBinding_ ) + , dstArrayElement( dstArrayElement_ ) + , descriptorCount( descriptorCount_ ) + , descriptorType( descriptorType_ ) + , offset( offset_ ) + , stride( stride_ ) {} - DrmFormatModifierPropertiesEXT( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR + DescriptorUpdateTemplateEntry( DescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default; - DrmFormatModifierPropertiesEXT& operator=( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + DescriptorUpdateTemplateEntry( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT + : DescriptorUpdateTemplateEntry( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateEntry & + operator=( DescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default; - operator VkDrmFormatModifierPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT + DescriptorUpdateTemplateEntry & operator=( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + *this = *reinterpret_cast( &rhs ); + return *this; } - operator VkDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT + DescriptorUpdateTemplateEntry & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + dstBinding = dstBinding_; + return *this; } - bool operator==( DrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + DescriptorUpdateTemplateEntry & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT { - return ( drmFormatModifier == rhs.drmFormatModifier ) - && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount ) - && ( drmFormatModifierTilingFeatures == rhs.drmFormatModifierTilingFeatures ); + dstArrayElement = dstArrayElement_; + return *this; } - bool operator!=( DrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + DescriptorUpdateTemplateEntry & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + descriptorCount = descriptorCount_; + return *this; } - public: - uint64_t drmFormatModifier = {}; - uint32_t drmFormatModifierPlaneCount = {}; - VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures = {}; - }; - static_assert( sizeof( DrmFormatModifierPropertiesEXT ) == sizeof( VkDrmFormatModifierPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DrmFormatModifierPropertiesListEXT - { - DrmFormatModifierPropertiesListEXT( uint32_t drmFormatModifierCount_ = {}, - VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties_ = {} ) VULKAN_HPP_NOEXCEPT - : drmFormatModifierCount( drmFormatModifierCount_ ) - , pDrmFormatModifierProperties( pDrmFormatModifierProperties_ ) - {} - - VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT & operator=( VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DescriptorUpdateTemplateEntry & + setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT ) - offsetof( DrmFormatModifierPropertiesListEXT, pNext ) ); + descriptorType = descriptorType_; return *this; } - DrmFormatModifierPropertiesListEXT( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DescriptorUpdateTemplateEntry & setOffset( size_t offset_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + offset = offset_; + return *this; } - DrmFormatModifierPropertiesListEXT& operator=( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DescriptorUpdateTemplateEntry & setStride( size_t stride_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + stride = stride_; return *this; } - operator VkDrmFormatModifierPropertiesListEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkDescriptorUpdateTemplateEntry const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkDrmFormatModifierPropertiesListEXT &() VULKAN_HPP_NOEXCEPT + operator VkDescriptorUpdateTemplateEntry &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( DrmFormatModifierPropertiesListEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DescriptorUpdateTemplateEntry const & ) const = default; +#else + bool operator==( DescriptorUpdateTemplateEntry const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( drmFormatModifierCount == rhs.drmFormatModifierCount ) - && ( pDrmFormatModifierProperties == rhs.pDrmFormatModifierProperties ); + return ( dstBinding == rhs.dstBinding ) && ( dstArrayElement == rhs.dstArrayElement ) && + ( descriptorCount == rhs.descriptorCount ) && ( descriptorType == rhs.descriptorType ) && + ( offset == rhs.offset ) && ( stride == rhs.stride ); } - bool operator!=( DrmFormatModifierPropertiesListEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DescriptorUpdateTemplateEntry const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDrmFormatModifierPropertiesListEXT; - void* pNext = {}; - uint32_t drmFormatModifierCount = {}; - VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties = {}; + uint32_t dstBinding = {}; + uint32_t dstArrayElement = {}; + uint32_t descriptorCount = {}; + VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler; + size_t offset = {}; + size_t stride = {}; }; - static_assert( sizeof( DrmFormatModifierPropertiesListEXT ) == sizeof( VkDrmFormatModifierPropertiesListEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DescriptorUpdateTemplateEntry ) == sizeof( VkDescriptorUpdateTemplateEntry ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + using DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry; - struct EventCreateInfo + struct DescriptorUpdateTemplateCreateInfo { - VULKAN_HPP_CONSTEXPR EventCreateInfo( VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eDescriptorUpdateTemplateCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateCreateInfo( + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_ = {}, + uint32_t descriptorUpdateEntryCount_ = {}, + const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry * pDescriptorUpdateEntries_ = {}, + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ = + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet, + VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ = {}, + VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, + VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ = {}, + uint32_t set_ = {} ) VULKAN_HPP_NOEXCEPT : flags( flags_ ) + , descriptorUpdateEntryCount( descriptorUpdateEntryCount_ ) + , pDescriptorUpdateEntries( pDescriptorUpdateEntries_ ) + , templateType( templateType_ ) + , descriptorSetLayout( descriptorSetLayout_ ) + , pipelineBindPoint( pipelineBindPoint_ ) + , pipelineLayout( pipelineLayout_ ) + , set( set_ ) {} - VULKAN_HPP_NAMESPACE::EventCreateInfo & operator=( VULKAN_HPP_NAMESPACE::EventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::EventCreateInfo ) - offsetof( EventCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateCreateInfo( DescriptorUpdateTemplateCreateInfo const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - EventCreateInfo( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + DescriptorUpdateTemplateCreateInfo( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : DescriptorUpdateTemplateCreateInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DescriptorUpdateTemplateCreateInfo( + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + descriptorUpdateEntries_, + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ = + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet, + VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ = {}, + VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, + VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ = {}, + uint32_t set_ = {} ) + : flags( flags_ ) + , descriptorUpdateEntryCount( static_cast( descriptorUpdateEntries_.size() ) ) + , pDescriptorUpdateEntries( descriptorUpdateEntries_.data() ) + , templateType( templateType_ ) + , descriptorSetLayout( descriptorSetLayout_ ) + , pipelineBindPoint( pipelineBindPoint_ ) + , pipelineLayout( pipelineLayout_ ) + , set( set_ ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - EventCreateInfo& operator=( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 DescriptorUpdateTemplateCreateInfo & + operator=( DescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DescriptorUpdateTemplateCreateInfo & + operator=( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - EventCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + DescriptorUpdateTemplateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - EventCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + DescriptorUpdateTemplateCreateInfo & + setFlags( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { flags = flags_; return *this; } - operator VkEventCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkEventCreateInfo &() VULKAN_HPP_NOEXCEPT + DescriptorUpdateTemplateCreateInfo & + setDescriptorUpdateEntryCount( uint32_t descriptorUpdateEntryCount_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + descriptorUpdateEntryCount = descriptorUpdateEntryCount_; + return *this; } - bool operator==( EventCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + DescriptorUpdateTemplateCreateInfo & setPDescriptorUpdateEntries( + const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry * pDescriptorUpdateEntries_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ); + pDescriptorUpdateEntries = pDescriptorUpdateEntries_; + return *this; } - bool operator!=( EventCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntries( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + descriptorUpdateEntries_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + descriptorUpdateEntryCount = static_cast( descriptorUpdateEntries_.size() ); + pDescriptorUpdateEntries = descriptorUpdateEntries_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eEventCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::EventCreateFlags flags = {}; - }; - static_assert( sizeof( EventCreateInfo ) == sizeof( VkEventCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ExportFenceCreateInfo - { - VULKAN_HPP_CONSTEXPR ExportFenceCreateInfo( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ = {} ) VULKAN_HPP_NOEXCEPT - : handleTypes( handleTypes_ ) - {} - - VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo & operator=( VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + DescriptorUpdateTemplateCreateInfo & + setTemplateType( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo ) - offsetof( ExportFenceCreateInfo, pNext ) ); + templateType = templateType_; return *this; } - ExportFenceCreateInfo( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + DescriptorUpdateTemplateCreateInfo & + setDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + descriptorSetLayout = descriptorSetLayout_; + return *this; } - ExportFenceCreateInfo& operator=( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + DescriptorUpdateTemplateCreateInfo & + setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pipelineBindPoint = pipelineBindPoint_; return *this; } - ExportFenceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + DescriptorUpdateTemplateCreateInfo & + setPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + pipelineLayout = pipelineLayout_; return *this; } - ExportFenceCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT + DescriptorUpdateTemplateCreateInfo & setSet( uint32_t set_ ) VULKAN_HPP_NOEXCEPT { - handleTypes = handleTypes_; + set = set_; return *this; } - operator VkExportFenceCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkDescriptorUpdateTemplateCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkExportFenceCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkDescriptorUpdateTemplateCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ExportFenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DescriptorUpdateTemplateCreateInfo const & ) const = default; +#else + bool operator==( DescriptorUpdateTemplateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleTypes == rhs.handleTypes ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( descriptorUpdateEntryCount == rhs.descriptorUpdateEntryCount ) && + ( pDescriptorUpdateEntries == rhs.pDescriptorUpdateEntries ) && ( templateType == rhs.templateType ) && + ( descriptorSetLayout == rhs.descriptorSetLayout ) && ( pipelineBindPoint == rhs.pipelineBindPoint ) && + ( pipelineLayout == rhs.pipelineLayout ) && ( set == rhs.set ); } - bool operator!=( ExportFenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DescriptorUpdateTemplateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorUpdateTemplateCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags = {}; + uint32_t descriptorUpdateEntryCount = {}; + const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry * pDescriptorUpdateEntries = {}; + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType = + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet; + VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout = {}; + VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics; + VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout = {}; + uint32_t set = {}; }; - static_assert( sizeof( ExportFenceCreateInfo ) == sizeof( VkExportFenceCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DescriptorUpdateTemplateCreateInfo ) == sizeof( VkDescriptorUpdateTemplateCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_WIN32_KHR + template <> + struct CppType + { + using Type = DescriptorUpdateTemplateCreateInfo; + }; + using DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo; - struct ExportFenceWin32HandleInfoKHR + struct DeviceQueueCreateInfo { - VULKAN_HPP_CONSTEXPR ExportFenceWin32HandleInfoKHR( const SECURITY_ATTRIBUTES* pAttributes_ = {}, - DWORD dwAccess_ = {}, - LPCWSTR name_ = {} ) VULKAN_HPP_NOEXCEPT - : pAttributes( pAttributes_ ) - , dwAccess( dwAccess_ ) - , name( name_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DeviceQueueCreateInfo( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {}, + uint32_t queueFamilyIndex_ = {}, + uint32_t queueCount_ = {}, + const float * pQueuePriorities_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , queueFamilyIndex( queueFamilyIndex_ ) + , queueCount( queueCount_ ) + , pQueuePriorities( pQueuePriorities_ ) + {} + + VULKAN_HPP_CONSTEXPR DeviceQueueCreateInfo( DeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DeviceQueueCreateInfo( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : DeviceQueueCreateInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DeviceQueueCreateInfo( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_, + uint32_t queueFamilyIndex_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queuePriorities_ ) + : flags( flags_ ) + , queueFamilyIndex( queueFamilyIndex_ ) + , queueCount( static_cast( queuePriorities_.size() ) ) + , pQueuePriorities( queuePriorities_.data() ) {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DeviceQueueCreateInfo & + operator=( DeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR & operator=( VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceQueueCreateInfo & operator=( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR ) - offsetof( ExportFenceWin32HandleInfoKHR, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - ExportFenceWin32HandleInfoKHR( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceQueueCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - ExportFenceWin32HandleInfoKHR& operator=( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceQueueCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + flags = flags_; return *this; } - ExportFenceWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + DeviceQueueCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + queueFamilyIndex = queueFamilyIndex_; return *this; } - ExportFenceWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT + DeviceQueueCreateInfo & setQueueCount( uint32_t queueCount_ ) VULKAN_HPP_NOEXCEPT { - pAttributes = pAttributes_; + queueCount = queueCount_; return *this; } - ExportFenceWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT + DeviceQueueCreateInfo & setPQueuePriorities( const float * pQueuePriorities_ ) VULKAN_HPP_NOEXCEPT { - dwAccess = dwAccess_; + pQueuePriorities = pQueuePriorities_; return *this; } - ExportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DeviceQueueCreateInfo & setQueuePriorities( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queuePriorities_ ) VULKAN_HPP_NOEXCEPT { - name = name_; + queueCount = static_cast( queuePriorities_.size() ); + pQueuePriorities = queuePriorities_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkExportFenceWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkDeviceQueueCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkExportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkDeviceQueueCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ExportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DeviceQueueCreateInfo const & ) const = default; +#else + bool operator==( DeviceQueueCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pAttributes == rhs.pAttributes ) - && ( dwAccess == rhs.dwAccess ) - && ( name == rhs.name ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( queueFamilyIndex == rhs.queueFamilyIndex ) && ( queueCount == rhs.queueCount ) && + ( pQueuePriorities == rhs.pQueuePriorities ); } - bool operator!=( ExportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DeviceQueueCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceWin32HandleInfoKHR; - const void* pNext = {}; - const SECURITY_ATTRIBUTES* pAttributes = {}; - DWORD dwAccess = {}; - LPCWSTR name = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {}; + uint32_t queueFamilyIndex = {}; + uint32_t queueCount = {}; + const float * pQueuePriorities = {}; }; - static_assert( sizeof( ExportFenceWin32HandleInfoKHR ) == sizeof( VkExportFenceWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + static_assert( sizeof( DeviceQueueCreateInfo ) == sizeof( VkDeviceQueueCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ExportMemoryAllocateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfo( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {} ) VULKAN_HPP_NOEXCEPT - : handleTypes( handleTypes_ ) + using Type = DeviceQueueCreateInfo; + }; + + struct PhysicalDeviceFeatures + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceFeatures( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 independentBlend_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 geometryShader_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 tessellationShader_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 logicOp_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 depthClamp_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 depthBounds_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 wideLines_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 largePoints_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 alphaToOne_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 multiViewport_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderInt64_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderInt16_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 sparseBinding_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries_ = {} ) VULKAN_HPP_NOEXCEPT + : robustBufferAccess( robustBufferAccess_ ) + , fullDrawIndexUint32( fullDrawIndexUint32_ ) + , imageCubeArray( imageCubeArray_ ) + , independentBlend( independentBlend_ ) + , geometryShader( geometryShader_ ) + , tessellationShader( tessellationShader_ ) + , sampleRateShading( sampleRateShading_ ) + , dualSrcBlend( dualSrcBlend_ ) + , logicOp( logicOp_ ) + , multiDrawIndirect( multiDrawIndirect_ ) + , drawIndirectFirstInstance( drawIndirectFirstInstance_ ) + , depthClamp( depthClamp_ ) + , depthBiasClamp( depthBiasClamp_ ) + , fillModeNonSolid( fillModeNonSolid_ ) + , depthBounds( depthBounds_ ) + , wideLines( wideLines_ ) + , largePoints( largePoints_ ) + , alphaToOne( alphaToOne_ ) + , multiViewport( multiViewport_ ) + , samplerAnisotropy( samplerAnisotropy_ ) + , textureCompressionETC2( textureCompressionETC2_ ) + , textureCompressionASTC_LDR( textureCompressionASTC_LDR_ ) + , textureCompressionBC( textureCompressionBC_ ) + , occlusionQueryPrecise( occlusionQueryPrecise_ ) + , pipelineStatisticsQuery( pipelineStatisticsQuery_ ) + , vertexPipelineStoresAndAtomics( vertexPipelineStoresAndAtomics_ ) + , fragmentStoresAndAtomics( fragmentStoresAndAtomics_ ) + , shaderTessellationAndGeometryPointSize( shaderTessellationAndGeometryPointSize_ ) + , shaderImageGatherExtended( shaderImageGatherExtended_ ) + , shaderStorageImageExtendedFormats( shaderStorageImageExtendedFormats_ ) + , shaderStorageImageMultisample( shaderStorageImageMultisample_ ) + , shaderStorageImageReadWithoutFormat( shaderStorageImageReadWithoutFormat_ ) + , shaderStorageImageWriteWithoutFormat( shaderStorageImageWriteWithoutFormat_ ) + , shaderUniformBufferArrayDynamicIndexing( shaderUniformBufferArrayDynamicIndexing_ ) + , shaderSampledImageArrayDynamicIndexing( shaderSampledImageArrayDynamicIndexing_ ) + , shaderStorageBufferArrayDynamicIndexing( shaderStorageBufferArrayDynamicIndexing_ ) + , shaderStorageImageArrayDynamicIndexing( shaderStorageImageArrayDynamicIndexing_ ) + , shaderClipDistance( shaderClipDistance_ ) + , shaderCullDistance( shaderCullDistance_ ) + , shaderFloat64( shaderFloat64_ ) + , shaderInt64( shaderInt64_ ) + , shaderInt16( shaderInt16_ ) + , shaderResourceResidency( shaderResourceResidency_ ) + , shaderResourceMinLod( shaderResourceMinLod_ ) + , sparseBinding( sparseBinding_ ) + , sparseResidencyBuffer( sparseResidencyBuffer_ ) + , sparseResidencyImage2D( sparseResidencyImage2D_ ) + , sparseResidencyImage3D( sparseResidencyImage3D_ ) + , sparseResidency2Samples( sparseResidency2Samples_ ) + , sparseResidency4Samples( sparseResidency4Samples_ ) + , sparseResidency8Samples( sparseResidency8Samples_ ) + , sparseResidency16Samples( sparseResidency16Samples_ ) + , sparseResidencyAliased( sparseResidencyAliased_ ) + , variableMultisampleRate( variableMultisampleRate_ ) + , inheritedQueries( inheritedQueries_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures( PhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceFeatures( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceFeatures( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures & + operator=( PhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo & operator=( VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & operator=( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo ) - offsetof( ExportMemoryAllocateInfo, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - ExportMemoryAllocateInfo( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + robustBufferAccess = robustBufferAccess_; + return *this; } - ExportMemoryAllocateInfo& operator=( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setFullDrawIndexUint32( VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + fullDrawIndexUint32 = fullDrawIndexUint32_; return *this; } - ExportMemoryAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setImageCubeArray( VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + imageCubeArray = imageCubeArray_; return *this; } - ExportMemoryAllocateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setIndependentBlend( VULKAN_HPP_NAMESPACE::Bool32 independentBlend_ ) VULKAN_HPP_NOEXCEPT { - handleTypes = handleTypes_; + independentBlend = independentBlend_; return *this; } - operator VkExportMemoryAllocateInfo const&() const VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 geometryShader_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + geometryShader = geometryShader_; + return *this; } - operator VkExportMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 tessellationShader_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + tessellationShader = tessellationShader_; + return *this; } - bool operator==( ExportMemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setSampleRateShading( VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleTypes == rhs.handleTypes ); + sampleRateShading = sampleRateShading_; + return *this; } - bool operator!=( ExportMemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setDualSrcBlend( VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + dualSrcBlend = dualSrcBlend_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {}; - }; - static_assert( sizeof( ExportMemoryAllocateInfo ) == sizeof( VkExportMemoryAllocateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ExportMemoryAllocateInfoNV - { - VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfoNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {} ) VULKAN_HPP_NOEXCEPT - : handleTypes( handleTypes_ ) - {} - - VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV & operator=( VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setLogicOp( VULKAN_HPP_NAMESPACE::Bool32 logicOp_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV ) - offsetof( ExportMemoryAllocateInfoNV, pNext ) ); + logicOp = logicOp_; return *this; } - ExportMemoryAllocateInfoNV( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setMultiDrawIndirect( VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + multiDrawIndirect = multiDrawIndirect_; + return *this; } - ExportMemoryAllocateInfoNV& operator=( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setDrawIndirectFirstInstance( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + drawIndirectFirstInstance = drawIndirectFirstInstance_; return *this; } - ExportMemoryAllocateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setDepthClamp( VULKAN_HPP_NAMESPACE::Bool32 depthClamp_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + depthClamp = depthClamp_; return *this; } - ExportMemoryAllocateInfoNV & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setDepthBiasClamp( VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT { - handleTypes = handleTypes_; + depthBiasClamp = depthBiasClamp_; return *this; } - operator VkExportMemoryAllocateInfoNV const&() const VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setFillModeNonSolid( VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + fillModeNonSolid = fillModeNonSolid_; + return *this; } - operator VkExportMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setDepthBounds( VULKAN_HPP_NAMESPACE::Bool32 depthBounds_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + depthBounds = depthBounds_; + return *this; } - bool operator==( ExportMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setWideLines( VULKAN_HPP_NAMESPACE::Bool32 wideLines_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleTypes == rhs.handleTypes ); + wideLines = wideLines_; + return *this; } - bool operator!=( ExportMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setLargePoints( VULKAN_HPP_NAMESPACE::Bool32 largePoints_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + largePoints = largePoints_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {}; - }; - static_assert( sizeof( ExportMemoryAllocateInfoNV ) == sizeof( VkExportMemoryAllocateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - -#ifdef VK_USE_PLATFORM_WIN32_KHR - - struct ExportMemoryWin32HandleInfoKHR - { - VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoKHR( const SECURITY_ATTRIBUTES* pAttributes_ = {}, - DWORD dwAccess_ = {}, - LPCWSTR name_ = {} ) VULKAN_HPP_NOEXCEPT - : pAttributes( pAttributes_ ) - , dwAccess( dwAccess_ ) - , name( name_ ) - {} - - VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR & operator=( VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setAlphaToOne( VULKAN_HPP_NAMESPACE::Bool32 alphaToOne_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR ) - offsetof( ExportMemoryWin32HandleInfoKHR, pNext ) ); + alphaToOne = alphaToOne_; return *this; } - ExportMemoryWin32HandleInfoKHR( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setMultiViewport( VULKAN_HPP_NAMESPACE::Bool32 multiViewport_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + multiViewport = multiViewport_; + return *this; } - ExportMemoryWin32HandleInfoKHR& operator=( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setSamplerAnisotropy( VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + samplerAnisotropy = samplerAnisotropy_; return *this; } - ExportMemoryWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setTextureCompressionETC2( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + textureCompressionETC2 = textureCompressionETC2_; return *this; } - ExportMemoryWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setTextureCompressionASTC_LDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR_ ) VULKAN_HPP_NOEXCEPT { - pAttributes = pAttributes_; + textureCompressionASTC_LDR = textureCompressionASTC_LDR_; return *this; } - ExportMemoryWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setTextureCompressionBC( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC_ ) VULKAN_HPP_NOEXCEPT { - dwAccess = dwAccess_; + textureCompressionBC = textureCompressionBC_; return *this; } - ExportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setOcclusionQueryPrecise( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise_ ) VULKAN_HPP_NOEXCEPT { - name = name_; + occlusionQueryPrecise = occlusionQueryPrecise_; return *this; } - operator VkExportMemoryWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setPipelineStatisticsQuery( VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + pipelineStatisticsQuery = pipelineStatisticsQuery_; + return *this; } - operator VkExportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setVertexPipelineStoresAndAtomics( + VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + vertexPipelineStoresAndAtomics = vertexPipelineStoresAndAtomics_; + return *this; } - bool operator==( ExportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setFragmentStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pAttributes == rhs.pAttributes ) - && ( dwAccess == rhs.dwAccess ) - && ( name == rhs.name ); + fragmentStoresAndAtomics = fragmentStoresAndAtomics_; + return *this; } - bool operator!=( ExportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setShaderTessellationAndGeometryPointSize( + VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + shaderTessellationAndGeometryPointSize = shaderTessellationAndGeometryPointSize_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoKHR; - const void* pNext = {}; - const SECURITY_ATTRIBUTES* pAttributes = {}; - DWORD dwAccess = {}; - LPCWSTR name = {}; - }; - static_assert( sizeof( ExportMemoryWin32HandleInfoKHR ) == sizeof( VkExportMemoryWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - - struct ExportMemoryWin32HandleInfoNV - { - VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoNV( const SECURITY_ATTRIBUTES* pAttributes_ = {}, - DWORD dwAccess_ = {} ) VULKAN_HPP_NOEXCEPT - : pAttributes( pAttributes_ ) - , dwAccess( dwAccess_ ) - {} - - VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV & operator=( VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setShaderImageGatherExtended( VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV ) - offsetof( ExportMemoryWin32HandleInfoNV, pNext ) ); + shaderImageGatherExtended = shaderImageGatherExtended_; return *this; } - ExportMemoryWin32HandleInfoNV( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setShaderStorageImageExtendedFormats( + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + shaderStorageImageExtendedFormats = shaderStorageImageExtendedFormats_; + return *this; } - ExportMemoryWin32HandleInfoNV& operator=( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setShaderStorageImageMultisample( + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + shaderStorageImageMultisample = shaderStorageImageMultisample_; return *this; } - ExportMemoryWin32HandleInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setShaderStorageImageReadWithoutFormat( + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + shaderStorageImageReadWithoutFormat = shaderStorageImageReadWithoutFormat_; return *this; } - ExportMemoryWin32HandleInfoNV & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setShaderStorageImageWriteWithoutFormat( + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat_ ) VULKAN_HPP_NOEXCEPT { - pAttributes = pAttributes_; + shaderStorageImageWriteWithoutFormat = shaderStorageImageWriteWithoutFormat_; return *this; } - ExportMemoryWin32HandleInfoNV & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setShaderUniformBufferArrayDynamicIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT { - dwAccess = dwAccess_; + shaderUniformBufferArrayDynamicIndexing = shaderUniformBufferArrayDynamicIndexing_; return *this; } - operator VkExportMemoryWin32HandleInfoNV const&() const VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setShaderSampledImageArrayDynamicIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + shaderSampledImageArrayDynamicIndexing = shaderSampledImageArrayDynamicIndexing_; + return *this; } - operator VkExportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setShaderStorageBufferArrayDynamicIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + shaderStorageBufferArrayDynamicIndexing = shaderStorageBufferArrayDynamicIndexing_; + return *this; } - bool operator==( ExportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setShaderStorageImageArrayDynamicIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pAttributes == rhs.pAttributes ) - && ( dwAccess == rhs.dwAccess ); + shaderStorageImageArrayDynamicIndexing = shaderStorageImageArrayDynamicIndexing_; + return *this; } - bool operator!=( ExportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setShaderClipDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + shaderClipDistance = shaderClipDistance_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoNV; - const void* pNext = {}; - const SECURITY_ATTRIBUTES* pAttributes = {}; - DWORD dwAccess = {}; - }; - static_assert( sizeof( ExportMemoryWin32HandleInfoNV ) == sizeof( VkExportMemoryWin32HandleInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct ExportSemaphoreCreateInfo - { - VULKAN_HPP_CONSTEXPR ExportSemaphoreCreateInfo( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ = {} ) VULKAN_HPP_NOEXCEPT - : handleTypes( handleTypes_ ) - {} - - VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo & operator=( VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setShaderCullDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo ) - offsetof( ExportSemaphoreCreateInfo, pNext ) ); + shaderCullDistance = shaderCullDistance_; return *this; } - ExportSemaphoreCreateInfo( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setShaderFloat64( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + shaderFloat64 = shaderFloat64_; + return *this; } - ExportSemaphoreCreateInfo& operator=( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setShaderInt64( VULKAN_HPP_NAMESPACE::Bool32 shaderInt64_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + shaderInt64 = shaderInt64_; return *this; } - ExportSemaphoreCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setShaderInt16( VULKAN_HPP_NAMESPACE::Bool32 shaderInt16_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + shaderInt16 = shaderInt16_; return *this; } - ExportSemaphoreCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setShaderResourceResidency( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency_ ) VULKAN_HPP_NOEXCEPT { - handleTypes = handleTypes_; + shaderResourceResidency = shaderResourceResidency_; return *this; } - operator VkExportSemaphoreCreateInfo const&() const VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setShaderResourceMinLod( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + shaderResourceMinLod = shaderResourceMinLod_; + return *this; } - operator VkExportSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setSparseBinding( VULKAN_HPP_NAMESPACE::Bool32 sparseBinding_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + sparseBinding = sparseBinding_; + return *this; } - bool operator==( ExportSemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setSparseResidencyBuffer( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleTypes == rhs.handleTypes ); + sparseResidencyBuffer = sparseResidencyBuffer_; + return *this; } - bool operator!=( ExportSemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setSparseResidencyImage2D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + sparseResidencyImage2D = sparseResidencyImage2D_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes = {}; - }; - static_assert( sizeof( ExportSemaphoreCreateInfo ) == sizeof( VkExportSemaphoreCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - -#ifdef VK_USE_PLATFORM_WIN32_KHR - - struct ExportSemaphoreWin32HandleInfoKHR - { - VULKAN_HPP_CONSTEXPR ExportSemaphoreWin32HandleInfoKHR( const SECURITY_ATTRIBUTES* pAttributes_ = {}, - DWORD dwAccess_ = {}, - LPCWSTR name_ = {} ) VULKAN_HPP_NOEXCEPT - : pAttributes( pAttributes_ ) - , dwAccess( dwAccess_ ) - , name( name_ ) - {} - - VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR & operator=( VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setSparseResidencyImage3D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR ) - offsetof( ExportSemaphoreWin32HandleInfoKHR, pNext ) ); + sparseResidencyImage3D = sparseResidencyImage3D_; return *this; } - ExportSemaphoreWin32HandleInfoKHR( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setSparseResidency2Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + sparseResidency2Samples = sparseResidency2Samples_; + return *this; } - ExportSemaphoreWin32HandleInfoKHR& operator=( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setSparseResidency4Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + sparseResidency4Samples = sparseResidency4Samples_; return *this; } - ExportSemaphoreWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setSparseResidency8Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + sparseResidency8Samples = sparseResidency8Samples_; return *this; } - ExportSemaphoreWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setSparseResidency16Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples_ ) VULKAN_HPP_NOEXCEPT { - pAttributes = pAttributes_; + sparseResidency16Samples = sparseResidency16Samples_; return *this; } - ExportSemaphoreWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setSparseResidencyAliased( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased_ ) VULKAN_HPP_NOEXCEPT { - dwAccess = dwAccess_; + sparseResidencyAliased = sparseResidencyAliased_; return *this; } - ExportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & + setVariableMultisampleRate( VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate_ ) VULKAN_HPP_NOEXCEPT { - name = name_; + variableMultisampleRate = variableMultisampleRate_; return *this; } - operator VkExportSemaphoreWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures & setInheritedQueries( VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + inheritedQueries = inheritedQueries_; + return *this; } - operator VkExportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFeatures const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ExportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFeatures &() VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pAttributes == rhs.pAttributes ) - && ( dwAccess == rhs.dwAccess ) - && ( name == rhs.name ); + return *reinterpret_cast( this ); } - bool operator!=( ExportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceFeatures const & ) const = default; +#else + bool operator==( PhysicalDeviceFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( robustBufferAccess == rhs.robustBufferAccess ) && ( fullDrawIndexUint32 == rhs.fullDrawIndexUint32 ) && + ( imageCubeArray == rhs.imageCubeArray ) && ( independentBlend == rhs.independentBlend ) && + ( geometryShader == rhs.geometryShader ) && ( tessellationShader == rhs.tessellationShader ) && + ( sampleRateShading == rhs.sampleRateShading ) && ( dualSrcBlend == rhs.dualSrcBlend ) && + ( logicOp == rhs.logicOp ) && ( multiDrawIndirect == rhs.multiDrawIndirect ) && + ( drawIndirectFirstInstance == rhs.drawIndirectFirstInstance ) && ( depthClamp == rhs.depthClamp ) && + ( depthBiasClamp == rhs.depthBiasClamp ) && ( fillModeNonSolid == rhs.fillModeNonSolid ) && + ( depthBounds == rhs.depthBounds ) && ( wideLines == rhs.wideLines ) && + ( largePoints == rhs.largePoints ) && ( alphaToOne == rhs.alphaToOne ) && + ( multiViewport == rhs.multiViewport ) && ( samplerAnisotropy == rhs.samplerAnisotropy ) && + ( textureCompressionETC2 == rhs.textureCompressionETC2 ) && + ( textureCompressionASTC_LDR == rhs.textureCompressionASTC_LDR ) && + ( textureCompressionBC == rhs.textureCompressionBC ) && + ( occlusionQueryPrecise == rhs.occlusionQueryPrecise ) && + ( pipelineStatisticsQuery == rhs.pipelineStatisticsQuery ) && + ( vertexPipelineStoresAndAtomics == rhs.vertexPipelineStoresAndAtomics ) && + ( fragmentStoresAndAtomics == rhs.fragmentStoresAndAtomics ) && + ( shaderTessellationAndGeometryPointSize == rhs.shaderTessellationAndGeometryPointSize ) && + ( shaderImageGatherExtended == rhs.shaderImageGatherExtended ) && + ( shaderStorageImageExtendedFormats == rhs.shaderStorageImageExtendedFormats ) && + ( shaderStorageImageMultisample == rhs.shaderStorageImageMultisample ) && + ( shaderStorageImageReadWithoutFormat == rhs.shaderStorageImageReadWithoutFormat ) && + ( shaderStorageImageWriteWithoutFormat == rhs.shaderStorageImageWriteWithoutFormat ) && + ( shaderUniformBufferArrayDynamicIndexing == rhs.shaderUniformBufferArrayDynamicIndexing ) && + ( shaderSampledImageArrayDynamicIndexing == rhs.shaderSampledImageArrayDynamicIndexing ) && + ( shaderStorageBufferArrayDynamicIndexing == rhs.shaderStorageBufferArrayDynamicIndexing ) && + ( shaderStorageImageArrayDynamicIndexing == rhs.shaderStorageImageArrayDynamicIndexing ) && + ( shaderClipDistance == rhs.shaderClipDistance ) && ( shaderCullDistance == rhs.shaderCullDistance ) && + ( shaderFloat64 == rhs.shaderFloat64 ) && ( shaderInt64 == rhs.shaderInt64 ) && + ( shaderInt16 == rhs.shaderInt16 ) && ( shaderResourceResidency == rhs.shaderResourceResidency ) && + ( shaderResourceMinLod == rhs.shaderResourceMinLod ) && ( sparseBinding == rhs.sparseBinding ) && + ( sparseResidencyBuffer == rhs.sparseResidencyBuffer ) && + ( sparseResidencyImage2D == rhs.sparseResidencyImage2D ) && + ( sparseResidencyImage3D == rhs.sparseResidencyImage3D ) && + ( sparseResidency2Samples == rhs.sparseResidency2Samples ) && + ( sparseResidency4Samples == rhs.sparseResidency4Samples ) && + ( sparseResidency8Samples == rhs.sparseResidency8Samples ) && + ( sparseResidency16Samples == rhs.sparseResidency16Samples ) && + ( sparseResidencyAliased == rhs.sparseResidencyAliased ) && + ( variableMultisampleRate == rhs.variableMultisampleRate ) && ( inheritedQueries == rhs.inheritedQueries ); + } + + bool operator!=( PhysicalDeviceFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreWin32HandleInfoKHR; - const void* pNext = {}; - const SECURITY_ATTRIBUTES* pAttributes = {}; - DWORD dwAccess = {}; - LPCWSTR name = {}; - }; - static_assert( sizeof( ExportSemaphoreWin32HandleInfoKHR ) == sizeof( VkExportSemaphoreWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess = {}; + VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32 = {}; + VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray = {}; + VULKAN_HPP_NAMESPACE::Bool32 independentBlend = {}; + VULKAN_HPP_NAMESPACE::Bool32 geometryShader = {}; + VULKAN_HPP_NAMESPACE::Bool32 tessellationShader = {}; + VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading = {}; + VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend = {}; + VULKAN_HPP_NAMESPACE::Bool32 logicOp = {}; + VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect = {}; + VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance = {}; + VULKAN_HPP_NAMESPACE::Bool32 depthClamp = {}; + VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp = {}; + VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid = {}; + VULKAN_HPP_NAMESPACE::Bool32 depthBounds = {}; + VULKAN_HPP_NAMESPACE::Bool32 wideLines = {}; + VULKAN_HPP_NAMESPACE::Bool32 largePoints = {}; + VULKAN_HPP_NAMESPACE::Bool32 alphaToOne = {}; + VULKAN_HPP_NAMESPACE::Bool32 multiViewport = {}; + VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy = {}; + VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2 = {}; + VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR = {}; + VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC = {}; + VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise = {}; + VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery = {}; + VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics = {}; + VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderInt64 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderInt16 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod = {}; + VULKAN_HPP_NAMESPACE::Bool32 sparseBinding = {}; + VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer = {}; + VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D = {}; + VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D = {}; + VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples = {}; + VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples = {}; + VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples = {}; + VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples = {}; + VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased = {}; + VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate = {}; + VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries = {}; + }; + static_assert( sizeof( PhysicalDeviceFeatures ) == sizeof( VkPhysicalDeviceFeatures ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ExtensionProperties + struct DeviceCreateInfo { - ExtensionProperties( std::array const& extensionName_ = {}, - uint32_t specVersion_ = {} ) VULKAN_HPP_NOEXCEPT - : extensionName{} - , specVersion( specVersion_ ) - { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( extensionName, extensionName_ ); - } + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DeviceCreateInfo( VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_ = {}, + uint32_t queueCreateInfoCount_ = {}, + const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo * pQueueCreateInfos_ = {}, + uint32_t enabledLayerCount_ = {}, + const char * const * ppEnabledLayerNames_ = {}, + uint32_t enabledExtensionCount_ = {}, + const char * const * ppEnabledExtensionNames_ = {}, + const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pEnabledFeatures_ = {} ) + VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , queueCreateInfoCount( queueCreateInfoCount_ ) + , pQueueCreateInfos( pQueueCreateInfos_ ) + , enabledLayerCount( enabledLayerCount_ ) + , ppEnabledLayerNames( ppEnabledLayerNames_ ) + , enabledExtensionCount( enabledExtensionCount_ ) + , ppEnabledExtensionNames( ppEnabledExtensionNames_ ) + , pEnabledFeatures( pEnabledFeatures_ ) + {} - ExtensionProperties( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR DeviceCreateInfo( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ExtensionProperties& operator=( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + DeviceCreateInfo( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : DeviceCreateInfo( *reinterpret_cast( &rhs ) ) + {} - operator VkExtensionProperties const&() const VULKAN_HPP_NOEXCEPT +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DeviceCreateInfo( + VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + queueCreateInfos_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pEnabledLayerNames_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pEnabledExtensionNames_ = {}, + const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pEnabledFeatures_ = {} ) + : flags( flags_ ) + , queueCreateInfoCount( static_cast( queueCreateInfos_.size() ) ) + , pQueueCreateInfos( queueCreateInfos_.data() ) + , enabledLayerCount( static_cast( pEnabledLayerNames_.size() ) ) + , ppEnabledLayerNames( pEnabledLayerNames_.data() ) + , enabledExtensionCount( static_cast( pEnabledExtensionNames_.size() ) ) + , ppEnabledExtensionNames( pEnabledExtensionNames_.data() ) + , pEnabledFeatures( pEnabledFeatures_ ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & operator=( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DeviceCreateInfo & operator=( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + *this = *reinterpret_cast( &rhs ); + return *this; } - operator VkExtensionProperties &() VULKAN_HPP_NOEXCEPT + DeviceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + pNext = pNext_; + return *this; } - bool operator==( ExtensionProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + DeviceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - return ( memcmp( extensionName, rhs.extensionName, VK_MAX_EXTENSION_NAME_SIZE * sizeof( char ) ) == 0 ) - && ( specVersion == rhs.specVersion ); + flags = flags_; + return *this; } - bool operator!=( ExtensionProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + DeviceCreateInfo & setQueueCreateInfoCount( uint32_t queueCreateInfoCount_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + queueCreateInfoCount = queueCreateInfoCount_; + return *this; } - public: - char extensionName[VK_MAX_EXTENSION_NAME_SIZE] = {}; - uint32_t specVersion = {}; - }; - static_assert( sizeof( ExtensionProperties ) == sizeof( VkExtensionProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ExternalMemoryProperties - { - ExternalMemoryProperties( VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures_ = {}, - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes_ = {}, - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes_ = {} ) VULKAN_HPP_NOEXCEPT - : externalMemoryFeatures( externalMemoryFeatures_ ) - , exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ) - , compatibleHandleTypes( compatibleHandleTypes_ ) - {} - - ExternalMemoryProperties( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceCreateInfo & + setPQueueCreateInfos( const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo * pQueueCreateInfos_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pQueueCreateInfos = pQueueCreateInfos_; + return *this; } - ExternalMemoryProperties& operator=( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DeviceCreateInfo & setQueueCreateInfos( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + queueCreateInfos_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + queueCreateInfoCount = static_cast( queueCreateInfos_.size() ); + pQueueCreateInfos = queueCreateInfos_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkExternalMemoryProperties const&() const VULKAN_HPP_NOEXCEPT + DeviceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + enabledLayerCount = enabledLayerCount_; + return *this; } - operator VkExternalMemoryProperties &() VULKAN_HPP_NOEXCEPT + DeviceCreateInfo & setPpEnabledLayerNames( const char * const * ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + ppEnabledLayerNames = ppEnabledLayerNames_; + return *this; } - bool operator==( ExternalMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DeviceCreateInfo & setPEnabledLayerNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + pEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT { - return ( externalMemoryFeatures == rhs.externalMemoryFeatures ) - && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) - && ( compatibleHandleTypes == rhs.compatibleHandleTypes ); + enabledLayerCount = static_cast( pEnabledLayerNames_.size() ); + ppEnabledLayerNames = pEnabledLayerNames_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - bool operator!=( ExternalMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + DeviceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + enabledExtensionCount = enabledExtensionCount_; + return *this; } - public: - VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes = {}; - }; - static_assert( sizeof( ExternalMemoryProperties ) == sizeof( VkExternalMemoryProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ExternalBufferProperties - { - ExternalBufferProperties( VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {} ) VULKAN_HPP_NOEXCEPT - : externalMemoryProperties( externalMemoryProperties_ ) - {} - - VULKAN_HPP_NAMESPACE::ExternalBufferProperties & operator=( VULKAN_HPP_NAMESPACE::ExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceCreateInfo & setPpEnabledExtensionNames( const char * const * ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ExternalBufferProperties ) - offsetof( ExternalBufferProperties, pNext ) ); + ppEnabledExtensionNames = ppEnabledExtensionNames_; return *this; } - ExternalBufferProperties( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DeviceCreateInfo & setPEnabledExtensionNames( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pEnabledExtensionNames_ ) + VULKAN_HPP_NOEXCEPT { - *this = rhs; + enabledExtensionCount = static_cast( pEnabledExtensionNames_.size() ); + ppEnabledExtensionNames = pEnabledExtensionNames_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - ExternalBufferProperties& operator=( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceCreateInfo & + setPEnabledFeatures( const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pEnabledFeatures_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pEnabledFeatures = pEnabledFeatures_; return *this; } - operator VkExternalBufferProperties const&() const VULKAN_HPP_NOEXCEPT + operator VkDeviceCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkExternalBufferProperties &() VULKAN_HPP_NOEXCEPT + operator VkDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ExternalBufferProperties const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DeviceCreateInfo const & ) const = default; +#else + bool operator==( DeviceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( externalMemoryProperties == rhs.externalMemoryProperties ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( queueCreateInfoCount == rhs.queueCreateInfoCount ) && ( pQueueCreateInfos == rhs.pQueueCreateInfos ) && + ( enabledLayerCount == rhs.enabledLayerCount ) && ( ppEnabledLayerNames == rhs.ppEnabledLayerNames ) && + ( enabledExtensionCount == rhs.enabledExtensionCount ) && + ( ppEnabledExtensionNames == rhs.ppEnabledExtensionNames ) && ( pEnabledFeatures == rhs.pEnabledFeatures ); } - bool operator!=( ExternalBufferProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DeviceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalBufferProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags = {}; + uint32_t queueCreateInfoCount = {}; + const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo * pQueueCreateInfos = {}; + uint32_t enabledLayerCount = {}; + const char * const * ppEnabledLayerNames = {}; + uint32_t enabledExtensionCount = {}; + const char * const * ppEnabledExtensionNames = {}; + const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pEnabledFeatures = {}; }; - static_assert( sizeof( ExternalBufferProperties ) == sizeof( VkExternalBufferProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DeviceCreateInfo ) == sizeof( VkDeviceCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ExternalFenceProperties + template <> + struct CppType { - ExternalFenceProperties( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes_ = {}, - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes_ = {}, - VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures_ = {} ) VULKAN_HPP_NOEXCEPT - : exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ) - , compatibleHandleTypes( compatibleHandleTypes_ ) - , externalFenceFeatures( externalFenceFeatures_ ) + using Type = DeviceCreateInfo; + }; + + struct DeviceDeviceMemoryReportCreateInfoEXT + { + static const bool allowDuplicate = true; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eDeviceDeviceMemoryReportCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + DeviceDeviceMemoryReportCreateInfoEXT( VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ = {}, + PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback_ = {}, + void * pUserData_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , pfnUserCallback( pfnUserCallback_ ) + , pUserData( pUserData_ ) + {} + + VULKAN_HPP_CONSTEXPR DeviceDeviceMemoryReportCreateInfoEXT( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + DeviceDeviceMemoryReportCreateInfoEXT( VkDeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : DeviceDeviceMemoryReportCreateInfoEXT( + *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::ExternalFenceProperties & operator=( VULKAN_HPP_NAMESPACE::ExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 DeviceDeviceMemoryReportCreateInfoEXT & + operator=( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DeviceDeviceMemoryReportCreateInfoEXT & + operator=( VkDeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ExternalFenceProperties ) - offsetof( ExternalFenceProperties, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - ExternalFenceProperties( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceDeviceMemoryReportCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - ExternalFenceProperties& operator=( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceDeviceMemoryReportCreateInfoEXT & + setFlags( VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + flags = flags_; return *this; } - operator VkExternalFenceProperties const&() const VULKAN_HPP_NOEXCEPT + DeviceDeviceMemoryReportCreateInfoEXT & + setPfnUserCallback( PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + pfnUserCallback = pfnUserCallback_; + return *this; } - operator VkExternalFenceProperties &() VULKAN_HPP_NOEXCEPT + DeviceDeviceMemoryReportCreateInfoEXT & setPUserData( void * pUserData_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + pUserData = pUserData_; + return *this; + } + + operator VkDeviceDeviceMemoryReportCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkDeviceDeviceMemoryReportCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); } - bool operator==( ExternalFenceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DeviceDeviceMemoryReportCreateInfoEXT const & ) const = default; +#else + bool operator==( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) - && ( compatibleHandleTypes == rhs.compatibleHandleTypes ) - && ( externalFenceFeatures == rhs.externalFenceFeatures ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( pfnUserCallback == rhs.pfnUserCallback ) && ( pUserData == rhs.pUserData ); } - bool operator!=( ExternalFenceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFenceProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceDeviceMemoryReportCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags = {}; + PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback = {}; + void * pUserData = {}; }; - static_assert( sizeof( ExternalFenceProperties ) == sizeof( VkExternalFenceProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DeviceDeviceMemoryReportCreateInfoEXT ) == sizeof( VkDeviceDeviceMemoryReportCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_ANDROID_KHR + template <> + struct CppType + { + using Type = DeviceDeviceMemoryReportCreateInfoEXT; + }; - struct ExternalFormatANDROID + struct DeviceDiagnosticsConfigCreateInfoNV { - VULKAN_HPP_CONSTEXPR ExternalFormatANDROID( uint64_t externalFormat_ = {} ) VULKAN_HPP_NOEXCEPT - : externalFormat( externalFormat_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eDeviceDiagnosticsConfigCreateInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigCreateInfoNV( + VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags_ = {} ) VULKAN_HPP_NOEXCEPT : flags( flags_ ) {} - VULKAN_HPP_NAMESPACE::ExternalFormatANDROID & operator=( VULKAN_HPP_NAMESPACE::ExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ExternalFormatANDROID ) - offsetof( ExternalFormatANDROID, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigCreateInfoNV( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - ExternalFormatANDROID( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + DeviceDiagnosticsConfigCreateInfoNV( VkDeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : DeviceDiagnosticsConfigCreateInfoNV( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ExternalFormatANDROID& operator=( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 DeviceDiagnosticsConfigCreateInfoNV & + operator=( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DeviceDiagnosticsConfigCreateInfoNV & + operator=( VkDeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - ExternalFormatANDROID & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + DeviceDiagnosticsConfigCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - ExternalFormatANDROID & setExternalFormat( uint64_t externalFormat_ ) VULKAN_HPP_NOEXCEPT + DeviceDiagnosticsConfigCreateInfoNV & + setFlags( VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT { - externalFormat = externalFormat_; + flags = flags_; return *this; } - operator VkExternalFormatANDROID const&() const VULKAN_HPP_NOEXCEPT + operator VkDeviceDiagnosticsConfigCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkExternalFormatANDROID &() VULKAN_HPP_NOEXCEPT + operator VkDeviceDiagnosticsConfigCreateInfoNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ExternalFormatANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DeviceDiagnosticsConfigCreateInfoNV const & ) const = default; +#else + bool operator==( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( externalFormat == rhs.externalFormat ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ); } - bool operator!=( ExternalFormatANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFormatANDROID; - void* pNext = {}; - uint64_t externalFormat = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceDiagnosticsConfigCreateInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags = {}; }; - static_assert( sizeof( ExternalFormatANDROID ) == sizeof( VkExternalFormatANDROID ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + static_assert( sizeof( DeviceDiagnosticsConfigCreateInfoNV ) == sizeof( VkDeviceDiagnosticsConfigCreateInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct ExternalImageFormatProperties + template <> + struct CppType { - ExternalImageFormatProperties( VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {} ) VULKAN_HPP_NOEXCEPT - : externalMemoryProperties( externalMemoryProperties_ ) + using Type = DeviceDiagnosticsConfigCreateInfoNV; + }; + + struct DeviceEventInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceEventInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + DeviceEventInfoEXT( VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ = + VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug ) VULKAN_HPP_NOEXCEPT + : deviceEvent( deviceEvent_ ) + {} + + VULKAN_HPP_CONSTEXPR DeviceEventInfoEXT( DeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DeviceEventInfoEXT( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : DeviceEventInfoEXT( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties & operator=( VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 DeviceEventInfoEXT & + operator=( DeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DeviceEventInfoEXT & operator=( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties ) - offsetof( ExternalImageFormatProperties, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - ExternalImageFormatProperties( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceEventInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - ExternalImageFormatProperties& operator=( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceEventInfoEXT & setDeviceEvent( VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + deviceEvent = deviceEvent_; return *this; } - operator VkExternalImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT + operator VkDeviceEventInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkExternalImageFormatProperties &() VULKAN_HPP_NOEXCEPT + operator VkDeviceEventInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ExternalImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DeviceEventInfoEXT const & ) const = default; +#else + bool operator==( DeviceEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( externalMemoryProperties == rhs.externalMemoryProperties ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceEvent == rhs.deviceEvent ); } - bool operator!=( ExternalImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DeviceEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalImageFormatProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceEventInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug; }; - static_assert( sizeof( ExternalImageFormatProperties ) == sizeof( VkExternalImageFormatProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DeviceEventInfoEXT ) == sizeof( VkDeviceEventInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ImageFormatProperties + template <> + struct CppType { - ImageFormatProperties( VULKAN_HPP_NAMESPACE::Extent3D maxExtent_ = {}, - uint32_t maxMipLevels_ = {}, - uint32_t maxArrayLayers_ = {}, - VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize maxResourceSize_ = {} ) VULKAN_HPP_NOEXCEPT - : maxExtent( maxExtent_ ) - , maxMipLevels( maxMipLevels_ ) - , maxArrayLayers( maxArrayLayers_ ) - , sampleCounts( sampleCounts_ ) - , maxResourceSize( maxResourceSize_ ) - {} + using Type = DeviceEventInfoEXT; + }; - ImageFormatProperties( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + struct DeviceGroupBindSparseInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupBindSparseInfo; - ImageFormatProperties& operator=( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DeviceGroupBindSparseInfo( uint32_t resourceDeviceIndex_ = {}, + uint32_t memoryDeviceIndex_ = {} ) VULKAN_HPP_NOEXCEPT + : resourceDeviceIndex( resourceDeviceIndex_ ) + , memoryDeviceIndex( memoryDeviceIndex_ ) + {} - operator VkImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + VULKAN_HPP_CONSTEXPR + DeviceGroupBindSparseInfo( DeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - operator VkImageFormatProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + DeviceGroupBindSparseInfo( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : DeviceGroupBindSparseInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DeviceGroupBindSparseInfo & + operator=( DeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - bool operator==( ImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + DeviceGroupBindSparseInfo & operator=( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - return ( maxExtent == rhs.maxExtent ) - && ( maxMipLevels == rhs.maxMipLevels ) - && ( maxArrayLayers == rhs.maxArrayLayers ) - && ( sampleCounts == rhs.sampleCounts ) - && ( maxResourceSize == rhs.maxResourceSize ); + *this = *reinterpret_cast( &rhs ); + return *this; } - bool operator!=( ImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + DeviceGroupBindSparseInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + pNext = pNext_; + return *this; } - public: - VULKAN_HPP_NAMESPACE::Extent3D maxExtent = {}; - uint32_t maxMipLevels = {}; - uint32_t maxArrayLayers = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts = {}; - VULKAN_HPP_NAMESPACE::DeviceSize maxResourceSize = {}; - }; - static_assert( sizeof( ImageFormatProperties ) == sizeof( VkImageFormatProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ExternalImageFormatPropertiesNV - { - ExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties_ = {}, - VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV externalMemoryFeatures_ = {}, - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes_ = {}, - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes_ = {} ) VULKAN_HPP_NOEXCEPT - : imageFormatProperties( imageFormatProperties_ ) - , externalMemoryFeatures( externalMemoryFeatures_ ) - , exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ) - , compatibleHandleTypes( compatibleHandleTypes_ ) - {} - - ExternalImageFormatPropertiesNV( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceGroupBindSparseInfo & setResourceDeviceIndex( uint32_t resourceDeviceIndex_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + resourceDeviceIndex = resourceDeviceIndex_; + return *this; } - ExternalImageFormatPropertiesNV& operator=( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceGroupBindSparseInfo & setMemoryDeviceIndex( uint32_t memoryDeviceIndex_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + memoryDeviceIndex = memoryDeviceIndex_; return *this; } - operator VkExternalImageFormatPropertiesNV const&() const VULKAN_HPP_NOEXCEPT + operator VkDeviceGroupBindSparseInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkExternalImageFormatPropertiesNV &() VULKAN_HPP_NOEXCEPT + operator VkDeviceGroupBindSparseInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ExternalImageFormatPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DeviceGroupBindSparseInfo const & ) const = default; +#else + bool operator==( DeviceGroupBindSparseInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( imageFormatProperties == rhs.imageFormatProperties ) - && ( externalMemoryFeatures == rhs.externalMemoryFeatures ) - && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) - && ( compatibleHandleTypes == rhs.compatibleHandleTypes ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( resourceDeviceIndex == rhs.resourceDeviceIndex ) && + ( memoryDeviceIndex == rhs.memoryDeviceIndex ); } - bool operator!=( ExternalImageFormatPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DeviceGroupBindSparseInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV externalMemoryFeatures = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupBindSparseInfo; + const void * pNext = {}; + uint32_t resourceDeviceIndex = {}; + uint32_t memoryDeviceIndex = {}; }; - static_assert( sizeof( ExternalImageFormatPropertiesNV ) == sizeof( VkExternalImageFormatPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DeviceGroupBindSparseInfo ) == sizeof( VkDeviceGroupBindSparseInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct ExternalMemoryBufferCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ExternalMemoryBufferCreateInfo( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {} ) VULKAN_HPP_NOEXCEPT - : handleTypes( handleTypes_ ) + using Type = DeviceGroupBindSparseInfo; + }; + using DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo; + + struct DeviceGroupCommandBufferBeginInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eDeviceGroupCommandBufferBeginInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DeviceGroupCommandBufferBeginInfo( uint32_t deviceMask_ = {} ) VULKAN_HPP_NOEXCEPT + : deviceMask( deviceMask_ ) {} - VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo & operator=( VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo ) - offsetof( ExternalMemoryBufferCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + DeviceGroupCommandBufferBeginInfo( DeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ExternalMemoryBufferCreateInfo( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + DeviceGroupCommandBufferBeginInfo( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : DeviceGroupCommandBufferBeginInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ExternalMemoryBufferCreateInfo& operator=( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 DeviceGroupCommandBufferBeginInfo & + operator=( DeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DeviceGroupCommandBufferBeginInfo & operator=( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - ExternalMemoryBufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + DeviceGroupCommandBufferBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - ExternalMemoryBufferCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT + DeviceGroupCommandBufferBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT { - handleTypes = handleTypes_; + deviceMask = deviceMask_; return *this; } - operator VkExternalMemoryBufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkDeviceGroupCommandBufferBeginInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkExternalMemoryBufferCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkDeviceGroupCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ExternalMemoryBufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DeviceGroupCommandBufferBeginInfo const & ) const = default; +#else + bool operator==( DeviceGroupCommandBufferBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleTypes == rhs.handleTypes ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceMask == rhs.deviceMask ); } - bool operator!=( ExternalMemoryBufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DeviceGroupCommandBufferBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryBufferCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupCommandBufferBeginInfo; + const void * pNext = {}; + uint32_t deviceMask = {}; }; - static_assert( sizeof( ExternalMemoryBufferCreateInfo ) == sizeof( VkExternalMemoryBufferCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DeviceGroupCommandBufferBeginInfo ) == sizeof( VkDeviceGroupCommandBufferBeginInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct ExternalMemoryImageCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfo( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {} ) VULKAN_HPP_NOEXCEPT - : handleTypes( handleTypes_ ) + using Type = DeviceGroupCommandBufferBeginInfo; + }; + using DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo; + + 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: + VULKAN_HPP_CONSTEXPR DisplayKHR() = default; + VULKAN_HPP_CONSTEXPR DisplayKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT DisplayKHR( VkDisplayKHR displayKHR ) VULKAN_HPP_NOEXCEPT : m_displayKHR( displayKHR ) {} - VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo & operator=( VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + DisplayKHR & operator=( VkDisplayKHR displayKHR ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo ) - offsetof( ExternalMemoryImageCreateInfo, pNext ) ); + m_displayKHR = displayKHR; return *this; } +#endif - ExternalMemoryImageCreateInfo( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - - ExternalMemoryImageCreateInfo& operator=( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + DisplayKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + m_displayKHR = {}; return *this; } - ExternalMemoryImageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DisplayKHR const & ) const = default; +#else + bool operator==( DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; - return *this; + return m_displayKHR == rhs.m_displayKHR; } - ExternalMemoryImageCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - handleTypes = handleTypes_; - return *this; + return m_displayKHR != rhs.m_displayKHR; } - operator VkExternalMemoryImageCreateInfo const&() const VULKAN_HPP_NOEXCEPT + bool operator<( DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_displayKHR < rhs.m_displayKHR; } +#endif - operator VkExternalMemoryImageCreateInfo &() VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDisplayKHR() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_displayKHR; } - bool operator==( ExternalMemoryImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleTypes == rhs.handleTypes ); + return m_displayKHR != VK_NULL_HANDLE; } - bool operator!=( ExternalMemoryImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_displayKHR == VK_NULL_HANDLE; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {}; + private: + VkDisplayKHR m_displayKHR = {}; }; - static_assert( sizeof( ExternalMemoryImageCreateInfo ) == sizeof( VkExternalMemoryImageCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::DisplayKHR ) == sizeof( VkDisplayKHR ), + "handle and wrapper have different size!" ); - struct ExternalMemoryImageCreateInfoNV + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfoNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {} ) VULKAN_HPP_NOEXCEPT - : handleTypes( handleTypes_ ) + using type = VULKAN_HPP_NAMESPACE::DisplayKHR; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::DisplayKHR; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::DisplayKHR; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + struct PerformanceConfigurationAcquireInfoINTEL + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePerformanceConfigurationAcquireInfoINTEL; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PerformanceConfigurationAcquireInfoINTEL( + VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ = + VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated ) + VULKAN_HPP_NOEXCEPT : type( type_ ) {} - VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV & operator=( VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV ) - offsetof( ExternalMemoryImageCreateInfoNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PerformanceConfigurationAcquireInfoINTEL( + PerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ExternalMemoryImageCreateInfoNV( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PerformanceConfigurationAcquireInfoINTEL( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) + VULKAN_HPP_NOEXCEPT + : PerformanceConfigurationAcquireInfoINTEL( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PerformanceConfigurationAcquireInfoINTEL & + operator=( PerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ExternalMemoryImageCreateInfoNV& operator=( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + PerformanceConfigurationAcquireInfoINTEL & + operator=( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - ExternalMemoryImageCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PerformanceConfigurationAcquireInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - ExternalMemoryImageCreateInfoNV & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT + PerformanceConfigurationAcquireInfoINTEL & + setType( VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT { - handleTypes = handleTypes_; + type = type_; return *this; } - operator VkExternalMemoryImageCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT + operator VkPerformanceConfigurationAcquireInfoINTEL const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkExternalMemoryImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT + operator VkPerformanceConfigurationAcquireInfoINTEL &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ExternalMemoryImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PerformanceConfigurationAcquireInfoINTEL const & ) const = default; +#else + bool operator==( PerformanceConfigurationAcquireInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleTypes == rhs.handleTypes ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( type == rhs.type ); } - bool operator!=( ExternalMemoryImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PerformanceConfigurationAcquireInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceConfigurationAcquireInfoINTEL; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type = + VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated; }; - static_assert( sizeof( ExternalMemoryImageCreateInfoNV ) == sizeof( VkExternalMemoryImageCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PerformanceConfigurationAcquireInfoINTEL ) == + sizeof( VkPerformanceConfigurationAcquireInfoINTEL ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct ExternalSemaphoreProperties + template <> + struct CppType { - ExternalSemaphoreProperties( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes_ = {}, - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes_ = {}, - VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures_ = {} ) VULKAN_HPP_NOEXCEPT - : exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ) - , compatibleHandleTypes( compatibleHandleTypes_ ) - , externalSemaphoreFeatures( externalSemaphoreFeatures_ ) + using Type = PerformanceConfigurationAcquireInfoINTEL; + }; + + 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: + VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL() = default; + VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT + PerformanceConfigurationINTEL( VkPerformanceConfigurationINTEL performanceConfigurationINTEL ) VULKAN_HPP_NOEXCEPT + : m_performanceConfigurationINTEL( performanceConfigurationINTEL ) {} - VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties & operator=( VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + PerformanceConfigurationINTEL & + operator=( VkPerformanceConfigurationINTEL performanceConfigurationINTEL ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties ) - offsetof( ExternalSemaphoreProperties, pNext ) ); + m_performanceConfigurationINTEL = performanceConfigurationINTEL; return *this; } +#endif - ExternalSemaphoreProperties( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT + PerformanceConfigurationINTEL & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + m_performanceConfigurationINTEL = {}; + return *this; } - ExternalSemaphoreProperties& operator=( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PerformanceConfigurationINTEL const & ) const = default; +#else + bool operator==( PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return m_performanceConfigurationINTEL == rhs.m_performanceConfigurationINTEL; } - operator VkExternalSemaphoreProperties const&() const VULKAN_HPP_NOEXCEPT + bool operator!=( PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_performanceConfigurationINTEL != rhs.m_performanceConfigurationINTEL; } - operator VkExternalSemaphoreProperties &() VULKAN_HPP_NOEXCEPT + bool operator<( PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_performanceConfigurationINTEL < rhs.m_performanceConfigurationINTEL; } +#endif - bool operator==( ExternalSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPerformanceConfigurationINTEL() const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) - && ( compatibleHandleTypes == rhs.compatibleHandleTypes ) - && ( externalSemaphoreFeatures == rhs.externalSemaphoreFeatures ); + return m_performanceConfigurationINTEL; } - bool operator!=( ExternalSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_performanceConfigurationINTEL != VK_NULL_HANDLE; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalSemaphoreProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures = {}; - }; - static_assert( sizeof( ExternalSemaphoreProperties ) == sizeof( VkExternalSemaphoreProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct FenceCreateInfo - { - VULKAN_HPP_CONSTEXPR FenceCreateInfo( VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - {} - - VULKAN_HPP_NAMESPACE::FenceCreateInfo & operator=( VULKAN_HPP_NAMESPACE::FenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::FenceCreateInfo ) - offsetof( FenceCreateInfo, pNext ) ); - return *this; - } - - FenceCreateInfo( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - - FenceCreateInfo& operator=( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } - - FenceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - FenceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - operator VkFenceCreateInfo const&() const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_performanceConfigurationINTEL == VK_NULL_HANDLE; } - operator VkFenceCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + private: + VkPerformanceConfigurationINTEL m_performanceConfigurationINTEL = {}; + }; + static_assert( sizeof( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL ) == + sizeof( VkPerformanceConfigurationINTEL ), + "handle and wrapper have different size!" ); - bool operator==( FenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ); - } + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type + { + using type = VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL; + }; - bool operator!=( FenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL; + }; - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::FenceCreateFlags flags = {}; + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; }; - static_assert( sizeof( FenceCreateInfo ) == sizeof( VkFenceCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct FenceGetFdInfoKHR + struct MemoryAllocateInfo { - VULKAN_HPP_CONSTEXPR FenceGetFdInfoKHR( VULKAN_HPP_NAMESPACE::Fence fence_ = {}, - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT - : fence( fence_ ) - , handleType( handleType_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryAllocateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR MemoryAllocateInfo( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {}, + uint32_t memoryTypeIndex_ = {} ) VULKAN_HPP_NOEXCEPT + : allocationSize( allocationSize_ ) + , memoryTypeIndex( memoryTypeIndex_ ) {} - VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR & operator=( VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR ) - offsetof( FenceGetFdInfoKHR, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR MemoryAllocateInfo( MemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - FenceGetFdInfoKHR( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + MemoryAllocateInfo( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : MemoryAllocateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 MemoryAllocateInfo & + operator=( MemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - FenceGetFdInfoKHR& operator=( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + MemoryAllocateInfo & operator=( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - FenceGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + MemoryAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - FenceGetFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT + MemoryAllocateInfo & setAllocationSize( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ ) VULKAN_HPP_NOEXCEPT { - fence = fence_; + allocationSize = allocationSize_; return *this; } - FenceGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT + MemoryAllocateInfo & setMemoryTypeIndex( uint32_t memoryTypeIndex_ ) VULKAN_HPP_NOEXCEPT { - handleType = handleType_; + memoryTypeIndex = memoryTypeIndex_; return *this; } - operator VkFenceGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkMemoryAllocateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkFenceGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( FenceGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MemoryAllocateInfo const & ) const = default; +#else + bool operator==( MemoryAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fence == rhs.fence ) - && ( handleType == rhs.handleType ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( allocationSize == rhs.allocationSize ) && + ( memoryTypeIndex == rhs.memoryTypeIndex ); } - bool operator!=( FenceGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( MemoryAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetFdInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Fence fence = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {}; + uint32_t memoryTypeIndex = {}; }; - static_assert( sizeof( FenceGetFdInfoKHR ) == sizeof( VkFenceGetFdInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( MemoryAllocateInfo ) == sizeof( VkMemoryAllocateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_WIN32_KHR + template <> + struct CppType + { + using Type = MemoryAllocateInfo; + }; - struct FenceGetWin32HandleInfoKHR +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoBindMemoryKHR { - VULKAN_HPP_CONSTEXPR FenceGetWin32HandleInfoKHR( VULKAN_HPP_NAMESPACE::Fence fence_ = {}, - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT - : fence( fence_ ) - , handleType( handleType_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoBindMemoryKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoBindMemoryKHR( uint32_t memoryBindIndex_ = {}, + VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize memorySize_ = {} ) VULKAN_HPP_NOEXCEPT + : memoryBindIndex( memoryBindIndex_ ) + , memory( memory_ ) + , memoryOffset( memoryOffset_ ) + , memorySize( memorySize_ ) {} - VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR & operator=( VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR VideoBindMemoryKHR( VideoBindMemoryKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoBindMemoryKHR( VkVideoBindMemoryKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoBindMemoryKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoBindMemoryKHR & + operator=( VideoBindMemoryKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoBindMemoryKHR & operator=( VkVideoBindMemoryKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR ) - offsetof( FenceGetWin32HandleInfoKHR, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - FenceGetWin32HandleInfoKHR( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VideoBindMemoryKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - FenceGetWin32HandleInfoKHR& operator=( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VideoBindMemoryKHR & setMemoryBindIndex( uint32_t memoryBindIndex_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + memoryBindIndex = memoryBindIndex_; return *this; } - FenceGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + VideoBindMemoryKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + memory = memory_; return *this; } - FenceGetWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT + VideoBindMemoryKHR & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT { - fence = fence_; + memoryOffset = memoryOffset_; return *this; } - FenceGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT + VideoBindMemoryKHR & setMemorySize( VULKAN_HPP_NAMESPACE::DeviceSize memorySize_ ) VULKAN_HPP_NOEXCEPT { - handleType = handleType_; + memorySize = memorySize_; return *this; } - operator VkFenceGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkVideoBindMemoryKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkFenceGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkVideoBindMemoryKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( FenceGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoBindMemoryKHR const & ) const = default; +# else + bool operator==( VideoBindMemoryKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fence == rhs.fence ) - && ( handleType == rhs.handleType ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryBindIndex == rhs.memoryBindIndex ) && + ( memory == rhs.memory ) && ( memoryOffset == rhs.memoryOffset ) && ( memorySize == rhs.memorySize ); } - bool operator!=( FenceGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( VideoBindMemoryKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetWin32HandleInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Fence fence = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoBindMemoryKHR; + const void * pNext = {}; + uint32_t memoryBindIndex = {}; + VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; + VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {}; + VULKAN_HPP_NAMESPACE::DeviceSize memorySize = {}; }; - static_assert( sizeof( FenceGetWin32HandleInfoKHR ) == sizeof( VkFenceGetWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + static_assert( sizeof( VideoBindMemoryKHR ) == sizeof( VkVideoBindMemoryKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct FilterCubicImageViewImageFormatPropertiesEXT + template <> + struct CppType { - FilterCubicImageViewImageFormatPropertiesEXT( VULKAN_HPP_NAMESPACE::Bool32 filterCubic_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax_ = {} ) VULKAN_HPP_NOEXCEPT - : filterCubic( filterCubic_ ) - , filterCubicMinmax( filterCubicMinmax_ ) - {} + using Type = VideoBindMemoryKHR; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT & operator=( VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT ) - offsetof( FilterCubicImageViewImageFormatPropertiesEXT, pNext ) ); - return *this; - } + class DeferredOperationKHR + { + public: + using CType = VkDeferredOperationKHR; - FilterCubicImageViewImageFormatPropertiesEXT( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + 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: + VULKAN_HPP_CONSTEXPR DeferredOperationKHR() = default; + VULKAN_HPP_CONSTEXPR DeferredOperationKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT DeferredOperationKHR( VkDeferredOperationKHR deferredOperationKHR ) VULKAN_HPP_NOEXCEPT + : m_deferredOperationKHR( deferredOperationKHR ) + {} - FilterCubicImageViewImageFormatPropertiesEXT& operator=( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + DeferredOperationKHR & operator=( VkDeferredOperationKHR deferredOperationKHR ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + m_deferredOperationKHR = deferredOperationKHR; return *this; } +#endif - operator VkFilterCubicImageViewImageFormatPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT + DeferredOperationKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + m_deferredOperationKHR = {}; + return *this; } - operator VkFilterCubicImageViewImageFormatPropertiesEXT &() VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DeferredOperationKHR const & ) const = default; +#else + bool operator==( DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_deferredOperationKHR == rhs.m_deferredOperationKHR; } - bool operator==( FilterCubicImageViewImageFormatPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( filterCubic == rhs.filterCubic ) - && ( filterCubicMinmax == rhs.filterCubicMinmax ); + return m_deferredOperationKHR != rhs.m_deferredOperationKHR; } - bool operator!=( FilterCubicImageViewImageFormatPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator<( DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_deferredOperationKHR < rhs.m_deferredOperationKHR; } +#endif - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 filterCubic = {}; - VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax = {}; - }; - static_assert( sizeof( FilterCubicImageViewImageFormatPropertiesEXT ) == sizeof( VkFilterCubicImageViewImageFormatPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct FormatProperties - { - FormatProperties( VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures_ = {}, - VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures_ = {}, - VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures_ = {} ) VULKAN_HPP_NOEXCEPT - : linearTilingFeatures( linearTilingFeatures_ ) - , optimalTilingFeatures( optimalTilingFeatures_ ) - , bufferFeatures( bufferFeatures_ ) - {} - - FormatProperties( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDeferredOperationKHR() const VULKAN_HPP_NOEXCEPT { - *this = rhs; + return m_deferredOperationKHR; } - FormatProperties& operator=( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return m_deferredOperationKHR != VK_NULL_HANDLE; } - operator VkFormatProperties const&() const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_deferredOperationKHR == VK_NULL_HANDLE; } - operator VkFormatProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + private: + VkDeferredOperationKHR m_deferredOperationKHR = {}; + }; + static_assert( sizeof( VULKAN_HPP_NAMESPACE::DeferredOperationKHR ) == sizeof( VkDeferredOperationKHR ), + "handle and wrapper have different size!" ); - bool operator==( FormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( linearTilingFeatures == rhs.linearTilingFeatures ) - && ( optimalTilingFeatures == rhs.optimalTilingFeatures ) - && ( bufferFeatures == rhs.bufferFeatures ); - } + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type + { + using type = VULKAN_HPP_NAMESPACE::DeferredOperationKHR; + }; - bool operator!=( FormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::DeferredOperationKHR; + }; - public: - VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures = {}; - VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures = {}; - VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures = {}; + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; }; - static_assert( sizeof( FormatProperties ) == sizeof( VkFormatProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct FormatProperties2 + class PipelineCache { - FormatProperties2( VULKAN_HPP_NAMESPACE::FormatProperties formatProperties_ = {} ) VULKAN_HPP_NOEXCEPT - : formatProperties( formatProperties_ ) + 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: + VULKAN_HPP_CONSTEXPR PipelineCache() = default; + VULKAN_HPP_CONSTEXPR PipelineCache( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT PipelineCache( VkPipelineCache pipelineCache ) VULKAN_HPP_NOEXCEPT + : m_pipelineCache( pipelineCache ) {} - VULKAN_HPP_NAMESPACE::FormatProperties2 & operator=( VULKAN_HPP_NAMESPACE::FormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + PipelineCache & operator=( VkPipelineCache pipelineCache ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::FormatProperties2 ) - offsetof( FormatProperties2, pNext ) ); + m_pipelineCache = pipelineCache; return *this; } +#endif - FormatProperties2( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT + PipelineCache & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + m_pipelineCache = {}; + return *this; } - FormatProperties2& operator=( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineCache const & ) const = default; +#else + bool operator==( PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return m_pipelineCache == rhs.m_pipelineCache; } - operator VkFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT + bool operator!=( PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_pipelineCache != rhs.m_pipelineCache; } - operator VkFormatProperties2 &() VULKAN_HPP_NOEXCEPT + bool operator<( PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_pipelineCache < rhs.m_pipelineCache; + } +#endif + + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipelineCache() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_pipelineCache; } - bool operator==( FormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( formatProperties == rhs.formatProperties ); + return m_pipelineCache != VK_NULL_HANDLE; } - bool operator!=( FormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_pipelineCache == VK_NULL_HANDLE; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFormatProperties2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::FormatProperties formatProperties = {}; + private: + VkPipelineCache m_pipelineCache = {}; }; - static_assert( sizeof( FormatProperties2 ) == sizeof( VkFormatProperties2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::PipelineCache ) == sizeof( VkPipelineCache ), + "handle and wrapper have different size!" ); - struct FramebufferAttachmentImageInfo + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - VULKAN_HPP_CONSTEXPR FramebufferAttachmentImageInfo( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, - uint32_t width_ = {}, - uint32_t height_ = {}, - uint32_t layerCount_ = {}, - uint32_t viewFormatCount_ = {}, - const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , usage( usage_ ) - , width( width_ ) - , height( height_ ) - , layerCount( layerCount_ ) - , viewFormatCount( viewFormatCount_ ) - , pViewFormats( pViewFormats_ ) - {} + using type = VULKAN_HPP_NAMESPACE::PipelineCache; + }; - VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo & operator=( VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo ) - offsetof( FramebufferAttachmentImageInfo, pNext ) ); - return *this; - } + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::PipelineCache; + }; - FramebufferAttachmentImageInfo( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::PipelineCache; + }; - FramebufferAttachmentImageInfo& operator=( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; - FramebufferAttachmentImageInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + struct EventCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eEventCreateInfo; - FramebufferAttachmentImageInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR EventCreateInfo( VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + {} - FramebufferAttachmentImageInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT - { - usage = usage_; - return *this; - } + VULKAN_HPP_CONSTEXPR EventCreateInfo( EventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - FramebufferAttachmentImageInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT - { - width = width_; - return *this; - } + EventCreateInfo( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : EventCreateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - FramebufferAttachmentImageInfo & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT - { - height = height_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 EventCreateInfo & operator=( EventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - FramebufferAttachmentImageInfo & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT + EventCreateInfo & operator=( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - layerCount = layerCount_; + *this = *reinterpret_cast( &rhs ); return *this; } - FramebufferAttachmentImageInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT + EventCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - viewFormatCount = viewFormatCount_; + pNext = pNext_; return *this; } - FramebufferAttachmentImageInfo & setPViewFormats( const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ ) VULKAN_HPP_NOEXCEPT + EventCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - pViewFormats = pViewFormats_; + flags = flags_; return *this; } - operator VkFramebufferAttachmentImageInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkEventCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkFramebufferAttachmentImageInfo &() VULKAN_HPP_NOEXCEPT + operator VkEventCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( FramebufferAttachmentImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( EventCreateInfo const & ) const = default; +#else + bool operator==( EventCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( usage == rhs.usage ) - && ( width == rhs.width ) - && ( height == rhs.height ) - && ( layerCount == rhs.layerCount ) - && ( viewFormatCount == rhs.viewFormatCount ) - && ( pViewFormats == rhs.pViewFormats ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ); } - bool operator!=( FramebufferAttachmentImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( EventCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentImageInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {}; - uint32_t width = {}; - uint32_t height = {}; - uint32_t layerCount = {}; - uint32_t viewFormatCount = {}; - const VULKAN_HPP_NAMESPACE::Format* pViewFormats = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eEventCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::EventCreateFlags flags = {}; }; - static_assert( sizeof( FramebufferAttachmentImageInfo ) == sizeof( VkFramebufferAttachmentImageInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( EventCreateInfo ) == sizeof( VkEventCreateInfo ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct FramebufferAttachmentsCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR FramebufferAttachmentsCreateInfo( uint32_t attachmentImageInfoCount_ = {}, - const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos_ = {} ) VULKAN_HPP_NOEXCEPT - : attachmentImageInfoCount( attachmentImageInfoCount_ ) - , pAttachmentImageInfos( pAttachmentImageInfos_ ) + using Type = EventCreateInfo; + }; + + struct FenceCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR FenceCreateInfo( VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) {} - VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo & operator=( VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo ) - offsetof( FramebufferAttachmentsCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR FenceCreateInfo( FenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - FramebufferAttachmentsCreateInfo( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + FenceCreateInfo( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : FenceCreateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - FramebufferAttachmentsCreateInfo& operator=( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 FenceCreateInfo & operator=( FenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - FramebufferAttachmentsCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + FenceCreateInfo & operator=( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - FramebufferAttachmentsCreateInfo & setAttachmentImageInfoCount( uint32_t attachmentImageInfoCount_ ) VULKAN_HPP_NOEXCEPT + FenceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - attachmentImageInfoCount = attachmentImageInfoCount_; + pNext = pNext_; return *this; } - FramebufferAttachmentsCreateInfo & setPAttachmentImageInfos( const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos_ ) VULKAN_HPP_NOEXCEPT + FenceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - pAttachmentImageInfos = pAttachmentImageInfos_; + flags = flags_; return *this; } - operator VkFramebufferAttachmentsCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkFenceCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkFramebufferAttachmentsCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkFenceCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( FramebufferAttachmentsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( FenceCreateInfo const & ) const = default; +#else + bool operator==( FenceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( attachmentImageInfoCount == rhs.attachmentImageInfoCount ) - && ( pAttachmentImageInfos == rhs.pAttachmentImageInfos ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ); } - bool operator!=( FramebufferAttachmentsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( FenceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentsCreateInfo; - const void* pNext = {}; - uint32_t attachmentImageInfoCount = {}; - const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::FenceCreateFlags flags = {}; + }; + static_assert( sizeof( FenceCreateInfo ) == sizeof( VkFenceCreateInfo ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = FenceCreateInfo; }; - static_assert( sizeof( FramebufferAttachmentsCreateInfo ) == sizeof( VkFramebufferAttachmentsCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); struct FramebufferCreateInfo { - VULKAN_HPP_CONSTEXPR FramebufferCreateInfo( VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, - uint32_t attachmentCount_ = {}, - const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ = {}, - uint32_t width_ = {}, - uint32_t height_ = {}, + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR FramebufferCreateInfo( VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, + uint32_t attachmentCount_ = {}, + const VULKAN_HPP_NAMESPACE::ImageView * pAttachments_ = {}, + uint32_t width_ = {}, + uint32_t height_ = {}, uint32_t layers_ = {} ) VULKAN_HPP_NOEXCEPT : flags( flags_ ) , renderPass( renderPass_ ) @@ -33830,24 +44452,41 @@ namespace VULKAN_HPP_NAMESPACE , layers( layers_ ) {} - VULKAN_HPP_NAMESPACE::FramebufferCreateInfo & operator=( VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::FramebufferCreateInfo ) - offsetof( FramebufferCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR FramebufferCreateInfo( FramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; FramebufferCreateInfo( VkFramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + : FramebufferCreateInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + FramebufferCreateInfo( + VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_, + VULKAN_HPP_NAMESPACE::RenderPass renderPass_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_, + uint32_t width_ = {}, + uint32_t height_ = {}, + uint32_t layers_ = {} ) + : flags( flags_ ) + , renderPass( renderPass_ ) + , attachmentCount( static_cast( attachments_.size() ) ) + , pAttachments( attachments_.data() ) + , width( width_ ) + , height( height_ ) + , layers( layers_ ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 FramebufferCreateInfo & + operator=( FramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - FramebufferCreateInfo& operator=( VkFramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + FramebufferCreateInfo & operator=( VkFramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - FramebufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + FramebufferCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; @@ -33871,12 +44510,23 @@ namespace VULKAN_HPP_NAMESPACE return *this; } - FramebufferCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ ) VULKAN_HPP_NOEXCEPT + FramebufferCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView * pAttachments_ ) VULKAN_HPP_NOEXCEPT { pAttachments = pAttachments_; return *this; } +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + FramebufferCreateInfo & setAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_ ) + VULKAN_HPP_NOEXCEPT + { + attachmentCount = static_cast( attachments_.size() ); + pAttachments = attachments_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + FramebufferCreateInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT { width = width_; @@ -33895,131 +44545,81 @@ namespace VULKAN_HPP_NAMESPACE return *this; } - operator VkFramebufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkFramebufferCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } operator VkFramebufferCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( FramebufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( FramebufferCreateInfo const & ) const = default; +#else + bool operator==( FramebufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( renderPass == rhs.renderPass ) - && ( attachmentCount == rhs.attachmentCount ) - && ( pAttachments == rhs.pAttachments ) - && ( width == rhs.width ) - && ( height == rhs.height ) - && ( layers == rhs.layers ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( renderPass == rhs.renderPass ) && ( attachmentCount == rhs.attachmentCount ) && + ( pAttachments == rhs.pAttachments ) && ( width == rhs.width ) && ( height == rhs.height ) && + ( layers == rhs.layers ); } - bool operator!=( FramebufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( FramebufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::RenderPass renderPass = {}; - uint32_t attachmentCount = {}; - const VULKAN_HPP_NAMESPACE::ImageView* pAttachments = {}; - uint32_t width = {}; - uint32_t height = {}; - uint32_t layers = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags = {}; + VULKAN_HPP_NAMESPACE::RenderPass renderPass = {}; + uint32_t attachmentCount = {}; + const VULKAN_HPP_NAMESPACE::ImageView * pAttachments = {}; + uint32_t width = {}; + uint32_t height = {}; + uint32_t layers = {}; }; - static_assert( sizeof( FramebufferCreateInfo ) == sizeof( VkFramebufferCreateInfo ), "struct and wrapper have different size!" ); + static_assert( sizeof( FramebufferCreateInfo ) == sizeof( VkFramebufferCreateInfo ), + "struct and wrapper have different size!" ); static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct FramebufferMixedSamplesCombinationNV + template <> + struct CppType { - FramebufferMixedSamplesCombinationNV( VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge, - VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, - VULKAN_HPP_NAMESPACE::SampleCountFlags depthStencilSamples_ = {}, - VULKAN_HPP_NAMESPACE::SampleCountFlags colorSamples_ = {} ) VULKAN_HPP_NOEXCEPT - : coverageReductionMode( coverageReductionMode_ ) - , rasterizationSamples( rasterizationSamples_ ) - , depthStencilSamples( depthStencilSamples_ ) - , colorSamples( colorSamples_ ) - {} - - VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV & operator=( VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV ) - offsetof( FramebufferMixedSamplesCombinationNV, pNext ) ); - return *this; - } - - FramebufferMixedSamplesCombinationNV( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - - FramebufferMixedSamplesCombinationNV& operator=( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } - - operator VkFramebufferMixedSamplesCombinationNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkFramebufferMixedSamplesCombinationNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( FramebufferMixedSamplesCombinationNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( coverageReductionMode == rhs.coverageReductionMode ) - && ( rasterizationSamples == rhs.rasterizationSamples ) - && ( depthStencilSamples == rhs.depthStencilSamples ) - && ( colorSamples == rhs.colorSamples ); - } - - bool operator!=( FramebufferMixedSamplesCombinationNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferMixedSamplesCombinationNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - VULKAN_HPP_NAMESPACE::SampleCountFlags depthStencilSamples = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags colorSamples = {}; + using Type = FramebufferCreateInfo; }; - static_assert( sizeof( FramebufferMixedSamplesCombinationNV ) == sizeof( VkFramebufferMixedSamplesCombinationNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); struct VertexInputBindingDescription { - VULKAN_HPP_CONSTEXPR VertexInputBindingDescription( uint32_t binding_ = {}, - uint32_t stride_ = {}, - VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + VertexInputBindingDescription( uint32_t binding_ = {}, + uint32_t stride_ = {}, + VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ = + VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex ) VULKAN_HPP_NOEXCEPT : binding( binding_ ) , stride( stride_ ) , inputRate( inputRate_ ) {} + VULKAN_HPP_CONSTEXPR + VertexInputBindingDescription( VertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default; + VertexInputBindingDescription( VkVertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + : VertexInputBindingDescription( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VertexInputBindingDescription& operator=( VkVertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDescription & + operator=( VertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VertexInputBindingDescription & operator=( VkVertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } @@ -34041,56 +44641,68 @@ namespace VULKAN_HPP_NAMESPACE return *this; } - operator VkVertexInputBindingDescription const&() const VULKAN_HPP_NOEXCEPT + operator VkVertexInputBindingDescription const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } operator VkVertexInputBindingDescription &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( VertexInputBindingDescription const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VertexInputBindingDescription const & ) const = default; +#else + bool operator==( VertexInputBindingDescription const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( binding == rhs.binding ) - && ( stride == rhs.stride ) - && ( inputRate == rhs.inputRate ); + return ( binding == rhs.binding ) && ( stride == rhs.stride ) && ( inputRate == rhs.inputRate ); } - bool operator!=( VertexInputBindingDescription const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( VertexInputBindingDescription const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint32_t binding = {}; - uint32_t stride = {}; + uint32_t binding = {}; + uint32_t stride = {}; VULKAN_HPP_NAMESPACE::VertexInputRate inputRate = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex; }; - static_assert( sizeof( VertexInputBindingDescription ) == sizeof( VkVertexInputBindingDescription ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VertexInputBindingDescription ) == sizeof( VkVertexInputBindingDescription ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); struct VertexInputAttributeDescription { - VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription( uint32_t location_ = {}, - uint32_t binding_ = {}, - VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, - uint32_t offset_ = {} ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + VertexInputAttributeDescription( uint32_t location_ = {}, + uint32_t binding_ = {}, + VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, + uint32_t offset_ = {} ) VULKAN_HPP_NOEXCEPT : location( location_ ) , binding( binding_ ) , format( format_ ) , offset( offset_ ) {} + VULKAN_HPP_CONSTEXPR + VertexInputAttributeDescription( VertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default; + VertexInputAttributeDescription( VkVertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + : VertexInputAttributeDescription( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VertexInputAttributeDescription& operator=( VkVertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 VertexInputAttributeDescription & + operator=( VertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VertexInputAttributeDescription & operator=( VkVertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } @@ -34118,45 +44730,56 @@ namespace VULKAN_HPP_NAMESPACE return *this; } - operator VkVertexInputAttributeDescription const&() const VULKAN_HPP_NOEXCEPT + operator VkVertexInputAttributeDescription const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } operator VkVertexInputAttributeDescription &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( VertexInputAttributeDescription const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VertexInputAttributeDescription const & ) const = default; +#else + bool operator==( VertexInputAttributeDescription const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( location == rhs.location ) - && ( binding == rhs.binding ) - && ( format == rhs.format ) - && ( offset == rhs.offset ); + return ( location == rhs.location ) && ( binding == rhs.binding ) && ( format == rhs.format ) && + ( offset == rhs.offset ); } - bool operator!=( VertexInputAttributeDescription const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( VertexInputAttributeDescription const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint32_t location = {}; - uint32_t binding = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - uint32_t offset = {}; + uint32_t location = {}; + uint32_t binding = {}; + VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; + uint32_t offset = {}; }; - static_assert( sizeof( VertexInputAttributeDescription ) == sizeof( VkVertexInputAttributeDescription ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VertexInputAttributeDescription ) == sizeof( VkVertexInputAttributeDescription ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); struct PipelineVertexInputStateCreateInfo { - VULKAN_HPP_CONSTEXPR PipelineVertexInputStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_ = {}, - uint32_t vertexBindingDescriptionCount_ = {}, - const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription* pVertexBindingDescriptions_ = {}, - uint32_t vertexAttributeDescriptionCount_ = {}, - const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription* pVertexAttributeDescriptions_ = {} ) VULKAN_HPP_NOEXCEPT + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineVertexInputStateCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineVertexInputStateCreateInfo( + VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_ = {}, + uint32_t vertexBindingDescriptionCount_ = {}, + const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription * pVertexBindingDescriptions_ = {}, + uint32_t vertexAttributeDescriptionCount_ = {}, + const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription * pVertexAttributeDescriptions_ = {} ) + VULKAN_HPP_NOEXCEPT : flags( flags_ ) , vertexBindingDescriptionCount( vertexBindingDescriptionCount_ ) , pVertexBindingDescriptions( pVertexBindingDescriptions_ ) @@ -34164,214 +44787,294 @@ namespace VULKAN_HPP_NAMESPACE , pVertexAttributeDescriptions( pVertexAttributeDescriptions_ ) {} - VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo & operator=( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo ) - offsetof( PipelineVertexInputStateCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PipelineVertexInputStateCreateInfo( PipelineVertexInputStateCreateInfo const & rhs ) + VULKAN_HPP_NOEXCEPT = default; PipelineVertexInputStateCreateInfo( VkPipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + : PipelineVertexInputStateCreateInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineVertexInputStateCreateInfo( + VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + vertexBindingDescriptions_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + vertexAttributeDescriptions_ = {} ) + : flags( flags_ ) + , vertexBindingDescriptionCount( static_cast( vertexBindingDescriptions_.size() ) ) + , pVertexBindingDescriptions( vertexBindingDescriptions_.data() ) + , vertexAttributeDescriptionCount( static_cast( vertexAttributeDescriptions_.size() ) ) + , pVertexAttributeDescriptions( vertexAttributeDescriptions_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputStateCreateInfo & + operator=( PipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineVertexInputStateCreateInfo& operator=( VkPipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PipelineVertexInputStateCreateInfo & + operator=( VkPipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineVertexInputStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PipelineVertexInputStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PipelineVertexInputStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + PipelineVertexInputStateCreateInfo & + setFlags( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { flags = flags_; return *this; } - PipelineVertexInputStateCreateInfo & setVertexBindingDescriptionCount( uint32_t vertexBindingDescriptionCount_ ) VULKAN_HPP_NOEXCEPT + PipelineVertexInputStateCreateInfo & + setVertexBindingDescriptionCount( uint32_t vertexBindingDescriptionCount_ ) VULKAN_HPP_NOEXCEPT { vertexBindingDescriptionCount = vertexBindingDescriptionCount_; return *this; } - PipelineVertexInputStateCreateInfo & setPVertexBindingDescriptions( const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription* pVertexBindingDescriptions_ ) VULKAN_HPP_NOEXCEPT + PipelineVertexInputStateCreateInfo & setPVertexBindingDescriptions( + const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription * pVertexBindingDescriptions_ ) VULKAN_HPP_NOEXCEPT { pVertexBindingDescriptions = pVertexBindingDescriptions_; return *this; } - PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptionCount( uint32_t vertexAttributeDescriptionCount_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineVertexInputStateCreateInfo & setVertexBindingDescriptions( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + vertexBindingDescriptions_ ) VULKAN_HPP_NOEXCEPT + { + vertexBindingDescriptionCount = static_cast( vertexBindingDescriptions_.size() ); + pVertexBindingDescriptions = vertexBindingDescriptions_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + PipelineVertexInputStateCreateInfo & + setVertexAttributeDescriptionCount( uint32_t vertexAttributeDescriptionCount_ ) VULKAN_HPP_NOEXCEPT { vertexAttributeDescriptionCount = vertexAttributeDescriptionCount_; return *this; } - PipelineVertexInputStateCreateInfo & setPVertexAttributeDescriptions( const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription* pVertexAttributeDescriptions_ ) VULKAN_HPP_NOEXCEPT + PipelineVertexInputStateCreateInfo & setPVertexAttributeDescriptions( + const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription * pVertexAttributeDescriptions_ ) VULKAN_HPP_NOEXCEPT { pVertexAttributeDescriptions = pVertexAttributeDescriptions_; return *this; } - operator VkPipelineVertexInputStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptions( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + vertexAttributeDescriptions_ ) VULKAN_HPP_NOEXCEPT + { + vertexAttributeDescriptionCount = static_cast( vertexAttributeDescriptions_.size() ); + pVertexAttributeDescriptions = vertexAttributeDescriptions_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkPipelineVertexInputStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } operator VkPipelineVertexInputStateCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineVertexInputStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineVertexInputStateCreateInfo const & ) const = default; +#else + bool operator==( PipelineVertexInputStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( vertexBindingDescriptionCount == rhs.vertexBindingDescriptionCount ) - && ( pVertexBindingDescriptions == rhs.pVertexBindingDescriptions ) - && ( vertexAttributeDescriptionCount == rhs.vertexAttributeDescriptionCount ) - && ( pVertexAttributeDescriptions == rhs.pVertexAttributeDescriptions ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( vertexBindingDescriptionCount == rhs.vertexBindingDescriptionCount ) && + ( pVertexBindingDescriptions == rhs.pVertexBindingDescriptions ) && + ( vertexAttributeDescriptionCount == rhs.vertexAttributeDescriptionCount ) && + ( pVertexAttributeDescriptions == rhs.pVertexAttributeDescriptions ); } - bool operator!=( PipelineVertexInputStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PipelineVertexInputStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags = {}; - uint32_t vertexBindingDescriptionCount = {}; - const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription* pVertexBindingDescriptions = {}; - uint32_t vertexAttributeDescriptionCount = {}; - const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription* pVertexAttributeDescriptions = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputStateCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags = {}; + uint32_t vertexBindingDescriptionCount = {}; + const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription * pVertexBindingDescriptions = {}; + uint32_t vertexAttributeDescriptionCount = {}; + const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription * pVertexAttributeDescriptions = {}; + }; + static_assert( sizeof( PipelineVertexInputStateCreateInfo ) == sizeof( VkPipelineVertexInputStateCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineVertexInputStateCreateInfo; }; - static_assert( sizeof( PipelineVertexInputStateCreateInfo ) == sizeof( VkPipelineVertexInputStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); struct PipelineInputAssemblyStateCreateInfo { - VULKAN_HPP_CONSTEXPR PipelineInputAssemblyStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::PrimitiveTopology topology_ = VULKAN_HPP_NAMESPACE::PrimitiveTopology::ePointList, - VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ = {} ) VULKAN_HPP_NOEXCEPT + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineInputAssemblyStateCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineInputAssemblyStateCreateInfo( + VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::PrimitiveTopology topology_ = VULKAN_HPP_NAMESPACE::PrimitiveTopology::ePointList, + VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ = {} ) VULKAN_HPP_NOEXCEPT : flags( flags_ ) , topology( topology_ ) , primitiveRestartEnable( primitiveRestartEnable_ ) {} - VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo & operator=( VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo ) - offsetof( PipelineInputAssemblyStateCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PipelineInputAssemblyStateCreateInfo( PipelineInputAssemblyStateCreateInfo const & rhs ) + VULKAN_HPP_NOEXCEPT = default; PipelineInputAssemblyStateCreateInfo( VkPipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + : PipelineInputAssemblyStateCreateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineInputAssemblyStateCreateInfo & + operator=( PipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineInputAssemblyStateCreateInfo& operator=( VkPipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PipelineInputAssemblyStateCreateInfo & + operator=( VkPipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineInputAssemblyStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PipelineInputAssemblyStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PipelineInputAssemblyStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + PipelineInputAssemblyStateCreateInfo & + setFlags( VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { flags = flags_; return *this; } - PipelineInputAssemblyStateCreateInfo & setTopology( VULKAN_HPP_NAMESPACE::PrimitiveTopology topology_ ) VULKAN_HPP_NOEXCEPT + PipelineInputAssemblyStateCreateInfo & + setTopology( VULKAN_HPP_NAMESPACE::PrimitiveTopology topology_ ) VULKAN_HPP_NOEXCEPT { topology = topology_; return *this; } - PipelineInputAssemblyStateCreateInfo & setPrimitiveRestartEnable( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ ) VULKAN_HPP_NOEXCEPT + PipelineInputAssemblyStateCreateInfo & + setPrimitiveRestartEnable( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ ) VULKAN_HPP_NOEXCEPT { primitiveRestartEnable = primitiveRestartEnable_; return *this; } - operator VkPipelineInputAssemblyStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPipelineInputAssemblyStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } operator VkPipelineInputAssemblyStateCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineInputAssemblyStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineInputAssemblyStateCreateInfo const & ) const = default; +#else + bool operator==( PipelineInputAssemblyStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( topology == rhs.topology ) - && ( primitiveRestartEnable == rhs.primitiveRestartEnable ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( topology == rhs.topology ) && ( primitiveRestartEnable == rhs.primitiveRestartEnable ); } - bool operator!=( PipelineInputAssemblyStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PipelineInputAssemblyStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInputAssemblyStateCreateInfo; - const void* pNext = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInputAssemblyStateCreateInfo; + const void * pNext = {}; VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags = {}; VULKAN_HPP_NAMESPACE::PrimitiveTopology topology = VULKAN_HPP_NAMESPACE::PrimitiveTopology::ePointList; - VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable = {}; + VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable = {}; + }; + static_assert( sizeof( PipelineInputAssemblyStateCreateInfo ) == sizeof( VkPipelineInputAssemblyStateCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineInputAssemblyStateCreateInfo; }; - static_assert( sizeof( PipelineInputAssemblyStateCreateInfo ) == sizeof( VkPipelineInputAssemblyStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); struct PipelineTessellationStateCreateInfo { - VULKAN_HPP_CONSTEXPR PipelineTessellationStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ = {}, - uint32_t patchControlPoints_ = {} ) VULKAN_HPP_NOEXCEPT + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineTessellationStateCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PipelineTessellationStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ = {}, + uint32_t patchControlPoints_ = {} ) VULKAN_HPP_NOEXCEPT : flags( flags_ ) , patchControlPoints( patchControlPoints_ ) {} - VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo & operator=( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo ) - offsetof( PipelineTessellationStateCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PipelineTessellationStateCreateInfo( PipelineTessellationStateCreateInfo const & rhs ) + VULKAN_HPP_NOEXCEPT = default; PipelineTessellationStateCreateInfo( VkPipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + : PipelineTessellationStateCreateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineTessellationStateCreateInfo & + operator=( PipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineTessellationStateCreateInfo& operator=( VkPipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PipelineTessellationStateCreateInfo & + operator=( VkPipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineTessellationStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PipelineTessellationStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PipelineTessellationStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + PipelineTessellationStateCreateInfo & + setFlags( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { flags = flags_; return *this; @@ -34383,255 +45086,223 @@ namespace VULKAN_HPP_NAMESPACE return *this; } - operator VkPipelineTessellationStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPipelineTessellationStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } operator VkPipelineTessellationStateCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineTessellationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineTessellationStateCreateInfo const & ) const = default; +#else + bool operator==( PipelineTessellationStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( patchControlPoints == rhs.patchControlPoints ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( patchControlPoints == rhs.patchControlPoints ); } - bool operator!=( PipelineTessellationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PipelineTessellationStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags = {}; - uint32_t patchControlPoints = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationStateCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags = {}; + uint32_t patchControlPoints = {}; }; - static_assert( sizeof( PipelineTessellationStateCreateInfo ) == sizeof( VkPipelineTessellationStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PipelineTessellationStateCreateInfo ) == sizeof( VkPipelineTessellationStateCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct Viewport + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR Viewport( float x_ = {}, - float y_ = {}, - float width_ = {}, - float height_ = {}, - float minDepth_ = {}, - float maxDepth_ = {} ) VULKAN_HPP_NOEXCEPT - : x( x_ ) - , y( y_ ) - , width( width_ ) - , height( height_ ) - , minDepth( minDepth_ ) - , maxDepth( maxDepth_ ) + using Type = PipelineTessellationStateCreateInfo; + }; + + struct PipelineViewportStateCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportStateCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PipelineViewportStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_ = {}, + uint32_t viewportCount_ = {}, + const VULKAN_HPP_NAMESPACE::Viewport * pViewports_ = {}, + uint32_t scissorCount_ = {}, + const VULKAN_HPP_NAMESPACE::Rect2D * pScissors_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , viewportCount( viewportCount_ ) + , pViewports( pViewports_ ) + , scissorCount( scissorCount_ ) + , pScissors( pScissors_ ) + {} + + VULKAN_HPP_CONSTEXPR + PipelineViewportStateCreateInfo( PipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineViewportStateCreateInfo( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : PipelineViewportStateCreateInfo( *reinterpret_cast( &rhs ) ) {} - Viewport( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineViewportStateCreateInfo( + VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewports_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & scissors_ = {} ) + : flags( flags_ ) + , viewportCount( static_cast( viewports_.size() ) ) + , pViewports( viewports_.data() ) + , scissorCount( static_cast( scissors_.size() ) ) + , pScissors( scissors_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineViewportStateCreateInfo & + operator=( PipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineViewportStateCreateInfo & operator=( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - Viewport& operator=( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT + PipelineViewportStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - Viewport & setX( float x_ ) VULKAN_HPP_NOEXCEPT + PipelineViewportStateCreateInfo & + setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - x = x_; + flags = flags_; return *this; } - Viewport & setY( float y_ ) VULKAN_HPP_NOEXCEPT + PipelineViewportStateCreateInfo & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT { - y = y_; + viewportCount = viewportCount_; return *this; } - Viewport & setWidth( float width_ ) VULKAN_HPP_NOEXCEPT + PipelineViewportStateCreateInfo & + setPViewports( const VULKAN_HPP_NAMESPACE::Viewport * pViewports_ ) VULKAN_HPP_NOEXCEPT { - width = width_; + pViewports = pViewports_; return *this; } - Viewport & setHeight( float height_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineViewportStateCreateInfo & setViewports( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewports_ ) + VULKAN_HPP_NOEXCEPT { - height = height_; + viewportCount = static_cast( viewports_.size() ); + pViewports = viewports_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - Viewport & setMinDepth( float minDepth_ ) VULKAN_HPP_NOEXCEPT + PipelineViewportStateCreateInfo & setScissorCount( uint32_t scissorCount_ ) VULKAN_HPP_NOEXCEPT { - minDepth = minDepth_; + scissorCount = scissorCount_; return *this; } - Viewport & setMaxDepth( float maxDepth_ ) VULKAN_HPP_NOEXCEPT + PipelineViewportStateCreateInfo & + setPScissors( const VULKAN_HPP_NAMESPACE::Rect2D * pScissors_ ) VULKAN_HPP_NOEXCEPT { - maxDepth = maxDepth_; + pScissors = pScissors_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineViewportStateCreateInfo & + setScissors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & scissors_ ) + VULKAN_HPP_NOEXCEPT + { + scissorCount = static_cast( scissors_.size() ); + pScissors = scissors_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkViewport const&() const VULKAN_HPP_NOEXCEPT + operator VkPipelineViewportStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkViewport &() VULKAN_HPP_NOEXCEPT + operator VkPipelineViewportStateCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( Viewport const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineViewportStateCreateInfo const & ) const = default; +#else + bool operator==( PipelineViewportStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( x == rhs.x ) - && ( y == rhs.y ) - && ( width == rhs.width ) - && ( height == rhs.height ) - && ( minDepth == rhs.minDepth ) - && ( maxDepth == rhs.maxDepth ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( viewportCount == rhs.viewportCount ) && ( pViewports == rhs.pViewports ) && + ( scissorCount == rhs.scissorCount ) && ( pScissors == rhs.pScissors ); } - bool operator!=( Viewport const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PipelineViewportStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - float x = {}; - float y = {}; - float width = {}; - float height = {}; - float minDepth = {}; - float maxDepth = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportStateCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags = {}; + uint32_t viewportCount = {}; + const VULKAN_HPP_NAMESPACE::Viewport * pViewports = {}; + uint32_t scissorCount = {}; + const VULKAN_HPP_NAMESPACE::Rect2D * pScissors = {}; }; - static_assert( sizeof( Viewport ) == sizeof( VkViewport ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PipelineViewportStateCreateInfo ) == sizeof( VkPipelineViewportStateCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineViewportStateCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineViewportStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_ = {}, - uint32_t viewportCount_ = {}, - const VULKAN_HPP_NAMESPACE::Viewport* pViewports_ = {}, - uint32_t scissorCount_ = {}, - const VULKAN_HPP_NAMESPACE::Rect2D* pScissors_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , viewportCount( viewportCount_ ) - , pViewports( pViewports_ ) - , scissorCount( scissorCount_ ) - , pScissors( pScissors_ ) - {} - - VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo & operator=( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo ) - offsetof( PipelineViewportStateCreateInfo, pNext ) ); - return *this; - } - - PipelineViewportStateCreateInfo( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - - PipelineViewportStateCreateInfo& operator=( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } - - PipelineViewportStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineViewportStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineViewportStateCreateInfo & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT - { - viewportCount = viewportCount_; - return *this; - } - - PipelineViewportStateCreateInfo & setPViewports( const VULKAN_HPP_NAMESPACE::Viewport* pViewports_ ) VULKAN_HPP_NOEXCEPT - { - pViewports = pViewports_; - return *this; - } - - PipelineViewportStateCreateInfo & setScissorCount( uint32_t scissorCount_ ) VULKAN_HPP_NOEXCEPT - { - scissorCount = scissorCount_; - return *this; - } - - PipelineViewportStateCreateInfo & setPScissors( const VULKAN_HPP_NAMESPACE::Rect2D* pScissors_ ) VULKAN_HPP_NOEXCEPT - { - pScissors = pScissors_; - return *this; - } - - operator VkPipelineViewportStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineViewportStateCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( PipelineViewportStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( viewportCount == rhs.viewportCount ) - && ( pViewports == rhs.pViewports ) - && ( scissorCount == rhs.scissorCount ) - && ( pScissors == rhs.pScissors ); - } - - bool operator!=( PipelineViewportStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags = {}; - uint32_t viewportCount = {}; - const VULKAN_HPP_NAMESPACE::Viewport* pViewports = {}; - uint32_t scissorCount = {}; - const VULKAN_HPP_NAMESPACE::Rect2D* pScissors = {}; + using Type = PipelineViewportStateCreateInfo; }; - static_assert( sizeof( PipelineViewportStateCreateInfo ) == sizeof( VkPipelineViewportStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); struct PipelineRasterizationStateCreateInfo { - VULKAN_HPP_CONSTEXPR PipelineRasterizationStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable_ = {}, - VULKAN_HPP_NAMESPACE::PolygonMode polygonMode_ = VULKAN_HPP_NAMESPACE::PolygonMode::eFill, - VULKAN_HPP_NAMESPACE::CullModeFlags cullMode_ = {}, - VULKAN_HPP_NAMESPACE::FrontFace frontFace_ = VULKAN_HPP_NAMESPACE::FrontFace::eCounterClockwise, - VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable_ = {}, - float depthBiasConstantFactor_ = {}, - float depthBiasClamp_ = {}, - float depthBiasSlopeFactor_ = {}, - float lineWidth_ = {} ) VULKAN_HPP_NOEXCEPT + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineRasterizationStateCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineRasterizationStateCreateInfo( + VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable_ = {}, + VULKAN_HPP_NAMESPACE::PolygonMode polygonMode_ = VULKAN_HPP_NAMESPACE::PolygonMode::eFill, + VULKAN_HPP_NAMESPACE::CullModeFlags cullMode_ = {}, + VULKAN_HPP_NAMESPACE::FrontFace frontFace_ = VULKAN_HPP_NAMESPACE::FrontFace::eCounterClockwise, + VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable_ = {}, + float depthBiasConstantFactor_ = {}, + float depthBiasClamp_ = {}, + float depthBiasSlopeFactor_ = {}, + float lineWidth_ = {} ) VULKAN_HPP_NOEXCEPT : flags( flags_ ) , depthClampEnable( depthClampEnable_ ) , rasterizerDiscardEnable( rasterizerDiscardEnable_ ) @@ -34645,72 +45316,81 @@ namespace VULKAN_HPP_NAMESPACE , lineWidth( lineWidth_ ) {} - VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo & operator=( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo ) - offsetof( PipelineRasterizationStateCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PipelineRasterizationStateCreateInfo( PipelineRasterizationStateCreateInfo const & rhs ) + VULKAN_HPP_NOEXCEPT = default; PipelineRasterizationStateCreateInfo( VkPipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + : PipelineRasterizationStateCreateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateCreateInfo & + operator=( PipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineRasterizationStateCreateInfo& operator=( VkPipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PipelineRasterizationStateCreateInfo & + operator=( VkPipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineRasterizationStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PipelineRasterizationStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PipelineRasterizationStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + PipelineRasterizationStateCreateInfo & + setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { flags = flags_; return *this; } - PipelineRasterizationStateCreateInfo & setDepthClampEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable_ ) VULKAN_HPP_NOEXCEPT + PipelineRasterizationStateCreateInfo & + setDepthClampEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable_ ) VULKAN_HPP_NOEXCEPT { depthClampEnable = depthClampEnable_; return *this; } - PipelineRasterizationStateCreateInfo & setRasterizerDiscardEnable( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable_ ) VULKAN_HPP_NOEXCEPT + PipelineRasterizationStateCreateInfo & + setRasterizerDiscardEnable( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable_ ) VULKAN_HPP_NOEXCEPT { rasterizerDiscardEnable = rasterizerDiscardEnable_; return *this; } - PipelineRasterizationStateCreateInfo & setPolygonMode( VULKAN_HPP_NAMESPACE::PolygonMode polygonMode_ ) VULKAN_HPP_NOEXCEPT + PipelineRasterizationStateCreateInfo & + setPolygonMode( VULKAN_HPP_NAMESPACE::PolygonMode polygonMode_ ) VULKAN_HPP_NOEXCEPT { polygonMode = polygonMode_; return *this; } - PipelineRasterizationStateCreateInfo & setCullMode( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode_ ) VULKAN_HPP_NOEXCEPT + PipelineRasterizationStateCreateInfo & + setCullMode( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode_ ) VULKAN_HPP_NOEXCEPT { cullMode = cullMode_; return *this; } - PipelineRasterizationStateCreateInfo & setFrontFace( VULKAN_HPP_NAMESPACE::FrontFace frontFace_ ) VULKAN_HPP_NOEXCEPT + PipelineRasterizationStateCreateInfo & + setFrontFace( VULKAN_HPP_NAMESPACE::FrontFace frontFace_ ) VULKAN_HPP_NOEXCEPT { frontFace = frontFace_; return *this; } - PipelineRasterizationStateCreateInfo & setDepthBiasEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable_ ) VULKAN_HPP_NOEXCEPT + PipelineRasterizationStateCreateInfo & + setDepthBiasEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable_ ) VULKAN_HPP_NOEXCEPT { depthBiasEnable = depthBiasEnable_; return *this; } - PipelineRasterizationStateCreateInfo & setDepthBiasConstantFactor( float depthBiasConstantFactor_ ) VULKAN_HPP_NOEXCEPT + PipelineRasterizationStateCreateInfo & + setDepthBiasConstantFactor( float depthBiasConstantFactor_ ) VULKAN_HPP_NOEXCEPT { depthBiasConstantFactor = depthBiasConstantFactor_; return *this; @@ -34734,65 +45414,77 @@ namespace VULKAN_HPP_NAMESPACE return *this; } - operator VkPipelineRasterizationStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPipelineRasterizationStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } operator VkPipelineRasterizationStateCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineRasterizationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineRasterizationStateCreateInfo const & ) const = default; +#else + bool operator==( PipelineRasterizationStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( depthClampEnable == rhs.depthClampEnable ) - && ( rasterizerDiscardEnable == rhs.rasterizerDiscardEnable ) - && ( polygonMode == rhs.polygonMode ) - && ( cullMode == rhs.cullMode ) - && ( frontFace == rhs.frontFace ) - && ( depthBiasEnable == rhs.depthBiasEnable ) - && ( depthBiasConstantFactor == rhs.depthBiasConstantFactor ) - && ( depthBiasClamp == rhs.depthBiasClamp ) - && ( depthBiasSlopeFactor == rhs.depthBiasSlopeFactor ) - && ( lineWidth == rhs.lineWidth ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( depthClampEnable == rhs.depthClampEnable ) && + ( rasterizerDiscardEnable == rhs.rasterizerDiscardEnable ) && ( polygonMode == rhs.polygonMode ) && + ( cullMode == rhs.cullMode ) && ( frontFace == rhs.frontFace ) && + ( depthBiasEnable == rhs.depthBiasEnable ) && ( depthBiasConstantFactor == rhs.depthBiasConstantFactor ) && + ( depthBiasClamp == rhs.depthBiasClamp ) && ( depthBiasSlopeFactor == rhs.depthBiasSlopeFactor ) && + ( lineWidth == rhs.lineWidth ); } - bool operator!=( PipelineRasterizationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PipelineRasterizationStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable = {}; - VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable = {}; - VULKAN_HPP_NAMESPACE::PolygonMode polygonMode = VULKAN_HPP_NAMESPACE::PolygonMode::eFill; - VULKAN_HPP_NAMESPACE::CullModeFlags cullMode = {}; - VULKAN_HPP_NAMESPACE::FrontFace frontFace = VULKAN_HPP_NAMESPACE::FrontFace::eCounterClockwise; - VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable = {}; - float depthBiasConstantFactor = {}; - float depthBiasClamp = {}; - float depthBiasSlopeFactor = {}; - float lineWidth = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags = {}; + VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable = {}; + VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable = {}; + VULKAN_HPP_NAMESPACE::PolygonMode polygonMode = VULKAN_HPP_NAMESPACE::PolygonMode::eFill; + VULKAN_HPP_NAMESPACE::CullModeFlags cullMode = {}; + VULKAN_HPP_NAMESPACE::FrontFace frontFace = VULKAN_HPP_NAMESPACE::FrontFace::eCounterClockwise; + VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable = {}; + float depthBiasConstantFactor = {}; + float depthBiasClamp = {}; + float depthBiasSlopeFactor = {}; + float lineWidth = {}; + }; + static_assert( sizeof( PipelineRasterizationStateCreateInfo ) == sizeof( VkPipelineRasterizationStateCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineRasterizationStateCreateInfo; }; - static_assert( sizeof( PipelineRasterizationStateCreateInfo ) == sizeof( VkPipelineRasterizationStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); struct PipelineMultisampleStateCreateInfo { - VULKAN_HPP_CONSTEXPR PipelineMultisampleStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, - VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable_ = {}, - float minSampleShading_ = {}, - const VULKAN_HPP_NAMESPACE::SampleMask* pSampleMask_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable_ = {} ) VULKAN_HPP_NOEXCEPT + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineMultisampleStateCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineMultisampleStateCreateInfo( + VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, + VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable_ = {}, + float minSampleShading_ = {}, + const VULKAN_HPP_NAMESPACE::SampleMask * pSampleMask_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable_ = {} ) VULKAN_HPP_NOEXCEPT : flags( flags_ ) , rasterizationSamples( rasterizationSamples_ ) , sampleShadingEnable( sampleShadingEnable_ ) @@ -34802,42 +45494,46 @@ namespace VULKAN_HPP_NAMESPACE , alphaToOneEnable( alphaToOneEnable_ ) {} - VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo & operator=( VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo ) - offsetof( PipelineMultisampleStateCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PipelineMultisampleStateCreateInfo( PipelineMultisampleStateCreateInfo const & rhs ) + VULKAN_HPP_NOEXCEPT = default; PipelineMultisampleStateCreateInfo( VkPipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + : PipelineMultisampleStateCreateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineMultisampleStateCreateInfo & + operator=( PipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineMultisampleStateCreateInfo& operator=( VkPipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PipelineMultisampleStateCreateInfo & + operator=( VkPipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineMultisampleStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PipelineMultisampleStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PipelineMultisampleStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + PipelineMultisampleStateCreateInfo & + setFlags( VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { flags = flags_; return *this; } - PipelineMultisampleStateCreateInfo & setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT + PipelineMultisampleStateCreateInfo & + setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT { rasterizationSamples = rasterizationSamples_; return *this; } - PipelineMultisampleStateCreateInfo & setSampleShadingEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable_ ) VULKAN_HPP_NOEXCEPT + PipelineMultisampleStateCreateInfo & + setSampleShadingEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable_ ) VULKAN_HPP_NOEXCEPT { sampleShadingEnable = sampleShadingEnable_; return *this; @@ -34849,75 +45545,88 @@ namespace VULKAN_HPP_NAMESPACE return *this; } - PipelineMultisampleStateCreateInfo & setPSampleMask( const VULKAN_HPP_NAMESPACE::SampleMask* pSampleMask_ ) VULKAN_HPP_NOEXCEPT + PipelineMultisampleStateCreateInfo & + setPSampleMask( const VULKAN_HPP_NAMESPACE::SampleMask * pSampleMask_ ) VULKAN_HPP_NOEXCEPT { pSampleMask = pSampleMask_; return *this; } - PipelineMultisampleStateCreateInfo & setAlphaToCoverageEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ ) VULKAN_HPP_NOEXCEPT + PipelineMultisampleStateCreateInfo & + setAlphaToCoverageEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ ) VULKAN_HPP_NOEXCEPT { alphaToCoverageEnable = alphaToCoverageEnable_; return *this; } - PipelineMultisampleStateCreateInfo & setAlphaToOneEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable_ ) VULKAN_HPP_NOEXCEPT + PipelineMultisampleStateCreateInfo & + setAlphaToOneEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable_ ) VULKAN_HPP_NOEXCEPT { alphaToOneEnable = alphaToOneEnable_; return *this; } - operator VkPipelineMultisampleStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPipelineMultisampleStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } operator VkPipelineMultisampleStateCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineMultisampleStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineMultisampleStateCreateInfo const & ) const = default; +#else + bool operator==( PipelineMultisampleStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( rasterizationSamples == rhs.rasterizationSamples ) - && ( sampleShadingEnable == rhs.sampleShadingEnable ) - && ( minSampleShading == rhs.minSampleShading ) - && ( pSampleMask == rhs.pSampleMask ) - && ( alphaToCoverageEnable == rhs.alphaToCoverageEnable ) - && ( alphaToOneEnable == rhs.alphaToOneEnable ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( rasterizationSamples == rhs.rasterizationSamples ) && + ( sampleShadingEnable == rhs.sampleShadingEnable ) && ( minSampleShading == rhs.minSampleShading ) && + ( pSampleMask == rhs.pSampleMask ) && ( alphaToCoverageEnable == rhs.alphaToCoverageEnable ) && + ( alphaToOneEnable == rhs.alphaToOneEnable ); } - bool operator!=( PipelineMultisampleStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PipelineMultisampleStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineMultisampleStateCreateInfo; - const void* pNext = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineMultisampleStateCreateInfo; + const void * pNext = {}; VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable = {}; - float minSampleShading = {}; - const VULKAN_HPP_NAMESPACE::SampleMask* pSampleMask = {}; - VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable = {}; - VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable = {}; + VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; + VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable = {}; + float minSampleShading = {}; + const VULKAN_HPP_NAMESPACE::SampleMask * pSampleMask = {}; + VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable = {}; + VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable = {}; + }; + static_assert( sizeof( PipelineMultisampleStateCreateInfo ) == sizeof( VkPipelineMultisampleStateCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineMultisampleStateCreateInfo; }; - static_assert( sizeof( PipelineMultisampleStateCreateInfo ) == sizeof( VkPipelineMultisampleStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); struct StencilOpState { - VULKAN_HPP_CONSTEXPR StencilOpState( VULKAN_HPP_NAMESPACE::StencilOp failOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep, - VULKAN_HPP_NAMESPACE::StencilOp passOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep, - VULKAN_HPP_NAMESPACE::StencilOp depthFailOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep, - VULKAN_HPP_NAMESPACE::CompareOp compareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever, - uint32_t compareMask_ = {}, - uint32_t writeMask_ = {}, - uint32_t reference_ = {} ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + StencilOpState( VULKAN_HPP_NAMESPACE::StencilOp failOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep, + VULKAN_HPP_NAMESPACE::StencilOp passOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep, + VULKAN_HPP_NAMESPACE::StencilOp depthFailOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep, + VULKAN_HPP_NAMESPACE::CompareOp compareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever, + uint32_t compareMask_ = {}, + uint32_t writeMask_ = {}, + uint32_t reference_ = {} ) VULKAN_HPP_NOEXCEPT : failOp( failOp_ ) , passOp( passOp_ ) , depthFailOp( depthFailOp_ ) @@ -34927,14 +45636,18 @@ namespace VULKAN_HPP_NAMESPACE , reference( reference_ ) {} + VULKAN_HPP_CONSTEXPR StencilOpState( StencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT = default; + StencilOpState( VkStencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + : StencilOpState( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - StencilOpState& operator=( VkStencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 StencilOpState & operator=( StencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + StencilOpState & operator=( VkStencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } @@ -34980,56 +45693,62 @@ namespace VULKAN_HPP_NAMESPACE return *this; } - operator VkStencilOpState const&() const VULKAN_HPP_NOEXCEPT + operator VkStencilOpState const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } operator VkStencilOpState &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( StencilOpState const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( StencilOpState const & ) const = default; +#else + bool operator==( StencilOpState const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( failOp == rhs.failOp ) - && ( passOp == rhs.passOp ) - && ( depthFailOp == rhs.depthFailOp ) - && ( compareOp == rhs.compareOp ) - && ( compareMask == rhs.compareMask ) - && ( writeMask == rhs.writeMask ) - && ( reference == rhs.reference ); + return ( failOp == rhs.failOp ) && ( passOp == rhs.passOp ) && ( depthFailOp == rhs.depthFailOp ) && + ( compareOp == rhs.compareOp ) && ( compareMask == rhs.compareMask ) && ( writeMask == rhs.writeMask ) && + ( reference == rhs.reference ); } - bool operator!=( StencilOpState const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( StencilOpState const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::StencilOp failOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep; - VULKAN_HPP_NAMESPACE::StencilOp passOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep; + VULKAN_HPP_NAMESPACE::StencilOp failOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep; + VULKAN_HPP_NAMESPACE::StencilOp passOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep; VULKAN_HPP_NAMESPACE::StencilOp depthFailOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep; - VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever; - uint32_t compareMask = {}; - uint32_t writeMask = {}; - uint32_t reference = {}; + VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever; + uint32_t compareMask = {}; + uint32_t writeMask = {}; + uint32_t reference = {}; }; static_assert( sizeof( StencilOpState ) == sizeof( VkStencilOpState ), "struct and wrapper have different size!" ); static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); struct PipelineDepthStencilStateCreateInfo { - VULKAN_HPP_CONSTEXPR PipelineDepthStencilStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable_ = {}, - VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever, - VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable_ = {}, - VULKAN_HPP_NAMESPACE::StencilOpState front_ = {}, - VULKAN_HPP_NAMESPACE::StencilOpState back_ = {}, - float minDepthBounds_ = {}, - float maxDepthBounds_ = {} ) VULKAN_HPP_NOEXCEPT + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineDepthStencilStateCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineDepthStencilStateCreateInfo( + VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable_ = {}, + VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever, + VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable_ = {}, + VULKAN_HPP_NAMESPACE::StencilOpState front_ = {}, + VULKAN_HPP_NAMESPACE::StencilOpState back_ = {}, + float minDepthBounds_ = {}, + float maxDepthBounds_ = {} ) VULKAN_HPP_NOEXCEPT : flags( flags_ ) , depthTestEnable( depthTestEnable_ ) , depthWriteEnable( depthWriteEnable_ ) @@ -35042,72 +45761,81 @@ namespace VULKAN_HPP_NAMESPACE , maxDepthBounds( maxDepthBounds_ ) {} - VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo & operator=( VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo ) - offsetof( PipelineDepthStencilStateCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PipelineDepthStencilStateCreateInfo( PipelineDepthStencilStateCreateInfo const & rhs ) + VULKAN_HPP_NOEXCEPT = default; PipelineDepthStencilStateCreateInfo( VkPipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + : PipelineDepthStencilStateCreateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineDepthStencilStateCreateInfo & + operator=( PipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineDepthStencilStateCreateInfo& operator=( VkPipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PipelineDepthStencilStateCreateInfo & + operator=( VkPipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineDepthStencilStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PipelineDepthStencilStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PipelineDepthStencilStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + PipelineDepthStencilStateCreateInfo & + setFlags( VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { flags = flags_; return *this; } - PipelineDepthStencilStateCreateInfo & setDepthTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable_ ) VULKAN_HPP_NOEXCEPT + PipelineDepthStencilStateCreateInfo & + setDepthTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable_ ) VULKAN_HPP_NOEXCEPT { depthTestEnable = depthTestEnable_; return *this; } - PipelineDepthStencilStateCreateInfo & setDepthWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable_ ) VULKAN_HPP_NOEXCEPT + PipelineDepthStencilStateCreateInfo & + setDepthWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable_ ) VULKAN_HPP_NOEXCEPT { depthWriteEnable = depthWriteEnable_; return *this; } - PipelineDepthStencilStateCreateInfo & setDepthCompareOp( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp_ ) VULKAN_HPP_NOEXCEPT + PipelineDepthStencilStateCreateInfo & + setDepthCompareOp( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp_ ) VULKAN_HPP_NOEXCEPT { depthCompareOp = depthCompareOp_; return *this; } - PipelineDepthStencilStateCreateInfo & setDepthBoundsTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable_ ) VULKAN_HPP_NOEXCEPT + PipelineDepthStencilStateCreateInfo & + setDepthBoundsTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable_ ) VULKAN_HPP_NOEXCEPT { depthBoundsTestEnable = depthBoundsTestEnable_; return *this; } - PipelineDepthStencilStateCreateInfo & setStencilTestEnable( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable_ ) VULKAN_HPP_NOEXCEPT + PipelineDepthStencilStateCreateInfo & + setStencilTestEnable( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable_ ) VULKAN_HPP_NOEXCEPT { stencilTestEnable = stencilTestEnable_; return *this; } - PipelineDepthStencilStateCreateInfo & setFront( VULKAN_HPP_NAMESPACE::StencilOpState front_ ) VULKAN_HPP_NOEXCEPT + PipelineDepthStencilStateCreateInfo & + setFront( VULKAN_HPP_NAMESPACE::StencilOpState const & front_ ) VULKAN_HPP_NOEXCEPT { front = front_; return *this; } - PipelineDepthStencilStateCreateInfo & setBack( VULKAN_HPP_NAMESPACE::StencilOpState back_ ) VULKAN_HPP_NOEXCEPT + PipelineDepthStencilStateCreateInfo & + setBack( VULKAN_HPP_NAMESPACE::StencilOpState const & back_ ) VULKAN_HPP_NOEXCEPT { back = back_; return *this; @@ -35125,64 +45853,71 @@ namespace VULKAN_HPP_NAMESPACE return *this; } - operator VkPipelineDepthStencilStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPipelineDepthStencilStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } operator VkPipelineDepthStencilStateCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineDepthStencilStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineDepthStencilStateCreateInfo const & ) const = default; +#else + bool operator==( PipelineDepthStencilStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( depthTestEnable == rhs.depthTestEnable ) - && ( depthWriteEnable == rhs.depthWriteEnable ) - && ( depthCompareOp == rhs.depthCompareOp ) - && ( depthBoundsTestEnable == rhs.depthBoundsTestEnable ) - && ( stencilTestEnable == rhs.stencilTestEnable ) - && ( front == rhs.front ) - && ( back == rhs.back ) - && ( minDepthBounds == rhs.minDepthBounds ) - && ( maxDepthBounds == rhs.maxDepthBounds ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( depthTestEnable == rhs.depthTestEnable ) && ( depthWriteEnable == rhs.depthWriteEnable ) && + ( depthCompareOp == rhs.depthCompareOp ) && ( depthBoundsTestEnable == rhs.depthBoundsTestEnable ) && + ( stencilTestEnable == rhs.stencilTestEnable ) && ( front == rhs.front ) && ( back == rhs.back ) && + ( minDepthBounds == rhs.minDepthBounds ) && ( maxDepthBounds == rhs.maxDepthBounds ); } - bool operator!=( PipelineDepthStencilStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PipelineDepthStencilStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDepthStencilStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable = {}; - VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever; - VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable = {}; - VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable = {}; - VULKAN_HPP_NAMESPACE::StencilOpState front = {}; - VULKAN_HPP_NAMESPACE::StencilOpState back = {}; - float minDepthBounds = {}; - float maxDepthBounds = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDepthStencilStateCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags = {}; + VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable = {}; + VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable = {}; + VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever; + VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable = {}; + VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable = {}; + VULKAN_HPP_NAMESPACE::StencilOpState front = {}; + VULKAN_HPP_NAMESPACE::StencilOpState back = {}; + float minDepthBounds = {}; + float maxDepthBounds = {}; + }; + static_assert( sizeof( PipelineDepthStencilStateCreateInfo ) == sizeof( VkPipelineDepthStencilStateCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineDepthStencilStateCreateInfo; }; - static_assert( sizeof( PipelineDepthStencilStateCreateInfo ) == sizeof( VkPipelineDepthStencilStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); struct PipelineColorBlendAttachmentState { - VULKAN_HPP_CONSTEXPR PipelineColorBlendAttachmentState( VULKAN_HPP_NAMESPACE::Bool32 blendEnable_ = {}, - VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, - VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, - VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd, - VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, - VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, - VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd, - VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ = {} ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineColorBlendAttachmentState( + VULKAN_HPP_NAMESPACE::Bool32 blendEnable_ = {}, + VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, + VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, + VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd, + VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, + VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, + VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd, + VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ = {} ) VULKAN_HPP_NOEXCEPT : blendEnable( blendEnable_ ) , srcColorBlendFactor( srcColorBlendFactor_ ) , dstColorBlendFactor( dstColorBlendFactor_ ) @@ -35193,14 +45928,20 @@ namespace VULKAN_HPP_NAMESPACE , colorWriteMask( colorWriteMask_ ) {} + VULKAN_HPP_CONSTEXPR + PipelineColorBlendAttachmentState( PipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT = default; + PipelineColorBlendAttachmentState( VkPipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + : PipelineColorBlendAttachmentState( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAttachmentState & + operator=( PipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineColorBlendAttachmentState& operator=( VkPipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT + PipelineColorBlendAttachmentState & operator=( VkPipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } @@ -35210,136 +45951,168 @@ namespace VULKAN_HPP_NAMESPACE return *this; } - PipelineColorBlendAttachmentState & setSrcColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT + PipelineColorBlendAttachmentState & + setSrcColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT { srcColorBlendFactor = srcColorBlendFactor_; return *this; } - PipelineColorBlendAttachmentState & setDstColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT + PipelineColorBlendAttachmentState & + setDstColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT { dstColorBlendFactor = dstColorBlendFactor_; return *this; } - PipelineColorBlendAttachmentState & setColorBlendOp( VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ ) VULKAN_HPP_NOEXCEPT + PipelineColorBlendAttachmentState & + setColorBlendOp( VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ ) VULKAN_HPP_NOEXCEPT { colorBlendOp = colorBlendOp_; return *this; } - PipelineColorBlendAttachmentState & setSrcAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT + PipelineColorBlendAttachmentState & + setSrcAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT { srcAlphaBlendFactor = srcAlphaBlendFactor_; return *this; } - PipelineColorBlendAttachmentState & setDstAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT + PipelineColorBlendAttachmentState & + setDstAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT { dstAlphaBlendFactor = dstAlphaBlendFactor_; return *this; } - PipelineColorBlendAttachmentState & setAlphaBlendOp( VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ ) VULKAN_HPP_NOEXCEPT + PipelineColorBlendAttachmentState & + setAlphaBlendOp( VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ ) VULKAN_HPP_NOEXCEPT { alphaBlendOp = alphaBlendOp_; return *this; } - PipelineColorBlendAttachmentState & setColorWriteMask( VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ ) VULKAN_HPP_NOEXCEPT + PipelineColorBlendAttachmentState & + setColorWriteMask( VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ ) VULKAN_HPP_NOEXCEPT { colorWriteMask = colorWriteMask_; return *this; } - operator VkPipelineColorBlendAttachmentState const&() const VULKAN_HPP_NOEXCEPT + operator VkPipelineColorBlendAttachmentState const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } operator VkPipelineColorBlendAttachmentState &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineColorBlendAttachmentState const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineColorBlendAttachmentState const & ) const = default; +#else + bool operator==( PipelineColorBlendAttachmentState const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( blendEnable == rhs.blendEnable ) - && ( srcColorBlendFactor == rhs.srcColorBlendFactor ) - && ( dstColorBlendFactor == rhs.dstColorBlendFactor ) - && ( colorBlendOp == rhs.colorBlendOp ) - && ( srcAlphaBlendFactor == rhs.srcAlphaBlendFactor ) - && ( dstAlphaBlendFactor == rhs.dstAlphaBlendFactor ) - && ( alphaBlendOp == rhs.alphaBlendOp ) - && ( colorWriteMask == rhs.colorWriteMask ); + return ( blendEnable == rhs.blendEnable ) && ( srcColorBlendFactor == rhs.srcColorBlendFactor ) && + ( dstColorBlendFactor == rhs.dstColorBlendFactor ) && ( colorBlendOp == rhs.colorBlendOp ) && + ( srcAlphaBlendFactor == rhs.srcAlphaBlendFactor ) && ( dstAlphaBlendFactor == rhs.dstAlphaBlendFactor ) && + ( alphaBlendOp == rhs.alphaBlendOp ) && ( colorWriteMask == rhs.colorWriteMask ); } - bool operator!=( PipelineColorBlendAttachmentState const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PipelineColorBlendAttachmentState const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::Bool32 blendEnable = {}; - VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero; - VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero; - VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd; - VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero; - VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero; - VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd; - VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask = {}; + VULKAN_HPP_NAMESPACE::Bool32 blendEnable = {}; + VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero; + VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero; + VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd; + VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero; + VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero; + VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd; + VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask = {}; }; - static_assert( sizeof( PipelineColorBlendAttachmentState ) == sizeof( VkPipelineColorBlendAttachmentState ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PipelineColorBlendAttachmentState ) == sizeof( VkPipelineColorBlendAttachmentState ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); struct PipelineColorBlendStateCreateInfo { - VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_ = {}, - VULKAN_HPP_NAMESPACE::LogicOp logicOp_ = VULKAN_HPP_NAMESPACE::LogicOp::eClear, - uint32_t attachmentCount_ = {}, - const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState* pAttachments_ = {}, - std::array const& blendConstants_ = {} ) VULKAN_HPP_NOEXCEPT + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineColorBlendStateCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo( + VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_ = {}, + VULKAN_HPP_NAMESPACE::LogicOp logicOp_ = VULKAN_HPP_NAMESPACE::LogicOp::eClear, + uint32_t attachmentCount_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState * pAttachments_ = {}, + std::array const & blendConstants_ = {} ) VULKAN_HPP_NOEXCEPT : flags( flags_ ) , logicOpEnable( logicOpEnable_ ) , logicOp( logicOp_ ) , attachmentCount( attachmentCount_ ) , pAttachments( pAttachments_ ) - , blendConstants{} - { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( blendConstants, blendConstants_ ); - } + , blendConstants( blendConstants_ ) + {} - VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo & operator=( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo ) - offsetof( PipelineColorBlendStateCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 + PipelineColorBlendStateCreateInfo( PipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; PipelineColorBlendStateCreateInfo( VkPipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + : PipelineColorBlendStateCreateInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineColorBlendStateCreateInfo( + VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_, + VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_, + VULKAN_HPP_NAMESPACE::LogicOp logicOp_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries< + const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState> const & attachments_, + std::array const & blendConstants_ = {} ) + : flags( flags_ ) + , logicOpEnable( logicOpEnable_ ) + , logicOp( logicOp_ ) + , attachmentCount( static_cast( attachments_.size() ) ) + , pAttachments( attachments_.data() ) + , blendConstants( blendConstants_ ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PipelineColorBlendStateCreateInfo& operator=( VkPipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo & + operator=( PipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineColorBlendStateCreateInfo & operator=( VkPipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineColorBlendStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PipelineColorBlendStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PipelineColorBlendStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + PipelineColorBlendStateCreateInfo & + setFlags( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { flags = flags_; return *this; } - PipelineColorBlendStateCreateInfo & setLogicOpEnable( VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_ ) VULKAN_HPP_NOEXCEPT + PipelineColorBlendStateCreateInfo & + setLogicOpEnable( VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_ ) VULKAN_HPP_NOEXCEPT { logicOpEnable = logicOpEnable_; return *this; @@ -35357,92 +46130,128 @@ namespace VULKAN_HPP_NAMESPACE return *this; } - PipelineColorBlendStateCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState* pAttachments_ ) VULKAN_HPP_NOEXCEPT + PipelineColorBlendStateCreateInfo & setPAttachments( + const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState * pAttachments_ ) VULKAN_HPP_NOEXCEPT { pAttachments = pAttachments_; return *this; } - PipelineColorBlendStateCreateInfo & setBlendConstants( std::array blendConstants_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineColorBlendStateCreateInfo & setAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries< + const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState> const & attachments_ ) VULKAN_HPP_NOEXCEPT + { + attachmentCount = static_cast( attachments_.size() ); + pAttachments = attachments_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + PipelineColorBlendStateCreateInfo & setBlendConstants( std::array blendConstants_ ) VULKAN_HPP_NOEXCEPT { - memcpy( blendConstants, blendConstants_.data(), 4 * sizeof( float ) ); + blendConstants = blendConstants_; return *this; } - operator VkPipelineColorBlendStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPipelineColorBlendStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } operator VkPipelineColorBlendStateCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineColorBlendStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineColorBlendStateCreateInfo const & ) const = default; +#else + bool operator==( PipelineColorBlendStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( logicOpEnable == rhs.logicOpEnable ) - && ( logicOp == rhs.logicOp ) - && ( attachmentCount == rhs.attachmentCount ) - && ( pAttachments == rhs.pAttachments ) - && ( memcmp( blendConstants, rhs.blendConstants, 4 * sizeof( float ) ) == 0 ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( logicOpEnable == rhs.logicOpEnable ) && ( logicOp == rhs.logicOp ) && + ( attachmentCount == rhs.attachmentCount ) && ( pAttachments == rhs.pAttachments ) && + ( blendConstants == rhs.blendConstants ); } - bool operator!=( PipelineColorBlendStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PipelineColorBlendStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendStateCreateInfo; - const void* pNext = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendStateCreateInfo; + const void * pNext = {}; VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable = {}; - VULKAN_HPP_NAMESPACE::LogicOp logicOp = VULKAN_HPP_NAMESPACE::LogicOp::eClear; - uint32_t attachmentCount = {}; - const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState* pAttachments = {}; - float blendConstants[4] = {}; + VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable = {}; + VULKAN_HPP_NAMESPACE::LogicOp logicOp = VULKAN_HPP_NAMESPACE::LogicOp::eClear; + uint32_t attachmentCount = {}; + const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState * pAttachments = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D blendConstants = {}; + }; + static_assert( sizeof( PipelineColorBlendStateCreateInfo ) == sizeof( VkPipelineColorBlendStateCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineColorBlendStateCreateInfo; }; - static_assert( sizeof( PipelineColorBlendStateCreateInfo ) == sizeof( VkPipelineColorBlendStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); struct PipelineDynamicStateCreateInfo { - VULKAN_HPP_CONSTEXPR PipelineDynamicStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ = {}, - uint32_t dynamicStateCount_ = {}, - const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates_ = {} ) VULKAN_HPP_NOEXCEPT + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDynamicStateCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineDynamicStateCreateInfo( + VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ = {}, + uint32_t dynamicStateCount_ = {}, + const VULKAN_HPP_NAMESPACE::DynamicState * pDynamicStates_ = {} ) VULKAN_HPP_NOEXCEPT : flags( flags_ ) , dynamicStateCount( dynamicStateCount_ ) , pDynamicStates( pDynamicStates_ ) {} - VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo & operator=( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo ) - offsetof( PipelineDynamicStateCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + PipelineDynamicStateCreateInfo( PipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; PipelineDynamicStateCreateInfo( VkPipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + : PipelineDynamicStateCreateInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineDynamicStateCreateInfo( + VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & dynamicStates_ ) + : flags( flags_ ) + , dynamicStateCount( static_cast( dynamicStates_.size() ) ) + , pDynamicStates( dynamicStates_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PipelineDynamicStateCreateInfo& operator=( VkPipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PipelineDynamicStateCreateInfo & + operator=( PipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineDynamicStateCreateInfo & operator=( VkPipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineDynamicStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PipelineDynamicStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PipelineDynamicStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + PipelineDynamicStateCreateInfo & + setFlags( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { flags = flags_; return *this; @@ -35454,65 +46263,91 @@ namespace VULKAN_HPP_NAMESPACE return *this; } - PipelineDynamicStateCreateInfo & setPDynamicStates( const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates_ ) VULKAN_HPP_NOEXCEPT + PipelineDynamicStateCreateInfo & + setPDynamicStates( const VULKAN_HPP_NAMESPACE::DynamicState * pDynamicStates_ ) VULKAN_HPP_NOEXCEPT { pDynamicStates = pDynamicStates_; return *this; } - operator VkPipelineDynamicStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineDynamicStateCreateInfo & setDynamicStates( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & dynamicStates_ ) + VULKAN_HPP_NOEXCEPT + { + dynamicStateCount = static_cast( dynamicStates_.size() ); + pDynamicStates = dynamicStates_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkPipelineDynamicStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } operator VkPipelineDynamicStateCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineDynamicStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineDynamicStateCreateInfo const & ) const = default; +#else + bool operator==( PipelineDynamicStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( dynamicStateCount == rhs.dynamicStateCount ) - && ( pDynamicStates == rhs.pDynamicStates ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( dynamicStateCount == rhs.dynamicStateCount ) && ( pDynamicStates == rhs.pDynamicStates ); } - bool operator!=( PipelineDynamicStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PipelineDynamicStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDynamicStateCreateInfo; - const void* pNext = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDynamicStateCreateInfo; + const void * pNext = {}; VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags = {}; - uint32_t dynamicStateCount = {}; - const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates = {}; + uint32_t dynamicStateCount = {}; + const VULKAN_HPP_NAMESPACE::DynamicState * pDynamicStates = {}; + }; + static_assert( sizeof( PipelineDynamicStateCreateInfo ) == sizeof( VkPipelineDynamicStateCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineDynamicStateCreateInfo; }; - static_assert( sizeof( PipelineDynamicStateCreateInfo ) == sizeof( VkPipelineDynamicStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); struct GraphicsPipelineCreateInfo { - VULKAN_HPP_CONSTEXPR GraphicsPipelineCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, - uint32_t stageCount_ = {}, - const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ = {}, - const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ = {}, - const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState_ = {}, - const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ = {}, - const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState_ = {}, - const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState_ = {}, - const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState_ = {}, - const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState_ = {}, - const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState_ = {}, - const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ = {}, - VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, - VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, - uint32_t subpass_ = {}, - VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, - int32_t basePipelineIndex_ = {} ) VULKAN_HPP_NOEXCEPT + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo( + VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, + uint32_t stageCount_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo * pInputAssemblyState_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo * pViewportState_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo * pRasterizationState_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo * pMultisampleState_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo * pDepthStencilState_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo * pColorBlendState_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ = {}, + VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, + VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, + uint32_t subpass_ = {}, + VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, + int32_t basePipelineIndex_ = {} ) VULKAN_HPP_NOEXCEPT : flags( flags_ ) , stageCount( stageCount_ ) , pStages( pStages_ ) @@ -35532,24 +46367,63 @@ namespace VULKAN_HPP_NAMESPACE , basePipelineIndex( basePipelineIndex_ ) {} - VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo & operator=( VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo ) - offsetof( GraphicsPipelineCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 + GraphicsPipelineCreateInfo( GraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; GraphicsPipelineCreateInfo( VkGraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + : GraphicsPipelineCreateInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + GraphicsPipelineCreateInfo( + VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + stages_, + const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo * pInputAssemblyState_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo * pViewportState_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo * pRasterizationState_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo * pMultisampleState_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo * pDepthStencilState_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo * pColorBlendState_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ = {}, + VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, + VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, + uint32_t subpass_ = {}, + VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, + int32_t basePipelineIndex_ = {} ) + : flags( flags_ ) + , stageCount( static_cast( stages_.size() ) ) + , pStages( stages_.data() ) + , pVertexInputState( pVertexInputState_ ) + , pInputAssemblyState( pInputAssemblyState_ ) + , pTessellationState( pTessellationState_ ) + , pViewportState( pViewportState_ ) + , pRasterizationState( pRasterizationState_ ) + , pMultisampleState( pMultisampleState_ ) + , pDepthStencilState( pDepthStencilState_ ) + , pColorBlendState( pColorBlendState_ ) + , pDynamicState( pDynamicState_ ) + , layout( layout_ ) + , renderPass( renderPass_ ) + , subpass( subpass_ ) + , basePipelineHandle( basePipelineHandle_ ) + , basePipelineIndex( basePipelineIndex_ ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo & + operator=( GraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - GraphicsPipelineCreateInfo& operator=( VkGraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + GraphicsPipelineCreateInfo & operator=( VkGraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - GraphicsPipelineCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + GraphicsPipelineCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; @@ -35567,61 +46441,82 @@ namespace VULKAN_HPP_NAMESPACE return *this; } - GraphicsPipelineCreateInfo & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT + GraphicsPipelineCreateInfo & + setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT { pStages = pStages_; return *this; } - GraphicsPipelineCreateInfo & setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + GraphicsPipelineCreateInfo & setStages( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + stages_ ) VULKAN_HPP_NOEXCEPT + { + stageCount = static_cast( stages_.size() ); + pStages = stages_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + GraphicsPipelineCreateInfo & setPVertexInputState( + const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ ) VULKAN_HPP_NOEXCEPT { pVertexInputState = pVertexInputState_; return *this; } - GraphicsPipelineCreateInfo & setPInputAssemblyState( const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState_ ) VULKAN_HPP_NOEXCEPT + GraphicsPipelineCreateInfo & setPInputAssemblyState( + const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo * pInputAssemblyState_ ) VULKAN_HPP_NOEXCEPT { pInputAssemblyState = pInputAssemblyState_; return *this; } - GraphicsPipelineCreateInfo & setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ ) VULKAN_HPP_NOEXCEPT + GraphicsPipelineCreateInfo & setPTessellationState( + const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ ) VULKAN_HPP_NOEXCEPT { pTessellationState = pTessellationState_; return *this; } - GraphicsPipelineCreateInfo & setPViewportState( const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState_ ) VULKAN_HPP_NOEXCEPT + GraphicsPipelineCreateInfo & setPViewportState( + const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo * pViewportState_ ) VULKAN_HPP_NOEXCEPT { pViewportState = pViewportState_; return *this; } - GraphicsPipelineCreateInfo & setPRasterizationState( const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState_ ) VULKAN_HPP_NOEXCEPT + GraphicsPipelineCreateInfo & setPRasterizationState( + const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo * pRasterizationState_ ) VULKAN_HPP_NOEXCEPT { pRasterizationState = pRasterizationState_; return *this; } - GraphicsPipelineCreateInfo & setPMultisampleState( const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState_ ) VULKAN_HPP_NOEXCEPT + GraphicsPipelineCreateInfo & setPMultisampleState( + const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo * pMultisampleState_ ) VULKAN_HPP_NOEXCEPT { pMultisampleState = pMultisampleState_; return *this; } - GraphicsPipelineCreateInfo & setPDepthStencilState( const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState_ ) VULKAN_HPP_NOEXCEPT + GraphicsPipelineCreateInfo & setPDepthStencilState( + const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo * pDepthStencilState_ ) VULKAN_HPP_NOEXCEPT { pDepthStencilState = pDepthStencilState_; return *this; } - GraphicsPipelineCreateInfo & setPColorBlendState( const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState_ ) VULKAN_HPP_NOEXCEPT + GraphicsPipelineCreateInfo & setPColorBlendState( + const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo * pColorBlendState_ ) VULKAN_HPP_NOEXCEPT { pColorBlendState = pColorBlendState_; return *this; } - GraphicsPipelineCreateInfo & setPDynamicState( const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ ) VULKAN_HPP_NOEXCEPT + GraphicsPipelineCreateInfo & setPDynamicState( + const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ ) VULKAN_HPP_NOEXCEPT { pDynamicState = pDynamicState_; return *this; @@ -35645,7 +46540,8 @@ namespace VULKAN_HPP_NAMESPACE return *this; } - GraphicsPipelineCreateInfo & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT + GraphicsPipelineCreateInfo & + setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT { basePipelineHandle = basePipelineHandle_; return *this; @@ -35657,35724 +46553,77838 @@ namespace VULKAN_HPP_NAMESPACE return *this; } - operator VkGraphicsPipelineCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkGraphicsPipelineCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } operator VkGraphicsPipelineCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); - } - - bool operator==( GraphicsPipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( stageCount == rhs.stageCount ) - && ( pStages == rhs.pStages ) - && ( pVertexInputState == rhs.pVertexInputState ) - && ( pInputAssemblyState == rhs.pInputAssemblyState ) - && ( pTessellationState == rhs.pTessellationState ) - && ( pViewportState == rhs.pViewportState ) - && ( pRasterizationState == rhs.pRasterizationState ) - && ( pMultisampleState == rhs.pMultisampleState ) - && ( pDepthStencilState == rhs.pDepthStencilState ) - && ( pColorBlendState == rhs.pColorBlendState ) - && ( pDynamicState == rhs.pDynamicState ) - && ( layout == rhs.layout ) - && ( renderPass == rhs.renderPass ) - && ( subpass == rhs.subpass ) - && ( basePipelineHandle == rhs.basePipelineHandle ) - && ( basePipelineIndex == rhs.basePipelineIndex ); - } - - bool operator!=( GraphicsPipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {}; - uint32_t stageCount = {}; - const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {}; - const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState = {}; - const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState = {}; - const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState = {}; - const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState = {}; - const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState = {}; - const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState = {}; - const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState = {}; - const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState = {}; - const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState = {}; - VULKAN_HPP_NAMESPACE::PipelineLayout layout = {}; - VULKAN_HPP_NAMESPACE::RenderPass renderPass = {}; - uint32_t subpass = {}; - VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {}; - int32_t basePipelineIndex = {}; - }; - static_assert( sizeof( GraphicsPipelineCreateInfo ) == sizeof( VkGraphicsPipelineCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct XYColorEXT - { - VULKAN_HPP_CONSTEXPR XYColorEXT( float x_ = {}, - float y_ = {} ) VULKAN_HPP_NOEXCEPT - : x( x_ ) - , y( y_ ) - {} - - XYColorEXT( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - - XYColorEXT& operator=( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } - - XYColorEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT - { - x = x_; - return *this; - } - - XYColorEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT - { - y = y_; - return *this; - } - - operator VkXYColorEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkXYColorEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( XYColorEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( GraphicsPipelineCreateInfo const & ) const = default; +#else + bool operator==( GraphicsPipelineCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( x == rhs.x ) - && ( y == rhs.y ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( stageCount == rhs.stageCount ) && ( pStages == rhs.pStages ) && + ( pVertexInputState == rhs.pVertexInputState ) && ( pInputAssemblyState == rhs.pInputAssemblyState ) && + ( pTessellationState == rhs.pTessellationState ) && ( pViewportState == rhs.pViewportState ) && + ( pRasterizationState == rhs.pRasterizationState ) && ( pMultisampleState == rhs.pMultisampleState ) && + ( pDepthStencilState == rhs.pDepthStencilState ) && ( pColorBlendState == rhs.pColorBlendState ) && + ( pDynamicState == rhs.pDynamicState ) && ( layout == rhs.layout ) && ( renderPass == rhs.renderPass ) && + ( subpass == rhs.subpass ) && ( basePipelineHandle == rhs.basePipelineHandle ) && + ( basePipelineIndex == rhs.basePipelineIndex ); } - bool operator!=( XYColorEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( GraphicsPipelineCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - float x = {}; - float y = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {}; + uint32_t stageCount = {}; + const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages = {}; + const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState = {}; + const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo * pInputAssemblyState = {}; + const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState = {}; + const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo * pViewportState = {}; + const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo * pRasterizationState = {}; + const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo * pMultisampleState = {}; + const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo * pDepthStencilState = {}; + const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo * pColorBlendState = {}; + const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState = {}; + VULKAN_HPP_NAMESPACE::PipelineLayout layout = {}; + VULKAN_HPP_NAMESPACE::RenderPass renderPass = {}; + uint32_t subpass = {}; + VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {}; + int32_t basePipelineIndex = {}; + }; + static_assert( sizeof( GraphicsPipelineCreateInfo ) == sizeof( VkGraphicsPipelineCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = GraphicsPipelineCreateInfo; }; - static_assert( sizeof( XYColorEXT ) == sizeof( VkXYColorEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct HdrMetadataEXT + struct ImageCreateInfo { - VULKAN_HPP_CONSTEXPR HdrMetadataEXT( VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryRed_ = {}, - VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryGreen_ = {}, - VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryBlue_ = {}, - VULKAN_HPP_NAMESPACE::XYColorEXT whitePoint_ = {}, - float maxLuminance_ = {}, - float minLuminance_ = {}, - float maxContentLightLevel_ = {}, - float maxFrameAverageLightLevel_ = {} ) VULKAN_HPP_NOEXCEPT - : displayPrimaryRed( displayPrimaryRed_ ) - , displayPrimaryGreen( displayPrimaryGreen_ ) - , displayPrimaryBlue( displayPrimaryBlue_ ) - , whitePoint( whitePoint_ ) - , maxLuminance( maxLuminance_ ) - , minLuminance( minLuminance_ ) - , maxContentLightLevel( maxContentLightLevel_ ) - , maxFrameAverageLightLevel( maxFrameAverageLightLevel_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ImageCreateInfo( + VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::ImageType imageType_ = VULKAN_HPP_NAMESPACE::ImageType::e1D, + VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, + VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}, + uint32_t mipLevels_ = {}, + uint32_t arrayLayers_ = {}, + VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, + VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal, + VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, + VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, + uint32_t queueFamilyIndexCount_ = {}, + const uint32_t * pQueueFamilyIndices_ = {}, + VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) + VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , imageType( imageType_ ) + , format( format_ ) + , extent( extent_ ) + , mipLevels( mipLevels_ ) + , arrayLayers( arrayLayers_ ) + , samples( samples_ ) + , tiling( tiling_ ) + , usage( usage_ ) + , sharingMode( sharingMode_ ) + , queueFamilyIndexCount( queueFamilyIndexCount_ ) + , pQueueFamilyIndices( pQueueFamilyIndices_ ) + , initialLayout( initialLayout_ ) {} - VULKAN_HPP_NAMESPACE::HdrMetadataEXT & operator=( VULKAN_HPP_NAMESPACE::HdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::HdrMetadataEXT ) - offsetof( HdrMetadataEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR ImageCreateInfo( ImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - HdrMetadataEXT( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ImageCreateInfo( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageCreateInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + ImageCreateInfo( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_, + VULKAN_HPP_NAMESPACE::ImageType imageType_, + VULKAN_HPP_NAMESPACE::Format format_, + VULKAN_HPP_NAMESPACE::Extent3D extent_, + uint32_t mipLevels_, + uint32_t arrayLayers_, + VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_, + VULKAN_HPP_NAMESPACE::ImageTiling tiling_, + VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_, + VULKAN_HPP_NAMESPACE::SharingMode sharingMode_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_, + VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) + : flags( flags_ ) + , imageType( imageType_ ) + , format( format_ ) + , extent( extent_ ) + , mipLevels( mipLevels_ ) + , arrayLayers( arrayLayers_ ) + , samples( samples_ ) + , tiling( tiling_ ) + , usage( usage_ ) + , sharingMode( sharingMode_ ) + , queueFamilyIndexCount( static_cast( queueFamilyIndices_.size() ) ) + , pQueueFamilyIndices( queueFamilyIndices_.data() ) + , initialLayout( initialLayout_ ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ImageCreateInfo & operator=( ImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - HdrMetadataEXT& operator=( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT + ImageCreateInfo & operator=( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - HdrMetadataEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ImageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - HdrMetadataEXT & setDisplayPrimaryRed( VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryRed_ ) VULKAN_HPP_NOEXCEPT + ImageCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - displayPrimaryRed = displayPrimaryRed_; + flags = flags_; return *this; } - HdrMetadataEXT & setDisplayPrimaryGreen( VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryGreen_ ) VULKAN_HPP_NOEXCEPT + ImageCreateInfo & setImageType( VULKAN_HPP_NAMESPACE::ImageType imageType_ ) VULKAN_HPP_NOEXCEPT { - displayPrimaryGreen = displayPrimaryGreen_; + imageType = imageType_; return *this; } - HdrMetadataEXT & setDisplayPrimaryBlue( VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryBlue_ ) VULKAN_HPP_NOEXCEPT + ImageCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT { - displayPrimaryBlue = displayPrimaryBlue_; + format = format_; return *this; } - HdrMetadataEXT & setWhitePoint( VULKAN_HPP_NAMESPACE::XYColorEXT whitePoint_ ) VULKAN_HPP_NOEXCEPT + ImageCreateInfo & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT { - whitePoint = whitePoint_; + extent = extent_; return *this; } - HdrMetadataEXT & setMaxLuminance( float maxLuminance_ ) VULKAN_HPP_NOEXCEPT + ImageCreateInfo & setMipLevels( uint32_t mipLevels_ ) VULKAN_HPP_NOEXCEPT { - maxLuminance = maxLuminance_; + mipLevels = mipLevels_; return *this; } - HdrMetadataEXT & setMinLuminance( float minLuminance_ ) VULKAN_HPP_NOEXCEPT + ImageCreateInfo & setArrayLayers( uint32_t arrayLayers_ ) VULKAN_HPP_NOEXCEPT { - minLuminance = minLuminance_; + arrayLayers = arrayLayers_; return *this; } - HdrMetadataEXT & setMaxContentLightLevel( float maxContentLightLevel_ ) VULKAN_HPP_NOEXCEPT + ImageCreateInfo & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT { - maxContentLightLevel = maxContentLightLevel_; + samples = samples_; return *this; } - HdrMetadataEXT & setMaxFrameAverageLightLevel( float maxFrameAverageLightLevel_ ) VULKAN_HPP_NOEXCEPT + ImageCreateInfo & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT { - maxFrameAverageLightLevel = maxFrameAverageLightLevel_; + tiling = tiling_; return *this; } - operator VkHdrMetadataEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkHdrMetadataEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( HdrMetadataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( displayPrimaryRed == rhs.displayPrimaryRed ) - && ( displayPrimaryGreen == rhs.displayPrimaryGreen ) - && ( displayPrimaryBlue == rhs.displayPrimaryBlue ) - && ( whitePoint == rhs.whitePoint ) - && ( maxLuminance == rhs.maxLuminance ) - && ( minLuminance == rhs.minLuminance ) - && ( maxContentLightLevel == rhs.maxContentLightLevel ) - && ( maxFrameAverageLightLevel == rhs.maxFrameAverageLightLevel ); - } - - bool operator!=( HdrMetadataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + ImageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + usage = usage_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHdrMetadataEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryRed = {}; - VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryGreen = {}; - VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryBlue = {}; - VULKAN_HPP_NAMESPACE::XYColorEXT whitePoint = {}; - float maxLuminance = {}; - float minLuminance = {}; - float maxContentLightLevel = {}; - float maxFrameAverageLightLevel = {}; - }; - static_assert( sizeof( HdrMetadataEXT ) == sizeof( VkHdrMetadataEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct HeadlessSurfaceCreateInfoEXT - { - VULKAN_HPP_CONSTEXPR HeadlessSurfaceCreateInfoEXT( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - {} - - VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + ImageCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT ) - offsetof( HeadlessSurfaceCreateInfoEXT, pNext ) ); + sharingMode = sharingMode_; return *this; } - HeadlessSurfaceCreateInfoEXT( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + ImageCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + queueFamilyIndexCount = queueFamilyIndexCount_; + return *this; } - HeadlessSurfaceCreateInfoEXT& operator=( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + ImageCreateInfo & setPQueueFamilyIndices( const uint32_t * pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pQueueFamilyIndices = pQueueFamilyIndices_; return *this; } - HeadlessSurfaceCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + ImageCreateInfo & setQueueFamilyIndices( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + queueFamilyIndexCount = static_cast( queueFamilyIndices_.size() ); + pQueueFamilyIndices = queueFamilyIndices_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - HeadlessSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT + ImageCreateInfo & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + initialLayout = initialLayout_; return *this; } - operator VkHeadlessSurfaceCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkImageCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkHeadlessSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkImageCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( HeadlessSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageCreateInfo const & ) const = default; +#else + bool operator==( ImageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( imageType == rhs.imageType ) && ( format == rhs.format ) && ( extent == rhs.extent ) && + ( mipLevels == rhs.mipLevels ) && ( arrayLayers == rhs.arrayLayers ) && ( samples == rhs.samples ) && + ( tiling == rhs.tiling ) && ( usage == rhs.usage ) && ( sharingMode == rhs.sharingMode ) && + ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) && + ( pQueueFamilyIndices == rhs.pQueueFamilyIndices ) && ( initialLayout == rhs.initialLayout ); } - bool operator!=( HeadlessSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHeadlessSurfaceCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {}; + VULKAN_HPP_NAMESPACE::ImageType imageType = VULKAN_HPP_NAMESPACE::ImageType::e1D; + VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; + VULKAN_HPP_NAMESPACE::Extent3D extent = {}; + uint32_t mipLevels = {}; + uint32_t arrayLayers = {}; + VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; + VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal; + VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {}; + VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive; + uint32_t queueFamilyIndexCount = {}; + const uint32_t * pQueueFamilyIndices = {}; + VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; }; - static_assert( sizeof( HeadlessSurfaceCreateInfoEXT ) == sizeof( VkHeadlessSurfaceCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageCreateInfo ) == sizeof( VkImageCreateInfo ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_IOS_MVK + template <> + struct CppType + { + using Type = ImageCreateInfo; + }; - struct IOSSurfaceCreateInfoMVK + struct ImageViewCreateInfo { - VULKAN_HPP_CONSTEXPR IOSSurfaceCreateInfoMVK( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ = {}, - const void* pView_ = {} ) VULKAN_HPP_NOEXCEPT + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ImageViewCreateInfo( VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::Image image_ = {}, + VULKAN_HPP_NAMESPACE::ImageViewType viewType_ = VULKAN_HPP_NAMESPACE::ImageViewType::e1D, + VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, + VULKAN_HPP_NAMESPACE::ComponentMapping components_ = {}, + VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {} ) VULKAN_HPP_NOEXCEPT : flags( flags_ ) - , pView( pView_ ) + , image( image_ ) + , viewType( viewType_ ) + , format( format_ ) + , components( components_ ) + , subresourceRange( subresourceRange_ ) + {} + + VULKAN_HPP_CONSTEXPR ImageViewCreateInfo( ImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImageViewCreateInfo( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageViewCreateInfo( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK & operator=( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 ImageViewCreateInfo & + operator=( ImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImageViewCreateInfo & operator=( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK ) - offsetof( IOSSurfaceCreateInfoMVK, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - IOSSurfaceCreateInfoMVK( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT + ImageViewCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - IOSSurfaceCreateInfoMVK& operator=( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT + ImageViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + flags = flags_; return *this; } - IOSSurfaceCreateInfoMVK & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ImageViewCreateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + image = image_; return *this; } - IOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT + ImageViewCreateInfo & setViewType( VULKAN_HPP_NAMESPACE::ImageViewType viewType_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + viewType = viewType_; return *this; } - IOSSurfaceCreateInfoMVK & setPView( const void* pView_ ) VULKAN_HPP_NOEXCEPT + ImageViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT { - pView = pView_; + format = format_; return *this; } - operator VkIOSSurfaceCreateInfoMVK const&() const VULKAN_HPP_NOEXCEPT + ImageViewCreateInfo & + setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + components = components_; + return *this; } - operator VkIOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT + ImageViewCreateInfo & + setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT + { + subresourceRange = subresourceRange_; + return *this; + } + + operator VkImageViewCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( IOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkImageViewCreateInfo &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageViewCreateInfo const & ) const = default; +#else + bool operator==( ImageViewCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pView == rhs.pView ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( image == rhs.image ) && + ( viewType == rhs.viewType ) && ( format == rhs.format ) && ( components == rhs.components ) && + ( subresourceRange == rhs.subresourceRange ); } - bool operator!=( IOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageViewCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIosSurfaceCreateInfoMVK; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags = {}; - const void* pView = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags = {}; + VULKAN_HPP_NAMESPACE::Image image = {}; + VULKAN_HPP_NAMESPACE::ImageViewType viewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D; + VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; + VULKAN_HPP_NAMESPACE::ComponentMapping components = {}; + VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {}; }; - static_assert( sizeof( IOSSurfaceCreateInfoMVK ) == sizeof( VkIOSSurfaceCreateInfoMVK ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_IOS_MVK*/ + static_assert( sizeof( ImageViewCreateInfo ) == sizeof( VkImageViewCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ImageBlit - { - VULKAN_HPP_CONSTEXPR_14 ImageBlit( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, - std::array const& srcOffsets_ = {}, - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, - std::array const& dstOffsets_ = {} ) VULKAN_HPP_NOEXCEPT - : srcSubresource( srcSubresource_ ) - , srcOffsets{} - , dstSubresource( dstSubresource_ ) - , dstOffsets{} - { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( srcOffsets, srcOffsets_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( dstOffsets, dstOffsets_ ); + template <> + struct CppType + { + using Type = ImageViewCreateInfo; + }; + + struct IndirectCommandsLayoutTokenNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIndirectCommandsLayoutTokenNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + IndirectCommandsLayoutTokenNV( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_ = + VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV::eShaderGroup, + uint32_t stream_ = {}, + uint32_t offset_ = {}, + uint32_t vertexBindingUnit_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_ = {}, + VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_ = {}, + VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_ = {}, + uint32_t pushconstantOffset_ = {}, + uint32_t pushconstantSize_ = {}, + VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_ = {}, + uint32_t indexTypeCount_ = {}, + const VULKAN_HPP_NAMESPACE::IndexType * pIndexTypes_ = {}, + const uint32_t * pIndexTypeValues_ = {} ) VULKAN_HPP_NOEXCEPT + : tokenType( tokenType_ ) + , stream( stream_ ) + , offset( offset_ ) + , vertexBindingUnit( vertexBindingUnit_ ) + , vertexDynamicStride( vertexDynamicStride_ ) + , pushconstantPipelineLayout( pushconstantPipelineLayout_ ) + , pushconstantShaderStageFlags( pushconstantShaderStageFlags_ ) + , pushconstantOffset( pushconstantOffset_ ) + , pushconstantSize( pushconstantSize_ ) + , indirectStateFlags( indirectStateFlags_ ) + , indexTypeCount( indexTypeCount_ ) + , pIndexTypes( pIndexTypes_ ) + , pIndexTypeValues( pIndexTypeValues_ ) + {} + + VULKAN_HPP_CONSTEXPR + IndirectCommandsLayoutTokenNV( IndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + IndirectCommandsLayoutTokenNV( VkIndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT + : IndirectCommandsLayoutTokenNV( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + IndirectCommandsLayoutTokenNV( + VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_, + uint32_t stream_, + uint32_t offset_, + uint32_t vertexBindingUnit_, + VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_, + VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_, + VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_, + uint32_t pushconstantOffset_, + uint32_t pushconstantSize_, + VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & indexTypes_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & indexTypeValues_ = {} ) + : tokenType( tokenType_ ) + , stream( stream_ ) + , offset( offset_ ) + , vertexBindingUnit( vertexBindingUnit_ ) + , vertexDynamicStride( vertexDynamicStride_ ) + , pushconstantPipelineLayout( pushconstantPipelineLayout_ ) + , pushconstantShaderStageFlags( pushconstantShaderStageFlags_ ) + , pushconstantOffset( pushconstantOffset_ ) + , pushconstantSize( pushconstantSize_ ) + , indirectStateFlags( indirectStateFlags_ ) + , indexTypeCount( static_cast( indexTypes_.size() ) ) + , pIndexTypes( indexTypes_.data() ) + , pIndexTypeValues( indexTypeValues_.data() ) + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( indexTypes_.size() == indexTypeValues_.size() ); +# else + if ( indexTypes_.size() != indexTypeValues_.size() ) + { + throw LogicError( + VULKAN_HPP_NAMESPACE_STRING + "::IndirectCommandsLayoutTokenNV::IndirectCommandsLayoutTokenNV: indexTypes_.size() != indexTypeValues_.size()" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ImageBlit( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenNV & + operator=( IndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + IndirectCommandsLayoutTokenNV & operator=( VkIndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - ImageBlit& operator=( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT + IndirectCommandsLayoutTokenNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - ImageBlit & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ ) VULKAN_HPP_NOEXCEPT + IndirectCommandsLayoutTokenNV & + setTokenType( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_ ) VULKAN_HPP_NOEXCEPT { - srcSubresource = srcSubresource_; + tokenType = tokenType_; return *this; } - ImageBlit & setSrcOffsets( std::array srcOffsets_ ) VULKAN_HPP_NOEXCEPT + IndirectCommandsLayoutTokenNV & setStream( uint32_t stream_ ) VULKAN_HPP_NOEXCEPT { - memcpy( srcOffsets, srcOffsets_.data(), 2 * sizeof( VULKAN_HPP_NAMESPACE::Offset3D ) ); + stream = stream_; return *this; } - ImageBlit & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ ) VULKAN_HPP_NOEXCEPT + IndirectCommandsLayoutTokenNV & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT { - dstSubresource = dstSubresource_; + offset = offset_; return *this; } - ImageBlit & setDstOffsets( std::array dstOffsets_ ) VULKAN_HPP_NOEXCEPT + IndirectCommandsLayoutTokenNV & setVertexBindingUnit( uint32_t vertexBindingUnit_ ) VULKAN_HPP_NOEXCEPT { - memcpy( dstOffsets, dstOffsets_.data(), 2 * sizeof( VULKAN_HPP_NAMESPACE::Offset3D ) ); + vertexBindingUnit = vertexBindingUnit_; return *this; } - operator VkImageBlit const&() const VULKAN_HPP_NOEXCEPT + IndirectCommandsLayoutTokenNV & + setVertexDynamicStride( VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + vertexDynamicStride = vertexDynamicStride_; + return *this; } - operator VkImageBlit &() VULKAN_HPP_NOEXCEPT + IndirectCommandsLayoutTokenNV & setPushconstantPipelineLayout( + VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + pushconstantPipelineLayout = pushconstantPipelineLayout_; + return *this; } - bool operator==( ImageBlit const& rhs ) const VULKAN_HPP_NOEXCEPT + IndirectCommandsLayoutTokenNV & setPushconstantShaderStageFlags( + VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_ ) VULKAN_HPP_NOEXCEPT { - return ( srcSubresource == rhs.srcSubresource ) - && ( memcmp( srcOffsets, rhs.srcOffsets, 2 * sizeof( VULKAN_HPP_NAMESPACE::Offset3D ) ) == 0 ) - && ( dstSubresource == rhs.dstSubresource ) - && ( memcmp( dstOffsets, rhs.dstOffsets, 2 * sizeof( VULKAN_HPP_NAMESPACE::Offset3D ) ) == 0 ); + pushconstantShaderStageFlags = pushconstantShaderStageFlags_; + return *this; } - bool operator!=( ImageBlit const& rhs ) const VULKAN_HPP_NOEXCEPT + IndirectCommandsLayoutTokenNV & setPushconstantOffset( uint32_t pushconstantOffset_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + pushconstantOffset = pushconstantOffset_; + return *this; } - public: - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D srcOffsets[2] = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D dstOffsets[2] = {}; - }; - static_assert( sizeof( ImageBlit ) == sizeof( VkImageBlit ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ImageCopy - { - VULKAN_HPP_CONSTEXPR ImageCopy( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, - VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {}, - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, - VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {}, - VULKAN_HPP_NAMESPACE::Extent3D extent_ = {} ) VULKAN_HPP_NOEXCEPT - : srcSubresource( srcSubresource_ ) - , srcOffset( srcOffset_ ) - , dstSubresource( dstSubresource_ ) - , dstOffset( dstOffset_ ) - , extent( extent_ ) - {} - - ImageCopy( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT + IndirectCommandsLayoutTokenNV & setPushconstantSize( uint32_t pushconstantSize_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pushconstantSize = pushconstantSize_; + return *this; } - ImageCopy& operator=( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT + IndirectCommandsLayoutTokenNV & + setIndirectStateFlags( VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + indirectStateFlags = indirectStateFlags_; return *this; } - ImageCopy & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ ) VULKAN_HPP_NOEXCEPT + IndirectCommandsLayoutTokenNV & setIndexTypeCount( uint32_t indexTypeCount_ ) VULKAN_HPP_NOEXCEPT { - srcSubresource = srcSubresource_; + indexTypeCount = indexTypeCount_; return *this; } - ImageCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ ) VULKAN_HPP_NOEXCEPT + IndirectCommandsLayoutTokenNV & + setPIndexTypes( const VULKAN_HPP_NAMESPACE::IndexType * pIndexTypes_ ) VULKAN_HPP_NOEXCEPT { - srcOffset = srcOffset_; + pIndexTypes = pIndexTypes_; return *this; } - ImageCopy & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + IndirectCommandsLayoutTokenNV & setIndexTypes( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & indexTypes_ ) + VULKAN_HPP_NOEXCEPT { - dstSubresource = dstSubresource_; + indexTypeCount = static_cast( indexTypes_.size() ); + pIndexTypes = indexTypes_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - ImageCopy & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ ) VULKAN_HPP_NOEXCEPT + IndirectCommandsLayoutTokenNV & setPIndexTypeValues( const uint32_t * pIndexTypeValues_ ) VULKAN_HPP_NOEXCEPT { - dstOffset = dstOffset_; + pIndexTypeValues = pIndexTypeValues_; return *this; } - ImageCopy & setExtent( VULKAN_HPP_NAMESPACE::Extent3D extent_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + IndirectCommandsLayoutTokenNV & setIndexTypeValues( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & indexTypeValues_ ) VULKAN_HPP_NOEXCEPT { - extent = extent_; + indexTypeCount = static_cast( indexTypeValues_.size() ); + pIndexTypeValues = indexTypeValues_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkImageCopy const&() const VULKAN_HPP_NOEXCEPT + operator VkIndirectCommandsLayoutTokenNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkImageCopy &() VULKAN_HPP_NOEXCEPT + operator VkIndirectCommandsLayoutTokenNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( IndirectCommandsLayoutTokenNV const & ) const = default; +#else + bool operator==( IndirectCommandsLayoutTokenNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( srcSubresource == rhs.srcSubresource ) - && ( srcOffset == rhs.srcOffset ) - && ( dstSubresource == rhs.dstSubresource ) - && ( dstOffset == rhs.dstOffset ) - && ( extent == rhs.extent ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( tokenType == rhs.tokenType ) && + ( stream == rhs.stream ) && ( offset == rhs.offset ) && ( vertexBindingUnit == rhs.vertexBindingUnit ) && + ( vertexDynamicStride == rhs.vertexDynamicStride ) && + ( pushconstantPipelineLayout == rhs.pushconstantPipelineLayout ) && + ( pushconstantShaderStageFlags == rhs.pushconstantShaderStageFlags ) && + ( pushconstantOffset == rhs.pushconstantOffset ) && ( pushconstantSize == rhs.pushconstantSize ) && + ( indirectStateFlags == rhs.indirectStateFlags ) && ( indexTypeCount == rhs.indexTypeCount ) && + ( pIndexTypes == rhs.pIndexTypes ) && ( pIndexTypeValues == rhs.pIndexTypeValues ); } - bool operator!=( ImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( IndirectCommandsLayoutTokenNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {}; - VULKAN_HPP_NAMESPACE::Extent3D extent = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIndirectCommandsLayoutTokenNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType = + VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV::eShaderGroup; + uint32_t stream = {}; + uint32_t offset = {}; + uint32_t vertexBindingUnit = {}; + VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride = {}; + VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout = {}; + VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags = {}; + uint32_t pushconstantOffset = {}; + uint32_t pushconstantSize = {}; + VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags = {}; + uint32_t indexTypeCount = {}; + const VULKAN_HPP_NAMESPACE::IndexType * pIndexTypes = {}; + const uint32_t * pIndexTypeValues = {}; + }; + static_assert( sizeof( IndirectCommandsLayoutTokenNV ) == sizeof( VkIndirectCommandsLayoutTokenNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = IndirectCommandsLayoutTokenNV; }; - static_assert( sizeof( ImageCopy ) == sizeof( VkImageCopy ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ImageCreateInfo + struct IndirectCommandsLayoutCreateInfoNV { - VULKAN_HPP_CONSTEXPR ImageCreateInfo( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::ImageType imageType_ = VULKAN_HPP_NAMESPACE::ImageType::e1D, - VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, - VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}, - uint32_t mipLevels_ = {}, - uint32_t arrayLayers_ = {}, - VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, - VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal, - VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, - VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, - uint32_t queueFamilyIndexCount_ = {}, - const uint32_t* pQueueFamilyIndices_ = {}, - VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) VULKAN_HPP_NOEXCEPT + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eIndirectCommandsLayoutCreateInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutCreateInfoNV( + VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_ = {}, + VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, + uint32_t tokenCount_ = {}, + const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV * pTokens_ = {}, + uint32_t streamCount_ = {}, + const uint32_t * pStreamStrides_ = {} ) VULKAN_HPP_NOEXCEPT : flags( flags_ ) - , imageType( imageType_ ) - , format( format_ ) - , extent( extent_ ) - , mipLevels( mipLevels_ ) - , arrayLayers( arrayLayers_ ) - , samples( samples_ ) - , tiling( tiling_ ) - , usage( usage_ ) - , sharingMode( sharingMode_ ) - , queueFamilyIndexCount( queueFamilyIndexCount_ ) - , pQueueFamilyIndices( pQueueFamilyIndices_ ) - , initialLayout( initialLayout_ ) + , pipelineBindPoint( pipelineBindPoint_ ) + , tokenCount( tokenCount_ ) + , pTokens( pTokens_ ) + , streamCount( streamCount_ ) + , pStreamStrides( pStreamStrides_ ) {} - VULKAN_HPP_NAMESPACE::ImageCreateInfo & operator=( VULKAN_HPP_NAMESPACE::ImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImageCreateInfo ) - offsetof( ImageCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutCreateInfoNV( IndirectCommandsLayoutCreateInfoNV const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - ImageCreateInfo( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + IndirectCommandsLayoutCreateInfoNV( VkIndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : IndirectCommandsLayoutCreateInfoNV( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + IndirectCommandsLayoutCreateInfoNV( + VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_, + VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + tokens_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & streamStrides_ = {} ) + : flags( flags_ ) + , pipelineBindPoint( pipelineBindPoint_ ) + , tokenCount( static_cast( tokens_.size() ) ) + , pTokens( tokens_.data() ) + , streamCount( static_cast( streamStrides_.size() ) ) + , pStreamStrides( streamStrides_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoNV & + operator=( IndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ImageCreateInfo& operator=( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + IndirectCommandsLayoutCreateInfoNV & + operator=( VkIndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - ImageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + IndirectCommandsLayoutCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - ImageCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + IndirectCommandsLayoutCreateInfoNV & + setFlags( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT { flags = flags_; return *this; } - ImageCreateInfo & setImageType( VULKAN_HPP_NAMESPACE::ImageType imageType_ ) VULKAN_HPP_NOEXCEPT + IndirectCommandsLayoutCreateInfoNV & + setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT { - imageType = imageType_; + pipelineBindPoint = pipelineBindPoint_; return *this; } - ImageCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT + IndirectCommandsLayoutCreateInfoNV & setTokenCount( uint32_t tokenCount_ ) VULKAN_HPP_NOEXCEPT { - format = format_; + tokenCount = tokenCount_; return *this; } - ImageCreateInfo & setExtent( VULKAN_HPP_NAMESPACE::Extent3D extent_ ) VULKAN_HPP_NOEXCEPT + IndirectCommandsLayoutCreateInfoNV & + setPTokens( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV * pTokens_ ) VULKAN_HPP_NOEXCEPT { - extent = extent_; + pTokens = pTokens_; return *this; } - ImageCreateInfo & setMipLevels( uint32_t mipLevels_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + IndirectCommandsLayoutCreateInfoNV & setTokens( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + tokens_ ) VULKAN_HPP_NOEXCEPT { - mipLevels = mipLevels_; + tokenCount = static_cast( tokens_.size() ); + pTokens = tokens_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - ImageCreateInfo & setArrayLayers( uint32_t arrayLayers_ ) VULKAN_HPP_NOEXCEPT + IndirectCommandsLayoutCreateInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT { - arrayLayers = arrayLayers_; + streamCount = streamCount_; return *this; } - ImageCreateInfo & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT + IndirectCommandsLayoutCreateInfoNV & setPStreamStrides( const uint32_t * pStreamStrides_ ) VULKAN_HPP_NOEXCEPT { - samples = samples_; + pStreamStrides = pStreamStrides_; return *this; } - ImageCreateInfo & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + IndirectCommandsLayoutCreateInfoNV & setStreamStrides( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & streamStrides_ ) VULKAN_HPP_NOEXCEPT { - tiling = tiling_; + streamCount = static_cast( streamStrides_.size() ); + pStreamStrides = streamStrides_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - ImageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT + operator VkIndirectCommandsLayoutCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT { - usage = usage_; - return *this; + return *reinterpret_cast( this ); } - ImageCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT + operator VkIndirectCommandsLayoutCreateInfoNV &() VULKAN_HPP_NOEXCEPT { - sharingMode = sharingMode_; - return *this; + return *reinterpret_cast( this ); } - ImageCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( IndirectCommandsLayoutCreateInfoNV const & ) const = default; +#else + bool operator==( IndirectCommandsLayoutCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - queueFamilyIndexCount = queueFamilyIndexCount_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( pipelineBindPoint == rhs.pipelineBindPoint ) && ( tokenCount == rhs.tokenCount ) && + ( pTokens == rhs.pTokens ) && ( streamCount == rhs.streamCount ) && + ( pStreamStrides == rhs.pStreamStrides ); } - ImageCreateInfo & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( IndirectCommandsLayoutCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - pQueueFamilyIndices = pQueueFamilyIndices_; - return *this; + return !operator==( rhs ); } +#endif - ImageCreateInfo & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT - { - initialLayout = initialLayout_; - return *this; - } + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIndirectCommandsLayoutCreateInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags = {}; + VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics; + uint32_t tokenCount = {}; + const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV * pTokens = {}; + uint32_t streamCount = {}; + const uint32_t * pStreamStrides = {}; + }; + static_assert( sizeof( IndirectCommandsLayoutCreateInfoNV ) == sizeof( VkIndirectCommandsLayoutCreateInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = IndirectCommandsLayoutCreateInfoNV; + }; + + struct PipelineCacheCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCacheCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineCacheCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ = {}, + size_t initialDataSize_ = {}, + const void * pInitialData_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , initialDataSize( initialDataSize_ ) + , pInitialData( pInitialData_ ) + {} + + VULKAN_HPP_CONSTEXPR PipelineCacheCreateInfo( PipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineCacheCreateInfo( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : PipelineCacheCreateInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + template + PipelineCacheCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & initialData_ ) + : flags( flags_ ), initialDataSize( initialData_.size() * sizeof( T ) ), pInitialData( initialData_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineCacheCreateInfo & + operator=( PipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - operator VkImageCreateInfo const&() const VULKAN_HPP_NOEXCEPT + PipelineCacheCreateInfo & operator=( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + *this = *reinterpret_cast( &rhs ); + return *this; } - operator VkImageCreateInfo &() VULKAN_HPP_NOEXCEPT + PipelineCacheCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + pNext = pNext_; + return *this; } - bool operator==( ImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + PipelineCacheCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( imageType == rhs.imageType ) - && ( format == rhs.format ) - && ( extent == rhs.extent ) - && ( mipLevels == rhs.mipLevels ) - && ( arrayLayers == rhs.arrayLayers ) - && ( samples == rhs.samples ) - && ( tiling == rhs.tiling ) - && ( usage == rhs.usage ) - && ( sharingMode == rhs.sharingMode ) - && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) - && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices ) - && ( initialLayout == rhs.initialLayout ); + flags = flags_; + return *this; } - bool operator!=( ImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + PipelineCacheCreateInfo & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + initialDataSize = initialDataSize_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::ImageType imageType = VULKAN_HPP_NAMESPACE::ImageType::e1D; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::Extent3D extent = {}; - uint32_t mipLevels = {}; - uint32_t arrayLayers = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal; - VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {}; - VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive; - uint32_t queueFamilyIndexCount = {}; - const uint32_t* pQueueFamilyIndices = {}; - VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - }; - static_assert( sizeof( ImageCreateInfo ) == sizeof( VkImageCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SubresourceLayout - { - SubresourceLayout( VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize rowPitch_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize depthPitch_ = {} ) VULKAN_HPP_NOEXCEPT - : offset( offset_ ) - , size( size_ ) - , rowPitch( rowPitch_ ) - , arrayPitch( arrayPitch_ ) - , depthPitch( depthPitch_ ) - {} - - SubresourceLayout( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT + PipelineCacheCreateInfo & setPInitialData( const void * pInitialData_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pInitialData = pInitialData_; + return *this; } - SubresourceLayout& operator=( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + template + PipelineCacheCreateInfo & + setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & initialData_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + initialDataSize = initialData_.size() * sizeof( T ); + pInitialData = initialData_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkSubresourceLayout const&() const VULKAN_HPP_NOEXCEPT + operator VkPipelineCacheCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSubresourceLayout &() VULKAN_HPP_NOEXCEPT + operator VkPipelineCacheCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SubresourceLayout const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineCacheCreateInfo const & ) const = default; +#else + bool operator==( PipelineCacheCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( offset == rhs.offset ) - && ( size == rhs.size ) - && ( rowPitch == rhs.rowPitch ) - && ( arrayPitch == rhs.arrayPitch ) - && ( depthPitch == rhs.depthPitch ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( initialDataSize == rhs.initialDataSize ) && ( pInitialData == rhs.pInitialData ); } - bool operator!=( SubresourceLayout const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PipelineCacheCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - VULKAN_HPP_NAMESPACE::DeviceSize rowPitch = {}; - VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch = {}; - VULKAN_HPP_NAMESPACE::DeviceSize depthPitch = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCacheCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags = {}; + size_t initialDataSize = {}; + const void * pInitialData = {}; }; - static_assert( sizeof( SubresourceLayout ) == sizeof( VkSubresourceLayout ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PipelineCacheCreateInfo ) == sizeof( VkPipelineCacheCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ImageDrmFormatModifierExplicitCreateInfoEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierExplicitCreateInfoEXT( uint64_t drmFormatModifier_ = {}, - uint32_t drmFormatModifierPlaneCount_ = {}, - const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts_ = {} ) VULKAN_HPP_NOEXCEPT - : drmFormatModifier( drmFormatModifier_ ) - , drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ ) - , pPlaneLayouts( pPlaneLayouts_ ) + using Type = PipelineCacheCreateInfo; + }; + + struct PushConstantRange + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PushConstantRange( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {}, + uint32_t offset_ = {}, + uint32_t size_ = {} ) VULKAN_HPP_NOEXCEPT + : stageFlags( stageFlags_ ) + , offset( offset_ ) + , size( size_ ) {} - VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT ) - offsetof( ImageDrmFormatModifierExplicitCreateInfoEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PushConstantRange( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ImageDrmFormatModifierExplicitCreateInfoEXT( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PushConstantRange( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT + : PushConstantRange( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ImageDrmFormatModifierExplicitCreateInfoEXT& operator=( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 PushConstantRange & + operator=( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ImageDrmFormatModifierExplicitCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PushConstantRange & operator=( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT + PushConstantRange & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT { - drmFormatModifier = drmFormatModifier_; + stageFlags = stageFlags_; return *this; } - ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifierPlaneCount( uint32_t drmFormatModifierPlaneCount_ ) VULKAN_HPP_NOEXCEPT + PushConstantRange & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT { - drmFormatModifierPlaneCount = drmFormatModifierPlaneCount_; + offset = offset_; return *this; } - ImageDrmFormatModifierExplicitCreateInfoEXT & setPPlaneLayouts( const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts_ ) VULKAN_HPP_NOEXCEPT + PushConstantRange & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT { - pPlaneLayouts = pPlaneLayouts_; + size = size_; return *this; } - operator VkImageDrmFormatModifierExplicitCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkPushConstantRange const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkImageDrmFormatModifierExplicitCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkPushConstantRange &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ImageDrmFormatModifierExplicitCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PushConstantRange const & ) const = default; +#else + bool operator==( PushConstantRange const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( drmFormatModifier == rhs.drmFormatModifier ) - && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount ) - && ( pPlaneLayouts == rhs.pPlaneLayouts ); + return ( stageFlags == rhs.stageFlags ) && ( offset == rhs.offset ) && ( size == rhs.size ); } - bool operator!=( ImageDrmFormatModifierExplicitCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PushConstantRange const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT; - const void* pNext = {}; - uint64_t drmFormatModifier = {}; - uint32_t drmFormatModifierPlaneCount = {}; - const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts = {}; + VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {}; + uint32_t offset = {}; + uint32_t size = {}; }; - static_assert( sizeof( ImageDrmFormatModifierExplicitCreateInfoEXT ) == sizeof( VkImageDrmFormatModifierExplicitCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PushConstantRange ) == sizeof( VkPushConstantRange ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ImageDrmFormatModifierListCreateInfoEXT + struct PipelineLayoutCreateInfo { - VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierListCreateInfoEXT( uint32_t drmFormatModifierCount_ = {}, - const uint64_t* pDrmFormatModifiers_ = {} ) VULKAN_HPP_NOEXCEPT - : drmFormatModifierCount( drmFormatModifierCount_ ) - , pDrmFormatModifiers( pDrmFormatModifiers_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineLayoutCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineLayoutCreateInfo( + VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_ = {}, + uint32_t setLayoutCount_ = {}, + const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_ = {}, + uint32_t pushConstantRangeCount_ = {}, + const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , setLayoutCount( setLayoutCount_ ) + , pSetLayouts( pSetLayouts_ ) + , pushConstantRangeCount( pushConstantRangeCount_ ) + , pPushConstantRanges( pPushConstantRanges_ ) {} - VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT ) - offsetof( ImageDrmFormatModifierListCreateInfoEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PipelineLayoutCreateInfo( PipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ImageDrmFormatModifierListCreateInfoEXT( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PipelineLayoutCreateInfo( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : PipelineLayoutCreateInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineLayoutCreateInfo( + VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + setLayouts_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + pushConstantRanges_ = {} ) + : flags( flags_ ) + , setLayoutCount( static_cast( setLayouts_.size() ) ) + , pSetLayouts( setLayouts_.data() ) + , pushConstantRangeCount( static_cast( pushConstantRanges_.size() ) ) + , pPushConstantRanges( pushConstantRanges_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineLayoutCreateInfo & + operator=( PipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ImageDrmFormatModifierListCreateInfoEXT& operator=( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + PipelineLayoutCreateInfo & operator=( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - ImageDrmFormatModifierListCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PipelineLayoutCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - ImageDrmFormatModifierListCreateInfoEXT & setDrmFormatModifierCount( uint32_t drmFormatModifierCount_ ) VULKAN_HPP_NOEXCEPT + PipelineLayoutCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - drmFormatModifierCount = drmFormatModifierCount_; + flags = flags_; return *this; } - ImageDrmFormatModifierListCreateInfoEXT & setPDrmFormatModifiers( const uint64_t* pDrmFormatModifiers_ ) VULKAN_HPP_NOEXCEPT + PipelineLayoutCreateInfo & setSetLayoutCount( uint32_t setLayoutCount_ ) VULKAN_HPP_NOEXCEPT { - pDrmFormatModifiers = pDrmFormatModifiers_; + setLayoutCount = setLayoutCount_; return *this; } - operator VkImageDrmFormatModifierListCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageDrmFormatModifierListCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( ImageDrmFormatModifierListCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + PipelineLayoutCreateInfo & + setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( drmFormatModifierCount == rhs.drmFormatModifierCount ) - && ( pDrmFormatModifiers == rhs.pDrmFormatModifiers ); + pSetLayouts = pSetLayouts_; + return *this; } - bool operator!=( ImageDrmFormatModifierListCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineLayoutCreateInfo & setSetLayouts( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + setLayouts_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + setLayoutCount = static_cast( setLayouts_.size() ); + pSetLayouts = setLayouts_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierListCreateInfoEXT; - const void* pNext = {}; - uint32_t drmFormatModifierCount = {}; - const uint64_t* pDrmFormatModifiers = {}; - }; - static_assert( sizeof( ImageDrmFormatModifierListCreateInfoEXT ) == sizeof( VkImageDrmFormatModifierListCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ImageDrmFormatModifierPropertiesEXT - { - ImageDrmFormatModifierPropertiesEXT( uint64_t drmFormatModifier_ = {} ) VULKAN_HPP_NOEXCEPT - : drmFormatModifier( drmFormatModifier_ ) - {} - - VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT & operator=( VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + PipelineLayoutCreateInfo & setPushConstantRangeCount( uint32_t pushConstantRangeCount_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT ) - offsetof( ImageDrmFormatModifierPropertiesEXT, pNext ) ); + pushConstantRangeCount = pushConstantRangeCount_; return *this; } - ImageDrmFormatModifierPropertiesEXT( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + PipelineLayoutCreateInfo & + setPPushConstantRanges( const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pPushConstantRanges = pPushConstantRanges_; + return *this; } - ImageDrmFormatModifierPropertiesEXT& operator=( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineLayoutCreateInfo & setPushConstantRanges( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + pushConstantRanges_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pushConstantRangeCount = static_cast( pushConstantRanges_.size() ); + pPushConstantRanges = pushConstantRanges_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkImageDrmFormatModifierPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkPipelineLayoutCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkImageDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT + operator VkPipelineLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ImageDrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineLayoutCreateInfo const & ) const = default; +#else + bool operator==( PipelineLayoutCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( drmFormatModifier == rhs.drmFormatModifier ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( setLayoutCount == rhs.setLayoutCount ) && ( pSetLayouts == rhs.pSetLayouts ) && + ( pushConstantRangeCount == rhs.pushConstantRangeCount ) && + ( pPushConstantRanges == rhs.pPushConstantRanges ); } - bool operator!=( ImageDrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PipelineLayoutCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierPropertiesEXT; - void* pNext = {}; - uint64_t drmFormatModifier = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineLayoutCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags = {}; + uint32_t setLayoutCount = {}; + const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts = {}; + uint32_t pushConstantRangeCount = {}; + const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges = {}; }; - static_assert( sizeof( ImageDrmFormatModifierPropertiesEXT ) == sizeof( VkImageDrmFormatModifierPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PipelineLayoutCreateInfo ) == sizeof( VkPipelineLayoutCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ImageFormatListCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ImageFormatListCreateInfo( uint32_t viewFormatCount_ = {}, - const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ = {} ) VULKAN_HPP_NOEXCEPT - : viewFormatCount( viewFormatCount_ ) - , pViewFormats( pViewFormats_ ) + using Type = PipelineLayoutCreateInfo; + }; + + struct PrivateDataSlotCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePrivateDataSlotCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PrivateDataSlotCreateInfoEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags_ = {} ) + VULKAN_HPP_NOEXCEPT : flags( flags_ ) {} - VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo & operator=( VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo ) - offsetof( ImageFormatListCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + PrivateDataSlotCreateInfoEXT( PrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ImageFormatListCreateInfo( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PrivateDataSlotCreateInfoEXT( VkPrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PrivateDataSlotCreateInfoEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ImageFormatListCreateInfo& operator=( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 PrivateDataSlotCreateInfoEXT & + operator=( PrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ImageFormatListCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PrivateDataSlotCreateInfoEXT & operator=( VkPrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - ImageFormatListCreateInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT + PrivateDataSlotCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - viewFormatCount = viewFormatCount_; + pNext = pNext_; return *this; } - ImageFormatListCreateInfo & setPViewFormats( const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ ) VULKAN_HPP_NOEXCEPT + PrivateDataSlotCreateInfoEXT & + setFlags( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT { - pViewFormats = pViewFormats_; + flags = flags_; return *this; } - operator VkImageFormatListCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPrivateDataSlotCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkImageFormatListCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkPrivateDataSlotCreateInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ImageFormatListCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PrivateDataSlotCreateInfoEXT const & ) const = default; +#else + bool operator==( PrivateDataSlotCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( viewFormatCount == rhs.viewFormatCount ) - && ( pViewFormats == rhs.pViewFormats ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ); } - bool operator!=( ImageFormatListCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PrivateDataSlotCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatListCreateInfo; - const void* pNext = {}; - uint32_t viewFormatCount = {}; - const VULKAN_HPP_NAMESPACE::Format* pViewFormats = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePrivateDataSlotCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags = {}; }; - static_assert( sizeof( ImageFormatListCreateInfo ) == sizeof( VkImageFormatListCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PrivateDataSlotCreateInfoEXT ) == sizeof( VkPrivateDataSlotCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct ImageFormatProperties2 + template <> + struct CppType { - ImageFormatProperties2( VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties_ = {} ) VULKAN_HPP_NOEXCEPT - : imageFormatProperties( imageFormatProperties_ ) + using Type = PrivateDataSlotCreateInfoEXT; + }; + + class PrivateDataSlotEXT + { + public: + using CType = VkPrivateDataSlotEXT; + + static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = + VULKAN_HPP_NAMESPACE::ObjectType::ePrivateDataSlotEXT; + static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = + VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + + public: + VULKAN_HPP_CONSTEXPR PrivateDataSlotEXT() = default; + VULKAN_HPP_CONSTEXPR PrivateDataSlotEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT PrivateDataSlotEXT( VkPrivateDataSlotEXT privateDataSlotEXT ) VULKAN_HPP_NOEXCEPT + : m_privateDataSlotEXT( privateDataSlotEXT ) {} - VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & operator=( VULKAN_HPP_NAMESPACE::ImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + PrivateDataSlotEXT & operator=( VkPrivateDataSlotEXT privateDataSlotEXT ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImageFormatProperties2 ) - offsetof( ImageFormatProperties2, pNext ) ); + m_privateDataSlotEXT = privateDataSlotEXT; return *this; } +#endif - ImageFormatProperties2( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT + PrivateDataSlotEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + m_privateDataSlotEXT = {}; + return *this; } - ImageFormatProperties2& operator=( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PrivateDataSlotEXT const & ) const = default; +#else + bool operator==( PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return m_privateDataSlotEXT == rhs.m_privateDataSlotEXT; } - operator VkImageFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT + bool operator!=( PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_privateDataSlotEXT != rhs.m_privateDataSlotEXT; } - operator VkImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT + bool operator<( PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_privateDataSlotEXT < rhs.m_privateDataSlotEXT; } +#endif - bool operator==( ImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPrivateDataSlotEXT() const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( imageFormatProperties == rhs.imageFormatProperties ); + return m_privateDataSlotEXT; } - bool operator!=( ImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_privateDataSlotEXT != VK_NULL_HANDLE; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatProperties2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {}; + bool operator!() const VULKAN_HPP_NOEXCEPT + { + return m_privateDataSlotEXT == VK_NULL_HANDLE; + } + + private: + VkPrivateDataSlotEXT m_privateDataSlotEXT = {}; }; - static_assert( sizeof( ImageFormatProperties2 ) == sizeof( VkImageFormatProperties2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT ) == sizeof( VkPrivateDataSlotEXT ), + "handle and wrapper have different size!" ); - struct ImageSubresourceRange + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - VULKAN_HPP_CONSTEXPR ImageSubresourceRange( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, - uint32_t baseMipLevel_ = {}, - uint32_t levelCount_ = {}, - uint32_t baseArrayLayer_ = {}, - uint32_t layerCount_ = {} ) VULKAN_HPP_NOEXCEPT - : aspectMask( aspectMask_ ) - , baseMipLevel( baseMipLevel_ ) - , levelCount( levelCount_ ) - , baseArrayLayer( baseArrayLayer_ ) - , layerCount( layerCount_ ) + using type = VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + struct QueryPoolCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR QueryPoolCreateInfo( + VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::QueryType queryType_ = VULKAN_HPP_NAMESPACE::QueryType::eOcclusion, + uint32_t queryCount_ = {}, + VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , queryType( queryType_ ) + , queryCount( queryCount_ ) + , pipelineStatistics( pipelineStatistics_ ) {} - ImageSubresourceRange( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR QueryPoolCreateInfo( QueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + QueryPoolCreateInfo( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : QueryPoolCreateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ImageSubresourceRange& operator=( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 QueryPoolCreateInfo & + operator=( QueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + QueryPoolCreateInfo & operator=( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - ImageSubresourceRange & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT + QueryPoolCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - aspectMask = aspectMask_; + pNext = pNext_; return *this; } - ImageSubresourceRange & setBaseMipLevel( uint32_t baseMipLevel_ ) VULKAN_HPP_NOEXCEPT + QueryPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - baseMipLevel = baseMipLevel_; + flags = flags_; return *this; } - ImageSubresourceRange & setLevelCount( uint32_t levelCount_ ) VULKAN_HPP_NOEXCEPT + QueryPoolCreateInfo & setQueryType( VULKAN_HPP_NAMESPACE::QueryType queryType_ ) VULKAN_HPP_NOEXCEPT { - levelCount = levelCount_; + queryType = queryType_; return *this; } - ImageSubresourceRange & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT + QueryPoolCreateInfo & setQueryCount( uint32_t queryCount_ ) VULKAN_HPP_NOEXCEPT { - baseArrayLayer = baseArrayLayer_; + queryCount = queryCount_; return *this; } - ImageSubresourceRange & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT + QueryPoolCreateInfo & + setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT { - layerCount = layerCount_; + pipelineStatistics = pipelineStatistics_; return *this; } - operator VkImageSubresourceRange const&() const VULKAN_HPP_NOEXCEPT + operator VkQueryPoolCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkImageSubresourceRange &() VULKAN_HPP_NOEXCEPT + operator VkQueryPoolCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ImageSubresourceRange const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( QueryPoolCreateInfo const & ) const = default; +#else + bool operator==( QueryPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( aspectMask == rhs.aspectMask ) - && ( baseMipLevel == rhs.baseMipLevel ) - && ( levelCount == rhs.levelCount ) - && ( baseArrayLayer == rhs.baseArrayLayer ) - && ( layerCount == rhs.layerCount ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( queryType == rhs.queryType ) && ( queryCount == rhs.queryCount ) && + ( pipelineStatistics == rhs.pipelineStatistics ); } - bool operator!=( ImageSubresourceRange const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( QueryPoolCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; - uint32_t baseMipLevel = {}; - uint32_t levelCount = {}; - uint32_t baseArrayLayer = {}; - uint32_t layerCount = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags = {}; + VULKAN_HPP_NAMESPACE::QueryType queryType = VULKAN_HPP_NAMESPACE::QueryType::eOcclusion; + uint32_t queryCount = {}; + VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {}; }; - static_assert( sizeof( ImageSubresourceRange ) == sizeof( VkImageSubresourceRange ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( QueryPoolCreateInfo ) == sizeof( VkQueryPoolCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ImageMemoryBarrier + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ImageMemoryBarrier( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, - VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, - VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, - VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, - uint32_t srcQueueFamilyIndex_ = {}, - uint32_t dstQueueFamilyIndex_ = {}, - VULKAN_HPP_NAMESPACE::Image image_ = {}, - VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {} ) VULKAN_HPP_NOEXCEPT - : srcAccessMask( srcAccessMask_ ) - , dstAccessMask( dstAccessMask_ ) - , oldLayout( oldLayout_ ) - , newLayout( newLayout_ ) - , srcQueueFamilyIndex( srcQueueFamilyIndex_ ) - , dstQueueFamilyIndex( dstQueueFamilyIndex_ ) - , image( image_ ) - , subresourceRange( subresourceRange_ ) - {} + using Type = QueryPoolCreateInfo; + }; - VULKAN_HPP_NAMESPACE::ImageMemoryBarrier & operator=( VULKAN_HPP_NAMESPACE::ImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImageMemoryBarrier ) - offsetof( ImageMemoryBarrier, pNext ) ); - return *this; - } + struct RayTracingShaderGroupCreateInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eRayTracingShaderGroupCreateInfoKHR; - ImageMemoryBarrier( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + RayTracingShaderGroupCreateInfoKHR( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ = + VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral, + uint32_t generalShader_ = {}, + uint32_t closestHitShader_ = {}, + uint32_t anyHitShader_ = {}, + uint32_t intersectionShader_ = {}, + const void * pShaderGroupCaptureReplayHandle_ = {} ) VULKAN_HPP_NOEXCEPT + : type( type_ ) + , generalShader( generalShader_ ) + , closestHitShader( closestHitShader_ ) + , anyHitShader( anyHitShader_ ) + , intersectionShader( intersectionShader_ ) + , pShaderGroupCaptureReplayHandle( pShaderGroupCaptureReplayHandle_ ) + {} - ImageMemoryBarrier& operator=( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoKHR( RayTracingShaderGroupCreateInfoKHR const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - ImageMemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + RayTracingShaderGroupCreateInfoKHR( VkRayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : RayTracingShaderGroupCreateInfoKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ImageMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoKHR & + operator=( RayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + RayTracingShaderGroupCreateInfoKHR & + operator=( VkRayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - srcAccessMask = srcAccessMask_; + *this = *reinterpret_cast( &rhs ); return *this; } - ImageMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT + RayTracingShaderGroupCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - dstAccessMask = dstAccessMask_; + pNext = pNext_; return *this; } - ImageMemoryBarrier & setOldLayout( VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ ) VULKAN_HPP_NOEXCEPT + RayTracingShaderGroupCreateInfoKHR & + setType( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ ) VULKAN_HPP_NOEXCEPT { - oldLayout = oldLayout_; + type = type_; return *this; } - ImageMemoryBarrier & setNewLayout( VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ ) VULKAN_HPP_NOEXCEPT + RayTracingShaderGroupCreateInfoKHR & setGeneralShader( uint32_t generalShader_ ) VULKAN_HPP_NOEXCEPT { - newLayout = newLayout_; + generalShader = generalShader_; return *this; } - ImageMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT + RayTracingShaderGroupCreateInfoKHR & setClosestHitShader( uint32_t closestHitShader_ ) VULKAN_HPP_NOEXCEPT { - srcQueueFamilyIndex = srcQueueFamilyIndex_; + closestHitShader = closestHitShader_; return *this; } - ImageMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT + RayTracingShaderGroupCreateInfoKHR & setAnyHitShader( uint32_t anyHitShader_ ) VULKAN_HPP_NOEXCEPT { - dstQueueFamilyIndex = dstQueueFamilyIndex_; + anyHitShader = anyHitShader_; return *this; } - ImageMemoryBarrier & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT + RayTracingShaderGroupCreateInfoKHR & setIntersectionShader( uint32_t intersectionShader_ ) VULKAN_HPP_NOEXCEPT { - image = image_; + intersectionShader = intersectionShader_; return *this; } - ImageMemoryBarrier & setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ ) VULKAN_HPP_NOEXCEPT + RayTracingShaderGroupCreateInfoKHR & + setPShaderGroupCaptureReplayHandle( const void * pShaderGroupCaptureReplayHandle_ ) VULKAN_HPP_NOEXCEPT { - subresourceRange = subresourceRange_; + pShaderGroupCaptureReplayHandle = pShaderGroupCaptureReplayHandle_; return *this; } - operator VkImageMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT + operator VkRayTracingShaderGroupCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkImageMemoryBarrier &() VULKAN_HPP_NOEXCEPT + operator VkRayTracingShaderGroupCreateInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ImageMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( RayTracingShaderGroupCreateInfoKHR const & ) const = default; +#else + bool operator==( RayTracingShaderGroupCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcAccessMask == rhs.srcAccessMask ) - && ( dstAccessMask == rhs.dstAccessMask ) - && ( oldLayout == rhs.oldLayout ) - && ( newLayout == rhs.newLayout ) - && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex ) - && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex ) - && ( image == rhs.image ) - && ( subresourceRange == rhs.subresourceRange ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( type == rhs.type ) && + ( generalShader == rhs.generalShader ) && ( closestHitShader == rhs.closestHitShader ) && + ( anyHitShader == rhs.anyHitShader ) && ( intersectionShader == rhs.intersectionShader ) && + ( pShaderGroupCaptureReplayHandle == rhs.pShaderGroupCaptureReplayHandle ); } - bool operator!=( ImageMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( RayTracingShaderGroupCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryBarrier; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {}; - VULKAN_HPP_NAMESPACE::ImageLayout oldLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::ImageLayout newLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - uint32_t srcQueueFamilyIndex = {}; - uint32_t dstQueueFamilyIndex = {}; - VULKAN_HPP_NAMESPACE::Image image = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = + VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral; + uint32_t generalShader = {}; + uint32_t closestHitShader = {}; + uint32_t anyHitShader = {}; + uint32_t intersectionShader = {}; + const void * pShaderGroupCaptureReplayHandle = {}; }; - static_assert( sizeof( ImageMemoryBarrier ) == sizeof( VkImageMemoryBarrier ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( RayTracingShaderGroupCreateInfoKHR ) == sizeof( VkRayTracingShaderGroupCreateInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct ImageMemoryRequirementsInfo2 + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ImageMemoryRequirementsInfo2( VULKAN_HPP_NAMESPACE::Image image_ = {} ) VULKAN_HPP_NOEXCEPT - : image( image_ ) + using Type = RayTracingShaderGroupCreateInfoKHR; + }; + + struct PipelineLibraryCreateInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineLibraryCreateInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PipelineLibraryCreateInfoKHR( uint32_t libraryCount_ = {}, + const VULKAN_HPP_NAMESPACE::Pipeline * pLibraries_ = {} ) VULKAN_HPP_NOEXCEPT + : libraryCount( libraryCount_ ) + , pLibraries( pLibraries_ ) + {} + + VULKAN_HPP_CONSTEXPR + PipelineLibraryCreateInfoKHR( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineLibraryCreateInfoKHR( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PipelineLibraryCreateInfoKHR( *reinterpret_cast( &rhs ) ) {} - VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & operator=( VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineLibraryCreateInfoKHR( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & libraries_ ) + : libraryCount( static_cast( libraries_.size() ) ), pLibraries( libraries_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineLibraryCreateInfoKHR & + operator=( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineLibraryCreateInfoKHR & operator=( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 ) - offsetof( ImageMemoryRequirementsInfo2, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - ImageMemoryRequirementsInfo2( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT + PipelineLibraryCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - ImageMemoryRequirementsInfo2& operator=( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT + PipelineLibraryCreateInfoKHR & setLibraryCount( uint32_t libraryCount_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + libraryCount = libraryCount_; return *this; } - ImageMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PipelineLibraryCreateInfoKHR & + setPLibraries( const VULKAN_HPP_NAMESPACE::Pipeline * pLibraries_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + pLibraries = pLibraries_; return *this; } - ImageMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineLibraryCreateInfoKHR & setLibraries( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & libraries_ ) + VULKAN_HPP_NOEXCEPT { - image = image_; + libraryCount = static_cast( libraries_.size() ); + pLibraries = libraries_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkImageMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT + operator VkPipelineLibraryCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkImageMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT + operator VkPipelineLibraryCreateInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ImageMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineLibraryCreateInfoKHR const & ) const = default; +#else + bool operator==( PipelineLibraryCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( image == rhs.image ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( libraryCount == rhs.libraryCount ) && + ( pLibraries == rhs.pLibraries ); } - bool operator!=( ImageMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PipelineLibraryCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryRequirementsInfo2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Image image = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineLibraryCreateInfoKHR; + const void * pNext = {}; + uint32_t libraryCount = {}; + const VULKAN_HPP_NAMESPACE::Pipeline * pLibraries = {}; }; - static_assert( sizeof( ImageMemoryRequirementsInfo2 ) == sizeof( VkImageMemoryRequirementsInfo2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PipelineLibraryCreateInfoKHR ) == sizeof( VkPipelineLibraryCreateInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_FUCHSIA + template <> + struct CppType + { + using Type = PipelineLibraryCreateInfoKHR; + }; - struct ImagePipeSurfaceCreateInfoFUCHSIA + struct RayTracingPipelineInterfaceCreateInfoKHR { - VULKAN_HPP_CONSTEXPR ImagePipeSurfaceCreateInfoFUCHSIA( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ = {}, - zx_handle_t imagePipeHandle_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , imagePipeHandle( imagePipeHandle_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eRayTracingPipelineInterfaceCreateInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + RayTracingPipelineInterfaceCreateInfoKHR( uint32_t maxPipelineRayPayloadSize_ = {}, + uint32_t maxPipelineRayHitAttributeSize_ = {} ) VULKAN_HPP_NOEXCEPT + : maxPipelineRayPayloadSize( maxPipelineRayPayloadSize_ ) + , maxPipelineRayHitAttributeSize( maxPipelineRayHitAttributeSize_ ) {} - VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA & operator=( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA ) - offsetof( ImagePipeSurfaceCreateInfoFUCHSIA, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR RayTracingPipelineInterfaceCreateInfoKHR( + RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ImagePipeSurfaceCreateInfoFUCHSIA( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + RayTracingPipelineInterfaceCreateInfoKHR( VkRayTracingPipelineInterfaceCreateInfoKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + : RayTracingPipelineInterfaceCreateInfoKHR( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineInterfaceCreateInfoKHR & + operator=( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ImagePipeSurfaceCreateInfoFUCHSIA& operator=( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT + RayTracingPipelineInterfaceCreateInfoKHR & + operator=( VkRayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - ImagePipeSurfaceCreateInfoFUCHSIA & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + RayTracingPipelineInterfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - ImagePipeSurfaceCreateInfoFUCHSIA & setFlags( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ ) VULKAN_HPP_NOEXCEPT + RayTracingPipelineInterfaceCreateInfoKHR & + setMaxPipelineRayPayloadSize( uint32_t maxPipelineRayPayloadSize_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + maxPipelineRayPayloadSize = maxPipelineRayPayloadSize_; return *this; } - ImagePipeSurfaceCreateInfoFUCHSIA & setImagePipeHandle( zx_handle_t imagePipeHandle_ ) VULKAN_HPP_NOEXCEPT + RayTracingPipelineInterfaceCreateInfoKHR & + setMaxPipelineRayHitAttributeSize( uint32_t maxPipelineRayHitAttributeSize_ ) VULKAN_HPP_NOEXCEPT { - imagePipeHandle = imagePipeHandle_; + maxPipelineRayHitAttributeSize = maxPipelineRayHitAttributeSize_; return *this; } - operator VkImagePipeSurfaceCreateInfoFUCHSIA const&() const VULKAN_HPP_NOEXCEPT + operator VkRayTracingPipelineInterfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkImagePipeSurfaceCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT + operator VkRayTracingPipelineInterfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ImagePipeSurfaceCreateInfoFUCHSIA const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( RayTracingPipelineInterfaceCreateInfoKHR const & ) const = default; +#else + bool operator==( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( imagePipeHandle == rhs.imagePipeHandle ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( maxPipelineRayPayloadSize == rhs.maxPipelineRayPayloadSize ) && + ( maxPipelineRayHitAttributeSize == rhs.maxPipelineRayHitAttributeSize ); } - bool operator!=( ImagePipeSurfaceCreateInfoFUCHSIA const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags = {}; - zx_handle_t imagePipeHandle = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineInterfaceCreateInfoKHR; + const void * pNext = {}; + uint32_t maxPipelineRayPayloadSize = {}; + uint32_t maxPipelineRayHitAttributeSize = {}; }; - static_assert( sizeof( ImagePipeSurfaceCreateInfoFUCHSIA ) == sizeof( VkImagePipeSurfaceCreateInfoFUCHSIA ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_FUCHSIA*/ + static_assert( sizeof( RayTracingPipelineInterfaceCreateInfoKHR ) == + sizeof( VkRayTracingPipelineInterfaceCreateInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct ImagePlaneMemoryRequirementsInfo - { - VULKAN_HPP_CONSTEXPR ImagePlaneMemoryRequirementsInfo( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor ) VULKAN_HPP_NOEXCEPT - : planeAspect( planeAspect_ ) + template <> + struct CppType + { + using Type = RayTracingPipelineInterfaceCreateInfoKHR; + }; + + struct RayTracingPipelineCreateInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineCreateInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoKHR( + VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, + uint32_t stageCount_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ = {}, + uint32_t groupCount_ = {}, + const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR * pGroups_ = {}, + uint32_t maxPipelineRayRecursionDepth_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo_ = {}, + const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR * pLibraryInterface_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ = {}, + VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, + VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, + int32_t basePipelineIndex_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , stageCount( stageCount_ ) + , pStages( pStages_ ) + , groupCount( groupCount_ ) + , pGroups( pGroups_ ) + , maxPipelineRayRecursionDepth( maxPipelineRayRecursionDepth_ ) + , pLibraryInfo( pLibraryInfo_ ) + , pLibraryInterface( pLibraryInterface_ ) + , pDynamicState( pDynamicState_ ) + , layout( layout_ ) + , basePipelineHandle( basePipelineHandle_ ) + , basePipelineIndex( basePipelineIndex_ ) + {} + + VULKAN_HPP_CONSTEXPR + RayTracingPipelineCreateInfoKHR( RayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + RayTracingPipelineCreateInfoKHR( VkRayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : RayTracingPipelineCreateInfoKHR( *reinterpret_cast( &rhs ) ) {} - VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo & operator=( VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RayTracingPipelineCreateInfoKHR( + VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + stages_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries< + const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR> const & groups_ = {}, + uint32_t maxPipelineRayRecursionDepth_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo_ = {}, + const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR * pLibraryInterface_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ = {}, + VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, + VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, + int32_t basePipelineIndex_ = {} ) + : flags( flags_ ) + , stageCount( static_cast( stages_.size() ) ) + , pStages( stages_.data() ) + , groupCount( static_cast( groups_.size() ) ) + , pGroups( groups_.data() ) + , maxPipelineRayRecursionDepth( maxPipelineRayRecursionDepth_ ) + , pLibraryInfo( pLibraryInfo_ ) + , pLibraryInterface( pLibraryInterface_ ) + , pDynamicState( pDynamicState_ ) + , layout( layout_ ) + , basePipelineHandle( basePipelineHandle_ ) + , basePipelineIndex( basePipelineIndex_ ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoKHR & + operator=( RayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + RayTracingPipelineCreateInfoKHR & operator=( VkRayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo ) - offsetof( ImagePlaneMemoryRequirementsInfo, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - ImagePlaneMemoryRequirementsInfo( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT + RayTracingPipelineCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - ImagePlaneMemoryRequirementsInfo& operator=( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT + RayTracingPipelineCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + flags = flags_; return *this; } - ImagePlaneMemoryRequirementsInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + RayTracingPipelineCreateInfoKHR & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + stageCount = stageCount_; return *this; } - ImagePlaneMemoryRequirementsInfo & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT + RayTracingPipelineCreateInfoKHR & + setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT { - planeAspect = planeAspect_; + pStages = pStages_; return *this; } - operator VkImagePlaneMemoryRequirementsInfo const&() const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RayTracingPipelineCreateInfoKHR & setStages( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + stages_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + stageCount = static_cast( stages_.size() ); + pStages = stages_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkImagePlaneMemoryRequirementsInfo &() VULKAN_HPP_NOEXCEPT + RayTracingPipelineCreateInfoKHR & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + groupCount = groupCount_; + return *this; } - bool operator==( ImagePlaneMemoryRequirementsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + RayTracingPipelineCreateInfoKHR & + setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR * pGroups_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( planeAspect == rhs.planeAspect ); + pGroups = pGroups_; + return *this; } - bool operator!=( ImagePlaneMemoryRequirementsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RayTracingPipelineCreateInfoKHR & + setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries< + const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR> const & groups_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + groupCount = static_cast( groups_.size() ); + pGroups = groups_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagePlaneMemoryRequirementsInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor; - }; - static_assert( sizeof( ImagePlaneMemoryRequirementsInfo ) == sizeof( VkImagePlaneMemoryRequirementsInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ImageResolve - { - VULKAN_HPP_CONSTEXPR ImageResolve( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, - VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {}, - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, - VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {}, - VULKAN_HPP_NAMESPACE::Extent3D extent_ = {} ) VULKAN_HPP_NOEXCEPT - : srcSubresource( srcSubresource_ ) - , srcOffset( srcOffset_ ) - , dstSubresource( dstSubresource_ ) - , dstOffset( dstOffset_ ) - , extent( extent_ ) - {} - - ImageResolve( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT + RayTracingPipelineCreateInfoKHR & + setMaxPipelineRayRecursionDepth( uint32_t maxPipelineRayRecursionDepth_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + maxPipelineRayRecursionDepth = maxPipelineRayRecursionDepth_; + return *this; } - ImageResolve& operator=( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT + RayTracingPipelineCreateInfoKHR & + setPLibraryInfo( const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pLibraryInfo = pLibraryInfo_; return *this; } - ImageResolve & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ ) VULKAN_HPP_NOEXCEPT + RayTracingPipelineCreateInfoKHR & setPLibraryInterface( + const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR * pLibraryInterface_ ) VULKAN_HPP_NOEXCEPT { - srcSubresource = srcSubresource_; + pLibraryInterface = pLibraryInterface_; return *this; } - ImageResolve & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ ) VULKAN_HPP_NOEXCEPT + RayTracingPipelineCreateInfoKHR & setPDynamicState( + const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState_ ) VULKAN_HPP_NOEXCEPT { - srcOffset = srcOffset_; + pDynamicState = pDynamicState_; return *this; } - ImageResolve & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ ) VULKAN_HPP_NOEXCEPT + RayTracingPipelineCreateInfoKHR & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT { - dstSubresource = dstSubresource_; + layout = layout_; return *this; } - ImageResolve & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ ) VULKAN_HPP_NOEXCEPT + RayTracingPipelineCreateInfoKHR & + setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT { - dstOffset = dstOffset_; + basePipelineHandle = basePipelineHandle_; return *this; } - ImageResolve & setExtent( VULKAN_HPP_NAMESPACE::Extent3D extent_ ) VULKAN_HPP_NOEXCEPT + RayTracingPipelineCreateInfoKHR & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT { - extent = extent_; + basePipelineIndex = basePipelineIndex_; return *this; } - operator VkImageResolve const&() const VULKAN_HPP_NOEXCEPT + operator VkRayTracingPipelineCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkImageResolve &() VULKAN_HPP_NOEXCEPT + operator VkRayTracingPipelineCreateInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ImageResolve const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( RayTracingPipelineCreateInfoKHR const & ) const = default; +#else + bool operator==( RayTracingPipelineCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( srcSubresource == rhs.srcSubresource ) - && ( srcOffset == rhs.srcOffset ) - && ( dstSubresource == rhs.dstSubresource ) - && ( dstOffset == rhs.dstOffset ) - && ( extent == rhs.extent ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( stageCount == rhs.stageCount ) && ( pStages == rhs.pStages ) && ( groupCount == rhs.groupCount ) && + ( pGroups == rhs.pGroups ) && ( maxPipelineRayRecursionDepth == rhs.maxPipelineRayRecursionDepth ) && + ( pLibraryInfo == rhs.pLibraryInfo ) && ( pLibraryInterface == rhs.pLibraryInterface ) && + ( pDynamicState == rhs.pDynamicState ) && ( layout == rhs.layout ) && + ( basePipelineHandle == rhs.basePipelineHandle ) && ( basePipelineIndex == rhs.basePipelineIndex ); } - bool operator!=( ImageResolve const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( RayTracingPipelineCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {}; - VULKAN_HPP_NAMESPACE::Extent3D extent = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineCreateInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {}; + uint32_t stageCount = {}; + const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages = {}; + uint32_t groupCount = {}; + const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR * pGroups = {}; + uint32_t maxPipelineRayRecursionDepth = {}; + const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR * pLibraryInfo = {}; + const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR * pLibraryInterface = {}; + const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo * pDynamicState = {}; + VULKAN_HPP_NAMESPACE::PipelineLayout layout = {}; + VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {}; + int32_t basePipelineIndex = {}; + }; + static_assert( sizeof( RayTracingPipelineCreateInfoKHR ) == sizeof( VkRayTracingPipelineCreateInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = RayTracingPipelineCreateInfoKHR; }; - static_assert( sizeof( ImageResolve ) == sizeof( VkImageResolve ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ImageSparseMemoryRequirementsInfo2 + struct RayTracingShaderGroupCreateInfoNV { - VULKAN_HPP_CONSTEXPR ImageSparseMemoryRequirementsInfo2( VULKAN_HPP_NAMESPACE::Image image_ = {} ) VULKAN_HPP_NOEXCEPT - : image( image_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eRayTracingShaderGroupCreateInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + RayTracingShaderGroupCreateInfoNV( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ = + VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral, + uint32_t generalShader_ = {}, + uint32_t closestHitShader_ = {}, + uint32_t anyHitShader_ = {}, + uint32_t intersectionShader_ = {} ) VULKAN_HPP_NOEXCEPT + : type( type_ ) + , generalShader( generalShader_ ) + , closestHitShader( closestHitShader_ ) + , anyHitShader( anyHitShader_ ) + , intersectionShader( intersectionShader_ ) + {} + + VULKAN_HPP_CONSTEXPR + RayTracingShaderGroupCreateInfoNV( RayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + RayTracingShaderGroupCreateInfoNV( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : RayTracingShaderGroupCreateInfoNV( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & operator=( VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 RayTracingShaderGroupCreateInfoNV & + operator=( RayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + RayTracingShaderGroupCreateInfoNV & operator=( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 ) - offsetof( ImageSparseMemoryRequirementsInfo2, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - ImageSparseMemoryRequirementsInfo2( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT + RayTracingShaderGroupCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - ImageSparseMemoryRequirementsInfo2& operator=( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT + RayTracingShaderGroupCreateInfoNV & + setType( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + type = type_; return *this; } - ImageSparseMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + RayTracingShaderGroupCreateInfoNV & setGeneralShader( uint32_t generalShader_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + generalShader = generalShader_; return *this; } - ImageSparseMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT + RayTracingShaderGroupCreateInfoNV & setClosestHitShader( uint32_t closestHitShader_ ) VULKAN_HPP_NOEXCEPT { - image = image_; + closestHitShader = closestHitShader_; return *this; } - operator VkImageSparseMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT + RayTracingShaderGroupCreateInfoNV & setAnyHitShader( uint32_t anyHitShader_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + anyHitShader = anyHitShader_; + return *this; } - operator VkImageSparseMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT + RayTracingShaderGroupCreateInfoNV & setIntersectionShader( uint32_t intersectionShader_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + intersectionShader = intersectionShader_; + return *this; } - bool operator==( ImageSparseMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkRayTracingShaderGroupCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( image == rhs.image ); + return *reinterpret_cast( this ); } - bool operator!=( ImageSparseMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkRayTracingShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return *reinterpret_cast( this ); } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSparseMemoryRequirementsInfo2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Image image = {}; +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( RayTracingShaderGroupCreateInfoNV const & ) const = default; +#else + bool operator==( RayTracingShaderGroupCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( type == rhs.type ) && + ( generalShader == rhs.generalShader ) && ( closestHitShader == rhs.closestHitShader ) && + ( anyHitShader == rhs.anyHitShader ) && ( intersectionShader == rhs.intersectionShader ); + } + + bool operator!=( RayTracingShaderGroupCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = + VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral; + uint32_t generalShader = {}; + uint32_t closestHitShader = {}; + uint32_t anyHitShader = {}; + uint32_t intersectionShader = {}; }; - static_assert( sizeof( ImageSparseMemoryRequirementsInfo2 ) == sizeof( VkImageSparseMemoryRequirementsInfo2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( RayTracingShaderGroupCreateInfoNV ) == sizeof( VkRayTracingShaderGroupCreateInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct ImageStencilUsageCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ImageStencilUsageCreateInfo( VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ = {} ) VULKAN_HPP_NOEXCEPT - : stencilUsage( stencilUsage_ ) + using Type = RayTracingShaderGroupCreateInfoNV; + }; + + struct RayTracingPipelineCreateInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineCreateInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + RayTracingPipelineCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, + uint32_t stageCount_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ = {}, + uint32_t groupCount_ = {}, + const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV * pGroups_ = {}, + uint32_t maxRecursionDepth_ = {}, + VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, + VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, + int32_t basePipelineIndex_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , stageCount( stageCount_ ) + , pStages( pStages_ ) + , groupCount( groupCount_ ) + , pGroups( pGroups_ ) + , maxRecursionDepth( maxRecursionDepth_ ) + , layout( layout_ ) + , basePipelineHandle( basePipelineHandle_ ) + , basePipelineIndex( basePipelineIndex_ ) {} - VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo & operator=( VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo ) - offsetof( ImageStencilUsageCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + RayTracingPipelineCreateInfoNV( RayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ImageStencilUsageCreateInfo( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + RayTracingPipelineCreateInfoNV( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : RayTracingPipelineCreateInfoNV( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RayTracingPipelineCreateInfoNV( + VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + stages_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries< + const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV> const & groups_ = {}, + uint32_t maxRecursionDepth_ = {}, + VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, + VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, + int32_t basePipelineIndex_ = {} ) + : flags( flags_ ) + , stageCount( static_cast( stages_.size() ) ) + , pStages( stages_.data() ) + , groupCount( static_cast( groups_.size() ) ) + , pGroups( groups_.data() ) + , maxRecursionDepth( maxRecursionDepth_ ) + , layout( layout_ ) + , basePipelineHandle( basePipelineHandle_ ) + , basePipelineIndex( basePipelineIndex_ ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ImageStencilUsageCreateInfo& operator=( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 RayTracingPipelineCreateInfoNV & + operator=( RayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + RayTracingPipelineCreateInfoNV & operator=( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - ImageStencilUsageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + RayTracingPipelineCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - ImageStencilUsageCreateInfo & setStencilUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ ) VULKAN_HPP_NOEXCEPT + RayTracingPipelineCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - stencilUsage = stencilUsage_; + flags = flags_; return *this; } - operator VkImageStencilUsageCreateInfo const&() const VULKAN_HPP_NOEXCEPT + RayTracingPipelineCreateInfoNV & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + stageCount = stageCount_; + return *this; } - operator VkImageStencilUsageCreateInfo &() VULKAN_HPP_NOEXCEPT + RayTracingPipelineCreateInfoNV & + setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + pStages = pStages_; + return *this; } - bool operator==( ImageStencilUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RayTracingPipelineCreateInfoNV & setStages( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + stages_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( stencilUsage == rhs.stencilUsage ); + stageCount = static_cast( stages_.size() ); + pStages = stages_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - bool operator!=( ImageStencilUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + RayTracingPipelineCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + groupCount = groupCount_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageStencilUsageCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage = {}; - }; - static_assert( sizeof( ImageStencilUsageCreateInfo ) == sizeof( VkImageStencilUsageCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ImageSwapchainCreateInfoKHR - { - VULKAN_HPP_CONSTEXPR ImageSwapchainCreateInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {} ) VULKAN_HPP_NOEXCEPT - : swapchain( swapchain_ ) - {} + RayTracingPipelineCreateInfoNV & + setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV * pGroups_ ) VULKAN_HPP_NOEXCEPT + { + pGroups = pGroups_; + return *this; + } - VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR & operator=( VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RayTracingPipelineCreateInfoNV & + setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries< + const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV> const & groups_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR ) - offsetof( ImageSwapchainCreateInfoKHR, pNext ) ); + groupCount = static_cast( groups_.size() ); + pGroups = groups_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - ImageSwapchainCreateInfoKHR( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + RayTracingPipelineCreateInfoNV & setMaxRecursionDepth( uint32_t maxRecursionDepth_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + maxRecursionDepth = maxRecursionDepth_; + return *this; } - ImageSwapchainCreateInfoKHR& operator=( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + RayTracingPipelineCreateInfoNV & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + layout = layout_; return *this; } - ImageSwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + RayTracingPipelineCreateInfoNV & + setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + basePipelineHandle = basePipelineHandle_; return *this; } - ImageSwapchainCreateInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT + RayTracingPipelineCreateInfoNV & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT { - swapchain = swapchain_; + basePipelineIndex = basePipelineIndex_; return *this; } - operator VkImageSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkRayTracingPipelineCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkImageSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkRayTracingPipelineCreateInfoNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ImageSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( RayTracingPipelineCreateInfoNV const & ) const = default; +#else + bool operator==( RayTracingPipelineCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( swapchain == rhs.swapchain ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( stageCount == rhs.stageCount ) && ( pStages == rhs.pStages ) && ( groupCount == rhs.groupCount ) && + ( pGroups == rhs.pGroups ) && ( maxRecursionDepth == rhs.maxRecursionDepth ) && ( layout == rhs.layout ) && + ( basePipelineHandle == rhs.basePipelineHandle ) && ( basePipelineIndex == rhs.basePipelineIndex ); } - bool operator!=( ImageSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( RayTracingPipelineCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSwapchainCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineCreateInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {}; + uint32_t stageCount = {}; + const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages = {}; + uint32_t groupCount = {}; + const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV * pGroups = {}; + uint32_t maxRecursionDepth = {}; + VULKAN_HPP_NAMESPACE::PipelineLayout layout = {}; + VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {}; + int32_t basePipelineIndex = {}; }; - static_assert( sizeof( ImageSwapchainCreateInfoKHR ) == sizeof( VkImageSwapchainCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( RayTracingPipelineCreateInfoNV ) == sizeof( VkRayTracingPipelineCreateInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct ImageViewASTCDecodeModeEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ImageViewASTCDecodeModeEXT( VULKAN_HPP_NAMESPACE::Format decodeMode_ = VULKAN_HPP_NAMESPACE::Format::eUndefined ) VULKAN_HPP_NOEXCEPT - : decodeMode( decodeMode_ ) + using Type = RayTracingPipelineCreateInfoNV; + }; + + struct SubpassDescription + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SubpassDescription( + VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, + uint32_t inputAttachmentCount_ = {}, + const VULKAN_HPP_NAMESPACE::AttachmentReference * pInputAttachments_ = {}, + uint32_t colorAttachmentCount_ = {}, + const VULKAN_HPP_NAMESPACE::AttachmentReference * pColorAttachments_ = {}, + const VULKAN_HPP_NAMESPACE::AttachmentReference * pResolveAttachments_ = {}, + const VULKAN_HPP_NAMESPACE::AttachmentReference * pDepthStencilAttachment_ = {}, + uint32_t preserveAttachmentCount_ = {}, + const uint32_t * pPreserveAttachments_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , pipelineBindPoint( pipelineBindPoint_ ) + , inputAttachmentCount( inputAttachmentCount_ ) + , pInputAttachments( pInputAttachments_ ) + , colorAttachmentCount( colorAttachmentCount_ ) + , pColorAttachments( pColorAttachments_ ) + , pResolveAttachments( pResolveAttachments_ ) + , pDepthStencilAttachment( pDepthStencilAttachment_ ) + , preserveAttachmentCount( preserveAttachmentCount_ ) + , pPreserveAttachments( pPreserveAttachments_ ) {} - VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT & operator=( VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT ) - offsetof( ImageViewASTCDecodeModeEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR SubpassDescription( SubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ImageViewASTCDecodeModeEXT( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT + SubpassDescription( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT + : SubpassDescription( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SubpassDescription( + VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_, + VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + inputAttachments_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + colorAttachments_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + resolveAttachments_ = {}, + const VULKAN_HPP_NAMESPACE::AttachmentReference * pDepthStencilAttachment_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & preserveAttachments_ = {} ) + : flags( flags_ ) + , pipelineBindPoint( pipelineBindPoint_ ) + , inputAttachmentCount( static_cast( inputAttachments_.size() ) ) + , pInputAttachments( inputAttachments_.data() ) + , colorAttachmentCount( static_cast( colorAttachments_.size() ) ) + , pColorAttachments( colorAttachments_.data() ) + , pResolveAttachments( resolveAttachments_.data() ) + , pDepthStencilAttachment( pDepthStencilAttachment_ ) + , preserveAttachmentCount( static_cast( preserveAttachments_.size() ) ) + , pPreserveAttachments( preserveAttachments_.data() ) { - *this = rhs; +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( resolveAttachments_.empty() || ( colorAttachments_.size() == resolveAttachments_.size() ) ); +# else + if ( !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() ) ) + { + throw LogicError( + VULKAN_HPP_NAMESPACE_STRING + "::SubpassDescription::SubpassDescription: !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() )" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ImageViewASTCDecodeModeEXT& operator=( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 SubpassDescription & + operator=( SubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ImageViewASTCDecodeModeEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + SubpassDescription & operator=( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - ImageViewASTCDecodeModeEXT & setDecodeMode( VULKAN_HPP_NAMESPACE::Format decodeMode_ ) VULKAN_HPP_NOEXCEPT + SubpassDescription & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT { - decodeMode = decodeMode_; + flags = flags_; return *this; } - operator VkImageViewASTCDecodeModeEXT const&() const VULKAN_HPP_NOEXCEPT + SubpassDescription & + setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); - } - - operator VkImageViewASTCDecodeModeEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); + pipelineBindPoint = pipelineBindPoint_; + return *this; } - bool operator==( ImageViewASTCDecodeModeEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + SubpassDescription & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( decodeMode == rhs.decodeMode ); + inputAttachmentCount = inputAttachmentCount_; + return *this; } - bool operator!=( ImageViewASTCDecodeModeEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + SubpassDescription & + setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference * pInputAttachments_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + pInputAttachments = pInputAttachments_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewAstcDecodeModeEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Format decodeMode = VULKAN_HPP_NAMESPACE::Format::eUndefined; - }; - static_assert( sizeof( ImageViewASTCDecodeModeEXT ) == sizeof( VkImageViewASTCDecodeModeEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ImageViewCreateInfo - { - VULKAN_HPP_CONSTEXPR ImageViewCreateInfo( VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::Image image_ = {}, - VULKAN_HPP_NAMESPACE::ImageViewType viewType_ = VULKAN_HPP_NAMESPACE::ImageViewType::e1D, - VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, - VULKAN_HPP_NAMESPACE::ComponentMapping components_ = {}, - VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , image( image_ ) - , viewType( viewType_ ) - , format( format_ ) - , components( components_ ) - , subresourceRange( subresourceRange_ ) - {} - - VULKAN_HPP_NAMESPACE::ImageViewCreateInfo & operator=( VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SubpassDescription & setInputAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + inputAttachments_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImageViewCreateInfo ) - offsetof( ImageViewCreateInfo, pNext ) ); + inputAttachmentCount = static_cast( inputAttachments_.size() ); + pInputAttachments = inputAttachments_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - ImageViewCreateInfo( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + SubpassDescription & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + colorAttachmentCount = colorAttachmentCount_; + return *this; } - ImageViewCreateInfo& operator=( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + SubpassDescription & + setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference * pColorAttachments_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pColorAttachments = pColorAttachments_; return *this; } - ImageViewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SubpassDescription & setColorAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + colorAttachments_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + colorAttachmentCount = static_cast( colorAttachments_.size() ); + pColorAttachments = colorAttachments_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - ImageViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + SubpassDescription & setPResolveAttachments( + const VULKAN_HPP_NAMESPACE::AttachmentReference * pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + pResolveAttachments = pResolveAttachments_; return *this; } - ImageViewCreateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SubpassDescription & setResolveAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + resolveAttachments_ ) VULKAN_HPP_NOEXCEPT { - image = image_; + colorAttachmentCount = static_cast( resolveAttachments_.size() ); + pResolveAttachments = resolveAttachments_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - ImageViewCreateInfo & setViewType( VULKAN_HPP_NAMESPACE::ImageViewType viewType_ ) VULKAN_HPP_NOEXCEPT + SubpassDescription & setPDepthStencilAttachment( + const VULKAN_HPP_NAMESPACE::AttachmentReference * pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT { - viewType = viewType_; + pDepthStencilAttachment = pDepthStencilAttachment_; return *this; } - ImageViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT + SubpassDescription & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT { - format = format_; + preserveAttachmentCount = preserveAttachmentCount_; return *this; } - ImageViewCreateInfo & setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping components_ ) VULKAN_HPP_NOEXCEPT + SubpassDescription & setPPreserveAttachments( const uint32_t * pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT { - components = components_; + pPreserveAttachments = pPreserveAttachments_; return *this; } - ImageViewCreateInfo & setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SubpassDescription & setPreserveAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & preserveAttachments_ ) VULKAN_HPP_NOEXCEPT { - subresourceRange = subresourceRange_; + preserveAttachmentCount = static_cast( preserveAttachments_.size() ); + pPreserveAttachments = preserveAttachments_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkImageViewCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkSubpassDescription const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkImageViewCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkSubpassDescription &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ImageViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SubpassDescription const & ) const = default; +#else + bool operator==( SubpassDescription const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( image == rhs.image ) - && ( viewType == rhs.viewType ) - && ( format == rhs.format ) - && ( components == rhs.components ) - && ( subresourceRange == rhs.subresourceRange ); + return ( flags == rhs.flags ) && ( pipelineBindPoint == rhs.pipelineBindPoint ) && + ( inputAttachmentCount == rhs.inputAttachmentCount ) && ( pInputAttachments == rhs.pInputAttachments ) && + ( colorAttachmentCount == rhs.colorAttachmentCount ) && ( pColorAttachments == rhs.pColorAttachments ) && + ( pResolveAttachments == rhs.pResolveAttachments ) && + ( pDepthStencilAttachment == rhs.pDepthStencilAttachment ) && + ( preserveAttachmentCount == rhs.preserveAttachmentCount ) && + ( pPreserveAttachments == rhs.pPreserveAttachments ); } - bool operator!=( ImageViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SubpassDescription const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::Image image = {}; - VULKAN_HPP_NAMESPACE::ImageViewType viewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::ComponentMapping components = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {}; + VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {}; + VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics; + uint32_t inputAttachmentCount = {}; + const VULKAN_HPP_NAMESPACE::AttachmentReference * pInputAttachments = {}; + uint32_t colorAttachmentCount = {}; + const VULKAN_HPP_NAMESPACE::AttachmentReference * pColorAttachments = {}; + const VULKAN_HPP_NAMESPACE::AttachmentReference * pResolveAttachments = {}; + const VULKAN_HPP_NAMESPACE::AttachmentReference * pDepthStencilAttachment = {}; + uint32_t preserveAttachmentCount = {}; + const uint32_t * pPreserveAttachments = {}; }; - static_assert( sizeof( ImageViewCreateInfo ) == sizeof( VkImageViewCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SubpassDescription ) == sizeof( VkSubpassDescription ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ImageViewHandleInfoNVX + struct SubpassDependency { - VULKAN_HPP_CONSTEXPR ImageViewHandleInfoNVX( VULKAN_HPP_NAMESPACE::ImageView imageView_ = {}, - VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, - VULKAN_HPP_NAMESPACE::Sampler sampler_ = {} ) VULKAN_HPP_NOEXCEPT - : imageView( imageView_ ) - , descriptorType( descriptorType_ ) - , sampler( sampler_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + SubpassDependency( uint32_t srcSubpass_ = {}, + uint32_t dstSubpass_ = {}, + VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ = {}, + VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ = {}, + VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, + VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, + VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {} ) VULKAN_HPP_NOEXCEPT + : srcSubpass( srcSubpass_ ) + , dstSubpass( dstSubpass_ ) + , srcStageMask( srcStageMask_ ) + , dstStageMask( dstStageMask_ ) + , srcAccessMask( srcAccessMask_ ) + , dstAccessMask( dstAccessMask_ ) + , dependencyFlags( dependencyFlags_ ) + {} + + VULKAN_HPP_CONSTEXPR SubpassDependency( SubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SubpassDependency( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT + : SubpassDependency( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SubpassDependency & + operator=( SubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX & operator=( VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT + SubpassDependency & operator=( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX ) - offsetof( ImageViewHandleInfoNVX, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - ImageViewHandleInfoNVX( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT + SubpassDependency & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + srcSubpass = srcSubpass_; + return *this; } - ImageViewHandleInfoNVX& operator=( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT + SubpassDependency & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + dstSubpass = dstSubpass_; return *this; } - ImageViewHandleInfoNVX & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + SubpassDependency & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + srcStageMask = srcStageMask_; return *this; } - ImageViewHandleInfoNVX & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT + SubpassDependency & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT { - imageView = imageView_; + dstStageMask = dstStageMask_; + return *this; + } + + SubpassDependency & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT + { + srcAccessMask = srcAccessMask_; return *this; } - ImageViewHandleInfoNVX & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT + SubpassDependency & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT { - descriptorType = descriptorType_; + dstAccessMask = dstAccessMask_; return *this; } - ImageViewHandleInfoNVX & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT + SubpassDependency & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT { - sampler = sampler_; + dependencyFlags = dependencyFlags_; return *this; } - operator VkImageViewHandleInfoNVX const&() const VULKAN_HPP_NOEXCEPT + operator VkSubpassDependency const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkImageViewHandleInfoNVX &() VULKAN_HPP_NOEXCEPT + operator VkSubpassDependency &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ImageViewHandleInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SubpassDependency const & ) const = default; +#else + bool operator==( SubpassDependency const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( imageView == rhs.imageView ) - && ( descriptorType == rhs.descriptorType ) - && ( sampler == rhs.sampler ); + return ( srcSubpass == rhs.srcSubpass ) && ( dstSubpass == rhs.dstSubpass ) && + ( srcStageMask == rhs.srcStageMask ) && ( dstStageMask == rhs.dstStageMask ) && + ( srcAccessMask == rhs.srcAccessMask ) && ( dstAccessMask == rhs.dstAccessMask ) && + ( dependencyFlags == rhs.dependencyFlags ); } - bool operator!=( ImageViewHandleInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SubpassDependency const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewHandleInfoNVX; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageView imageView = {}; - VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler; - VULKAN_HPP_NAMESPACE::Sampler sampler = {}; + uint32_t srcSubpass = {}; + uint32_t dstSubpass = {}; + VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {}; + VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {}; + VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {}; + VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {}; + VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {}; }; - static_assert( sizeof( ImageViewHandleInfoNVX ) == sizeof( VkImageViewHandleInfoNVX ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SubpassDependency ) == sizeof( VkSubpassDependency ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ImageViewUsageCreateInfo + struct RenderPassCreateInfo { - VULKAN_HPP_CONSTEXPR ImageViewUsageCreateInfo( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {} ) VULKAN_HPP_NOEXCEPT - : usage( usage_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + RenderPassCreateInfo( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ = {}, + uint32_t attachmentCount_ = {}, + const VULKAN_HPP_NAMESPACE::AttachmentDescription * pAttachments_ = {}, + uint32_t subpassCount_ = {}, + const VULKAN_HPP_NAMESPACE::SubpassDescription * pSubpasses_ = {}, + uint32_t dependencyCount_ = {}, + const VULKAN_HPP_NAMESPACE::SubpassDependency * pDependencies_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , attachmentCount( attachmentCount_ ) + , pAttachments( pAttachments_ ) + , subpassCount( subpassCount_ ) + , pSubpasses( pSubpasses_ ) + , dependencyCount( dependencyCount_ ) + , pDependencies( pDependencies_ ) {} - VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo & operator=( VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo ) - offsetof( ImageViewUsageCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR RenderPassCreateInfo( RenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ImageViewUsageCreateInfo( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + RenderPassCreateInfo( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : RenderPassCreateInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RenderPassCreateInfo( + VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + attachments_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + subpasses_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + dependencies_ = {} ) + : flags( flags_ ) + , attachmentCount( static_cast( attachments_.size() ) ) + , pAttachments( attachments_.data() ) + , subpassCount( static_cast( subpasses_.size() ) ) + , pSubpasses( subpasses_.data() ) + , dependencyCount( static_cast( dependencies_.size() ) ) + , pDependencies( dependencies_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ImageViewUsageCreateInfo& operator=( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo & + operator=( RenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + RenderPassCreateInfo & operator=( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - ImageViewUsageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + RenderPassCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - ImageViewUsageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT + RenderPassCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - usage = usage_; + flags = flags_; return *this; } - operator VkImageViewUsageCreateInfo const&() const VULKAN_HPP_NOEXCEPT + RenderPassCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + attachmentCount = attachmentCount_; + return *this; } - operator VkImageViewUsageCreateInfo &() VULKAN_HPP_NOEXCEPT + RenderPassCreateInfo & + setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription * pAttachments_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + pAttachments = pAttachments_; + return *this; } - bool operator==( ImageViewUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RenderPassCreateInfo & setAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + attachments_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( usage == rhs.usage ); + attachmentCount = static_cast( attachments_.size() ); + pAttachments = attachments_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - bool operator!=( ImageViewUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + RenderPassCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + subpassCount = subpassCount_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewUsageCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {}; - }; - static_assert( sizeof( ImageViewUsageCreateInfo ) == sizeof( VkImageViewUsageCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - - struct ImportAndroidHardwareBufferInfoANDROID - { - VULKAN_HPP_CONSTEXPR ImportAndroidHardwareBufferInfoANDROID( struct AHardwareBuffer* buffer_ = {} ) VULKAN_HPP_NOEXCEPT - : buffer( buffer_ ) - {} - - VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID & operator=( VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + RenderPassCreateInfo & + setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription * pSubpasses_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID ) - offsetof( ImportAndroidHardwareBufferInfoANDROID, pNext ) ); + pSubpasses = pSubpasses_; return *this; } - ImportAndroidHardwareBufferInfoANDROID( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RenderPassCreateInfo & setSubpasses( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & subpasses_ ) + VULKAN_HPP_NOEXCEPT { - *this = rhs; + subpassCount = static_cast( subpasses_.size() ); + pSubpasses = subpasses_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - ImportAndroidHardwareBufferInfoANDROID& operator=( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + RenderPassCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + dependencyCount = dependencyCount_; return *this; } - ImportAndroidHardwareBufferInfoANDROID & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + RenderPassCreateInfo & + setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency * pDependencies_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + pDependencies = pDependencies_; return *this; } - ImportAndroidHardwareBufferInfoANDROID & setBuffer( struct AHardwareBuffer* buffer_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RenderPassCreateInfo & setDependencies( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + dependencies_ ) VULKAN_HPP_NOEXCEPT { - buffer = buffer_; + dependencyCount = static_cast( dependencies_.size() ); + pDependencies = dependencies_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkImportAndroidHardwareBufferInfoANDROID const&() const VULKAN_HPP_NOEXCEPT + operator VkRenderPassCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkImportAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT + operator VkRenderPassCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ImportAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( RenderPassCreateInfo const & ) const = default; +#else + bool operator==( RenderPassCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( buffer == rhs.buffer ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( attachmentCount == rhs.attachmentCount ) && ( pAttachments == rhs.pAttachments ) && + ( subpassCount == rhs.subpassCount ) && ( pSubpasses == rhs.pSubpasses ) && + ( dependencyCount == rhs.dependencyCount ) && ( pDependencies == rhs.pDependencies ); } - bool operator!=( ImportAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( RenderPassCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportAndroidHardwareBufferInfoANDROID; - const void* pNext = {}; - struct AHardwareBuffer* buffer = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {}; + uint32_t attachmentCount = {}; + const VULKAN_HPP_NAMESPACE::AttachmentDescription * pAttachments = {}; + uint32_t subpassCount = {}; + const VULKAN_HPP_NAMESPACE::SubpassDescription * pSubpasses = {}; + uint32_t dependencyCount = {}; + const VULKAN_HPP_NAMESPACE::SubpassDependency * pDependencies = {}; }; - static_assert( sizeof( ImportAndroidHardwareBufferInfoANDROID ) == sizeof( VkImportAndroidHardwareBufferInfoANDROID ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + static_assert( sizeof( RenderPassCreateInfo ) == sizeof( VkRenderPassCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ImportFenceFdInfoKHR + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ImportFenceFdInfoKHR( VULKAN_HPP_NAMESPACE::Fence fence_ = {}, - VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd, - int fd_ = {} ) VULKAN_HPP_NOEXCEPT - : fence( fence_ ) - , flags( flags_ ) - , handleType( handleType_ ) - , fd( fd_ ) + using Type = RenderPassCreateInfo; + }; + + struct SubpassDescription2 + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDescription2; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SubpassDescription2( + VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, + uint32_t viewMask_ = {}, + uint32_t inputAttachmentCount_ = {}, + const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pInputAttachments_ = {}, + uint32_t colorAttachmentCount_ = {}, + const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pColorAttachments_ = {}, + const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pResolveAttachments_ = {}, + const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilAttachment_ = {}, + uint32_t preserveAttachmentCount_ = {}, + const uint32_t * pPreserveAttachments_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , pipelineBindPoint( pipelineBindPoint_ ) + , viewMask( viewMask_ ) + , inputAttachmentCount( inputAttachmentCount_ ) + , pInputAttachments( pInputAttachments_ ) + , colorAttachmentCount( colorAttachmentCount_ ) + , pColorAttachments( pColorAttachments_ ) + , pResolveAttachments( pResolveAttachments_ ) + , pDepthStencilAttachment( pDepthStencilAttachment_ ) + , preserveAttachmentCount( preserveAttachmentCount_ ) + , pPreserveAttachments( pPreserveAttachments_ ) {} - VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR & operator=( VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR ) - offsetof( ImportFenceFdInfoKHR, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR SubpassDescription2( SubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ImportFenceFdInfoKHR( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + SubpassDescription2( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT + : SubpassDescription2( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SubpassDescription2( + VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_, + VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_, + uint32_t viewMask_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + inputAttachments_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + colorAttachments_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + resolveAttachments_ = {}, + const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilAttachment_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & preserveAttachments_ = {} ) + : flags( flags_ ) + , pipelineBindPoint( pipelineBindPoint_ ) + , viewMask( viewMask_ ) + , inputAttachmentCount( static_cast( inputAttachments_.size() ) ) + , pInputAttachments( inputAttachments_.data() ) + , colorAttachmentCount( static_cast( colorAttachments_.size() ) ) + , pColorAttachments( colorAttachments_.data() ) + , pResolveAttachments( resolveAttachments_.data() ) + , pDepthStencilAttachment( pDepthStencilAttachment_ ) + , preserveAttachmentCount( static_cast( preserveAttachments_.size() ) ) + , pPreserveAttachments( preserveAttachments_.data() ) { - *this = rhs; +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( resolveAttachments_.empty() || ( colorAttachments_.size() == resolveAttachments_.size() ) ); +# else + if ( !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() ) ) + { + throw LogicError( + VULKAN_HPP_NAMESPACE_STRING + "::SubpassDescription2::SubpassDescription2: !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() )" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ImportFenceFdInfoKHR& operator=( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 SubpassDescription2 & + operator=( SubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ImportFenceFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + SubpassDescription2 & operator=( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - ImportFenceFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT + SubpassDescription2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - fence = fence_; + pNext = pNext_; return *this; } - ImportFenceFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT + SubpassDescription2 & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT { flags = flags_; return *this; } - ImportFenceFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT + SubpassDescription2 & + setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT { - handleType = handleType_; + pipelineBindPoint = pipelineBindPoint_; return *this; } - ImportFenceFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT + SubpassDescription2 & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT { - fd = fd_; + viewMask = viewMask_; return *this; } - operator VkImportFenceFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImportFenceFdInfoKHR &() VULKAN_HPP_NOEXCEPT + SubpassDescription2 & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + inputAttachmentCount = inputAttachmentCount_; + return *this; } - bool operator==( ImportFenceFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + SubpassDescription2 & + setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pInputAttachments_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fence == rhs.fence ) - && ( flags == rhs.flags ) - && ( handleType == rhs.handleType ) - && ( fd == rhs.fd ); + pInputAttachments = pInputAttachments_; + return *this; } - bool operator!=( ImportFenceFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SubpassDescription2 & setInputAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + inputAttachments_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + inputAttachmentCount = static_cast( inputAttachments_.size() ); + pInputAttachments = inputAttachments_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceFdInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Fence fence = {}; - VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd; - int fd = {}; - }; - static_assert( sizeof( ImportFenceFdInfoKHR ) == sizeof( VkImportFenceFdInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - -#ifdef VK_USE_PLATFORM_WIN32_KHR - - struct ImportFenceWin32HandleInfoKHR - { - VULKAN_HPP_CONSTEXPR ImportFenceWin32HandleInfoKHR( VULKAN_HPP_NAMESPACE::Fence fence_ = {}, - VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd, - HANDLE handle_ = {}, - LPCWSTR name_ = {} ) VULKAN_HPP_NOEXCEPT - : fence( fence_ ) - , flags( flags_ ) - , handleType( handleType_ ) - , handle( handle_ ) - , name( name_ ) - {} - - VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR & operator=( VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + SubpassDescription2 & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR ) - offsetof( ImportFenceWin32HandleInfoKHR, pNext ) ); + colorAttachmentCount = colorAttachmentCount_; return *this; } - ImportFenceWin32HandleInfoKHR( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + SubpassDescription2 & + setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pColorAttachments_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pColorAttachments = pColorAttachments_; + return *this; } - ImportFenceWin32HandleInfoKHR& operator=( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SubpassDescription2 & setColorAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + colorAttachments_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + colorAttachmentCount = static_cast( colorAttachments_.size() ); + pColorAttachments = colorAttachments_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - ImportFenceWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + SubpassDescription2 & setPResolveAttachments( + const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + pResolveAttachments = pResolveAttachments_; return *this; } - ImportFenceWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SubpassDescription2 & setResolveAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + resolveAttachments_ ) VULKAN_HPP_NOEXCEPT { - fence = fence_; + colorAttachmentCount = static_cast( resolveAttachments_.size() ); + pResolveAttachments = resolveAttachments_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - ImportFenceWin32HandleInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT + SubpassDescription2 & setPDepthStencilAttachment( + const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + pDepthStencilAttachment = pDepthStencilAttachment_; return *this; } - ImportFenceWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT + SubpassDescription2 & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT { - handleType = handleType_; + preserveAttachmentCount = preserveAttachmentCount_; return *this; } - ImportFenceWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT + SubpassDescription2 & setPPreserveAttachments( const uint32_t * pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT { - handle = handle_; + pPreserveAttachments = pPreserveAttachments_; return *this; } - ImportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SubpassDescription2 & setPreserveAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & preserveAttachments_ ) VULKAN_HPP_NOEXCEPT { - name = name_; + preserveAttachmentCount = static_cast( preserveAttachments_.size() ); + pPreserveAttachments = preserveAttachments_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkImportFenceWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkSubpassDescription2 const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkImportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkSubpassDescription2 &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ImportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SubpassDescription2 const & ) const = default; +#else + bool operator==( SubpassDescription2 const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fence == rhs.fence ) - && ( flags == rhs.flags ) - && ( handleType == rhs.handleType ) - && ( handle == rhs.handle ) - && ( name == rhs.name ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( pipelineBindPoint == rhs.pipelineBindPoint ) && ( viewMask == rhs.viewMask ) && + ( inputAttachmentCount == rhs.inputAttachmentCount ) && ( pInputAttachments == rhs.pInputAttachments ) && + ( colorAttachmentCount == rhs.colorAttachmentCount ) && ( pColorAttachments == rhs.pColorAttachments ) && + ( pResolveAttachments == rhs.pResolveAttachments ) && + ( pDepthStencilAttachment == rhs.pDepthStencilAttachment ) && + ( preserveAttachmentCount == rhs.preserveAttachmentCount ) && + ( pPreserveAttachments == rhs.pPreserveAttachments ); } - bool operator!=( ImportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SubpassDescription2 const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceWin32HandleInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Fence fence = {}; - VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd; - HANDLE handle = {}; - LPCWSTR name = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescription2; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {}; + VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics; + uint32_t viewMask = {}; + uint32_t inputAttachmentCount = {}; + const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pInputAttachments = {}; + uint32_t colorAttachmentCount = {}; + const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pColorAttachments = {}; + const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pResolveAttachments = {}; + const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilAttachment = {}; + uint32_t preserveAttachmentCount = {}; + const uint32_t * pPreserveAttachments = {}; + }; + static_assert( sizeof( SubpassDescription2 ) == sizeof( VkSubpassDescription2 ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = SubpassDescription2; }; - static_assert( sizeof( ImportFenceWin32HandleInfoKHR ) == sizeof( VkImportFenceWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + using SubpassDescription2KHR = SubpassDescription2; - struct ImportMemoryFdInfoKHR + struct SubpassDependency2 { - VULKAN_HPP_CONSTEXPR ImportMemoryFdInfoKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, - int fd_ = {} ) VULKAN_HPP_NOEXCEPT - : handleType( handleType_ ) - , fd( fd_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDependency2; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SubpassDependency2( uint32_t srcSubpass_ = {}, + uint32_t dstSubpass_ = {}, + VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ = {}, + VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ = {}, + VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, + VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, + VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {}, + int32_t viewOffset_ = {} ) VULKAN_HPP_NOEXCEPT + : srcSubpass( srcSubpass_ ) + , dstSubpass( dstSubpass_ ) + , srcStageMask( srcStageMask_ ) + , dstStageMask( dstStageMask_ ) + , srcAccessMask( srcAccessMask_ ) + , dstAccessMask( dstAccessMask_ ) + , dependencyFlags( dependencyFlags_ ) + , viewOffset( viewOffset_ ) {} - VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR & operator=( VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR ) - offsetof( ImportMemoryFdInfoKHR, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR SubpassDependency2( SubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ImportMemoryFdInfoKHR( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + SubpassDependency2( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT + : SubpassDependency2( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ImportMemoryFdInfoKHR& operator=( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 SubpassDependency2 & + operator=( SubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SubpassDependency2 & operator=( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - ImportMemoryFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + SubpassDependency2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - ImportMemoryFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT + SubpassDependency2 & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT { - handleType = handleType_; + srcSubpass = srcSubpass_; return *this; } - ImportMemoryFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT + SubpassDependency2 & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT { - fd = fd_; + dstSubpass = dstSubpass_; return *this; } - operator VkImportMemoryFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImportMemoryFdInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( ImportMemoryFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleType == rhs.handleType ) - && ( fd == rhs.fd ); - } - - bool operator!=( ImportMemoryFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryFdInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; - int fd = {}; - }; - static_assert( sizeof( ImportMemoryFdInfoKHR ) == sizeof( VkImportMemoryFdInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ImportMemoryHostPointerInfoEXT - { - VULKAN_HPP_CONSTEXPR ImportMemoryHostPointerInfoEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, - void* pHostPointer_ = {} ) VULKAN_HPP_NOEXCEPT - : handleType( handleType_ ) - , pHostPointer( pHostPointer_ ) - {} - - VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT & operator=( VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + SubpassDependency2 & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT ) - offsetof( ImportMemoryHostPointerInfoEXT, pNext ) ); + srcStageMask = srcStageMask_; return *this; } - ImportMemoryHostPointerInfoEXT( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + SubpassDependency2 & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + dstStageMask = dstStageMask_; + return *this; } - ImportMemoryHostPointerInfoEXT& operator=( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + SubpassDependency2 & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + srcAccessMask = srcAccessMask_; return *this; } - ImportMemoryHostPointerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + SubpassDependency2 & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + dstAccessMask = dstAccessMask_; return *this; } - ImportMemoryHostPointerInfoEXT & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT + SubpassDependency2 & + setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT { - handleType = handleType_; + dependencyFlags = dependencyFlags_; return *this; } - ImportMemoryHostPointerInfoEXT & setPHostPointer( void* pHostPointer_ ) VULKAN_HPP_NOEXCEPT + SubpassDependency2 & setViewOffset( int32_t viewOffset_ ) VULKAN_HPP_NOEXCEPT { - pHostPointer = pHostPointer_; + viewOffset = viewOffset_; return *this; } - operator VkImportMemoryHostPointerInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkSubpassDependency2 const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkImportMemoryHostPointerInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkSubpassDependency2 &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ImportMemoryHostPointerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SubpassDependency2 const & ) const = default; +#else + bool operator==( SubpassDependency2 const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleType == rhs.handleType ) - && ( pHostPointer == rhs.pHostPointer ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcSubpass == rhs.srcSubpass ) && + ( dstSubpass == rhs.dstSubpass ) && ( srcStageMask == rhs.srcStageMask ) && + ( dstStageMask == rhs.dstStageMask ) && ( srcAccessMask == rhs.srcAccessMask ) && + ( dstAccessMask == rhs.dstAccessMask ) && ( dependencyFlags == rhs.dependencyFlags ) && + ( viewOffset == rhs.viewOffset ); } - bool operator!=( ImportMemoryHostPointerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SubpassDependency2 const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryHostPointerInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; - void* pHostPointer = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDependency2; + const void * pNext = {}; + uint32_t srcSubpass = {}; + uint32_t dstSubpass = {}; + VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {}; + VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {}; + VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {}; + VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {}; + VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {}; + int32_t viewOffset = {}; }; - static_assert( sizeof( ImportMemoryHostPointerInfoEXT ) == sizeof( VkImportMemoryHostPointerInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SubpassDependency2 ) == sizeof( VkSubpassDependency2 ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_WIN32_KHR + template <> + struct CppType + { + using Type = SubpassDependency2; + }; + using SubpassDependency2KHR = SubpassDependency2; - struct ImportMemoryWin32HandleInfoKHR + struct RenderPassCreateInfo2 { - VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, - HANDLE handle_ = {}, - LPCWSTR name_ = {} ) VULKAN_HPP_NOEXCEPT - : handleType( handleType_ ) - , handle( handle_ ) - , name( name_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreateInfo2; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR RenderPassCreateInfo2( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ = {}, + uint32_t attachmentCount_ = {}, + const VULKAN_HPP_NAMESPACE::AttachmentDescription2 * pAttachments_ = {}, + uint32_t subpassCount_ = {}, + const VULKAN_HPP_NAMESPACE::SubpassDescription2 * pSubpasses_ = {}, + uint32_t dependencyCount_ = {}, + const VULKAN_HPP_NAMESPACE::SubpassDependency2 * pDependencies_ = {}, + uint32_t correlatedViewMaskCount_ = {}, + const uint32_t * pCorrelatedViewMasks_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , attachmentCount( attachmentCount_ ) + , pAttachments( pAttachments_ ) + , subpassCount( subpassCount_ ) + , pSubpasses( pSubpasses_ ) + , dependencyCount( dependencyCount_ ) + , pDependencies( pDependencies_ ) + , correlatedViewMaskCount( correlatedViewMaskCount_ ) + , pCorrelatedViewMasks( pCorrelatedViewMasks_ ) {} - VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR & operator=( VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR ) - offsetof( ImportMemoryWin32HandleInfoKHR, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR RenderPassCreateInfo2( RenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ImportMemoryWin32HandleInfoKHR( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + RenderPassCreateInfo2( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT + : RenderPassCreateInfo2( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RenderPassCreateInfo2( + VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + attachments_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + subpasses_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + dependencies_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & correlatedViewMasks_ = {} ) + : flags( flags_ ) + , attachmentCount( static_cast( attachments_.size() ) ) + , pAttachments( attachments_.data() ) + , subpassCount( static_cast( subpasses_.size() ) ) + , pSubpasses( subpasses_.data() ) + , dependencyCount( static_cast( dependencies_.size() ) ) + , pDependencies( dependencies_.data() ) + , correlatedViewMaskCount( static_cast( correlatedViewMasks_.size() ) ) + , pCorrelatedViewMasks( correlatedViewMasks_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 RenderPassCreateInfo2 & + operator=( RenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ImportMemoryWin32HandleInfoKHR& operator=( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + RenderPassCreateInfo2 & operator=( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - ImportMemoryWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + RenderPassCreateInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - ImportMemoryWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT + RenderPassCreateInfo2 & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - handleType = handleType_; + flags = flags_; return *this; } - ImportMemoryWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT + RenderPassCreateInfo2 & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT { - handle = handle_; + attachmentCount = attachmentCount_; return *this; } - ImportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT + RenderPassCreateInfo2 & + setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription2 * pAttachments_ ) VULKAN_HPP_NOEXCEPT { - name = name_; + pAttachments = pAttachments_; return *this; } - operator VkImportMemoryWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RenderPassCreateInfo2 & setAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + attachments_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + attachmentCount = static_cast( attachments_.size() ); + pAttachments = attachments_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkImportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT + RenderPassCreateInfo2 & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + subpassCount = subpassCount_; + return *this; } - bool operator==( ImportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + RenderPassCreateInfo2 & + setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription2 * pSubpasses_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleType == rhs.handleType ) - && ( handle == rhs.handle ) - && ( name == rhs.name ); + pSubpasses = pSubpasses_; + return *this; } - bool operator!=( ImportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RenderPassCreateInfo2 & setSubpasses( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + subpasses_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + subpassCount = static_cast( subpasses_.size() ); + pSubpasses = subpasses_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; - HANDLE handle = {}; - LPCWSTR name = {}; - }; - static_assert( sizeof( ImportMemoryWin32HandleInfoKHR ) == sizeof( VkImportMemoryWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - - struct ImportMemoryWin32HandleInfoNV - { - VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ = {}, - HANDLE handle_ = {} ) VULKAN_HPP_NOEXCEPT - : handleType( handleType_ ) - , handle( handle_ ) - {} - - VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV & operator=( VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + RenderPassCreateInfo2 & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV ) - offsetof( ImportMemoryWin32HandleInfoNV, pNext ) ); + dependencyCount = dependencyCount_; return *this; } - ImportMemoryWin32HandleInfoNV( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + RenderPassCreateInfo2 & + setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency2 * pDependencies_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pDependencies = pDependencies_; + return *this; } - ImportMemoryWin32HandleInfoNV& operator=( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RenderPassCreateInfo2 & setDependencies( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + dependencies_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + dependencyCount = static_cast( dependencies_.size() ); + pDependencies = dependencies_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - ImportMemoryWin32HandleInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + RenderPassCreateInfo2 & setCorrelatedViewMaskCount( uint32_t correlatedViewMaskCount_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + correlatedViewMaskCount = correlatedViewMaskCount_; return *this; } - ImportMemoryWin32HandleInfoNV & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ ) VULKAN_HPP_NOEXCEPT + RenderPassCreateInfo2 & setPCorrelatedViewMasks( const uint32_t * pCorrelatedViewMasks_ ) VULKAN_HPP_NOEXCEPT { - handleType = handleType_; + pCorrelatedViewMasks = pCorrelatedViewMasks_; return *this; } - ImportMemoryWin32HandleInfoNV & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RenderPassCreateInfo2 & setCorrelatedViewMasks( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & correlatedViewMasks_ ) VULKAN_HPP_NOEXCEPT { - handle = handle_; + correlatedViewMaskCount = static_cast( correlatedViewMasks_.size() ); + pCorrelatedViewMasks = correlatedViewMasks_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkImportMemoryWin32HandleInfoNV const&() const VULKAN_HPP_NOEXCEPT + operator VkRenderPassCreateInfo2 const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkImportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT + operator VkRenderPassCreateInfo2 &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ImportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( RenderPassCreateInfo2 const & ) const = default; +#else + bool operator==( RenderPassCreateInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleType == rhs.handleType ) - && ( handle == rhs.handle ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( attachmentCount == rhs.attachmentCount ) && ( pAttachments == rhs.pAttachments ) && + ( subpassCount == rhs.subpassCount ) && ( pSubpasses == rhs.pSubpasses ) && + ( dependencyCount == rhs.dependencyCount ) && ( pDependencies == rhs.pDependencies ) && + ( correlatedViewMaskCount == rhs.correlatedViewMaskCount ) && + ( pCorrelatedViewMasks == rhs.pCorrelatedViewMasks ); } - bool operator!=( ImportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( RenderPassCreateInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType = {}; - HANDLE handle = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo2; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {}; + uint32_t attachmentCount = {}; + const VULKAN_HPP_NAMESPACE::AttachmentDescription2 * pAttachments = {}; + uint32_t subpassCount = {}; + const VULKAN_HPP_NAMESPACE::SubpassDescription2 * pSubpasses = {}; + uint32_t dependencyCount = {}; + const VULKAN_HPP_NAMESPACE::SubpassDependency2 * pDependencies = {}; + uint32_t correlatedViewMaskCount = {}; + const uint32_t * pCorrelatedViewMasks = {}; + }; + static_assert( sizeof( RenderPassCreateInfo2 ) == sizeof( VkRenderPassCreateInfo2 ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = RenderPassCreateInfo2; }; - static_assert( sizeof( ImportMemoryWin32HandleInfoNV ) == sizeof( VkImportMemoryWin32HandleInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + using RenderPassCreateInfo2KHR = RenderPassCreateInfo2; - struct ImportSemaphoreFdInfoKHR + struct SamplerCreateInfo { - VULKAN_HPP_CONSTEXPR ImportSemaphoreFdInfoKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, - VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd, - int fd_ = {} ) VULKAN_HPP_NOEXCEPT - : semaphore( semaphore_ ) - , flags( flags_ ) - , handleType( handleType_ ) - , fd( fd_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SamplerCreateInfo( + VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::Filter magFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest, + VULKAN_HPP_NAMESPACE::Filter minFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest, + VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode_ = VULKAN_HPP_NAMESPACE::SamplerMipmapMode::eNearest, + VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat, + VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat, + VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat, + float mipLodBias_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable_ = {}, + float maxAnisotropy_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 compareEnable_ = {}, + VULKAN_HPP_NAMESPACE::CompareOp compareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever, + float minLod_ = {}, + float maxLod_ = {}, + VULKAN_HPP_NAMESPACE::BorderColor borderColor_ = VULKAN_HPP_NAMESPACE::BorderColor::eFloatTransparentBlack, + VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , magFilter( magFilter_ ) + , minFilter( minFilter_ ) + , mipmapMode( mipmapMode_ ) + , addressModeU( addressModeU_ ) + , addressModeV( addressModeV_ ) + , addressModeW( addressModeW_ ) + , mipLodBias( mipLodBias_ ) + , anisotropyEnable( anisotropyEnable_ ) + , maxAnisotropy( maxAnisotropy_ ) + , compareEnable( compareEnable_ ) + , compareOp( compareOp_ ) + , minLod( minLod_ ) + , maxLod( maxLod_ ) + , borderColor( borderColor_ ) + , unnormalizedCoordinates( unnormalizedCoordinates_ ) {} - VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR & operator=( VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR ) - offsetof( ImportSemaphoreFdInfoKHR, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR SamplerCreateInfo( SamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ImportSemaphoreFdInfoKHR( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + SamplerCreateInfo( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : SamplerCreateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ImportSemaphoreFdInfoKHR& operator=( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 SamplerCreateInfo & + operator=( SamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ImportSemaphoreFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + SamplerCreateInfo & operator=( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - ImportSemaphoreFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT + SamplerCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - semaphore = semaphore_; + pNext = pNext_; return *this; } - ImportSemaphoreFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT + SamplerCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { flags = flags_; return *this; } - ImportSemaphoreFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT + SamplerCreateInfo & setMagFilter( VULKAN_HPP_NAMESPACE::Filter magFilter_ ) VULKAN_HPP_NOEXCEPT { - handleType = handleType_; + magFilter = magFilter_; return *this; } - ImportSemaphoreFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT + SamplerCreateInfo & setMinFilter( VULKAN_HPP_NAMESPACE::Filter minFilter_ ) VULKAN_HPP_NOEXCEPT { - fd = fd_; + minFilter = minFilter_; return *this; } - operator VkImportSemaphoreFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT + SamplerCreateInfo & setMipmapMode( VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + mipmapMode = mipmapMode_; + return *this; } - operator VkImportSemaphoreFdInfoKHR &() VULKAN_HPP_NOEXCEPT + SamplerCreateInfo & setAddressModeU( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + addressModeU = addressModeU_; + return *this; } - bool operator==( ImportSemaphoreFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + SamplerCreateInfo & setAddressModeV( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( semaphore == rhs.semaphore ) - && ( flags == rhs.flags ) - && ( handleType == rhs.handleType ) - && ( fd == rhs.fd ); + addressModeV = addressModeV_; + return *this; } - bool operator!=( ImportSemaphoreFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + SamplerCreateInfo & setAddressModeW( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + addressModeW = addressModeW_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreFdInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; - VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd; - int fd = {}; - }; - static_assert( sizeof( ImportSemaphoreFdInfoKHR ) == sizeof( VkImportSemaphoreFdInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - -#ifdef VK_USE_PLATFORM_WIN32_KHR - - struct ImportSemaphoreWin32HandleInfoKHR - { - VULKAN_HPP_CONSTEXPR ImportSemaphoreWin32HandleInfoKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, - VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd, - HANDLE handle_ = {}, - LPCWSTR name_ = {} ) VULKAN_HPP_NOEXCEPT - : semaphore( semaphore_ ) - , flags( flags_ ) - , handleType( handleType_ ) - , handle( handle_ ) - , name( name_ ) - {} - - VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR & operator=( VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + SamplerCreateInfo & setMipLodBias( float mipLodBias_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR ) - offsetof( ImportSemaphoreWin32HandleInfoKHR, pNext ) ); + mipLodBias = mipLodBias_; return *this; } - ImportSemaphoreWin32HandleInfoKHR( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + SamplerCreateInfo & setAnisotropyEnable( VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + anisotropyEnable = anisotropyEnable_; + return *this; } - ImportSemaphoreWin32HandleInfoKHR& operator=( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + SamplerCreateInfo & setMaxAnisotropy( float maxAnisotropy_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + maxAnisotropy = maxAnisotropy_; return *this; } - ImportSemaphoreWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + SamplerCreateInfo & setCompareEnable( VULKAN_HPP_NAMESPACE::Bool32 compareEnable_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + compareEnable = compareEnable_; return *this; } - ImportSemaphoreWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT + SamplerCreateInfo & setCompareOp( VULKAN_HPP_NAMESPACE::CompareOp compareOp_ ) VULKAN_HPP_NOEXCEPT { - semaphore = semaphore_; + compareOp = compareOp_; return *this; } - ImportSemaphoreWin32HandleInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT + SamplerCreateInfo & setMinLod( float minLod_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + minLod = minLod_; return *this; } - ImportSemaphoreWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT + SamplerCreateInfo & setMaxLod( float maxLod_ ) VULKAN_HPP_NOEXCEPT { - handleType = handleType_; + maxLod = maxLod_; return *this; } - ImportSemaphoreWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT + SamplerCreateInfo & setBorderColor( VULKAN_HPP_NAMESPACE::BorderColor borderColor_ ) VULKAN_HPP_NOEXCEPT { - handle = handle_; + borderColor = borderColor_; return *this; } - ImportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT + SamplerCreateInfo & + setUnnormalizedCoordinates( VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates_ ) VULKAN_HPP_NOEXCEPT { - name = name_; + unnormalizedCoordinates = unnormalizedCoordinates_; return *this; } - operator VkImportSemaphoreWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkSamplerCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkImportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkSamplerCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ImportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SamplerCreateInfo const & ) const = default; +#else + bool operator==( SamplerCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( semaphore == rhs.semaphore ) - && ( flags == rhs.flags ) - && ( handleType == rhs.handleType ) - && ( handle == rhs.handle ) - && ( name == rhs.name ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( magFilter == rhs.magFilter ) && ( minFilter == rhs.minFilter ) && ( mipmapMode == rhs.mipmapMode ) && + ( addressModeU == rhs.addressModeU ) && ( addressModeV == rhs.addressModeV ) && + ( addressModeW == rhs.addressModeW ) && ( mipLodBias == rhs.mipLodBias ) && + ( anisotropyEnable == rhs.anisotropyEnable ) && ( maxAnisotropy == rhs.maxAnisotropy ) && + ( compareEnable == rhs.compareEnable ) && ( compareOp == rhs.compareOp ) && ( minLod == rhs.minLod ) && + ( maxLod == rhs.maxLod ) && ( borderColor == rhs.borderColor ) && + ( unnormalizedCoordinates == rhs.unnormalizedCoordinates ); } - bool operator!=( ImportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SamplerCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreWin32HandleInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; - VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd; - HANDLE handle = {}; - LPCWSTR name = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags = {}; + VULKAN_HPP_NAMESPACE::Filter magFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest; + VULKAN_HPP_NAMESPACE::Filter minFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest; + VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode = VULKAN_HPP_NAMESPACE::SamplerMipmapMode::eNearest; + VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat; + VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat; + VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat; + float mipLodBias = {}; + VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable = {}; + float maxAnisotropy = {}; + VULKAN_HPP_NAMESPACE::Bool32 compareEnable = {}; + VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever; + float minLod = {}; + float maxLod = {}; + VULKAN_HPP_NAMESPACE::BorderColor borderColor = VULKAN_HPP_NAMESPACE::BorderColor::eFloatTransparentBlack; + VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates = {}; + }; + static_assert( sizeof( SamplerCreateInfo ) == sizeof( VkSamplerCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = SamplerCreateInfo; }; - static_assert( sizeof( ImportSemaphoreWin32HandleInfoKHR ) == sizeof( VkImportSemaphoreWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - struct IndirectCommandsLayoutTokenNVX + struct SamplerYcbcrConversionCreateInfo { - VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutTokenNVX( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNVX tokenType_ = VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNVX::ePipeline, - uint32_t bindingUnit_ = {}, - uint32_t dynamicCount_ = {}, - uint32_t divisor_ = {} ) VULKAN_HPP_NOEXCEPT - : tokenType( tokenType_ ) - , bindingUnit( bindingUnit_ ) - , dynamicCount( dynamicCount_ ) - , divisor( divisor_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionCreateInfo( + VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, + VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel_ = + VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity, + VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull, + VULKAN_HPP_NAMESPACE::ComponentMapping components_ = {}, + VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, + VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, + VULKAN_HPP_NAMESPACE::Filter chromaFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest, + VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ = {} ) VULKAN_HPP_NOEXCEPT + : format( format_ ) + , ycbcrModel( ycbcrModel_ ) + , ycbcrRange( ycbcrRange_ ) + , components( components_ ) + , xChromaOffset( xChromaOffset_ ) + , yChromaOffset( yChromaOffset_ ) + , chromaFilter( chromaFilter_ ) + , forceExplicitReconstruction( forceExplicitReconstruction_ ) {} - IndirectCommandsLayoutTokenNVX( VkIndirectCommandsLayoutTokenNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR + SamplerYcbcrConversionCreateInfo( SamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - IndirectCommandsLayoutTokenNVX& operator=( VkIndirectCommandsLayoutTokenNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + SamplerYcbcrConversionCreateInfo( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : SamplerYcbcrConversionCreateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - IndirectCommandsLayoutTokenNVX & setTokenType( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNVX tokenType_ ) VULKAN_HPP_NOEXCEPT - { - tokenType = tokenType_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionCreateInfo & + operator=( SamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - IndirectCommandsLayoutTokenNVX & setBindingUnit( uint32_t bindingUnit_ ) VULKAN_HPP_NOEXCEPT + SamplerYcbcrConversionCreateInfo & operator=( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - bindingUnit = bindingUnit_; + *this = *reinterpret_cast( &rhs ); return *this; } - IndirectCommandsLayoutTokenNVX & setDynamicCount( uint32_t dynamicCount_ ) VULKAN_HPP_NOEXCEPT + SamplerYcbcrConversionCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - dynamicCount = dynamicCount_; + pNext = pNext_; return *this; } - IndirectCommandsLayoutTokenNVX & setDivisor( uint32_t divisor_ ) VULKAN_HPP_NOEXCEPT + SamplerYcbcrConversionCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT { - divisor = divisor_; + format = format_; return *this; } - operator VkIndirectCommandsLayoutTokenNVX const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkIndirectCommandsLayoutTokenNVX &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( IndirectCommandsLayoutTokenNVX const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( tokenType == rhs.tokenType ) - && ( bindingUnit == rhs.bindingUnit ) - && ( dynamicCount == rhs.dynamicCount ) - && ( divisor == rhs.divisor ); - } - - bool operator!=( IndirectCommandsLayoutTokenNVX const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } - - public: - VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNVX tokenType = VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNVX::ePipeline; - uint32_t bindingUnit = {}; - uint32_t dynamicCount = {}; - uint32_t divisor = {}; - }; - static_assert( sizeof( IndirectCommandsLayoutTokenNVX ) == sizeof( VkIndirectCommandsLayoutTokenNVX ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct IndirectCommandsLayoutCreateInfoNVX - { - VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutCreateInfoNVX( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, - VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNVX flags_ = {}, - uint32_t tokenCount_ = {}, - const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNVX* pTokens_ = {} ) VULKAN_HPP_NOEXCEPT - : pipelineBindPoint( pipelineBindPoint_ ) - , flags( flags_ ) - , tokenCount( tokenCount_ ) - , pTokens( pTokens_ ) - {} - - VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNVX & operator=( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT + SamplerYcbcrConversionCreateInfo & + setYcbcrModel( VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNVX ) - offsetof( IndirectCommandsLayoutCreateInfoNVX, pNext ) ); + ycbcrModel = ycbcrModel_; return *this; } - IndirectCommandsLayoutCreateInfoNVX( VkIndirectCommandsLayoutCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - - IndirectCommandsLayoutCreateInfoNVX& operator=( VkIndirectCommandsLayoutCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT + SamplerYcbcrConversionCreateInfo & + setYcbcrRange( VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + ycbcrRange = ycbcrRange_; return *this; } - IndirectCommandsLayoutCreateInfoNVX & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + SamplerYcbcrConversionCreateInfo & + setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + components = components_; return *this; } - IndirectCommandsLayoutCreateInfoNVX & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT + SamplerYcbcrConversionCreateInfo & + setXChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset_ ) VULKAN_HPP_NOEXCEPT { - pipelineBindPoint = pipelineBindPoint_; + xChromaOffset = xChromaOffset_; return *this; } - IndirectCommandsLayoutCreateInfoNVX & setFlags( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNVX flags_ ) VULKAN_HPP_NOEXCEPT + SamplerYcbcrConversionCreateInfo & + setYChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + yChromaOffset = yChromaOffset_; return *this; } - IndirectCommandsLayoutCreateInfoNVX & setTokenCount( uint32_t tokenCount_ ) VULKAN_HPP_NOEXCEPT + SamplerYcbcrConversionCreateInfo & setChromaFilter( VULKAN_HPP_NAMESPACE::Filter chromaFilter_ ) VULKAN_HPP_NOEXCEPT { - tokenCount = tokenCount_; + chromaFilter = chromaFilter_; return *this; } - IndirectCommandsLayoutCreateInfoNVX & setPTokens( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNVX* pTokens_ ) VULKAN_HPP_NOEXCEPT + SamplerYcbcrConversionCreateInfo & + setForceExplicitReconstruction( VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ ) VULKAN_HPP_NOEXCEPT { - pTokens = pTokens_; + forceExplicitReconstruction = forceExplicitReconstruction_; return *this; } - operator VkIndirectCommandsLayoutCreateInfoNVX const&() const VULKAN_HPP_NOEXCEPT + operator VkSamplerYcbcrConversionCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkIndirectCommandsLayoutCreateInfoNVX &() VULKAN_HPP_NOEXCEPT + operator VkSamplerYcbcrConversionCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( IndirectCommandsLayoutCreateInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SamplerYcbcrConversionCreateInfo const & ) const = default; +#else + bool operator==( SamplerYcbcrConversionCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pipelineBindPoint == rhs.pipelineBindPoint ) - && ( flags == rhs.flags ) - && ( tokenCount == rhs.tokenCount ) - && ( pTokens == rhs.pTokens ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( format == rhs.format ) && + ( ycbcrModel == rhs.ycbcrModel ) && ( ycbcrRange == rhs.ycbcrRange ) && ( components == rhs.components ) && + ( xChromaOffset == rhs.xChromaOffset ) && ( yChromaOffset == rhs.yChromaOffset ) && + ( chromaFilter == rhs.chromaFilter ) && ( forceExplicitReconstruction == rhs.forceExplicitReconstruction ); } - bool operator!=( IndirectCommandsLayoutCreateInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SamplerYcbcrConversionCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIndirectCommandsLayoutCreateInfoNVX; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics; - VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNVX flags = {}; - uint32_t tokenCount = {}; - const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNVX* pTokens = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; + VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel = + VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity; + VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull; + VULKAN_HPP_NAMESPACE::ComponentMapping components = {}; + VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven; + VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven; + VULKAN_HPP_NAMESPACE::Filter chromaFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest; + VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction = {}; }; - static_assert( sizeof( IndirectCommandsLayoutCreateInfoNVX ) == sizeof( VkIndirectCommandsLayoutCreateInfoNVX ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SamplerYcbcrConversionCreateInfo ) == sizeof( VkSamplerYcbcrConversionCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct InitializePerformanceApiInfoINTEL + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR InitializePerformanceApiInfoINTEL( void* pUserData_ = {} ) VULKAN_HPP_NOEXCEPT - : pUserData( pUserData_ ) + using Type = SamplerYcbcrConversionCreateInfo; + }; + using SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo; + + 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: + VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion() = default; + VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT + SamplerYcbcrConversion( VkSamplerYcbcrConversion samplerYcbcrConversion ) VULKAN_HPP_NOEXCEPT + : m_samplerYcbcrConversion( samplerYcbcrConversion ) {} - VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL & operator=( VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + SamplerYcbcrConversion & operator=( VkSamplerYcbcrConversion samplerYcbcrConversion ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL ) - offsetof( InitializePerformanceApiInfoINTEL, pNext ) ); + m_samplerYcbcrConversion = samplerYcbcrConversion; return *this; } +#endif - InitializePerformanceApiInfoINTEL( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - - InitializePerformanceApiInfoINTEL& operator=( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT + SamplerYcbcrConversion & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + m_samplerYcbcrConversion = {}; return *this; } - InitializePerformanceApiInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SamplerYcbcrConversion const & ) const = default; +#else + bool operator==( SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; - return *this; + return m_samplerYcbcrConversion == rhs.m_samplerYcbcrConversion; } - InitializePerformanceApiInfoINTEL & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT { - pUserData = pUserData_; - return *this; + return m_samplerYcbcrConversion != rhs.m_samplerYcbcrConversion; } - operator VkInitializePerformanceApiInfoINTEL const&() const VULKAN_HPP_NOEXCEPT + bool operator<( SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_samplerYcbcrConversion < rhs.m_samplerYcbcrConversion; } +#endif - operator VkInitializePerformanceApiInfoINTEL &() VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSamplerYcbcrConversion() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_samplerYcbcrConversion; } - bool operator==( InitializePerformanceApiInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pUserData == rhs.pUserData ); + return m_samplerYcbcrConversion != VK_NULL_HANDLE; } - bool operator!=( InitializePerformanceApiInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_samplerYcbcrConversion == VK_NULL_HANDLE; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInitializePerformanceApiInfoINTEL; - const void* pNext = {}; - void* pUserData = {}; + private: + VkSamplerYcbcrConversion m_samplerYcbcrConversion = {}; }; - static_assert( sizeof( InitializePerformanceApiInfoINTEL ) == sizeof( VkInitializePerformanceApiInfoINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ) == sizeof( VkSamplerYcbcrConversion ), + "handle and wrapper have different size!" ); - struct InputAttachmentAspectReference + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - VULKAN_HPP_CONSTEXPR InputAttachmentAspectReference( uint32_t subpass_ = {}, - uint32_t inputAttachmentIndex_ = {}, - VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {} ) VULKAN_HPP_NOEXCEPT - : subpass( subpass_ ) - , inputAttachmentIndex( inputAttachmentIndex_ ) - , aspectMask( aspectMask_ ) + using type = VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + using SamplerYcbcrConversionKHR = SamplerYcbcrConversion; + + struct SemaphoreCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + SemaphoreCreateInfo( VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) {} - InputAttachmentAspectReference( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR SemaphoreCreateInfo( SemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - InputAttachmentAspectReference& operator=( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + SemaphoreCreateInfo( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : SemaphoreCreateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - InputAttachmentAspectReference & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 SemaphoreCreateInfo & + operator=( SemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SemaphoreCreateInfo & operator=( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - subpass = subpass_; + *this = *reinterpret_cast( &rhs ); return *this; } - InputAttachmentAspectReference & setInputAttachmentIndex( uint32_t inputAttachmentIndex_ ) VULKAN_HPP_NOEXCEPT + SemaphoreCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - inputAttachmentIndex = inputAttachmentIndex_; + pNext = pNext_; return *this; } - InputAttachmentAspectReference & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT + SemaphoreCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - aspectMask = aspectMask_; + flags = flags_; return *this; } - operator VkInputAttachmentAspectReference const&() const VULKAN_HPP_NOEXCEPT + operator VkSemaphoreCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkInputAttachmentAspectReference &() VULKAN_HPP_NOEXCEPT + operator VkSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( InputAttachmentAspectReference const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SemaphoreCreateInfo const & ) const = default; +#else + bool operator==( SemaphoreCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( subpass == rhs.subpass ) - && ( inputAttachmentIndex == rhs.inputAttachmentIndex ) - && ( aspectMask == rhs.aspectMask ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ); } - bool operator!=( InputAttachmentAspectReference const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SemaphoreCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint32_t subpass = {}; - uint32_t inputAttachmentIndex = {}; - VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags = {}; }; - static_assert( sizeof( InputAttachmentAspectReference ) == sizeof( VkInputAttachmentAspectReference ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SemaphoreCreateInfo ) == sizeof( VkSemaphoreCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct InstanceCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR InstanceCreateInfo( VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_ = {}, - const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo_ = {}, - uint32_t enabledLayerCount_ = {}, - const char* const* ppEnabledLayerNames_ = {}, - uint32_t enabledExtensionCount_ = {}, - const char* const* ppEnabledExtensionNames_ = {} ) VULKAN_HPP_NOEXCEPT + using Type = SemaphoreCreateInfo; + }; + + struct ShaderModuleCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ShaderModuleCreateInfo( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ = {}, + size_t codeSize_ = {}, + const uint32_t * pCode_ = {} ) VULKAN_HPP_NOEXCEPT : flags( flags_ ) - , pApplicationInfo( pApplicationInfo_ ) - , enabledLayerCount( enabledLayerCount_ ) - , ppEnabledLayerNames( ppEnabledLayerNames_ ) - , enabledExtensionCount( enabledExtensionCount_ ) - , ppEnabledExtensionNames( ppEnabledExtensionNames_ ) + , codeSize( codeSize_ ) + , pCode( pCode_ ) {} - VULKAN_HPP_NAMESPACE::InstanceCreateInfo & operator=( VULKAN_HPP_NAMESPACE::InstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::InstanceCreateInfo ) - offsetof( InstanceCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR ShaderModuleCreateInfo( ShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - InstanceCreateInfo( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ShaderModuleCreateInfo( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : ShaderModuleCreateInfo( *reinterpret_cast( &rhs ) ) + {} - InstanceCreateInfo& operator=( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + ShaderModuleCreateInfo( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & code_ ) + : flags( flags_ ), codeSize( code_.size() * 4 ), pCode( code_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - InstanceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 ShaderModuleCreateInfo & + operator=( ShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - InstanceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + ShaderModuleCreateInfo & operator=( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + *this = *reinterpret_cast( &rhs ); return *this; } - InstanceCreateInfo & setPApplicationInfo( const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo_ ) VULKAN_HPP_NOEXCEPT + ShaderModuleCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - pApplicationInfo = pApplicationInfo_; + pNext = pNext_; return *this; } - InstanceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT + ShaderModuleCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - enabledLayerCount = enabledLayerCount_; + flags = flags_; return *this; } - InstanceCreateInfo & setPpEnabledLayerNames( const char* const* ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT + ShaderModuleCreateInfo & setCodeSize( size_t codeSize_ ) VULKAN_HPP_NOEXCEPT { - ppEnabledLayerNames = ppEnabledLayerNames_; + codeSize = codeSize_; return *this; } - InstanceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT + ShaderModuleCreateInfo & setPCode( const uint32_t * pCode_ ) VULKAN_HPP_NOEXCEPT { - enabledExtensionCount = enabledExtensionCount_; + pCode = pCode_; return *this; } - InstanceCreateInfo & setPpEnabledExtensionNames( const char* const* ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + ShaderModuleCreateInfo & + setCode( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & code_ ) VULKAN_HPP_NOEXCEPT { - ppEnabledExtensionNames = ppEnabledExtensionNames_; + codeSize = code_.size() * 4; + pCode = code_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkInstanceCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkShaderModuleCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkInstanceCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkShaderModuleCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( InstanceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ShaderModuleCreateInfo const & ) const = default; +#else + bool operator==( ShaderModuleCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pApplicationInfo == rhs.pApplicationInfo ) - && ( enabledLayerCount == rhs.enabledLayerCount ) - && ( ppEnabledLayerNames == rhs.ppEnabledLayerNames ) - && ( enabledExtensionCount == rhs.enabledExtensionCount ) - && ( ppEnabledExtensionNames == rhs.ppEnabledExtensionNames ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( codeSize == rhs.codeSize ) && ( pCode == rhs.pCode ); } - bool operator!=( InstanceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ShaderModuleCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInstanceCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags = {}; - const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo = {}; - uint32_t enabledLayerCount = {}; - const char* const* ppEnabledLayerNames = {}; - uint32_t enabledExtensionCount = {}; - const char* const* ppEnabledExtensionNames = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags = {}; + size_t codeSize = {}; + const uint32_t * pCode = {}; }; - static_assert( sizeof( InstanceCreateInfo ) == sizeof( VkInstanceCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ShaderModuleCreateInfo ) == sizeof( VkShaderModuleCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct LayerProperties + template <> + struct CppType { - LayerProperties( std::array const& layerName_ = {}, - uint32_t specVersion_ = {}, - uint32_t implementationVersion_ = {}, - std::array const& description_ = {} ) VULKAN_HPP_NOEXCEPT - : layerName{} - , specVersion( specVersion_ ) - , implementationVersion( implementationVersion_ ) - , description{} + using Type = ShaderModuleCreateInfo; + }; + + 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: + VULKAN_HPP_CONSTEXPR SurfaceKHR() = default; + VULKAN_HPP_CONSTEXPR SurfaceKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT SurfaceKHR( VkSurfaceKHR surfaceKHR ) VULKAN_HPP_NOEXCEPT : m_surfaceKHR( surfaceKHR ) + {} + +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + SurfaceKHR & operator=( VkSurfaceKHR surfaceKHR ) VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( layerName, layerName_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( description, description_ ); + m_surfaceKHR = surfaceKHR; + return *this; } +#endif - LayerProperties( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT + SurfaceKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + m_surfaceKHR = {}; + return *this; } - LayerProperties& operator=( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SurfaceKHR const & ) const = default; +#else + bool operator==( SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return m_surfaceKHR == rhs.m_surfaceKHR; } - operator VkLayerProperties const&() const VULKAN_HPP_NOEXCEPT + bool operator!=( SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_surfaceKHR != rhs.m_surfaceKHR; } - operator VkLayerProperties &() VULKAN_HPP_NOEXCEPT + bool operator<( SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_surfaceKHR < rhs.m_surfaceKHR; + } +#endif + + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSurfaceKHR() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_surfaceKHR; } - bool operator==( LayerProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return ( memcmp( layerName, rhs.layerName, VK_MAX_EXTENSION_NAME_SIZE * sizeof( char ) ) == 0 ) - && ( specVersion == rhs.specVersion ) - && ( implementationVersion == rhs.implementationVersion ) - && ( memcmp( description, rhs.description, VK_MAX_DESCRIPTION_SIZE * sizeof( char ) ) == 0 ); + return m_surfaceKHR != VK_NULL_HANDLE; } - bool operator!=( LayerProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_surfaceKHR == VK_NULL_HANDLE; } - public: - char layerName[VK_MAX_EXTENSION_NAME_SIZE] = {}; - uint32_t specVersion = {}; - uint32_t implementationVersion = {}; - char description[VK_MAX_DESCRIPTION_SIZE] = {}; + private: + VkSurfaceKHR m_surfaceKHR = {}; + }; + static_assert( sizeof( VULKAN_HPP_NAMESPACE::SurfaceKHR ) == sizeof( VkSurfaceKHR ), + "handle and wrapper have different size!" ); + + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type + { + using type = VULKAN_HPP_NAMESPACE::SurfaceKHR; }; - static_assert( sizeof( LayerProperties ) == sizeof( VkLayerProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_MACOS_MVK + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::SurfaceKHR; + }; - struct MacOSSurfaceCreateInfoMVK + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR MacOSSurfaceCreateInfoMVK( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ = {}, - const void* pView_ = {} ) VULKAN_HPP_NOEXCEPT + using Type = VULKAN_HPP_NAMESPACE::SurfaceKHR; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + struct SwapchainCreateInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainCreateInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SwapchainCreateInfoKHR( + VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_ = {}, + VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ = {}, + uint32_t minImageCount_ = {}, + VULKAN_HPP_NAMESPACE::Format imageFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, + VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_ = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear, + VULKAN_HPP_NAMESPACE::Extent2D imageExtent_ = {}, + uint32_t imageArrayLayers_ = {}, + VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ = {}, + VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, + uint32_t queueFamilyIndexCount_ = {}, + const uint32_t * pQueueFamilyIndices_ = {}, + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ = + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, + VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ = + VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque, + VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate, + VULKAN_HPP_NAMESPACE::Bool32 clipped_ = {}, + VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ = {} ) VULKAN_HPP_NOEXCEPT : flags( flags_ ) - , pView( pView_ ) + , surface( surface_ ) + , minImageCount( minImageCount_ ) + , imageFormat( imageFormat_ ) + , imageColorSpace( imageColorSpace_ ) + , imageExtent( imageExtent_ ) + , imageArrayLayers( imageArrayLayers_ ) + , imageUsage( imageUsage_ ) + , imageSharingMode( imageSharingMode_ ) + , queueFamilyIndexCount( queueFamilyIndexCount_ ) + , pQueueFamilyIndices( pQueueFamilyIndices_ ) + , preTransform( preTransform_ ) + , compositeAlpha( compositeAlpha_ ) + , presentMode( presentMode_ ) + , clipped( clipped_ ) + , oldSwapchain( oldSwapchain_ ) {} - VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK & operator=( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK ) - offsetof( MacOSSurfaceCreateInfoMVK, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR SwapchainCreateInfoKHR( SwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - MacOSSurfaceCreateInfoMVK( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + SwapchainCreateInfoKHR( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : SwapchainCreateInfoKHR( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SwapchainCreateInfoKHR( + VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_, + VULKAN_HPP_NAMESPACE::SurfaceKHR surface_, + uint32_t minImageCount_, + VULKAN_HPP_NAMESPACE::Format imageFormat_, + VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_, + VULKAN_HPP_NAMESPACE::Extent2D imageExtent_, + uint32_t imageArrayLayers_, + VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_, + VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_, + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ = + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, + VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ = + VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque, + VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate, + VULKAN_HPP_NAMESPACE::Bool32 clipped_ = {}, + VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ = {} ) + : flags( flags_ ) + , surface( surface_ ) + , minImageCount( minImageCount_ ) + , imageFormat( imageFormat_ ) + , imageColorSpace( imageColorSpace_ ) + , imageExtent( imageExtent_ ) + , imageArrayLayers( imageArrayLayers_ ) + , imageUsage( imageUsage_ ) + , imageSharingMode( imageSharingMode_ ) + , queueFamilyIndexCount( static_cast( queueFamilyIndices_.size() ) ) + , pQueueFamilyIndices( queueFamilyIndices_.data() ) + , preTransform( preTransform_ ) + , compositeAlpha( compositeAlpha_ ) + , presentMode( presentMode_ ) + , clipped( clipped_ ) + , oldSwapchain( oldSwapchain_ ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SwapchainCreateInfoKHR & + operator=( SwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - MacOSSurfaceCreateInfoMVK& operator=( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT + SwapchainCreateInfoKHR & operator=( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - MacOSSurfaceCreateInfoMVK & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + SwapchainCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - MacOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT + SwapchainCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT { flags = flags_; return *this; } - MacOSSurfaceCreateInfoMVK & setPView( const void* pView_ ) VULKAN_HPP_NOEXCEPT + SwapchainCreateInfoKHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT { - pView = pView_; + surface = surface_; return *this; } - operator VkMacOSSurfaceCreateInfoMVK const&() const VULKAN_HPP_NOEXCEPT + SwapchainCreateInfoKHR & setMinImageCount( uint32_t minImageCount_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + minImageCount = minImageCount_; + return *this; } - operator VkMacOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT + SwapchainCreateInfoKHR & setImageFormat( VULKAN_HPP_NAMESPACE::Format imageFormat_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + imageFormat = imageFormat_; + return *this; } - bool operator==( MacOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT + SwapchainCreateInfoKHR & + setImageColorSpace( VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pView == rhs.pView ); + imageColorSpace = imageColorSpace_; + return *this; } - bool operator!=( MacOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT + SwapchainCreateInfoKHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + imageExtent = imageExtent_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMacosSurfaceCreateInfoMVK; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags = {}; - const void* pView = {}; - }; - static_assert( sizeof( MacOSSurfaceCreateInfoMVK ) == sizeof( VkMacOSSurfaceCreateInfoMVK ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_MACOS_MVK*/ - - struct MappedMemoryRange - { - VULKAN_HPP_CONSTEXPR MappedMemoryRange( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT - : memory( memory_ ) - , offset( offset_ ) - , size( size_ ) - {} - - VULKAN_HPP_NAMESPACE::MappedMemoryRange & operator=( VULKAN_HPP_NAMESPACE::MappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT + SwapchainCreateInfoKHR & setImageArrayLayers( uint32_t imageArrayLayers_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::MappedMemoryRange ) - offsetof( MappedMemoryRange, pNext ) ); + imageArrayLayers = imageArrayLayers_; return *this; } - MappedMemoryRange( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT + SwapchainCreateInfoKHR & setImageUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + imageUsage = imageUsage_; + return *this; } - MappedMemoryRange& operator=( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT + SwapchainCreateInfoKHR & + setImageSharingMode( VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + imageSharingMode = imageSharingMode_; return *this; } - MappedMemoryRange & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + SwapchainCreateInfoKHR & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + queueFamilyIndexCount = queueFamilyIndexCount_; return *this; } - MappedMemoryRange & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT + SwapchainCreateInfoKHR & setPQueueFamilyIndices( const uint32_t * pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT { - memory = memory_; + pQueueFamilyIndices = pQueueFamilyIndices_; return *this; } - MappedMemoryRange & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SwapchainCreateInfoKHR & setQueueFamilyIndices( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT { - offset = offset_; + queueFamilyIndexCount = static_cast( queueFamilyIndices_.size() ); + pQueueFamilyIndices = queueFamilyIndices_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - MappedMemoryRange & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT + SwapchainCreateInfoKHR & + setPreTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ ) VULKAN_HPP_NOEXCEPT { - size = size_; + preTransform = preTransform_; + return *this; + } + + SwapchainCreateInfoKHR & + setCompositeAlpha( VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ ) VULKAN_HPP_NOEXCEPT + { + compositeAlpha = compositeAlpha_; return *this; } - operator VkMappedMemoryRange const&() const VULKAN_HPP_NOEXCEPT + SwapchainCreateInfoKHR & setPresentMode( VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + presentMode = presentMode_; + return *this; } - operator VkMappedMemoryRange &() VULKAN_HPP_NOEXCEPT + SwapchainCreateInfoKHR & setClipped( VULKAN_HPP_NAMESPACE::Bool32 clipped_ ) VULKAN_HPP_NOEXCEPT + { + clipped = clipped_; + return *this; + } + + SwapchainCreateInfoKHR & setOldSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ ) VULKAN_HPP_NOEXCEPT + { + oldSwapchain = oldSwapchain_; + return *this; + } + + operator VkSwapchainCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( MappedMemoryRange const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SwapchainCreateInfoKHR const & ) const = default; +#else + bool operator==( SwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memory == rhs.memory ) - && ( offset == rhs.offset ) - && ( size == rhs.size ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( surface == rhs.surface ) && + ( minImageCount == rhs.minImageCount ) && ( imageFormat == rhs.imageFormat ) && + ( imageColorSpace == rhs.imageColorSpace ) && ( imageExtent == rhs.imageExtent ) && + ( imageArrayLayers == rhs.imageArrayLayers ) && ( imageUsage == rhs.imageUsage ) && + ( imageSharingMode == rhs.imageSharingMode ) && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) && + ( pQueueFamilyIndices == rhs.pQueueFamilyIndices ) && ( preTransform == rhs.preTransform ) && + ( compositeAlpha == rhs.compositeAlpha ) && ( presentMode == rhs.presentMode ) && + ( clipped == rhs.clipped ) && ( oldSwapchain == rhs.oldSwapchain ); } - bool operator!=( MappedMemoryRange const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMappedMemoryRange; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCreateInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags = {}; + VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {}; + uint32_t minImageCount = {}; + VULKAN_HPP_NAMESPACE::Format imageFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined; + VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear; + VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {}; + uint32_t imageArrayLayers = {}; + VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage = {}; + VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive; + uint32_t queueFamilyIndexCount = {}; + const uint32_t * pQueueFamilyIndices = {}; + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform = + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; + VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha = + VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque; + VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate; + VULKAN_HPP_NAMESPACE::Bool32 clipped = {}; + VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain = {}; + }; + static_assert( sizeof( SwapchainCreateInfoKHR ) == sizeof( VkSwapchainCreateInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = SwapchainCreateInfoKHR; }; - static_assert( sizeof( MappedMemoryRange ) == sizeof( VkMappedMemoryRange ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct MemoryAllocateFlagsInfo + struct ValidationCacheCreateInfoEXT { - VULKAN_HPP_CONSTEXPR MemoryAllocateFlagsInfo( VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ = {}, - uint32_t deviceMask_ = {} ) VULKAN_HPP_NOEXCEPT + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationCacheCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ValidationCacheCreateInfoEXT( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ = {}, + size_t initialDataSize_ = {}, + const void * pInitialData_ = {} ) VULKAN_HPP_NOEXCEPT : flags( flags_ ) - , deviceMask( deviceMask_ ) + , initialDataSize( initialDataSize_ ) + , pInitialData( pInitialData_ ) + {} + + VULKAN_HPP_CONSTEXPR + ValidationCacheCreateInfoEXT( ValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ValidationCacheCreateInfoEXT( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : ValidationCacheCreateInfoEXT( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + template + ValidationCacheCreateInfoEXT( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & initialData_ ) + : flags( flags_ ), initialDataSize( initialData_.size() * sizeof( T ) ), pInitialData( initialData_.data() ) {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo & operator=( VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 ValidationCacheCreateInfoEXT & + operator=( ValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ValidationCacheCreateInfoEXT & operator=( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo ) - offsetof( MemoryAllocateFlagsInfo, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - MemoryAllocateFlagsInfo( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT + ValidationCacheCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - MemoryAllocateFlagsInfo& operator=( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT + ValidationCacheCreateInfoEXT & + setFlags( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + flags = flags_; return *this; } - MemoryAllocateFlagsInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ValidationCacheCreateInfoEXT & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + initialDataSize = initialDataSize_; return *this; } - MemoryAllocateFlagsInfo & setFlags( VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ ) VULKAN_HPP_NOEXCEPT + ValidationCacheCreateInfoEXT & setPInitialData( const void * pInitialData_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + pInitialData = pInitialData_; return *this; } - MemoryAllocateFlagsInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + template + ValidationCacheCreateInfoEXT & + setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & initialData_ ) VULKAN_HPP_NOEXCEPT { - deviceMask = deviceMask_; + initialDataSize = initialData_.size() * sizeof( T ); + pInitialData = initialData_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkMemoryAllocateFlagsInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkValidationCacheCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkMemoryAllocateFlagsInfo &() VULKAN_HPP_NOEXCEPT + operator VkValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( MemoryAllocateFlagsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ValidationCacheCreateInfoEXT const & ) const = default; +#else + bool operator==( ValidationCacheCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( deviceMask == rhs.deviceMask ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( initialDataSize == rhs.initialDataSize ) && ( pInitialData == rhs.pInitialData ); } - bool operator!=( MemoryAllocateFlagsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ValidationCacheCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateFlagsInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags = {}; - uint32_t deviceMask = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationCacheCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags = {}; + size_t initialDataSize = {}; + const void * pInitialData = {}; }; - static_assert( sizeof( MemoryAllocateFlagsInfo ) == sizeof( VkMemoryAllocateFlagsInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ValidationCacheCreateInfoEXT ) == sizeof( VkValidationCacheCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct MemoryAllocateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR MemoryAllocateInfo( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {}, - uint32_t memoryTypeIndex_ = {} ) VULKAN_HPP_NOEXCEPT - : allocationSize( allocationSize_ ) - , memoryTypeIndex( memoryTypeIndex_ ) - {} + using Type = ValidationCacheCreateInfoEXT; + }; - VULKAN_HPP_NAMESPACE::MemoryAllocateInfo & operator=( VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::MemoryAllocateInfo ) - offsetof( MemoryAllocateInfo, pNext ) ); - return *this; - } + class ValidationCacheEXT + { + public: + using CType = VkValidationCacheEXT; - MemoryAllocateInfo( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + 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: + VULKAN_HPP_CONSTEXPR ValidationCacheEXT() = default; + VULKAN_HPP_CONSTEXPR ValidationCacheEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT ValidationCacheEXT( VkValidationCacheEXT validationCacheEXT ) VULKAN_HPP_NOEXCEPT + : m_validationCacheEXT( validationCacheEXT ) + {} - MemoryAllocateInfo& operator=( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + ValidationCacheEXT & operator=( VkValidationCacheEXT validationCacheEXT ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + m_validationCacheEXT = validationCacheEXT; return *this; } +#endif - MemoryAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ValidationCacheEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + m_validationCacheEXT = {}; return *this; } - MemoryAllocateInfo & setAllocationSize( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ValidationCacheEXT const & ) const = default; +#else + bool operator==( ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - allocationSize = allocationSize_; - return *this; + return m_validationCacheEXT == rhs.m_validationCacheEXT; } - MemoryAllocateInfo & setMemoryTypeIndex( uint32_t memoryTypeIndex_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - memoryTypeIndex = memoryTypeIndex_; - return *this; + return m_validationCacheEXT != rhs.m_validationCacheEXT; } - operator VkMemoryAllocateInfo const&() const VULKAN_HPP_NOEXCEPT + bool operator<( ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_validationCacheEXT < rhs.m_validationCacheEXT; } +#endif - operator VkMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkValidationCacheEXT() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_validationCacheEXT; } - bool operator==( MemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( allocationSize == rhs.allocationSize ) - && ( memoryTypeIndex == rhs.memoryTypeIndex ); + return m_validationCacheEXT != VK_NULL_HANDLE; } - bool operator!=( MemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_validationCacheEXT == VK_NULL_HANDLE; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {}; - uint32_t memoryTypeIndex = {}; + private: + VkValidationCacheEXT m_validationCacheEXT = {}; }; - static_assert( sizeof( MemoryAllocateInfo ) == sizeof( VkMemoryAllocateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::ValidationCacheEXT ) == sizeof( VkValidationCacheEXT ), + "handle and wrapper have different size!" ); - struct MemoryBarrier + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - VULKAN_HPP_CONSTEXPR MemoryBarrier( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, - VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {} ) VULKAN_HPP_NOEXCEPT - : srcAccessMask( srcAccessMask_ ) - , dstAccessMask( dstAccessMask_ ) + using type = VULKAN_HPP_NAMESPACE::ValidationCacheEXT; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::ValidationCacheEXT; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::ValidationCacheEXT; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoProfileKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoProfileKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + VideoProfileKHR( VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR videoCodecOperation_ = + VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR::eInvalid, + VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR chromaSubsampling_ = {}, + VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR lumaBitDepth_ = {}, + VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR chromaBitDepth_ = {} ) VULKAN_HPP_NOEXCEPT + : videoCodecOperation( videoCodecOperation_ ) + , chromaSubsampling( chromaSubsampling_ ) + , lumaBitDepth( lumaBitDepth_ ) + , chromaBitDepth( chromaBitDepth_ ) + {} + + VULKAN_HPP_CONSTEXPR VideoProfileKHR( VideoProfileKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoProfileKHR( VkVideoProfileKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoProfileKHR( *reinterpret_cast( &rhs ) ) {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::MemoryBarrier & operator=( VULKAN_HPP_NAMESPACE::MemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 VideoProfileKHR & operator=( VideoProfileKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoProfileKHR & operator=( VkVideoProfileKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::MemoryBarrier ) - offsetof( MemoryBarrier, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - MemoryBarrier( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT + VideoProfileKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - MemoryBarrier& operator=( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT + VideoProfileKHR & setVideoCodecOperation( + VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR videoCodecOperation_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + videoCodecOperation = videoCodecOperation_; return *this; } - MemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + VideoProfileKHR & setChromaSubsampling( VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR chromaSubsampling_ ) + VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + chromaSubsampling = chromaSubsampling_; return *this; } - MemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT + VideoProfileKHR & + setLumaBitDepth( VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR lumaBitDepth_ ) VULKAN_HPP_NOEXCEPT { - srcAccessMask = srcAccessMask_; + lumaBitDepth = lumaBitDepth_; return *this; } - MemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT + VideoProfileKHR & + setChromaBitDepth( VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR chromaBitDepth_ ) VULKAN_HPP_NOEXCEPT { - dstAccessMask = dstAccessMask_; + chromaBitDepth = chromaBitDepth_; return *this; } - operator VkMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT + operator VkVideoProfileKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkMemoryBarrier &() VULKAN_HPP_NOEXCEPT + operator VkVideoProfileKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( MemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoProfileKHR const & ) const = default; +# else + bool operator==( VideoProfileKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcAccessMask == rhs.srcAccessMask ) - && ( dstAccessMask == rhs.dstAccessMask ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( videoCodecOperation == rhs.videoCodecOperation ) && + ( chromaSubsampling == rhs.chromaSubsampling ) && ( lumaBitDepth == rhs.lumaBitDepth ) && + ( chromaBitDepth == rhs.chromaBitDepth ); } - bool operator!=( MemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( VideoProfileKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryBarrier; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoProfileKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR videoCodecOperation = + VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagBitsKHR::eInvalid; + VULKAN_HPP_NAMESPACE::VideoChromaSubsamplingFlagsKHR chromaSubsampling = {}; + VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR lumaBitDepth = {}; + VULKAN_HPP_NAMESPACE::VideoComponentBitDepthFlagsKHR chromaBitDepth = {}; }; - static_assert( sizeof( MemoryBarrier ) == sizeof( VkMemoryBarrier ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VideoProfileKHR ) == sizeof( VkVideoProfileKHR ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct MemoryDedicatedAllocateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfo( VULKAN_HPP_NAMESPACE::Image image_ = {}, - VULKAN_HPP_NAMESPACE::Buffer buffer_ = {} ) VULKAN_HPP_NOEXCEPT - : image( image_ ) - , buffer( buffer_ ) + using Type = VideoProfileKHR; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoSessionCreateInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoSessionCreateInfoKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoSessionCreateInfoKHR( + uint32_t queueFamilyIndex_ = {}, + VULKAN_HPP_NAMESPACE::VideoSessionCreateFlagsKHR flags_ = {}, + const VULKAN_HPP_NAMESPACE::VideoProfileKHR * pVideoProfile_ = {}, + VULKAN_HPP_NAMESPACE::Format pictureFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, + VULKAN_HPP_NAMESPACE::Extent2D maxCodedExtent_ = {}, + VULKAN_HPP_NAMESPACE::Format referencePicturesFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, + uint32_t maxReferencePicturesSlotsCount_ = {}, + uint32_t maxReferencePicturesActiveCount_ = {} ) VULKAN_HPP_NOEXCEPT + : queueFamilyIndex( queueFamilyIndex_ ) + , flags( flags_ ) + , pVideoProfile( pVideoProfile_ ) + , pictureFormat( pictureFormat_ ) + , maxCodedExtent( maxCodedExtent_ ) + , referencePicturesFormat( referencePicturesFormat_ ) + , maxReferencePicturesSlotsCount( maxReferencePicturesSlotsCount_ ) + , maxReferencePicturesActiveCount( maxReferencePicturesActiveCount_ ) {} - VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo & operator=( VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo ) - offsetof( MemoryDedicatedAllocateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + VideoSessionCreateInfoKHR( VideoSessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - MemoryDedicatedAllocateInfo( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VideoSessionCreateInfoKHR( VkVideoSessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoSessionCreateInfoKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - MemoryDedicatedAllocateInfo& operator=( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 VideoSessionCreateInfoKHR & + operator=( VideoSessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoSessionCreateInfoKHR & operator=( VkVideoSessionCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - MemoryDedicatedAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + VideoSessionCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - MemoryDedicatedAllocateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT + VideoSessionCreateInfoKHR & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT { - image = image_; + queueFamilyIndex = queueFamilyIndex_; return *this; } - MemoryDedicatedAllocateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT + VideoSessionCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::VideoSessionCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT { - buffer = buffer_; + flags = flags_; return *this; } - operator VkMemoryDedicatedAllocateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryDedicatedAllocateInfo &() VULKAN_HPP_NOEXCEPT + VideoSessionCreateInfoKHR & + setPVideoProfile( const VULKAN_HPP_NAMESPACE::VideoProfileKHR * pVideoProfile_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + pVideoProfile = pVideoProfile_; + return *this; } - bool operator==( MemoryDedicatedAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + VideoSessionCreateInfoKHR & setPictureFormat( VULKAN_HPP_NAMESPACE::Format pictureFormat_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( image == rhs.image ) - && ( buffer == rhs.buffer ); + pictureFormat = pictureFormat_; + return *this; } - bool operator!=( MemoryDedicatedAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + VideoSessionCreateInfoKHR & + setMaxCodedExtent( VULKAN_HPP_NAMESPACE::Extent2D const & maxCodedExtent_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + maxCodedExtent = maxCodedExtent_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedAllocateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Image image = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - }; - static_assert( sizeof( MemoryDedicatedAllocateInfo ) == sizeof( VkMemoryDedicatedAllocateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct MemoryDedicatedRequirements - { - MemoryDedicatedRequirements( VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation_ = {} ) VULKAN_HPP_NOEXCEPT - : prefersDedicatedAllocation( prefersDedicatedAllocation_ ) - , requiresDedicatedAllocation( requiresDedicatedAllocation_ ) - {} - - VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements & operator=( VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT + VideoSessionCreateInfoKHR & + setReferencePicturesFormat( VULKAN_HPP_NAMESPACE::Format referencePicturesFormat_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements ) - offsetof( MemoryDedicatedRequirements, pNext ) ); + referencePicturesFormat = referencePicturesFormat_; return *this; } - MemoryDedicatedRequirements( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT + VideoSessionCreateInfoKHR & + setMaxReferencePicturesSlotsCount( uint32_t maxReferencePicturesSlotsCount_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + maxReferencePicturesSlotsCount = maxReferencePicturesSlotsCount_; + return *this; } - MemoryDedicatedRequirements& operator=( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT + VideoSessionCreateInfoKHR & + setMaxReferencePicturesActiveCount( uint32_t maxReferencePicturesActiveCount_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + maxReferencePicturesActiveCount = maxReferencePicturesActiveCount_; return *this; } - operator VkMemoryDedicatedRequirements const&() const VULKAN_HPP_NOEXCEPT + operator VkVideoSessionCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkMemoryDedicatedRequirements &() VULKAN_HPP_NOEXCEPT + operator VkVideoSessionCreateInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( MemoryDedicatedRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoSessionCreateInfoKHR const & ) const = default; +# else + bool operator==( VideoSessionCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( prefersDedicatedAllocation == rhs.prefersDedicatedAllocation ) - && ( requiresDedicatedAllocation == rhs.requiresDedicatedAllocation ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( queueFamilyIndex == rhs.queueFamilyIndex ) && + ( flags == rhs.flags ) && ( pVideoProfile == rhs.pVideoProfile ) && + ( pictureFormat == rhs.pictureFormat ) && ( maxCodedExtent == rhs.maxCodedExtent ) && + ( referencePicturesFormat == rhs.referencePicturesFormat ) && + ( maxReferencePicturesSlotsCount == rhs.maxReferencePicturesSlotsCount ) && + ( maxReferencePicturesActiveCount == rhs.maxReferencePicturesActiveCount ); } - bool operator!=( MemoryDedicatedRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( VideoSessionCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedRequirements; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation = {}; - VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoSessionCreateInfoKHR; + const void * pNext = {}; + uint32_t queueFamilyIndex = {}; + VULKAN_HPP_NAMESPACE::VideoSessionCreateFlagsKHR flags = {}; + const VULKAN_HPP_NAMESPACE::VideoProfileKHR * pVideoProfile = {}; + VULKAN_HPP_NAMESPACE::Format pictureFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined; + VULKAN_HPP_NAMESPACE::Extent2D maxCodedExtent = {}; + VULKAN_HPP_NAMESPACE::Format referencePicturesFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined; + uint32_t maxReferencePicturesSlotsCount = {}; + uint32_t maxReferencePicturesActiveCount = {}; }; - static_assert( sizeof( MemoryDedicatedRequirements ) == sizeof( VkMemoryDedicatedRequirements ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VideoSessionCreateInfoKHR ) == sizeof( VkVideoSessionCreateInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct MemoryFdPropertiesKHR + template <> + struct CppType { - MemoryFdPropertiesKHR( uint32_t memoryTypeBits_ = {} ) VULKAN_HPP_NOEXCEPT - : memoryTypeBits( memoryTypeBits_ ) + using Type = VideoSessionCreateInfoKHR; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoSessionParametersCreateInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eVideoSessionParametersCreateInfoKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoSessionParametersCreateInfoKHR( + VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParametersTemplate_ = {}, + VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession_ = {} ) VULKAN_HPP_NOEXCEPT + : videoSessionParametersTemplate( videoSessionParametersTemplate_ ) + , videoSession( videoSession_ ) + {} + + VULKAN_HPP_CONSTEXPR VideoSessionParametersCreateInfoKHR( VideoSessionParametersCreateInfoKHR const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + VideoSessionParametersCreateInfoKHR( VkVideoSessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoSessionParametersCreateInfoKHR( *reinterpret_cast( &rhs ) ) {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoSessionParametersCreateInfoKHR & + operator=( VideoSessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR & operator=( VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VideoSessionParametersCreateInfoKHR & + operator=( VkVideoSessionParametersCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR ) - offsetof( MemoryFdPropertiesKHR, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - MemoryFdPropertiesKHR( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VideoSessionParametersCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoSessionParametersCreateInfoKHR & setVideoSessionParametersTemplate( + VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParametersTemplate_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + videoSessionParametersTemplate = videoSessionParametersTemplate_; + return *this; } - MemoryFdPropertiesKHR& operator=( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VideoSessionParametersCreateInfoKHR & + setVideoSession( VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + videoSession = videoSession_; return *this; } - operator VkMemoryFdPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkVideoSessionParametersCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkMemoryFdPropertiesKHR &() VULKAN_HPP_NOEXCEPT + operator VkVideoSessionParametersCreateInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( MemoryFdPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoSessionParametersCreateInfoKHR const & ) const = default; +# else + bool operator==( VideoSessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memoryTypeBits == rhs.memoryTypeBits ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( videoSessionParametersTemplate == rhs.videoSessionParametersTemplate ) && + ( videoSession == rhs.videoSession ); } - bool operator!=( MemoryFdPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( VideoSessionParametersCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryFdPropertiesKHR; - void* pNext = {}; - uint32_t memoryTypeBits = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoSessionParametersCreateInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParametersTemplate = {}; + VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession = {}; }; - static_assert( sizeof( MemoryFdPropertiesKHR ) == sizeof( VkMemoryFdPropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VideoSessionParametersCreateInfoKHR ) == sizeof( VkVideoSessionParametersCreateInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_ANDROID_KHR + template <> + struct CppType + { + using Type = VideoSessionParametersCreateInfoKHR; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - struct MemoryGetAndroidHardwareBufferInfoANDROID + struct DisplayPowerInfoEXT { - VULKAN_HPP_CONSTEXPR MemoryGetAndroidHardwareBufferInfoANDROID( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {} ) VULKAN_HPP_NOEXCEPT - : memory( memory_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPowerInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DisplayPowerInfoEXT( VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ = + VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff ) VULKAN_HPP_NOEXCEPT + : powerState( powerState_ ) {} - VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID & operator=( VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID ) - offsetof( MemoryGetAndroidHardwareBufferInfoANDROID, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR DisplayPowerInfoEXT( DisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - MemoryGetAndroidHardwareBufferInfoANDROID( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + DisplayPowerInfoEXT( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : DisplayPowerInfoEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - MemoryGetAndroidHardwareBufferInfoANDROID& operator=( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 DisplayPowerInfoEXT & + operator=( DisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DisplayPowerInfoEXT & operator=( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - MemoryGetAndroidHardwareBufferInfoANDROID & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + DisplayPowerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - MemoryGetAndroidHardwareBufferInfoANDROID & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT + DisplayPowerInfoEXT & setPowerState( VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ ) VULKAN_HPP_NOEXCEPT { - memory = memory_; + powerState = powerState_; return *this; } - operator VkMemoryGetAndroidHardwareBufferInfoANDROID const&() const VULKAN_HPP_NOEXCEPT + operator VkDisplayPowerInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkMemoryGetAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT + operator VkDisplayPowerInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( MemoryGetAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DisplayPowerInfoEXT const & ) const = default; +#else + bool operator==( DisplayPowerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memory == rhs.memory ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( powerState == rhs.powerState ); } - bool operator!=( MemoryGetAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DisplayPowerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPowerInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff; }; - static_assert( sizeof( MemoryGetAndroidHardwareBufferInfoANDROID ) == sizeof( VkMemoryGetAndroidHardwareBufferInfoANDROID ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + static_assert( sizeof( DisplayPowerInfoEXT ) == sizeof( VkDisplayPowerInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct MemoryGetFdInfoKHR + template <> + struct CppType + { + using Type = DisplayPowerInfoEXT; + }; + + struct MappedMemoryRange { - VULKAN_HPP_CONSTEXPR MemoryGetFdInfoKHR( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMappedMemoryRange; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR MappedMemoryRange( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT : memory( memory_ ) - , handleType( handleType_ ) + , offset( offset_ ) + , size( size_ ) {} - VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR & operator=( VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR ) - offsetof( MemoryGetFdInfoKHR, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR MappedMemoryRange( MappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT = default; - MemoryGetFdInfoKHR( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + MappedMemoryRange( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT + : MappedMemoryRange( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - MemoryGetFdInfoKHR& operator=( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 MappedMemoryRange & + operator=( MappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + MappedMemoryRange & operator=( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - MemoryGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + MappedMemoryRange & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - MemoryGetFdInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT + MappedMemoryRange & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT { memory = memory_; return *this; } - MemoryGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT + MappedMemoryRange & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT { - handleType = handleType_; + offset = offset_; return *this; } - operator VkMemoryGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT + MappedMemoryRange & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + size = size_; + return *this; } - operator VkMemoryGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkMappedMemoryRange const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( MemoryGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkMappedMemoryRange &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MappedMemoryRange const & ) const = default; +#else + bool operator==( MappedMemoryRange const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memory == rhs.memory ) - && ( handleType == rhs.handleType ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memory == rhs.memory ) && ( offset == rhs.offset ) && + ( size == rhs.size ); } - bool operator!=( MemoryGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( MappedMemoryRange const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetFdInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMappedMemoryRange; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; + VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; + VULKAN_HPP_NAMESPACE::DeviceSize size = {}; }; - static_assert( sizeof( MemoryGetFdInfoKHR ) == sizeof( VkMemoryGetFdInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( MappedMemoryRange ) == sizeof( VkMappedMemoryRange ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_WIN32_KHR + template <> + struct CppType + { + using Type = MappedMemoryRange; + }; - struct MemoryGetWin32HandleInfoKHR + struct MemoryRequirements { - VULKAN_HPP_CONSTEXPR MemoryGetWin32HandleInfoKHR( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT - : memory( memory_ ) - , handleType( handleType_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR MemoryRequirements( VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize alignment_ = {}, + uint32_t memoryTypeBits_ = {} ) VULKAN_HPP_NOEXCEPT + : size( size_ ) + , alignment( alignment_ ) + , memoryTypeBits( memoryTypeBits_ ) {} - VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR & operator=( VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR ) - offsetof( MemoryGetWin32HandleInfoKHR, pNext ) ); - return *this; - } - - MemoryGetWin32HandleInfoKHR( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - - MemoryGetWin32HandleInfoKHR& operator=( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR MemoryRequirements( MemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default; - MemoryGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + MemoryRequirements( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT + : MemoryRequirements( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - MemoryGetWin32HandleInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT - { - memory = memory_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 MemoryRequirements & + operator=( MemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default; - MemoryGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT + MemoryRequirements & operator=( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT { - handleType = handleType_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkMemoryGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkMemoryRequirements const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkMemoryGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkMemoryRequirements &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( MemoryGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MemoryRequirements const & ) const = default; +#else + bool operator==( MemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memory == rhs.memory ) - && ( handleType == rhs.handleType ); + return ( size == rhs.size ) && ( alignment == rhs.alignment ) && ( memoryTypeBits == rhs.memoryTypeBits ); } - bool operator!=( MemoryGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( MemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetWin32HandleInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; + VULKAN_HPP_NAMESPACE::DeviceSize size = {}; + VULKAN_HPP_NAMESPACE::DeviceSize alignment = {}; + uint32_t memoryTypeBits = {}; }; - static_assert( sizeof( MemoryGetWin32HandleInfoKHR ) == sizeof( VkMemoryGetWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + static_assert( sizeof( MemoryRequirements ) == sizeof( VkMemoryRequirements ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct MemoryHeap + struct MemoryRequirements2 { - MemoryHeap( VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, - VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT - : size( size_ ) - , flags( flags_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryRequirements2; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + MemoryRequirements2( VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements_ = {} ) VULKAN_HPP_NOEXCEPT + : memoryRequirements( memoryRequirements_ ) {} - MemoryHeap( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR MemoryRequirements2( MemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - MemoryHeap& operator=( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT + MemoryRequirements2( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT + : MemoryRequirements2( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 MemoryRequirements2 & + operator=( MemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + MemoryRequirements2 & operator=( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkMemoryHeap const&() const VULKAN_HPP_NOEXCEPT + operator VkMemoryRequirements2 const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkMemoryHeap &() VULKAN_HPP_NOEXCEPT + operator VkMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( MemoryHeap const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MemoryRequirements2 const & ) const = default; +#else + bool operator==( MemoryRequirements2 const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( size == rhs.size ) - && ( flags == rhs.flags ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryRequirements == rhs.memoryRequirements ); } - bool operator!=( MemoryHeap const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( MemoryRequirements2 const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryRequirements2; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements = {}; }; - static_assert( sizeof( MemoryHeap ) == sizeof( VkMemoryHeap ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( MemoryRequirements2 ) == sizeof( VkMemoryRequirements2 ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct MemoryHostPointerPropertiesEXT + template <> + struct CppType { - MemoryHostPointerPropertiesEXT( uint32_t memoryTypeBits_ = {} ) VULKAN_HPP_NOEXCEPT - : memoryTypeBits( memoryTypeBits_ ) + using Type = MemoryRequirements2; + }; + using MemoryRequirements2KHR = MemoryRequirements2; + + struct DeviceGroupPresentCapabilitiesKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eDeviceGroupPresentCapabilitiesKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR( + std::array const & presentMask_ = {}, + VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {} ) VULKAN_HPP_NOEXCEPT + : presentMask( presentMask_ ) + , modes( modes_ ) {} - VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT & operator=( VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT ) - offsetof( MemoryHostPointerPropertiesEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 + DeviceGroupPresentCapabilitiesKHR( DeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - MemoryHostPointerPropertiesEXT( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + DeviceGroupPresentCapabilitiesKHR( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : DeviceGroupPresentCapabilitiesKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR & + operator=( DeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - MemoryHostPointerPropertiesEXT& operator=( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceGroupPresentCapabilitiesKHR & operator=( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkMemoryHostPointerPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkDeviceGroupPresentCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkMemoryHostPointerPropertiesEXT &() VULKAN_HPP_NOEXCEPT + operator VkDeviceGroupPresentCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( MemoryHostPointerPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DeviceGroupPresentCapabilitiesKHR const & ) const = default; +#else + bool operator==( DeviceGroupPresentCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memoryTypeBits == rhs.memoryTypeBits ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( presentMask == rhs.presentMask ) && + ( modes == rhs.modes ); } - bool operator!=( MemoryHostPointerPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DeviceGroupPresentCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryHostPointerPropertiesEXT; - void* pNext = {}; - uint32_t memoryTypeBits = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentCapabilitiesKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D presentMask = {}; + VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {}; }; - static_assert( sizeof( MemoryHostPointerPropertiesEXT ) == sizeof( VkMemoryHostPointerPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DeviceGroupPresentCapabilitiesKHR ) == sizeof( VkDeviceGroupPresentCapabilitiesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct MemoryOpaqueCaptureAddressAllocateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR MemoryOpaqueCaptureAddressAllocateInfo( uint64_t opaqueCaptureAddress_ = {} ) VULKAN_HPP_NOEXCEPT - : opaqueCaptureAddress( opaqueCaptureAddress_ ) + using Type = DeviceGroupPresentCapabilitiesKHR; + }; + + struct PhysicalDeviceSurfaceInfo2KHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSurfaceInfo2KHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceSurfaceInfo2KHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ = {} ) VULKAN_HPP_NOEXCEPT + : surface( surface_ ) {} - VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo & operator=( VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo ) - offsetof( MemoryOpaqueCaptureAddressAllocateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + PhysicalDeviceSurfaceInfo2KHR( PhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - MemoryOpaqueCaptureAddressAllocateInfo( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceSurfaceInfo2KHR( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceSurfaceInfo2KHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSurfaceInfo2KHR & + operator=( PhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - MemoryOpaqueCaptureAddressAllocateInfo& operator=( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceSurfaceInfo2KHR & operator=( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - MemoryOpaqueCaptureAddressAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceSurfaceInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - MemoryOpaqueCaptureAddressAllocateInfo & setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceSurfaceInfo2KHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT { - opaqueCaptureAddress = opaqueCaptureAddress_; + surface = surface_; return *this; } - operator VkMemoryOpaqueCaptureAddressAllocateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceSurfaceInfo2KHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkMemoryOpaqueCaptureAddressAllocateInfo &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceSurfaceInfo2KHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( MemoryOpaqueCaptureAddressAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceSurfaceInfo2KHR const & ) const = default; +#else + bool operator==( PhysicalDeviceSurfaceInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( surface == rhs.surface ); } - bool operator!=( MemoryOpaqueCaptureAddressAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceSurfaceInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryOpaqueCaptureAddressAllocateInfo; - const void* pNext = {}; - uint64_t opaqueCaptureAddress = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSurfaceInfo2KHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {}; }; - static_assert( sizeof( MemoryOpaqueCaptureAddressAllocateInfo ) == sizeof( VkMemoryOpaqueCaptureAddressAllocateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceSurfaceInfo2KHR ) == sizeof( VkPhysicalDeviceSurfaceInfo2KHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct MemoryPriorityAllocateInfoEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR MemoryPriorityAllocateInfoEXT( float priority_ = {} ) VULKAN_HPP_NOEXCEPT - : priority( priority_ ) + using Type = PhysicalDeviceSurfaceInfo2KHR; + }; + + struct DeviceMemoryOpaqueCaptureAddressInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eDeviceMemoryOpaqueCaptureAddressInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + DeviceMemoryOpaqueCaptureAddressInfo( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {} ) VULKAN_HPP_NOEXCEPT + : memory( memory_ ) {} - VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT ) - offsetof( MemoryPriorityAllocateInfoEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR DeviceMemoryOpaqueCaptureAddressInfo( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - MemoryPriorityAllocateInfoEXT( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + DeviceMemoryOpaqueCaptureAddressInfo( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : DeviceMemoryOpaqueCaptureAddressInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DeviceMemoryOpaqueCaptureAddressInfo & + operator=( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - MemoryPriorityAllocateInfoEXT& operator=( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceMemoryOpaqueCaptureAddressInfo & + operator=( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - MemoryPriorityAllocateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + DeviceMemoryOpaqueCaptureAddressInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - MemoryPriorityAllocateInfoEXT & setPriority( float priority_ ) VULKAN_HPP_NOEXCEPT + DeviceMemoryOpaqueCaptureAddressInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT { - priority = priority_; + memory = memory_; return *this; } - operator VkMemoryPriorityAllocateInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkDeviceMemoryOpaqueCaptureAddressInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkMemoryPriorityAllocateInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkDeviceMemoryOpaqueCaptureAddressInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( MemoryPriorityAllocateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DeviceMemoryOpaqueCaptureAddressInfo const & ) const = default; +#else + bool operator==( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( priority == rhs.priority ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memory == rhs.memory ); } - bool operator!=( MemoryPriorityAllocateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryPriorityAllocateInfoEXT; - const void* pNext = {}; - float priority = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOpaqueCaptureAddressInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; }; - static_assert( sizeof( MemoryPriorityAllocateInfoEXT ) == sizeof( VkMemoryPriorityAllocateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DeviceMemoryOpaqueCaptureAddressInfo ) == sizeof( VkDeviceMemoryOpaqueCaptureAddressInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct MemoryRequirements + template <> + struct CppType { - MemoryRequirements( VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize alignment_ = {}, - uint32_t memoryTypeBits_ = {} ) VULKAN_HPP_NOEXCEPT - : size( size_ ) - , alignment( alignment_ ) - , memoryTypeBits( memoryTypeBits_ ) + using Type = DeviceMemoryOpaqueCaptureAddressInfo; + }; + using DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo; + + struct PresentInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PresentInfoKHR( uint32_t waitSemaphoreCount_ = {}, + const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ = {}, + uint32_t swapchainCount_ = {}, + const VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains_ = {}, + const uint32_t * pImageIndices_ = {}, + VULKAN_HPP_NAMESPACE::Result * pResults_ = {} ) VULKAN_HPP_NOEXCEPT + : waitSemaphoreCount( waitSemaphoreCount_ ) + , pWaitSemaphores( pWaitSemaphores_ ) + , swapchainCount( swapchainCount_ ) + , pSwapchains( pSwapchains_ ) + , pImageIndices( pImageIndices_ ) + , pResults( pResults_ ) {} - MemoryRequirements( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; + VULKAN_HPP_CONSTEXPR PresentInfoKHR( PresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PresentInfoKHR( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PresentInfoKHR( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PresentInfoKHR( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphores_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & swapchains_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & imageIndices_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & results_ = {} ) + : waitSemaphoreCount( static_cast( waitSemaphores_.size() ) ) + , pWaitSemaphores( waitSemaphores_.data() ) + , swapchainCount( static_cast( swapchains_.size() ) ) + , pSwapchains( swapchains_.data() ) + , pImageIndices( imageIndices_.data() ) + , pResults( results_.data() ) + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( swapchains_.size() == imageIndices_.size() ); + VULKAN_HPP_ASSERT( results_.empty() || ( swapchains_.size() == results_.size() ) ); + VULKAN_HPP_ASSERT( results_.empty() || ( imageIndices_.size() == results_.size() ) ); +# else + if ( swapchains_.size() != imageIndices_.size() ) + { + throw LogicError( VULKAN_HPP_NAMESPACE_STRING + "::PresentInfoKHR::PresentInfoKHR: swapchains_.size() != imageIndices_.size()" ); + } + if ( !results_.empty() && ( swapchains_.size() != results_.size() ) ) + { + throw LogicError( + VULKAN_HPP_NAMESPACE_STRING + "::PresentInfoKHR::PresentInfoKHR: !results_.empty() && ( swapchains_.size() != results_.size() )" ); + } + if ( !results_.empty() && ( imageIndices_.size() != results_.size() ) ) + { + throw LogicError( + VULKAN_HPP_NAMESPACE_STRING + "::PresentInfoKHR::PresentInfoKHR: !results_.empty() && ( imageIndices_.size() != results_.size() )" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PresentInfoKHR & operator=( PresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - MemoryRequirements& operator=( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT + PresentInfoKHR & operator=( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkMemoryRequirements const&() const VULKAN_HPP_NOEXCEPT + PresentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + pNext = pNext_; + return *this; } - operator VkMemoryRequirements &() VULKAN_HPP_NOEXCEPT + PresentInfoKHR & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + waitSemaphoreCount = waitSemaphoreCount_; + return *this; } - bool operator==( MemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT + PresentInfoKHR & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT { - return ( size == rhs.size ) - && ( alignment == rhs.alignment ) - && ( memoryTypeBits == rhs.memoryTypeBits ); + pWaitSemaphores = pWaitSemaphores_; + return *this; } - bool operator!=( MemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PresentInfoKHR & setWaitSemaphores( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphores_ ) + VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + waitSemaphoreCount = static_cast( waitSemaphores_.size() ); + pWaitSemaphores = waitSemaphores_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - public: - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - VULKAN_HPP_NAMESPACE::DeviceSize alignment = {}; - uint32_t memoryTypeBits = {}; - }; - static_assert( sizeof( MemoryRequirements ) == sizeof( VkMemoryRequirements ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct MemoryRequirements2 - { - MemoryRequirements2( VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements_ = {} ) VULKAN_HPP_NOEXCEPT - : memoryRequirements( memoryRequirements_ ) - {} - - VULKAN_HPP_NAMESPACE::MemoryRequirements2 & operator=( VULKAN_HPP_NAMESPACE::MemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT + PresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::MemoryRequirements2 ) - offsetof( MemoryRequirements2, pNext ) ); + swapchainCount = swapchainCount_; return *this; } - MemoryRequirements2( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT + PresentInfoKHR & setPSwapchains( const VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pSwapchains = pSwapchains_; + return *this; } - MemoryRequirements2& operator=( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PresentInfoKHR & setSwapchains( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & swapchains_ ) + VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + swapchainCount = static_cast( swapchains_.size() ); + pSwapchains = swapchains_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkMemoryRequirements2 const&() const VULKAN_HPP_NOEXCEPT + PresentInfoKHR & setPImageIndices( const uint32_t * pImageIndices_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + pImageIndices = pImageIndices_; + return *this; } - operator VkMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PresentInfoKHR & setImageIndices( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & imageIndices_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + swapchainCount = static_cast( imageIndices_.size() ); + pImageIndices = imageIndices_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - bool operator==( MemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT + PresentInfoKHR & setPResults( VULKAN_HPP_NAMESPACE::Result * pResults_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memoryRequirements == rhs.memoryRequirements ); + pResults = pResults_; + return *this; } - bool operator!=( MemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PresentInfoKHR & setResults( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & results_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + swapchainCount = static_cast( results_.size() ); + pResults = results_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryRequirements2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements = {}; - }; - static_assert( sizeof( MemoryRequirements2 ) == sizeof( VkMemoryRequirements2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct MemoryType - { - MemoryType( VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags_ = {}, - uint32_t heapIndex_ = {} ) VULKAN_HPP_NOEXCEPT - : propertyFlags( propertyFlags_ ) - , heapIndex( heapIndex_ ) - {} - - MemoryType( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkPresentInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - *this = rhs; + return *reinterpret_cast( this ); } - MemoryType& operator=( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkPresentInfoKHR &() VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return *reinterpret_cast( this ); } - operator VkMemoryType const&() const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PresentInfoKHR const & ) const = default; +#else + bool operator==( PresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) && + ( pWaitSemaphores == rhs.pWaitSemaphores ) && ( swapchainCount == rhs.swapchainCount ) && + ( pSwapchains == rhs.pSwapchains ) && ( pImageIndices == rhs.pImageIndices ) && + ( pResults == rhs.pResults ); } - operator VkMemoryType &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( MemoryType const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( propertyFlags == rhs.propertyFlags ) - && ( heapIndex == rhs.heapIndex ); - } - - bool operator!=( MemoryType const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags = {}; - uint32_t heapIndex = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentInfoKHR; + const void * pNext = {}; + uint32_t waitSemaphoreCount = {}; + const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores = {}; + uint32_t swapchainCount = {}; + const VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains = {}; + const uint32_t * pImageIndices = {}; + VULKAN_HPP_NAMESPACE::Result * pResults = {}; }; - static_assert( sizeof( MemoryType ) == sizeof( VkMemoryType ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PresentInfoKHR ) == sizeof( VkPresentInfoKHR ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_WIN32_KHR + template <> + struct CppType + { + using Type = PresentInfoKHR; + }; - struct MemoryWin32HandlePropertiesKHR + struct SubmitInfo { - MemoryWin32HandlePropertiesKHR( uint32_t memoryTypeBits_ = {} ) VULKAN_HPP_NOEXCEPT - : memoryTypeBits( memoryTypeBits_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubmitInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + SubmitInfo( uint32_t waitSemaphoreCount_ = {}, + const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineStageFlags * pWaitDstStageMask_ = {}, + uint32_t commandBufferCount_ = {}, + const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers_ = {}, + uint32_t signalSemaphoreCount_ = {}, + const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores_ = {} ) VULKAN_HPP_NOEXCEPT + : waitSemaphoreCount( waitSemaphoreCount_ ) + , pWaitSemaphores( pWaitSemaphores_ ) + , pWaitDstStageMask( pWaitDstStageMask_ ) + , commandBufferCount( commandBufferCount_ ) + , pCommandBuffers( pCommandBuffers_ ) + , signalSemaphoreCount( signalSemaphoreCount_ ) + , pSignalSemaphores( pSignalSemaphores_ ) {} - VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR & operator=( VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR SubmitInfo( SubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SubmitInfo( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : SubmitInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SubmitInfo( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphores_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + waitDstStageMask_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + commandBuffers_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + signalSemaphores_ = {} ) + : waitSemaphoreCount( static_cast( waitSemaphores_.size() ) ) + , pWaitSemaphores( waitSemaphores_.data() ) + , pWaitDstStageMask( waitDstStageMask_.data() ) + , commandBufferCount( static_cast( commandBuffers_.size() ) ) + , pCommandBuffers( commandBuffers_.data() ) + , signalSemaphoreCount( static_cast( signalSemaphores_.size() ) ) + , pSignalSemaphores( signalSemaphores_.data() ) + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( waitSemaphores_.size() == waitDstStageMask_.size() ); +# else + if ( waitSemaphores_.size() != waitDstStageMask_.size() ) + { + throw LogicError( VULKAN_HPP_NAMESPACE_STRING + "::SubmitInfo::SubmitInfo: waitSemaphores_.size() != waitDstStageMask_.size()" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SubmitInfo & operator=( SubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SubmitInfo & operator=( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR ) - offsetof( MemoryWin32HandlePropertiesKHR, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - MemoryWin32HandlePropertiesKHR( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + SubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - MemoryWin32HandlePropertiesKHR& operator=( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + SubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + waitSemaphoreCount = waitSemaphoreCount_; return *this; } - operator VkMemoryWin32HandlePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT + SubmitInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + pWaitSemaphores = pWaitSemaphores_; + return *this; } - operator VkMemoryWin32HandlePropertiesKHR &() VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SubmitInfo & setWaitSemaphores( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphores_ ) + VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + waitSemaphoreCount = static_cast( waitSemaphores_.size() ); + pWaitSemaphores = waitSemaphores_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - bool operator==( MemoryWin32HandlePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + SubmitInfo & + setPWaitDstStageMask( const VULKAN_HPP_NAMESPACE::PipelineStageFlags * pWaitDstStageMask_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memoryTypeBits == rhs.memoryTypeBits ); + pWaitDstStageMask = pWaitDstStageMask_; + return *this; } - bool operator!=( MemoryWin32HandlePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SubmitInfo & setWaitDstStageMask( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + waitDstStageMask_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + waitSemaphoreCount = static_cast( waitDstStageMask_.size() ); + pWaitDstStageMask = waitDstStageMask_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryWin32HandlePropertiesKHR; - void* pNext = {}; - uint32_t memoryTypeBits = {}; - }; - static_assert( sizeof( MemoryWin32HandlePropertiesKHR ) == sizeof( VkMemoryWin32HandlePropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_METAL_EXT - - struct MetalSurfaceCreateInfoEXT - { - VULKAN_HPP_CONSTEXPR MetalSurfaceCreateInfoEXT( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ = {}, - const CAMetalLayer* pLayer_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , pLayer( pLayer_ ) - {} - - VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + SubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT ) - offsetof( MetalSurfaceCreateInfoEXT, pNext ) ); + commandBufferCount = commandBufferCount_; return *this; } - MetalSurfaceCreateInfoEXT( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + SubmitInfo & setPCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pCommandBuffers = pCommandBuffers_; + return *this; } - MetalSurfaceCreateInfoEXT& operator=( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SubmitInfo & setCommandBuffers( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & commandBuffers_ ) + VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + commandBufferCount = static_cast( commandBuffers_.size() ); + pCommandBuffers = commandBuffers_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - MetalSurfaceCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + SubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + signalSemaphoreCount = signalSemaphoreCount_; return *this; } - MetalSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT + SubmitInfo & setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + pSignalSemaphores = pSignalSemaphores_; return *this; } - MetalSurfaceCreateInfoEXT & setPLayer( const CAMetalLayer* pLayer_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SubmitInfo & setSignalSemaphores( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphores_ ) + VULKAN_HPP_NOEXCEPT { - pLayer = pLayer_; + signalSemaphoreCount = static_cast( signalSemaphores_.size() ); + pSignalSemaphores = signalSemaphores_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkMetalSurfaceCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkSubmitInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkMetalSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkSubmitInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( MetalSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SubmitInfo const & ) const = default; +#else + bool operator==( SubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pLayer == rhs.pLayer ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) && + ( pWaitSemaphores == rhs.pWaitSemaphores ) && ( pWaitDstStageMask == rhs.pWaitDstStageMask ) && + ( commandBufferCount == rhs.commandBufferCount ) && ( pCommandBuffers == rhs.pCommandBuffers ) && + ( signalSemaphoreCount == rhs.signalSemaphoreCount ) && ( pSignalSemaphores == rhs.pSignalSemaphores ); } - bool operator!=( MetalSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMetalSurfaceCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags = {}; - const CAMetalLayer* pLayer = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubmitInfo; + const void * pNext = {}; + uint32_t waitSemaphoreCount = {}; + const VULKAN_HPP_NAMESPACE::Semaphore * pWaitSemaphores = {}; + const VULKAN_HPP_NAMESPACE::PipelineStageFlags * pWaitDstStageMask = {}; + uint32_t commandBufferCount = {}; + const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers = {}; + uint32_t signalSemaphoreCount = {}; + const VULKAN_HPP_NAMESPACE::Semaphore * pSignalSemaphores = {}; }; - static_assert( sizeof( MetalSurfaceCreateInfoEXT ) == sizeof( VkMetalSurfaceCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_METAL_EXT*/ + static_assert( sizeof( SubmitInfo ) == sizeof( VkSubmitInfo ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct MultisamplePropertiesEXT + template <> + struct CppType { - MultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize_ = {} ) VULKAN_HPP_NOEXCEPT - : maxSampleLocationGridSize( maxSampleLocationGridSize_ ) + using Type = SubmitInfo; + }; + + struct SemaphoreSubmitInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreSubmitInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SemaphoreSubmitInfoKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, + uint64_t value_ = {}, + VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stageMask_ = {}, + uint32_t deviceIndex_ = {} ) VULKAN_HPP_NOEXCEPT + : semaphore( semaphore_ ) + , value( value_ ) + , stageMask( stageMask_ ) + , deviceIndex( deviceIndex_ ) + {} + + VULKAN_HPP_CONSTEXPR SemaphoreSubmitInfoKHR( SemaphoreSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SemaphoreSubmitInfoKHR( VkSemaphoreSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : SemaphoreSubmitInfoKHR( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT & operator=( VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 SemaphoreSubmitInfoKHR & + operator=( SemaphoreSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SemaphoreSubmitInfoKHR & operator=( VkSemaphoreSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT ) - offsetof( MultisamplePropertiesEXT, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - MultisamplePropertiesEXT( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + SemaphoreSubmitInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + SemaphoreSubmitInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + semaphore = semaphore_; + return *this; } - MultisamplePropertiesEXT& operator=( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + SemaphoreSubmitInfoKHR & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + value = value_; return *this; } - operator VkMultisamplePropertiesEXT const&() const VULKAN_HPP_NOEXCEPT + SemaphoreSubmitInfoKHR & setStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stageMask_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + stageMask = stageMask_; + return *this; } - operator VkMultisamplePropertiesEXT &() VULKAN_HPP_NOEXCEPT + SemaphoreSubmitInfoKHR & setDeviceIndex( uint32_t deviceIndex_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + deviceIndex = deviceIndex_; + return *this; + } + + operator VkSemaphoreSubmitInfoKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); } - bool operator==( MultisamplePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkSemaphoreSubmitInfoKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SemaphoreSubmitInfoKHR const & ) const = default; +#else + bool operator==( SemaphoreSubmitInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && + ( value == rhs.value ) && ( stageMask == rhs.stageMask ) && ( deviceIndex == rhs.deviceIndex ); } - bool operator!=( MultisamplePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SemaphoreSubmitInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMultisamplePropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreSubmitInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; + uint64_t value = {}; + VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stageMask = {}; + uint32_t deviceIndex = {}; + }; + static_assert( sizeof( SemaphoreSubmitInfoKHR ) == sizeof( VkSemaphoreSubmitInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = SemaphoreSubmitInfoKHR; }; - static_assert( sizeof( MultisamplePropertiesEXT ) == sizeof( VkMultisamplePropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ObjectTableCreateInfoNVX + struct SubmitInfo2KHR { - VULKAN_HPP_CONSTEXPR ObjectTableCreateInfoNVX( uint32_t objectCount_ = {}, - const VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX* pObjectEntryTypes_ = {}, - const uint32_t* pObjectEntryCounts_ = {}, - const VULKAN_HPP_NAMESPACE::ObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags_ = {}, - uint32_t maxUniformBuffersPerDescriptor_ = {}, - uint32_t maxStorageBuffersPerDescriptor_ = {}, - uint32_t maxStorageImagesPerDescriptor_ = {}, - uint32_t maxSampledImagesPerDescriptor_ = {}, - uint32_t maxPipelineLayouts_ = {} ) VULKAN_HPP_NOEXCEPT - : objectCount( objectCount_ ) - , pObjectEntryTypes( pObjectEntryTypes_ ) - , pObjectEntryCounts( pObjectEntryCounts_ ) - , pObjectEntryUsageFlags( pObjectEntryUsageFlags_ ) - , maxUniformBuffersPerDescriptor( maxUniformBuffersPerDescriptor_ ) - , maxStorageBuffersPerDescriptor( maxStorageBuffersPerDescriptor_ ) - , maxStorageImagesPerDescriptor( maxStorageImagesPerDescriptor_ ) - , maxSampledImagesPerDescriptor( maxSampledImagesPerDescriptor_ ) - , maxPipelineLayouts( maxPipelineLayouts_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubmitInfo2KHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SubmitInfo2KHR( + VULKAN_HPP_NAMESPACE::SubmitFlagsKHR flags_ = {}, + uint32_t waitSemaphoreInfoCount_ = {}, + const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR * pWaitSemaphoreInfos_ = {}, + uint32_t commandBufferInfoCount_ = {}, + const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR * pCommandBufferInfos_ = {}, + uint32_t signalSemaphoreInfoCount_ = {}, + const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR * pSignalSemaphoreInfos_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , waitSemaphoreInfoCount( waitSemaphoreInfoCount_ ) + , pWaitSemaphoreInfos( pWaitSemaphoreInfos_ ) + , commandBufferInfoCount( commandBufferInfoCount_ ) + , pCommandBufferInfos( pCommandBufferInfos_ ) + , signalSemaphoreInfoCount( signalSemaphoreInfoCount_ ) + , pSignalSemaphoreInfos( pSignalSemaphoreInfos_ ) {} - VULKAN_HPP_NAMESPACE::ObjectTableCreateInfoNVX & operator=( VULKAN_HPP_NAMESPACE::ObjectTableCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ObjectTableCreateInfoNVX ) - offsetof( ObjectTableCreateInfoNVX, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR SubmitInfo2KHR( SubmitInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SubmitInfo2KHR( VkSubmitInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : SubmitInfo2KHR( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SubmitInfo2KHR( + VULKAN_HPP_NAMESPACE::SubmitFlagsKHR flags_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + waitSemaphoreInfos_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + commandBufferInfos_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + signalSemaphoreInfos_ = {} ) + : flags( flags_ ) + , waitSemaphoreInfoCount( static_cast( waitSemaphoreInfos_.size() ) ) + , pWaitSemaphoreInfos( waitSemaphoreInfos_.data() ) + , commandBufferInfoCount( static_cast( commandBufferInfos_.size() ) ) + , pCommandBufferInfos( commandBufferInfos_.data() ) + , signalSemaphoreInfoCount( static_cast( signalSemaphoreInfos_.size() ) ) + , pSignalSemaphoreInfos( signalSemaphoreInfos_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ObjectTableCreateInfoNVX( VkObjectTableCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 SubmitInfo2KHR & operator=( SubmitInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SubmitInfo2KHR & operator=( VkSubmitInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - ObjectTableCreateInfoNVX& operator=( VkObjectTableCreateInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT + SubmitInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - ObjectTableCreateInfoNVX & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + SubmitInfo2KHR & setFlags( VULKAN_HPP_NAMESPACE::SubmitFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + flags = flags_; return *this; } - ObjectTableCreateInfoNVX & setObjectCount( uint32_t objectCount_ ) VULKAN_HPP_NOEXCEPT + SubmitInfo2KHR & setWaitSemaphoreInfoCount( uint32_t waitSemaphoreInfoCount_ ) VULKAN_HPP_NOEXCEPT { - objectCount = objectCount_; + waitSemaphoreInfoCount = waitSemaphoreInfoCount_; return *this; } - ObjectTableCreateInfoNVX & setPObjectEntryTypes( const VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX* pObjectEntryTypes_ ) VULKAN_HPP_NOEXCEPT + SubmitInfo2KHR & setPWaitSemaphoreInfos( const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR * pWaitSemaphoreInfos_ ) + VULKAN_HPP_NOEXCEPT { - pObjectEntryTypes = pObjectEntryTypes_; + pWaitSemaphoreInfos = pWaitSemaphoreInfos_; return *this; } - ObjectTableCreateInfoNVX & setPObjectEntryCounts( const uint32_t* pObjectEntryCounts_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SubmitInfo2KHR & setWaitSemaphoreInfos( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + waitSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT { - pObjectEntryCounts = pObjectEntryCounts_; + waitSemaphoreInfoCount = static_cast( waitSemaphoreInfos_.size() ); + pWaitSemaphoreInfos = waitSemaphoreInfos_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - ObjectTableCreateInfoNVX & setPObjectEntryUsageFlags( const VULKAN_HPP_NAMESPACE::ObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags_ ) VULKAN_HPP_NOEXCEPT + SubmitInfo2KHR & setCommandBufferInfoCount( uint32_t commandBufferInfoCount_ ) VULKAN_HPP_NOEXCEPT { - pObjectEntryUsageFlags = pObjectEntryUsageFlags_; + commandBufferInfoCount = commandBufferInfoCount_; return *this; } - ObjectTableCreateInfoNVX & setMaxUniformBuffersPerDescriptor( uint32_t maxUniformBuffersPerDescriptor_ ) VULKAN_HPP_NOEXCEPT + SubmitInfo2KHR & setPCommandBufferInfos( + const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR * pCommandBufferInfos_ ) VULKAN_HPP_NOEXCEPT { - maxUniformBuffersPerDescriptor = maxUniformBuffersPerDescriptor_; + pCommandBufferInfos = pCommandBufferInfos_; return *this; } - ObjectTableCreateInfoNVX & setMaxStorageBuffersPerDescriptor( uint32_t maxStorageBuffersPerDescriptor_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SubmitInfo2KHR & setCommandBufferInfos( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + commandBufferInfos_ ) VULKAN_HPP_NOEXCEPT { - maxStorageBuffersPerDescriptor = maxStorageBuffersPerDescriptor_; + commandBufferInfoCount = static_cast( commandBufferInfos_.size() ); + pCommandBufferInfos = commandBufferInfos_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - ObjectTableCreateInfoNVX & setMaxStorageImagesPerDescriptor( uint32_t maxStorageImagesPerDescriptor_ ) VULKAN_HPP_NOEXCEPT + SubmitInfo2KHR & setSignalSemaphoreInfoCount( uint32_t signalSemaphoreInfoCount_ ) VULKAN_HPP_NOEXCEPT { - maxStorageImagesPerDescriptor = maxStorageImagesPerDescriptor_; + signalSemaphoreInfoCount = signalSemaphoreInfoCount_; return *this; } - ObjectTableCreateInfoNVX & setMaxSampledImagesPerDescriptor( uint32_t maxSampledImagesPerDescriptor_ ) VULKAN_HPP_NOEXCEPT + SubmitInfo2KHR & setPSignalSemaphoreInfos( + const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR * pSignalSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT { - maxSampledImagesPerDescriptor = maxSampledImagesPerDescriptor_; + pSignalSemaphoreInfos = pSignalSemaphoreInfos_; return *this; } - ObjectTableCreateInfoNVX & setMaxPipelineLayouts( uint32_t maxPipelineLayouts_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SubmitInfo2KHR & setSignalSemaphoreInfos( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + signalSemaphoreInfos_ ) VULKAN_HPP_NOEXCEPT { - maxPipelineLayouts = maxPipelineLayouts_; + signalSemaphoreInfoCount = static_cast( signalSemaphoreInfos_.size() ); + pSignalSemaphoreInfos = signalSemaphoreInfos_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkObjectTableCreateInfoNVX const&() const VULKAN_HPP_NOEXCEPT + operator VkSubmitInfo2KHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkObjectTableCreateInfoNVX &() VULKAN_HPP_NOEXCEPT + operator VkSubmitInfo2KHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ObjectTableCreateInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SubmitInfo2KHR const & ) const = default; +#else + bool operator==( SubmitInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( objectCount == rhs.objectCount ) - && ( pObjectEntryTypes == rhs.pObjectEntryTypes ) - && ( pObjectEntryCounts == rhs.pObjectEntryCounts ) - && ( pObjectEntryUsageFlags == rhs.pObjectEntryUsageFlags ) - && ( maxUniformBuffersPerDescriptor == rhs.maxUniformBuffersPerDescriptor ) - && ( maxStorageBuffersPerDescriptor == rhs.maxStorageBuffersPerDescriptor ) - && ( maxStorageImagesPerDescriptor == rhs.maxStorageImagesPerDescriptor ) - && ( maxSampledImagesPerDescriptor == rhs.maxSampledImagesPerDescriptor ) - && ( maxPipelineLayouts == rhs.maxPipelineLayouts ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( waitSemaphoreInfoCount == rhs.waitSemaphoreInfoCount ) && + ( pWaitSemaphoreInfos == rhs.pWaitSemaphoreInfos ) && + ( commandBufferInfoCount == rhs.commandBufferInfoCount ) && + ( pCommandBufferInfos == rhs.pCommandBufferInfos ) && + ( signalSemaphoreInfoCount == rhs.signalSemaphoreInfoCount ) && + ( pSignalSemaphoreInfos == rhs.pSignalSemaphoreInfos ); } - bool operator!=( ObjectTableCreateInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SubmitInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eObjectTableCreateInfoNVX; - const void* pNext = {}; - uint32_t objectCount = {}; - const VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX* pObjectEntryTypes = {}; - const uint32_t* pObjectEntryCounts = {}; - const VULKAN_HPP_NAMESPACE::ObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags = {}; - uint32_t maxUniformBuffersPerDescriptor = {}; - uint32_t maxStorageBuffersPerDescriptor = {}; - uint32_t maxStorageImagesPerDescriptor = {}; - uint32_t maxSampledImagesPerDescriptor = {}; - uint32_t maxPipelineLayouts = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubmitInfo2KHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::SubmitFlagsKHR flags = {}; + uint32_t waitSemaphoreInfoCount = {}; + const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR * pWaitSemaphoreInfos = {}; + uint32_t commandBufferInfoCount = {}; + const VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfoKHR * pCommandBufferInfos = {}; + uint32_t signalSemaphoreInfoCount = {}; + const VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfoKHR * pSignalSemaphoreInfos = {}; }; - static_assert( sizeof( ObjectTableCreateInfoNVX ) == sizeof( VkObjectTableCreateInfoNVX ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SubmitInfo2KHR ) == sizeof( VkSubmitInfo2KHR ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ObjectTableEntryNVX + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ObjectTableEntryNVX( VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX type_ = VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX::eDescriptorSet, - VULKAN_HPP_NAMESPACE::ObjectEntryUsageFlagsNVX flags_ = {} ) VULKAN_HPP_NOEXCEPT - : type( type_ ) - , flags( flags_ ) - {} + using Type = SubmitInfo2KHR; + }; - ObjectTableEntryNVX( VkObjectTableEntryNVX const & rhs ) VULKAN_HPP_NOEXCEPT + 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: + VULKAN_HPP_CONSTEXPR Queue() = default; + VULKAN_HPP_CONSTEXPR Queue( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT Queue( VkQueue queue ) VULKAN_HPP_NOEXCEPT : m_queue( queue ) {} + +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + Queue & operator=( VkQueue queue ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + m_queue = queue; + return *this; } +#endif - ObjectTableEntryNVX& operator=( VkObjectTableEntryNVX const & rhs ) VULKAN_HPP_NOEXCEPT + Queue & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + m_queue = {}; return *this; } - ObjectTableEntryNVX & setType( VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX type_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( Queue const & ) const = default; +#else + bool operator==( Queue const & rhs ) const VULKAN_HPP_NOEXCEPT { - type = type_; - return *this; + return m_queue == rhs.m_queue; } - ObjectTableEntryNVX & setFlags( VULKAN_HPP_NAMESPACE::ObjectEntryUsageFlagsNVX flags_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( Queue const & rhs ) const VULKAN_HPP_NOEXCEPT { - flags = flags_; - return *this; + return m_queue != rhs.m_queue; } - operator VkObjectTableEntryNVX const&() const VULKAN_HPP_NOEXCEPT + bool operator<( Queue const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_queue < rhs.m_queue; } +#endif + + template + void getCheckpointData2NV( uint32_t * pCheckpointDataCount, + VULKAN_HPP_NAMESPACE::CheckpointData2NV * pCheckpointData, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD std::vector + getCheckpointData2NV( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = CheckpointData2NVAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD std::vector + getCheckpointData2NV( CheckpointData2NVAllocator & checkpointData2NVAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getCheckpointDataNV( uint32_t * pCheckpointDataCount, + VULKAN_HPP_NAMESPACE::CheckpointDataNV * pCheckpointData, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD std::vector + getCheckpointDataNV( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = CheckpointDataNVAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD std::vector + getCheckpointDataNV( CheckpointDataNVAllocator & checkpointDataNVAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void + beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void + beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + bindSparse( uint32_t bindInfoCount, + const VULKAN_HPP_NAMESPACE::BindSparseInfo * pBindInfo, + VULKAN_HPP_NAMESPACE::Fence fence, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + bindSparse( ArrayProxy const & bindInfo, + VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void endDebugUtilsLabelEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void + insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void + insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR * pPresentInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result presentKHR( const PresentInfoKHR & presentInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result setPerformanceConfigurationINTEL( + VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + submit( uint32_t submitCount, + const VULKAN_HPP_NAMESPACE::SubmitInfo * pSubmits, + VULKAN_HPP_NAMESPACE::Fence fence, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + submit( ArrayProxy const & submits, + VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + submit2KHR( uint32_t submitCount, + const VULKAN_HPP_NAMESPACE::SubmitInfo2KHR * pSubmits, + VULKAN_HPP_NAMESPACE::Fence fence, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + submit2KHR( ArrayProxy const & submits, + VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result + waitIdle( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + waitIdle( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkObjectTableEntryNVX &() VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkQueue() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_queue; } - bool operator==( ObjectTableEntryNVX const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return ( type == rhs.type ) - && ( flags == rhs.flags ); + return m_queue != VK_NULL_HANDLE; } - bool operator!=( ObjectTableEntryNVX const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_queue == VK_NULL_HANDLE; } - public: - VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX type = VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX::eDescriptorSet; - VULKAN_HPP_NAMESPACE::ObjectEntryUsageFlagsNVX flags = {}; + private: + VkQueue m_queue = {}; + }; + static_assert( sizeof( VULKAN_HPP_NAMESPACE::Queue ) == sizeof( VkQueue ), + "handle and wrapper have different size!" ); + + template <> + struct VULKAN_HPP_DEPRECATED( "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type + { + using type = VULKAN_HPP_NAMESPACE::Queue; }; - static_assert( sizeof( ObjectTableEntryNVX ) == sizeof( VkObjectTableEntryNVX ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ObjectTableDescriptorSetEntryNVX + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ObjectTableDescriptorSetEntryNVX( VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX type_ = VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX::eDescriptorSet, - VULKAN_HPP_NAMESPACE::ObjectEntryUsageFlagsNVX flags_ = {}, - VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ = {}, - VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet_ = {} ) VULKAN_HPP_NOEXCEPT - : type( type_ ) - , flags( flags_ ) - , pipelineLayout( pipelineLayout_ ) - , descriptorSet( descriptorSet_ ) + using Type = VULKAN_HPP_NAMESPACE::Queue; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::Queue; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + struct DeviceQueueInfo2 + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueInfo2; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DeviceQueueInfo2( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {}, + uint32_t queueFamilyIndex_ = {}, + uint32_t queueIndex_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , queueFamilyIndex( queueFamilyIndex_ ) + , queueIndex( queueIndex_ ) {} - explicit ObjectTableDescriptorSetEntryNVX( ObjectTableEntryNVX const& objectTableEntryNVX, - VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ = {}, - VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet_ = {} ) - : type( objectTableEntryNVX.type ) - , flags( objectTableEntryNVX.flags ) - , pipelineLayout( pipelineLayout_ ) - , descriptorSet( descriptorSet_ ) + VULKAN_HPP_CONSTEXPR DeviceQueueInfo2( DeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DeviceQueueInfo2( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT + : DeviceQueueInfo2( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ObjectTableDescriptorSetEntryNVX( VkObjectTableDescriptorSetEntryNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR_14 DeviceQueueInfo2 & operator=( DeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ObjectTableDescriptorSetEntryNVX& operator=( VkObjectTableDescriptorSetEntryNVX const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceQueueInfo2 & operator=( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - ObjectTableDescriptorSetEntryNVX & setType( VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX type_ ) VULKAN_HPP_NOEXCEPT + DeviceQueueInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - type = type_; + pNext = pNext_; return *this; } - ObjectTableDescriptorSetEntryNVX & setFlags( VULKAN_HPP_NAMESPACE::ObjectEntryUsageFlagsNVX flags_ ) VULKAN_HPP_NOEXCEPT + DeviceQueueInfo2 & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { flags = flags_; return *this; } - ObjectTableDescriptorSetEntryNVX & setPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ ) VULKAN_HPP_NOEXCEPT + DeviceQueueInfo2 & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT { - pipelineLayout = pipelineLayout_; + queueFamilyIndex = queueFamilyIndex_; return *this; } - ObjectTableDescriptorSetEntryNVX & setDescriptorSet( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet_ ) VULKAN_HPP_NOEXCEPT + DeviceQueueInfo2 & setQueueIndex( uint32_t queueIndex_ ) VULKAN_HPP_NOEXCEPT { - descriptorSet = descriptorSet_; + queueIndex = queueIndex_; return *this; } - operator VkObjectTableDescriptorSetEntryNVX const&() const VULKAN_HPP_NOEXCEPT + operator VkDeviceQueueInfo2 const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkObjectTableDescriptorSetEntryNVX &() VULKAN_HPP_NOEXCEPT + operator VkDeviceQueueInfo2 &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ObjectTableDescriptorSetEntryNVX const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DeviceQueueInfo2 const & ) const = default; +#else + bool operator==( DeviceQueueInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( type == rhs.type ) - && ( flags == rhs.flags ) - && ( pipelineLayout == rhs.pipelineLayout ) - && ( descriptorSet == rhs.descriptorSet ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( queueFamilyIndex == rhs.queueFamilyIndex ) && ( queueIndex == rhs.queueIndex ); } - bool operator!=( ObjectTableDescriptorSetEntryNVX const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DeviceQueueInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX type = VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX::eDescriptorSet; - VULKAN_HPP_NAMESPACE::ObjectEntryUsageFlagsNVX flags = {}; - VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout = {}; - VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueInfo2; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {}; + uint32_t queueFamilyIndex = {}; + uint32_t queueIndex = {}; }; - static_assert( sizeof( ObjectTableDescriptorSetEntryNVX ) == sizeof( VkObjectTableDescriptorSetEntryNVX ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DeviceQueueInfo2 ) == sizeof( VkDeviceQueueInfo2 ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ObjectTableIndexBufferEntryNVX + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ObjectTableIndexBufferEntryNVX( VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX type_ = VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX::eDescriptorSet, - VULKAN_HPP_NAMESPACE::ObjectEntryUsageFlagsNVX flags_ = {}, - VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, - VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16 ) VULKAN_HPP_NOEXCEPT - : type( type_ ) - , flags( flags_ ) - , buffer( buffer_ ) - , indexType( indexType_ ) - {} + using Type = DeviceQueueInfo2; + }; - explicit ObjectTableIndexBufferEntryNVX( ObjectTableEntryNVX const& objectTableEntryNVX, - VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, - VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16 ) - : type( objectTableEntryNVX.type ) - , flags( objectTableEntryNVX.flags ) - , buffer( buffer_ ) - , indexType( indexType_ ) + struct FenceGetFdInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceGetFdInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + FenceGetFdInfoKHR( VULKAN_HPP_NAMESPACE::Fence fence_ = {}, + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT + : fence( fence_ ) + , handleType( handleType_ ) {} - ObjectTableIndexBufferEntryNVX( VkObjectTableIndexBufferEntryNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR FenceGetFdInfoKHR( FenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ObjectTableIndexBufferEntryNVX& operator=( VkObjectTableIndexBufferEntryNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + FenceGetFdInfoKHR( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : FenceGetFdInfoKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ObjectTableIndexBufferEntryNVX & setType( VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX type_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 FenceGetFdInfoKHR & + operator=( FenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + FenceGetFdInfoKHR & operator=( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - type = type_; + *this = *reinterpret_cast( &rhs ); return *this; } - ObjectTableIndexBufferEntryNVX & setFlags( VULKAN_HPP_NAMESPACE::ObjectEntryUsageFlagsNVX flags_ ) VULKAN_HPP_NOEXCEPT + FenceGetFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + pNext = pNext_; return *this; } - ObjectTableIndexBufferEntryNVX & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT + FenceGetFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT { - buffer = buffer_; + fence = fence_; return *this; } - ObjectTableIndexBufferEntryNVX & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT + FenceGetFdInfoKHR & + setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT { - indexType = indexType_; + handleType = handleType_; return *this; } - operator VkObjectTableIndexBufferEntryNVX const&() const VULKAN_HPP_NOEXCEPT + operator VkFenceGetFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkObjectTableIndexBufferEntryNVX &() VULKAN_HPP_NOEXCEPT + operator VkFenceGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ObjectTableIndexBufferEntryNVX const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( FenceGetFdInfoKHR const & ) const = default; +#else + bool operator==( FenceGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( type == rhs.type ) - && ( flags == rhs.flags ) - && ( buffer == rhs.buffer ) - && ( indexType == rhs.indexType ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fence == rhs.fence ) && + ( handleType == rhs.handleType ); } - bool operator!=( ObjectTableIndexBufferEntryNVX const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( FenceGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX type = VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX::eDescriptorSet; - VULKAN_HPP_NAMESPACE::ObjectEntryUsageFlagsNVX flags = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetFdInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Fence fence = {}; + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd; }; - static_assert( sizeof( ObjectTableIndexBufferEntryNVX ) == sizeof( VkObjectTableIndexBufferEntryNVX ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( FenceGetFdInfoKHR ) == sizeof( VkFenceGetFdInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ObjectTablePipelineEntryNVX + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ObjectTablePipelineEntryNVX( VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX type_ = VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX::eDescriptorSet, - VULKAN_HPP_NAMESPACE::ObjectEntryUsageFlagsNVX flags_ = {}, - VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {} ) VULKAN_HPP_NOEXCEPT - : type( type_ ) - , flags( flags_ ) - , pipeline( pipeline_ ) + using Type = FenceGetFdInfoKHR; + }; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + struct FenceGetWin32HandleInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceGetWin32HandleInfoKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR FenceGetWin32HandleInfoKHR( + VULKAN_HPP_NAMESPACE::Fence fence_ = {}, + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT + : fence( fence_ ) + , handleType( handleType_ ) {} - explicit ObjectTablePipelineEntryNVX( ObjectTableEntryNVX const& objectTableEntryNVX, - VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {} ) - : type( objectTableEntryNVX.type ) - , flags( objectTableEntryNVX.flags ) - , pipeline( pipeline_ ) + VULKAN_HPP_CONSTEXPR + FenceGetWin32HandleInfoKHR( FenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + FenceGetWin32HandleInfoKHR( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : FenceGetWin32HandleInfoKHR( *reinterpret_cast( &rhs ) ) {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ObjectTablePipelineEntryNVX( VkObjectTablePipelineEntryNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR_14 FenceGetWin32HandleInfoKHR & + operator=( FenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ObjectTablePipelineEntryNVX& operator=( VkObjectTablePipelineEntryNVX const & rhs ) VULKAN_HPP_NOEXCEPT + FenceGetWin32HandleInfoKHR & operator=( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - ObjectTablePipelineEntryNVX & setType( VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX type_ ) VULKAN_HPP_NOEXCEPT + FenceGetWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - type = type_; + pNext = pNext_; return *this; } - ObjectTablePipelineEntryNVX & setFlags( VULKAN_HPP_NAMESPACE::ObjectEntryUsageFlagsNVX flags_ ) VULKAN_HPP_NOEXCEPT + FenceGetWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + fence = fence_; return *this; } - ObjectTablePipelineEntryNVX & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT + FenceGetWin32HandleInfoKHR & + setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT { - pipeline = pipeline_; + handleType = handleType_; return *this; } - operator VkObjectTablePipelineEntryNVX const&() const VULKAN_HPP_NOEXCEPT + operator VkFenceGetWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkObjectTablePipelineEntryNVX &() VULKAN_HPP_NOEXCEPT + operator VkFenceGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ObjectTablePipelineEntryNVX const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( FenceGetWin32HandleInfoKHR const & ) const = default; +# else + bool operator==( FenceGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( type == rhs.type ) - && ( flags == rhs.flags ) - && ( pipeline == rhs.pipeline ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fence == rhs.fence ) && + ( handleType == rhs.handleType ); } - bool operator!=( ObjectTablePipelineEntryNVX const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( FenceGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX type = VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX::eDescriptorSet; - VULKAN_HPP_NAMESPACE::ObjectEntryUsageFlagsNVX flags = {}; - VULKAN_HPP_NAMESPACE::Pipeline pipeline = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetWin32HandleInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Fence fence = {}; + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd; }; - static_assert( sizeof( ObjectTablePipelineEntryNVX ) == sizeof( VkObjectTablePipelineEntryNVX ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( FenceGetWin32HandleInfoKHR ) == sizeof( VkFenceGetWin32HandleInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct ObjectTablePushConstantEntryNVX + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ObjectTablePushConstantEntryNVX( VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX type_ = VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX::eDescriptorSet, - VULKAN_HPP_NAMESPACE::ObjectEntryUsageFlagsNVX flags_ = {}, - VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ = {}, - VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {} ) VULKAN_HPP_NOEXCEPT - : type( type_ ) - , flags( flags_ ) - , pipelineLayout( pipelineLayout_ ) - , stageFlags( stageFlags_ ) + using Type = FenceGetWin32HandleInfoKHR; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + struct GeneratedCommandsMemoryRequirementsInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eGeneratedCommandsMemoryRequirementsInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR GeneratedCommandsMemoryRequirementsInfoNV( + VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, + VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, + VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ = {}, + uint32_t maxSequencesCount_ = {} ) VULKAN_HPP_NOEXCEPT + : pipelineBindPoint( pipelineBindPoint_ ) + , pipeline( pipeline_ ) + , indirectCommandsLayout( indirectCommandsLayout_ ) + , maxSequencesCount( maxSequencesCount_ ) {} - explicit ObjectTablePushConstantEntryNVX( ObjectTableEntryNVX const& objectTableEntryNVX, - VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ = {}, - VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {} ) - : type( objectTableEntryNVX.type ) - , flags( objectTableEntryNVX.flags ) - , pipelineLayout( pipelineLayout_ ) - , stageFlags( stageFlags_ ) + VULKAN_HPP_CONSTEXPR GeneratedCommandsMemoryRequirementsInfoNV( + GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + GeneratedCommandsMemoryRequirementsInfoNV( VkGeneratedCommandsMemoryRequirementsInfoNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : GeneratedCommandsMemoryRequirementsInfoNV( + *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ObjectTablePushConstantEntryNVX( VkObjectTablePushConstantEntryNVX const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoNV & + operator=( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + GeneratedCommandsMemoryRequirementsInfoNV & + operator=( VkGeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - ObjectTablePushConstantEntryNVX& operator=( VkObjectTablePushConstantEntryNVX const & rhs ) VULKAN_HPP_NOEXCEPT + GeneratedCommandsMemoryRequirementsInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - ObjectTablePushConstantEntryNVX & setType( VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX type_ ) VULKAN_HPP_NOEXCEPT + GeneratedCommandsMemoryRequirementsInfoNV & + setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT { - type = type_; + pipelineBindPoint = pipelineBindPoint_; return *this; } - ObjectTablePushConstantEntryNVX & setFlags( VULKAN_HPP_NAMESPACE::ObjectEntryUsageFlagsNVX flags_ ) VULKAN_HPP_NOEXCEPT + GeneratedCommandsMemoryRequirementsInfoNV & + setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + pipeline = pipeline_; return *this; } - ObjectTablePushConstantEntryNVX & setPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ ) VULKAN_HPP_NOEXCEPT + GeneratedCommandsMemoryRequirementsInfoNV & setIndirectCommandsLayout( + VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT { - pipelineLayout = pipelineLayout_; + indirectCommandsLayout = indirectCommandsLayout_; return *this; } - ObjectTablePushConstantEntryNVX & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT + GeneratedCommandsMemoryRequirementsInfoNV & setMaxSequencesCount( uint32_t maxSequencesCount_ ) VULKAN_HPP_NOEXCEPT { - stageFlags = stageFlags_; + maxSequencesCount = maxSequencesCount_; return *this; } - operator VkObjectTablePushConstantEntryNVX const&() const VULKAN_HPP_NOEXCEPT + operator VkGeneratedCommandsMemoryRequirementsInfoNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkObjectTablePushConstantEntryNVX &() VULKAN_HPP_NOEXCEPT + operator VkGeneratedCommandsMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ObjectTablePushConstantEntryNVX const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( GeneratedCommandsMemoryRequirementsInfoNV const & ) const = default; +#else + bool operator==( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( type == rhs.type ) - && ( flags == rhs.flags ) - && ( pipelineLayout == rhs.pipelineLayout ) - && ( stageFlags == rhs.stageFlags ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipelineBindPoint == rhs.pipelineBindPoint ) && + ( pipeline == rhs.pipeline ) && ( indirectCommandsLayout == rhs.indirectCommandsLayout ) && + ( maxSequencesCount == rhs.maxSequencesCount ); } - bool operator!=( ObjectTablePushConstantEntryNVX const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX type = VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX::eDescriptorSet; - VULKAN_HPP_NAMESPACE::ObjectEntryUsageFlagsNVX flags = {}; - VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeneratedCommandsMemoryRequirementsInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics; + VULKAN_HPP_NAMESPACE::Pipeline pipeline = {}; + VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout = {}; + uint32_t maxSequencesCount = {}; }; - static_assert( sizeof( ObjectTablePushConstantEntryNVX ) == sizeof( VkObjectTablePushConstantEntryNVX ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( GeneratedCommandsMemoryRequirementsInfoNV ) == + sizeof( VkGeneratedCommandsMemoryRequirementsInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct ObjectTableVertexBufferEntryNVX + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ObjectTableVertexBufferEntryNVX( VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX type_ = VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX::eDescriptorSet, - VULKAN_HPP_NAMESPACE::ObjectEntryUsageFlagsNVX flags_ = {}, - VULKAN_HPP_NAMESPACE::Buffer buffer_ = {} ) VULKAN_HPP_NOEXCEPT - : type( type_ ) - , flags( flags_ ) - , buffer( buffer_ ) - {} + using Type = GeneratedCommandsMemoryRequirementsInfoNV; + }; - explicit ObjectTableVertexBufferEntryNVX( ObjectTableEntryNVX const& objectTableEntryNVX, - VULKAN_HPP_NAMESPACE::Buffer buffer_ = {} ) - : type( objectTableEntryNVX.type ) - , flags( objectTableEntryNVX.flags ) - , buffer( buffer_ ) - {} + struct ImageDrmFormatModifierPropertiesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eImageDrmFormatModifierPropertiesEXT; - ObjectTableVertexBufferEntryNVX( VkObjectTableVertexBufferEntryNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierPropertiesEXT( uint64_t drmFormatModifier_ = {} ) VULKAN_HPP_NOEXCEPT + : drmFormatModifier( drmFormatModifier_ ) + {} - ObjectTableVertexBufferEntryNVX& operator=( VkObjectTableVertexBufferEntryNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierPropertiesEXT( ImageDrmFormatModifierPropertiesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - ObjectTableVertexBufferEntryNVX & setType( VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } + ImageDrmFormatModifierPropertiesEXT( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageDrmFormatModifierPropertiesEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ObjectTableVertexBufferEntryNVX & setFlags( VULKAN_HPP_NAMESPACE::ObjectEntryUsageFlagsNVX flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierPropertiesEXT & + operator=( ImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ObjectTableVertexBufferEntryNVX & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT + ImageDrmFormatModifierPropertiesEXT & + operator=( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - buffer = buffer_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkObjectTableVertexBufferEntryNVX const&() const VULKAN_HPP_NOEXCEPT + operator VkImageDrmFormatModifierPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkObjectTableVertexBufferEntryNVX &() VULKAN_HPP_NOEXCEPT + operator VkImageDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ObjectTableVertexBufferEntryNVX const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageDrmFormatModifierPropertiesEXT const & ) const = default; +#else + bool operator==( ImageDrmFormatModifierPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( type == rhs.type ) - && ( flags == rhs.flags ) - && ( buffer == rhs.buffer ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( drmFormatModifier == rhs.drmFormatModifier ); } - bool operator!=( ObjectTableVertexBufferEntryNVX const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageDrmFormatModifierPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX type = VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX::eDescriptorSet; - VULKAN_HPP_NAMESPACE::ObjectEntryUsageFlagsNVX flags = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierPropertiesEXT; + void * pNext = {}; + uint64_t drmFormatModifier = {}; }; - static_assert( sizeof( ObjectTableVertexBufferEntryNVX ) == sizeof( VkObjectTableVertexBufferEntryNVX ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageDrmFormatModifierPropertiesEXT ) == sizeof( VkImageDrmFormatModifierPropertiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PastPresentationTimingGOOGLE + template <> + struct CppType { - PastPresentationTimingGOOGLE( uint32_t presentID_ = {}, - uint64_t desiredPresentTime_ = {}, - uint64_t actualPresentTime_ = {}, - uint64_t earliestPresentTime_ = {}, - uint64_t presentMargin_ = {} ) VULKAN_HPP_NOEXCEPT - : presentID( presentID_ ) - , desiredPresentTime( desiredPresentTime_ ) - , actualPresentTime( actualPresentTime_ ) - , earliestPresentTime( earliestPresentTime_ ) - , presentMargin( presentMargin_ ) + using Type = ImageDrmFormatModifierPropertiesEXT; + }; + + struct ImageMemoryRequirementsInfo2 + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryRequirementsInfo2; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ImageMemoryRequirementsInfo2( VULKAN_HPP_NAMESPACE::Image image_ = {} ) VULKAN_HPP_NOEXCEPT + : image( image_ ) {} - PastPresentationTimingGOOGLE( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR + ImageMemoryRequirementsInfo2( ImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImageMemoryRequirementsInfo2( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageMemoryRequirementsInfo2( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ImageMemoryRequirementsInfo2 & + operator=( ImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImageMemoryRequirementsInfo2 & operator=( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - PastPresentationTimingGOOGLE& operator=( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT + ImageMemoryRequirementsInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - operator VkPastPresentationTimingGOOGLE const&() const VULKAN_HPP_NOEXCEPT + ImageMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + image = image_; + return *this; } - operator VkPastPresentationTimingGOOGLE &() VULKAN_HPP_NOEXCEPT + operator VkImageMemoryRequirementsInfo2 const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkImageMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PastPresentationTimingGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageMemoryRequirementsInfo2 const & ) const = default; +#else + bool operator==( ImageMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( presentID == rhs.presentID ) - && ( desiredPresentTime == rhs.desiredPresentTime ) - && ( actualPresentTime == rhs.actualPresentTime ) - && ( earliestPresentTime == rhs.earliestPresentTime ) - && ( presentMargin == rhs.presentMargin ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image == rhs.image ); } - bool operator!=( PastPresentationTimingGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint32_t presentID = {}; - uint64_t desiredPresentTime = {}; - uint64_t actualPresentTime = {}; - uint64_t earliestPresentTime = {}; - uint64_t presentMargin = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryRequirementsInfo2; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Image image = {}; }; - static_assert( sizeof( PastPresentationTimingGOOGLE ) == sizeof( VkPastPresentationTimingGOOGLE ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageMemoryRequirementsInfo2 ) == sizeof( VkImageMemoryRequirementsInfo2 ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PerformanceConfigurationAcquireInfoINTEL + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PerformanceConfigurationAcquireInfoINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated ) VULKAN_HPP_NOEXCEPT - : type( type_ ) - {} + using Type = ImageMemoryRequirementsInfo2; + }; + using ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2; - VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL & operator=( VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL ) - offsetof( PerformanceConfigurationAcquireInfoINTEL, pNext ) ); - return *this; - } + struct SparseImageFormatProperties + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + SparseImageFormatProperties( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, + VULKAN_HPP_NAMESPACE::Extent3D imageGranularity_ = {}, + VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT + : aspectMask( aspectMask_ ) + , imageGranularity( imageGranularity_ ) + , flags( flags_ ) + {} - PerformanceConfigurationAcquireInfoINTEL( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR + SparseImageFormatProperties( SparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PerformanceConfigurationAcquireInfoINTEL& operator=( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + SparseImageFormatProperties( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT + : SparseImageFormatProperties( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PerformanceConfigurationAcquireInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 SparseImageFormatProperties & + operator=( SparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PerformanceConfigurationAcquireInfoINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT + SparseImageFormatProperties & operator=( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - type = type_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPerformanceConfigurationAcquireInfoINTEL const&() const VULKAN_HPP_NOEXCEPT + operator VkSparseImageFormatProperties const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPerformanceConfigurationAcquireInfoINTEL &() VULKAN_HPP_NOEXCEPT + operator VkSparseImageFormatProperties &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PerformanceConfigurationAcquireInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SparseImageFormatProperties const & ) const = default; +#else + bool operator==( SparseImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( type == rhs.type ); + return ( aspectMask == rhs.aspectMask ) && ( imageGranularity == rhs.imageGranularity ) && ( flags == rhs.flags ); } - bool operator!=( PerformanceConfigurationAcquireInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SparseImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceConfigurationAcquireInfoINTEL; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated; + VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; + VULKAN_HPP_NAMESPACE::Extent3D imageGranularity = {}; + VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags = {}; }; - static_assert( sizeof( PerformanceConfigurationAcquireInfoINTEL ) == sizeof( VkPerformanceConfigurationAcquireInfoINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SparseImageFormatProperties ) == sizeof( VkSparseImageFormatProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PerformanceCounterDescriptionKHR + struct SparseImageMemoryRequirements { - PerformanceCounterDescriptionKHR( VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR flags_ = {}, - std::array const& name_ = {}, - std::array const& category_ = {}, - std::array const& description_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , name{} - , category{} - , description{} - { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( name, name_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( category, category_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( description, description_ ); - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + SparseImageMemoryRequirements( VULKAN_HPP_NAMESPACE::SparseImageFormatProperties formatProperties_ = {}, + uint32_t imageMipTailFirstLod_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailSize_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailOffset_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailStride_ = {} ) VULKAN_HPP_NOEXCEPT + : formatProperties( formatProperties_ ) + , imageMipTailFirstLod( imageMipTailFirstLod_ ) + , imageMipTailSize( imageMipTailSize_ ) + , imageMipTailOffset( imageMipTailOffset_ ) + , imageMipTailStride( imageMipTailStride_ ) + {} - VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR & operator=( VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR ) - offsetof( PerformanceCounterDescriptionKHR, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + SparseImageMemoryRequirements( SparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PerformanceCounterDescriptionKHR( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + SparseImageMemoryRequirements( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT + : SparseImageMemoryRequirements( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PerformanceCounterDescriptionKHR& operator=( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryRequirements & + operator=( SparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SparseImageMemoryRequirements & operator=( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPerformanceCounterDescriptionKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkSparseImageMemoryRequirements const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPerformanceCounterDescriptionKHR &() VULKAN_HPP_NOEXCEPT + operator VkSparseImageMemoryRequirements &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PerformanceCounterDescriptionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SparseImageMemoryRequirements const & ) const = default; +#else + bool operator==( SparseImageMemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( memcmp( name, rhs.name, VK_MAX_DESCRIPTION_SIZE * sizeof( char ) ) == 0 ) - && ( memcmp( category, rhs.category, VK_MAX_DESCRIPTION_SIZE * sizeof( char ) ) == 0 ) - && ( memcmp( description, rhs.description, VK_MAX_DESCRIPTION_SIZE * sizeof( char ) ) == 0 ); + return ( formatProperties == rhs.formatProperties ) && ( imageMipTailFirstLod == rhs.imageMipTailFirstLod ) && + ( imageMipTailSize == rhs.imageMipTailSize ) && ( imageMipTailOffset == rhs.imageMipTailOffset ) && + ( imageMipTailStride == rhs.imageMipTailStride ); } - bool operator!=( PerformanceCounterDescriptionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SparseImageMemoryRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterDescriptionKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR flags = {}; - char name[VK_MAX_DESCRIPTION_SIZE] = {}; - char category[VK_MAX_DESCRIPTION_SIZE] = {}; - char description[VK_MAX_DESCRIPTION_SIZE] = {}; + VULKAN_HPP_NAMESPACE::SparseImageFormatProperties formatProperties = {}; + uint32_t imageMipTailFirstLod = {}; + VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailSize = {}; + VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailOffset = {}; + VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailStride = {}; }; - static_assert( sizeof( PerformanceCounterDescriptionKHR ) == sizeof( VkPerformanceCounterDescriptionKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SparseImageMemoryRequirements ) == sizeof( VkSparseImageMemoryRequirements ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PerformanceCounterKHR + struct ImageSparseMemoryRequirementsInfo2 { - PerformanceCounterKHR( VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR unit_ = VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR::eGeneric, - VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR scope_ = VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR::eCommandBuffer, - VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR storage_ = VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR::eInt32, - std::array const& uuid_ = {} ) VULKAN_HPP_NOEXCEPT - : unit( unit_ ) - , scope( scope_ ) - , storage( storage_ ) - , uuid{} - { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( uuid, uuid_ ); - } + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eImageSparseMemoryRequirementsInfo2; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ImageSparseMemoryRequirementsInfo2( VULKAN_HPP_NAMESPACE::Image image_ = {} ) VULKAN_HPP_NOEXCEPT + : image( image_ ) + {} + + VULKAN_HPP_CONSTEXPR ImageSparseMemoryRequirementsInfo2( ImageSparseMemoryRequirementsInfo2 const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::PerformanceCounterKHR & operator=( VULKAN_HPP_NAMESPACE::PerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT + ImageSparseMemoryRequirementsInfo2( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageSparseMemoryRequirementsInfo2( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ImageSparseMemoryRequirementsInfo2 & + operator=( ImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImageSparseMemoryRequirementsInfo2 & + operator=( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PerformanceCounterKHR ) - offsetof( PerformanceCounterKHR, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PerformanceCounterKHR( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT + ImageSparseMemoryRequirementsInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - PerformanceCounterKHR& operator=( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT + ImageSparseMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + image = image_; return *this; } - operator VkPerformanceCounterKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkImageSparseMemoryRequirementsInfo2 const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPerformanceCounterKHR &() VULKAN_HPP_NOEXCEPT + operator VkImageSparseMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PerformanceCounterKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageSparseMemoryRequirementsInfo2 const & ) const = default; +#else + bool operator==( ImageSparseMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( unit == rhs.unit ) - && ( scope == rhs.scope ) - && ( storage == rhs.storage ) - && ( memcmp( uuid, rhs.uuid, VK_UUID_SIZE * sizeof( uint8_t ) ) == 0 ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image == rhs.image ); } - bool operator!=( PerformanceCounterKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageSparseMemoryRequirementsInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR unit = VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR::eGeneric; - VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR scope = VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR::eCommandBuffer; - VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR storage = VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR::eInt32; - uint8_t uuid[VK_UUID_SIZE] = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSparseMemoryRequirementsInfo2; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Image image = {}; }; - static_assert( sizeof( PerformanceCounterKHR ) == sizeof( VkPerformanceCounterKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageSparseMemoryRequirementsInfo2 ) == sizeof( VkImageSparseMemoryRequirementsInfo2 ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - union PerformanceCounterResultKHR + template <> + struct CppType { - PerformanceCounterResultKHR( int32_t int32_ = {} ) - { - int32 = int32_; - } + using Type = ImageSparseMemoryRequirementsInfo2; + }; + using ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2; - PerformanceCounterResultKHR( int64_t int64_ ) - { - int64 = int64_; - } + struct SparseImageMemoryRequirements2 + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSparseImageMemoryRequirements2; - PerformanceCounterResultKHR( uint32_t uint32_ ) - { - uint32 = uint32_; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements2( + VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements_ = {} ) VULKAN_HPP_NOEXCEPT + : memoryRequirements( memoryRequirements_ ) + {} - PerformanceCounterResultKHR( uint64_t uint64_ ) - { - uint64 = uint64_; - } + VULKAN_HPP_CONSTEXPR + SparseImageMemoryRequirements2( SparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PerformanceCounterResultKHR( float float32_ ) - { - float32 = float32_; - } + SparseImageMemoryRequirements2( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT + : SparseImageMemoryRequirements2( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PerformanceCounterResultKHR( double float64_ ) - { - float64 = float64_; - } + VULKAN_HPP_CONSTEXPR_14 SparseImageMemoryRequirements2 & + operator=( SparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PerformanceCounterResultKHR & setInt32( int32_t int32_ ) VULKAN_HPP_NOEXCEPT + SparseImageMemoryRequirements2 & operator=( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT { - int32 = int32_; + *this = *reinterpret_cast( &rhs ); return *this; } - PerformanceCounterResultKHR & setInt64( int64_t int64_ ) VULKAN_HPP_NOEXCEPT + operator VkSparseImageMemoryRequirements2 const &() const VULKAN_HPP_NOEXCEPT { - int64 = int64_; - return *this; + return *reinterpret_cast( this ); } - PerformanceCounterResultKHR & setUint32( uint32_t uint32_ ) VULKAN_HPP_NOEXCEPT + operator VkSparseImageMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT { - uint32 = uint32_; - return *this; + return *reinterpret_cast( this ); } - PerformanceCounterResultKHR & setUint64( uint64_t uint64_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SparseImageMemoryRequirements2 const & ) const = default; +#else + bool operator==( SparseImageMemoryRequirements2 const & rhs ) const VULKAN_HPP_NOEXCEPT { - uint64 = uint64_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryRequirements == rhs.memoryRequirements ); } - PerformanceCounterResultKHR & setFloat32( float float32_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( SparseImageMemoryRequirements2 const & rhs ) const VULKAN_HPP_NOEXCEPT { - float32 = float32_; - return *this; + return !operator==( rhs ); } +#endif - PerformanceCounterResultKHR & setFloat64( double float64_ ) VULKAN_HPP_NOEXCEPT + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageMemoryRequirements2; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements = {}; + }; + static_assert( sizeof( SparseImageMemoryRequirements2 ) == sizeof( VkSparseImageMemoryRequirements2 ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = SparseImageMemoryRequirements2; + }; + using SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2; + + struct SubresourceLayout + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SubresourceLayout( VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize rowPitch_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize depthPitch_ = {} ) VULKAN_HPP_NOEXCEPT + : offset( offset_ ) + , size( size_ ) + , rowPitch( rowPitch_ ) + , arrayPitch( arrayPitch_ ) + , depthPitch( depthPitch_ ) + {} + + VULKAN_HPP_CONSTEXPR SubresourceLayout( SubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SubresourceLayout( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT + : SubresourceLayout( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SubresourceLayout & + operator=( SubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SubresourceLayout & operator=( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT { - float64 = float64_; + *this = *reinterpret_cast( &rhs ); return *this; } - VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR & operator=( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkSubresourceLayout const &() const VULKAN_HPP_NOEXCEPT { - memcpy( this, &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR ) ); - return *this; + return *reinterpret_cast( this ); } - operator VkPerformanceCounterResultKHR const&() const + operator VkSubresourceLayout &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast(this); + return *reinterpret_cast( this ); } - operator VkPerformanceCounterResultKHR &() +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SubresourceLayout const & ) const = default; +#else + bool operator==( SubresourceLayout const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast(this); + return ( offset == rhs.offset ) && ( size == rhs.size ) && ( rowPitch == rhs.rowPitch ) && + ( arrayPitch == rhs.arrayPitch ) && ( depthPitch == rhs.depthPitch ); } - int32_t int32; - int64_t int64; - uint32_t uint32; - uint64_t uint64; - float float32; - double float64; + bool operator!=( SubresourceLayout const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; + VULKAN_HPP_NAMESPACE::DeviceSize size = {}; + VULKAN_HPP_NAMESPACE::DeviceSize rowPitch = {}; + VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch = {}; + VULKAN_HPP_NAMESPACE::DeviceSize depthPitch = {}; }; + static_assert( sizeof( SubresourceLayout ) == sizeof( VkSubresourceLayout ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PerformanceMarkerInfoINTEL + struct ImageViewAddressPropertiesNVX { - VULKAN_HPP_CONSTEXPR PerformanceMarkerInfoINTEL( uint64_t marker_ = {} ) VULKAN_HPP_NOEXCEPT - : marker( marker_ ) - {} + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewAddressPropertiesNVX; - VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL & operator=( VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL ) - offsetof( PerformanceMarkerInfoINTEL, pNext ) ); - return *this; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ImageViewAddressPropertiesNVX( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT + : deviceAddress( deviceAddress_ ) + , size( size_ ) + {} - PerformanceMarkerInfoINTEL( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR + ImageViewAddressPropertiesNVX( ImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PerformanceMarkerInfoINTEL& operator=( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + ImageViewAddressPropertiesNVX( VkImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageViewAddressPropertiesNVX( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PerformanceMarkerInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 ImageViewAddressPropertiesNVX & + operator=( ImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PerformanceMarkerInfoINTEL & setMarker( uint64_t marker_ ) VULKAN_HPP_NOEXCEPT + ImageViewAddressPropertiesNVX & operator=( VkImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT { - marker = marker_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPerformanceMarkerInfoINTEL const&() const VULKAN_HPP_NOEXCEPT + operator VkImageViewAddressPropertiesNVX const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPerformanceMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT + operator VkImageViewAddressPropertiesNVX &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PerformanceMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageViewAddressPropertiesNVX const & ) const = default; +#else + bool operator==( ImageViewAddressPropertiesNVX const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( marker == rhs.marker ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceAddress == rhs.deviceAddress ) && + ( size == rhs.size ); } - bool operator!=( PerformanceMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageViewAddressPropertiesNVX const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceMarkerInfoINTEL; - const void* pNext = {}; - uint64_t marker = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewAddressPropertiesNVX; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {}; + VULKAN_HPP_NAMESPACE::DeviceSize size = {}; }; - static_assert( sizeof( PerformanceMarkerInfoINTEL ) == sizeof( VkPerformanceMarkerInfoINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageViewAddressPropertiesNVX ) == sizeof( VkImageViewAddressPropertiesNVX ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PerformanceOverrideInfoINTEL + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PerformanceOverrideInfoINTEL( VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL::eNullHardware, - VULKAN_HPP_NAMESPACE::Bool32 enable_ = {}, - uint64_t parameter_ = {} ) VULKAN_HPP_NOEXCEPT - : type( type_ ) - , enable( enable_ ) - , parameter( parameter_ ) + using Type = ImageViewAddressPropertiesNVX; + }; + + struct ImageViewHandleInfoNVX + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewHandleInfoNVX; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ImageViewHandleInfoNVX( + VULKAN_HPP_NAMESPACE::ImageView imageView_ = {}, + VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, + VULKAN_HPP_NAMESPACE::Sampler sampler_ = {} ) VULKAN_HPP_NOEXCEPT + : imageView( imageView_ ) + , descriptorType( descriptorType_ ) + , sampler( sampler_ ) {} - VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL & operator=( VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL ) - offsetof( PerformanceOverrideInfoINTEL, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR ImageViewHandleInfoNVX( ImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PerformanceOverrideInfoINTEL( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ImageViewHandleInfoNVX( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageViewHandleInfoNVX( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ImageViewHandleInfoNVX & + operator=( ImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PerformanceOverrideInfoINTEL& operator=( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT + ImageViewHandleInfoNVX & operator=( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PerformanceOverrideInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ImageViewHandleInfoNVX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PerformanceOverrideInfoINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT + ImageViewHandleInfoNVX & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT { - type = type_; + imageView = imageView_; return *this; } - PerformanceOverrideInfoINTEL & setEnable( VULKAN_HPP_NAMESPACE::Bool32 enable_ ) VULKAN_HPP_NOEXCEPT + ImageViewHandleInfoNVX & + setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT { - enable = enable_; + descriptorType = descriptorType_; return *this; } - PerformanceOverrideInfoINTEL & setParameter( uint64_t parameter_ ) VULKAN_HPP_NOEXCEPT + ImageViewHandleInfoNVX & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT { - parameter = parameter_; + sampler = sampler_; return *this; } - operator VkPerformanceOverrideInfoINTEL const&() const VULKAN_HPP_NOEXCEPT + operator VkImageViewHandleInfoNVX const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPerformanceOverrideInfoINTEL &() VULKAN_HPP_NOEXCEPT + operator VkImageViewHandleInfoNVX &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PerformanceOverrideInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageViewHandleInfoNVX const & ) const = default; +#else + bool operator==( ImageViewHandleInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( type == rhs.type ) - && ( enable == rhs.enable ) - && ( parameter == rhs.parameter ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageView == rhs.imageView ) && + ( descriptorType == rhs.descriptorType ) && ( sampler == rhs.sampler ); } - bool operator!=( PerformanceOverrideInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageViewHandleInfoNVX const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceOverrideInfoINTEL; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL::eNullHardware; - VULKAN_HPP_NAMESPACE::Bool32 enable = {}; - uint64_t parameter = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewHandleInfoNVX; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ImageView imageView = {}; + VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler; + VULKAN_HPP_NAMESPACE::Sampler sampler = {}; }; - static_assert( sizeof( PerformanceOverrideInfoINTEL ) == sizeof( VkPerformanceOverrideInfoINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageViewHandleInfoNVX ) == sizeof( VkImageViewHandleInfoNVX ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PerformanceQuerySubmitInfoKHR + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PerformanceQuerySubmitInfoKHR( uint32_t counterPassIndex_ = {} ) VULKAN_HPP_NOEXCEPT - : counterPassIndex( counterPassIndex_ ) + using Type = ImageViewHandleInfoNVX; + }; + +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + struct MemoryGetAndroidHardwareBufferInfoANDROID + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + MemoryGetAndroidHardwareBufferInfoANDROID( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {} ) VULKAN_HPP_NOEXCEPT + : memory( memory_ ) {} - VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR & operator=( VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR ) - offsetof( PerformanceQuerySubmitInfoKHR, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR MemoryGetAndroidHardwareBufferInfoANDROID( + MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PerformanceQuerySubmitInfoKHR( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + MemoryGetAndroidHardwareBufferInfoANDROID( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) + VULKAN_HPP_NOEXCEPT + : MemoryGetAndroidHardwareBufferInfoANDROID( + *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 MemoryGetAndroidHardwareBufferInfoANDROID & + operator=( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PerformanceQuerySubmitInfoKHR& operator=( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + MemoryGetAndroidHardwareBufferInfoANDROID & + operator=( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PerformanceQuerySubmitInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + MemoryGetAndroidHardwareBufferInfoANDROID & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PerformanceQuerySubmitInfoKHR & setCounterPassIndex( uint32_t counterPassIndex_ ) VULKAN_HPP_NOEXCEPT + MemoryGetAndroidHardwareBufferInfoANDROID & + setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT { - counterPassIndex = counterPassIndex_; + memory = memory_; return *this; } - operator VkPerformanceQuerySubmitInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkMemoryGetAndroidHardwareBufferInfoANDROID const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPerformanceQuerySubmitInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkMemoryGetAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PerformanceQuerySubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MemoryGetAndroidHardwareBufferInfoANDROID const & ) const = default; +# else + bool operator==( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( counterPassIndex == rhs.counterPassIndex ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memory == rhs.memory ); } - bool operator!=( PerformanceQuerySubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceQuerySubmitInfoKHR; - const void* pNext = {}; - uint32_t counterPassIndex = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; }; - static_assert( sizeof( PerformanceQuerySubmitInfoKHR ) == sizeof( VkPerformanceQuerySubmitInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( MemoryGetAndroidHardwareBufferInfoANDROID ) == + sizeof( VkMemoryGetAndroidHardwareBufferInfoANDROID ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PerformanceStreamMarkerInfoINTEL + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PerformanceStreamMarkerInfoINTEL( uint32_t marker_ = {} ) VULKAN_HPP_NOEXCEPT - : marker( marker_ ) + using Type = MemoryGetAndroidHardwareBufferInfoANDROID; + }; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + + struct MemoryGetFdInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetFdInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + MemoryGetFdInfoKHR( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT + : memory( memory_ ) + , handleType( handleType_ ) {} - VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL & operator=( VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL ) - offsetof( PerformanceStreamMarkerInfoINTEL, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR MemoryGetFdInfoKHR( MemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PerformanceStreamMarkerInfoINTEL( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT + MemoryGetFdInfoKHR( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : MemoryGetFdInfoKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 MemoryGetFdInfoKHR & + operator=( MemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + MemoryGetFdInfoKHR & operator=( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - PerformanceStreamMarkerInfoINTEL& operator=( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT + MemoryGetFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - PerformanceStreamMarkerInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + MemoryGetFdInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + memory = memory_; return *this; } - PerformanceStreamMarkerInfoINTEL & setMarker( uint32_t marker_ ) VULKAN_HPP_NOEXCEPT + MemoryGetFdInfoKHR & + setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT { - marker = marker_; + handleType = handleType_; return *this; } - operator VkPerformanceStreamMarkerInfoINTEL const&() const VULKAN_HPP_NOEXCEPT + operator VkMemoryGetFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPerformanceStreamMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT + operator VkMemoryGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PerformanceStreamMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MemoryGetFdInfoKHR const & ) const = default; +#else + bool operator==( MemoryGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( marker == rhs.marker ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memory == rhs.memory ) && + ( handleType == rhs.handleType ); } - bool operator!=( PerformanceStreamMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( MemoryGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceStreamMarkerInfoINTEL; - const void* pNext = {}; - uint32_t marker = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetFdInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; }; - static_assert( sizeof( PerformanceStreamMarkerInfoINTEL ) == sizeof( VkPerformanceStreamMarkerInfoINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( MemoryGetFdInfoKHR ) == sizeof( VkMemoryGetFdInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - union PerformanceValueDataINTEL + template <> + struct CppType { - PerformanceValueDataINTEL( uint32_t value32_ = {} ) - { - value32 = value32_; - } + using Type = MemoryGetFdInfoKHR; + }; - PerformanceValueDataINTEL( uint64_t value64_ ) - { - value64 = value64_; - } + struct MemoryFdPropertiesKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryFdPropertiesKHR; - PerformanceValueDataINTEL( float valueFloat_ ) - { - valueFloat = valueFloat_; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR MemoryFdPropertiesKHR( uint32_t memoryTypeBits_ = {} ) VULKAN_HPP_NOEXCEPT + : memoryTypeBits( memoryTypeBits_ ) + {} - PerformanceValueDataINTEL( const char* valueString_ ) - { - valueString = valueString_; - } + VULKAN_HPP_CONSTEXPR MemoryFdPropertiesKHR( MemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PerformanceValueDataINTEL & setValue32( uint32_t value32_ ) VULKAN_HPP_NOEXCEPT - { - value32 = value32_; - return *this; - } + MemoryFdPropertiesKHR( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : MemoryFdPropertiesKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PerformanceValueDataINTEL & setValue64( uint64_t value64_ ) VULKAN_HPP_NOEXCEPT - { - value64 = value64_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 MemoryFdPropertiesKHR & + operator=( MemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PerformanceValueDataINTEL & setValueFloat( float valueFloat_ ) VULKAN_HPP_NOEXCEPT + MemoryFdPropertiesKHR & operator=( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - valueFloat = valueFloat_; + *this = *reinterpret_cast( &rhs ); return *this; } - PerformanceValueDataINTEL & setValueBool( VULKAN_HPP_NAMESPACE::Bool32 valueBool_ ) VULKAN_HPP_NOEXCEPT + operator VkMemoryFdPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT { - valueBool = valueBool_; - return *this; + return *reinterpret_cast( this ); } - PerformanceValueDataINTEL & setValueString( const char* valueString_ ) VULKAN_HPP_NOEXCEPT + operator VkMemoryFdPropertiesKHR &() VULKAN_HPP_NOEXCEPT { - valueString = valueString_; - return *this; + return *reinterpret_cast( this ); } - VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL & operator=( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & rhs ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MemoryFdPropertiesKHR const & ) const = default; +#else + bool operator==( MemoryFdPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - memcpy( this, &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL ) ); - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryTypeBits == rhs.memoryTypeBits ); } - operator VkPerformanceValueDataINTEL const&() const + bool operator!=( MemoryFdPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast(this); + return !operator==( rhs ); } +#endif - operator VkPerformanceValueDataINTEL &() - { - return *reinterpret_cast(this); - } + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryFdPropertiesKHR; + void * pNext = {}; + uint32_t memoryTypeBits = {}; + }; + static_assert( sizeof( MemoryFdPropertiesKHR ) == sizeof( VkMemoryFdPropertiesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS - uint32_t value32; - uint64_t value64; - float valueFloat; - VULKAN_HPP_NAMESPACE::Bool32 valueBool; - const char* valueString; -#else - uint32_t value32; - uint64_t value64; - float valueFloat; - VkBool32 valueBool; - const char* valueString; -#endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/ + template <> + struct CppType + { + using Type = MemoryFdPropertiesKHR; }; - struct PerformanceValueINTEL + struct MemoryHostPointerPropertiesEXT { - PerformanceValueINTEL( VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32, - VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data_ = {} ) VULKAN_HPP_NOEXCEPT - : type( type_ ) - , data( data_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryHostPointerPropertiesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR MemoryHostPointerPropertiesEXT( uint32_t memoryTypeBits_ = {} ) VULKAN_HPP_NOEXCEPT + : memoryTypeBits( memoryTypeBits_ ) {} - PerformanceValueINTEL( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR + MemoryHostPointerPropertiesEXT( MemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + MemoryHostPointerPropertiesEXT( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : MemoryHostPointerPropertiesEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PerformanceValueINTEL& operator=( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 MemoryHostPointerPropertiesEXT & + operator=( MemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + MemoryHostPointerPropertiesEXT & operator=( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PerformanceValueINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT + operator VkMemoryHostPointerPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT { - type = type_; - return *this; + return *reinterpret_cast( this ); } - PerformanceValueINTEL & setData( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data_ ) VULKAN_HPP_NOEXCEPT + operator VkMemoryHostPointerPropertiesEXT &() VULKAN_HPP_NOEXCEPT { - data = data_; - return *this; + return *reinterpret_cast( this ); } - operator VkPerformanceValueINTEL const&() const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MemoryHostPointerPropertiesEXT const & ) const = default; +#else + bool operator==( MemoryHostPointerPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryTypeBits == rhs.memoryTypeBits ); } - operator VkPerformanceValueINTEL &() VULKAN_HPP_NOEXCEPT + bool operator!=( MemoryHostPointerPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32; - VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryHostPointerPropertiesEXT; + void * pNext = {}; + uint32_t memoryTypeBits = {}; }; - static_assert( sizeof( PerformanceValueINTEL ) == sizeof( VkPerformanceValueINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( MemoryHostPointerPropertiesEXT ) == sizeof( VkMemoryHostPointerPropertiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDevice16BitStorageFeatures + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDevice16BitStorageFeatures( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ = {} ) VULKAN_HPP_NOEXCEPT - : storageBuffer16BitAccess( storageBuffer16BitAccess_ ) - , uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ ) - , storagePushConstant16( storagePushConstant16_ ) - , storageInputOutput16( storageInputOutput16_ ) - {} + using Type = MemoryHostPointerPropertiesEXT; + }; - VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures & operator=( VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures ) - offsetof( PhysicalDevice16BitStorageFeatures, pNext ) ); - return *this; - } +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + struct MemoryGetWin32HandleInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetWin32HandleInfoKHR; - PhysicalDevice16BitStorageFeatures( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR MemoryGetWin32HandleInfoKHR( + VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT + : memory( memory_ ) + , handleType( handleType_ ) + {} - PhysicalDevice16BitStorageFeatures& operator=( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR + MemoryGetWin32HandleInfoKHR( MemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDevice16BitStorageFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + MemoryGetWin32HandleInfoKHR( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : MemoryGetWin32HandleInfoKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDevice16BitStorageFeatures & setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 MemoryGetWin32HandleInfoKHR & + operator=( MemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + MemoryGetWin32HandleInfoKHR & operator=( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - storageBuffer16BitAccess = storageBuffer16BitAccess_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDevice16BitStorageFeatures & setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT + MemoryGetWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_; + pNext = pNext_; return *this; } - PhysicalDevice16BitStorageFeatures & setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT + MemoryGetWin32HandleInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT { - storagePushConstant16 = storagePushConstant16_; + memory = memory_; return *this; } - PhysicalDevice16BitStorageFeatures & setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT + MemoryGetWin32HandleInfoKHR & + setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT { - storageInputOutput16 = storageInputOutput16_; + handleType = handleType_; return *this; } - operator VkPhysicalDevice16BitStorageFeatures const&() const VULKAN_HPP_NOEXCEPT + operator VkMemoryGetWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDevice16BitStorageFeatures &() VULKAN_HPP_NOEXCEPT + operator VkMemoryGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDevice16BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MemoryGetWin32HandleInfoKHR const & ) const = default; +# else + bool operator==( MemoryGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess ) - && ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess ) - && ( storagePushConstant16 == rhs.storagePushConstant16 ) - && ( storageInputOutput16 == rhs.storageInputOutput16 ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memory == rhs.memory ) && + ( handleType == rhs.handleType ); } - bool operator!=( PhysicalDevice16BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( MemoryGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice16BitStorageFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetWin32HandleInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; }; - static_assert( sizeof( PhysicalDevice16BitStorageFeatures ) == sizeof( VkPhysicalDevice16BitStorageFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( MemoryGetWin32HandleInfoKHR ) == sizeof( VkMemoryGetWin32HandleInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDevice8BitStorageFeatures + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDevice8BitStorageFeatures( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ = {} ) VULKAN_HPP_NOEXCEPT - : storageBuffer8BitAccess( storageBuffer8BitAccess_ ) - , uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ ) - , storagePushConstant8( storagePushConstant8_ ) - {} - - VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures & operator=( VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures ) - offsetof( PhysicalDevice8BitStorageFeatures, pNext ) ); - return *this; - } + using Type = MemoryGetWin32HandleInfoKHR; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PhysicalDevice8BitStorageFeatures( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + struct MemoryWin32HandlePropertiesKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryWin32HandlePropertiesKHR; - PhysicalDevice8BitStorageFeatures& operator=( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR MemoryWin32HandlePropertiesKHR( uint32_t memoryTypeBits_ = {} ) VULKAN_HPP_NOEXCEPT + : memoryTypeBits( memoryTypeBits_ ) + {} - PhysicalDevice8BitStorageFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + VULKAN_HPP_CONSTEXPR + MemoryWin32HandlePropertiesKHR( MemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDevice8BitStorageFeatures & setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT - { - storageBuffer8BitAccess = storageBuffer8BitAccess_; - return *this; - } + MemoryWin32HandlePropertiesKHR( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : MemoryWin32HandlePropertiesKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDevice8BitStorageFeatures & setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT - { - uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 MemoryWin32HandlePropertiesKHR & + operator=( MemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDevice8BitStorageFeatures & setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT + MemoryWin32HandlePropertiesKHR & operator=( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - storagePushConstant8 = storagePushConstant8_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDevice8BitStorageFeatures const&() const VULKAN_HPP_NOEXCEPT + operator VkMemoryWin32HandlePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDevice8BitStorageFeatures &() VULKAN_HPP_NOEXCEPT + operator VkMemoryWin32HandlePropertiesKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDevice8BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MemoryWin32HandlePropertiesKHR const & ) const = default; +# else + bool operator==( MemoryWin32HandlePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess ) - && ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess ) - && ( storagePushConstant8 == rhs.storagePushConstant8 ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryTypeBits == rhs.memoryTypeBits ); } - bool operator!=( PhysicalDevice8BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( MemoryWin32HandlePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice8BitStorageFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryWin32HandlePropertiesKHR; + void * pNext = {}; + uint32_t memoryTypeBits = {}; }; - static_assert( sizeof( PhysicalDevice8BitStorageFeatures ) == sizeof( VkPhysicalDevice8BitStorageFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( MemoryWin32HandlePropertiesKHR ) == sizeof( VkMemoryWin32HandlePropertiesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceASTCDecodeFeaturesEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceASTCDecodeFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ = {} ) VULKAN_HPP_NOEXCEPT - : decodeModeSharedExponent( decodeModeSharedExponent_ ) + using Type = MemoryWin32HandlePropertiesKHR; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + struct MemoryGetZirconHandleInfoFUCHSIA + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetZirconHandleInfoFUCHSIA; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR MemoryGetZirconHandleInfoFUCHSIA( + VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT + : memory( memory_ ) + , handleType( handleType_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT ) - offsetof( PhysicalDeviceASTCDecodeFeaturesEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + MemoryGetZirconHandleInfoFUCHSIA( MemoryGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceASTCDecodeFeaturesEXT( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + MemoryGetZirconHandleInfoFUCHSIA( VkMemoryGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT + : MemoryGetZirconHandleInfoFUCHSIA( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 MemoryGetZirconHandleInfoFUCHSIA & + operator=( MemoryGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + MemoryGetZirconHandleInfoFUCHSIA & operator=( VkMemoryGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - PhysicalDeviceASTCDecodeFeaturesEXT& operator=( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + MemoryGetZirconHandleInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - PhysicalDeviceASTCDecodeFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + MemoryGetZirconHandleInfoFUCHSIA & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + memory = memory_; return *this; } - PhysicalDeviceASTCDecodeFeaturesEXT & setDecodeModeSharedExponent( VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ ) VULKAN_HPP_NOEXCEPT + MemoryGetZirconHandleInfoFUCHSIA & + setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT { - decodeModeSharedExponent = decodeModeSharedExponent_; + handleType = handleType_; return *this; } - operator VkPhysicalDeviceASTCDecodeFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkMemoryGetZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceASTCDecodeFeaturesEXT &() VULKAN_HPP_NOEXCEPT + operator VkMemoryGetZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceASTCDecodeFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MemoryGetZirconHandleInfoFUCHSIA const & ) const = default; +# else + bool operator==( MemoryGetZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( decodeModeSharedExponent == rhs.decodeModeSharedExponent ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memory == rhs.memory ) && + ( handleType == rhs.handleType ); } - bool operator!=( PhysicalDeviceASTCDecodeFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( MemoryGetZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetZirconHandleInfoFUCHSIA; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; }; - static_assert( sizeof( PhysicalDeviceASTCDecodeFeaturesEXT ) == sizeof( VkPhysicalDeviceASTCDecodeFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( MemoryGetZirconHandleInfoFUCHSIA ) == sizeof( VkMemoryGetZirconHandleInfoFUCHSIA ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ = {} ) VULKAN_HPP_NOEXCEPT - : advancedBlendCoherentOperations( advancedBlendCoherentOperations_ ) - {} + using Type = MemoryGetZirconHandleInfoFUCHSIA; + }; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ - VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT ) - offsetof( PhysicalDeviceBlendOperationAdvancedFeaturesEXT, pNext ) ); - return *this; - } +#if defined( VK_USE_PLATFORM_FUCHSIA ) + struct MemoryZirconHandlePropertiesFUCHSIA + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eMemoryZirconHandlePropertiesFUCHSIA; - PhysicalDeviceBlendOperationAdvancedFeaturesEXT( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR MemoryZirconHandlePropertiesFUCHSIA( uint32_t memoryTypeBits_ = {} ) VULKAN_HPP_NOEXCEPT + : memoryTypeBits( memoryTypeBits_ ) + {} - PhysicalDeviceBlendOperationAdvancedFeaturesEXT& operator=( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR MemoryZirconHandlePropertiesFUCHSIA( MemoryZirconHandlePropertiesFUCHSIA const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + MemoryZirconHandlePropertiesFUCHSIA( VkMemoryZirconHandlePropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT + : MemoryZirconHandlePropertiesFUCHSIA( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setAdvancedBlendCoherentOperations( VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 MemoryZirconHandlePropertiesFUCHSIA & + operator=( MemoryZirconHandlePropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + MemoryZirconHandlePropertiesFUCHSIA & + operator=( VkMemoryZirconHandlePropertiesFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT { - advancedBlendCoherentOperations = advancedBlendCoherentOperations_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkMemoryZirconHandlePropertiesFUCHSIA const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT &() VULKAN_HPP_NOEXCEPT + operator VkMemoryZirconHandlePropertiesFUCHSIA &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MemoryZirconHandlePropertiesFUCHSIA const & ) const = default; +# else + bool operator==( MemoryZirconHandlePropertiesFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( advancedBlendCoherentOperations == rhs.advancedBlendCoherentOperations ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryTypeBits == rhs.memoryTypeBits ); } - bool operator!=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( MemoryZirconHandlePropertiesFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryZirconHandlePropertiesFUCHSIA; + void * pNext = {}; + uint32_t memoryTypeBits = {}; }; - static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedFeaturesEXT ) == sizeof( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( MemoryZirconHandlePropertiesFUCHSIA ) == sizeof( VkMemoryZirconHandlePropertiesFUCHSIA ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT + template <> + struct CppType { - PhysicalDeviceBlendOperationAdvancedPropertiesEXT( uint32_t advancedBlendMaxColorAttachments_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 advancedBlendIndependentBlend_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedSrcColor_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedDstColor_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCorrelatedOverlap_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 advancedBlendAllOperations_ = {} ) VULKAN_HPP_NOEXCEPT - : advancedBlendMaxColorAttachments( advancedBlendMaxColorAttachments_ ) - , advancedBlendIndependentBlend( advancedBlendIndependentBlend_ ) - , advancedBlendNonPremultipliedSrcColor( advancedBlendNonPremultipliedSrcColor_ ) - , advancedBlendNonPremultipliedDstColor( advancedBlendNonPremultipliedDstColor_ ) - , advancedBlendCorrelatedOverlap( advancedBlendCorrelatedOverlap_ ) - , advancedBlendAllOperations( advancedBlendAllOperations_ ) + using Type = MemoryZirconHandlePropertiesFUCHSIA; + }; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + + struct PastPresentationTimingGOOGLE + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PastPresentationTimingGOOGLE( uint32_t presentID_ = {}, + uint64_t desiredPresentTime_ = {}, + uint64_t actualPresentTime_ = {}, + uint64_t earliestPresentTime_ = {}, + uint64_t presentMargin_ = {} ) VULKAN_HPP_NOEXCEPT + : presentID( presentID_ ) + , desiredPresentTime( desiredPresentTime_ ) + , actualPresentTime( actualPresentTime_ ) + , earliestPresentTime( earliestPresentTime_ ) + , presentMargin( presentMargin_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT ) - offsetof( PhysicalDeviceBlendOperationAdvancedPropertiesEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + PastPresentationTimingGOOGLE( PastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceBlendOperationAdvancedPropertiesEXT( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PastPresentationTimingGOOGLE( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT + : PastPresentationTimingGOOGLE( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceBlendOperationAdvancedPropertiesEXT& operator=( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PastPresentationTimingGOOGLE & + operator=( PastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PastPresentationTimingGOOGLE & operator=( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkPastPresentationTimingGOOGLE const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT &() VULKAN_HPP_NOEXCEPT + operator VkPastPresentationTimingGOOGLE &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PastPresentationTimingGOOGLE const & ) const = default; +#else + bool operator==( PastPresentationTimingGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( advancedBlendMaxColorAttachments == rhs.advancedBlendMaxColorAttachments ) - && ( advancedBlendIndependentBlend == rhs.advancedBlendIndependentBlend ) - && ( advancedBlendNonPremultipliedSrcColor == rhs.advancedBlendNonPremultipliedSrcColor ) - && ( advancedBlendNonPremultipliedDstColor == rhs.advancedBlendNonPremultipliedDstColor ) - && ( advancedBlendCorrelatedOverlap == rhs.advancedBlendCorrelatedOverlap ) - && ( advancedBlendAllOperations == rhs.advancedBlendAllOperations ); + return ( presentID == rhs.presentID ) && ( desiredPresentTime == rhs.desiredPresentTime ) && + ( actualPresentTime == rhs.actualPresentTime ) && ( earliestPresentTime == rhs.earliestPresentTime ) && + ( presentMargin == rhs.presentMargin ); } - bool operator!=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PastPresentationTimingGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT; - void* pNext = {}; - uint32_t advancedBlendMaxColorAttachments = {}; - VULKAN_HPP_NAMESPACE::Bool32 advancedBlendIndependentBlend = {}; - VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedSrcColor = {}; - VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedDstColor = {}; - VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCorrelatedOverlap = {}; - VULKAN_HPP_NAMESPACE::Bool32 advancedBlendAllOperations = {}; + uint32_t presentID = {}; + uint64_t desiredPresentTime = {}; + uint64_t actualPresentTime = {}; + uint64_t earliestPresentTime = {}; + uint64_t presentMargin = {}; }; - static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedPropertiesEXT ) == sizeof( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PastPresentationTimingGOOGLE ) == sizeof( VkPastPresentationTimingGOOGLE ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceBufferDeviceAddressFeatures + union PerformanceValueDataINTEL { - VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeatures( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {} ) VULKAN_HPP_NOEXCEPT - : bufferDeviceAddress( bufferDeviceAddress_ ) - , bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ) - , bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ ) - {} - - VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + PerformanceValueDataINTEL( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures ) - offsetof( PhysicalDeviceBufferDeviceAddressFeatures, pNext ) ); - return *this; + memcpy( static_cast( this ), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL ) ); } - PhysicalDeviceBufferDeviceAddressFeatures( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PerformanceValueDataINTEL( uint32_t value32_ = {} ) : value32( value32_ ) {} - PhysicalDeviceBufferDeviceAddressFeatures& operator=( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + PerformanceValueDataINTEL( uint64_t value64_ ) : value64( value64_ ) {} + + PerformanceValueDataINTEL( float valueFloat_ ) : valueFloat( valueFloat_ ) {} - PhysicalDeviceBufferDeviceAddressFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + PerformanceValueDataINTEL( const char * valueString_ ) : valueString( valueString_ ) {} + + PerformanceValueDataINTEL & setValue32( uint32_t value32_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + value32 = value32_; return *this; } - PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT + PerformanceValueDataINTEL & setValue64( uint64_t value64_ ) VULKAN_HPP_NOEXCEPT { - bufferDeviceAddress = bufferDeviceAddress_; + value64 = value64_; return *this; } - PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT + PerformanceValueDataINTEL & setValueFloat( float valueFloat_ ) VULKAN_HPP_NOEXCEPT { - bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_; + valueFloat = valueFloat_; return *this; } - PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT + PerformanceValueDataINTEL & setValueBool( VULKAN_HPP_NAMESPACE::Bool32 valueBool_ ) VULKAN_HPP_NOEXCEPT { - bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_; + valueBool = valueBool_; return *this; } - operator VkPhysicalDeviceBufferDeviceAddressFeatures const&() const VULKAN_HPP_NOEXCEPT + PerformanceValueDataINTEL & setValueString( const char * valueString_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + valueString = valueString_; + return *this; } - operator VkPhysicalDeviceBufferDeviceAddressFeatures &() VULKAN_HPP_NOEXCEPT + VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL & + operator=( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & rhs ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + memcpy( static_cast( this ), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL ) ); + return *this; } - bool operator==( PhysicalDeviceBufferDeviceAddressFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkPerformanceValueDataINTEL const &() const { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( bufferDeviceAddress == rhs.bufferDeviceAddress ) - && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay ) - && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice ); + return *reinterpret_cast( this ); } - bool operator!=( PhysicalDeviceBufferDeviceAddressFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkPerformanceValueDataINTEL &() { - return !operator==( rhs ); + return *reinterpret_cast( this ); } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {}; +#ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS + uint32_t value32; + uint64_t value64; + float valueFloat; + VULKAN_HPP_NAMESPACE::Bool32 valueBool; + const char * valueString; +#else + uint32_t value32; + uint64_t value64; + float valueFloat; + VkBool32 valueBool; + const char * valueString; +#endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/ }; - static_assert( sizeof( PhysicalDeviceBufferDeviceAddressFeatures ) == sizeof( VkPhysicalDeviceBufferDeviceAddressFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceBufferDeviceAddressFeaturesEXT + struct PerformanceValueINTEL { - VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {} ) VULKAN_HPP_NOEXCEPT - : bufferDeviceAddress( bufferDeviceAddress_ ) - , bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ) - , bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + PerformanceValueINTEL( + VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32, + VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data_ = {} ) VULKAN_HPP_NOEXCEPT + : type( type_ ) + , data( data_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT ) - offsetof( PhysicalDeviceBufferDeviceAddressFeaturesEXT, pNext ) ); - return *this; - } - - PhysicalDeviceBufferDeviceAddressFeaturesEXT( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PerformanceValueINTEL( PerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceBufferDeviceAddressFeaturesEXT& operator=( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + PerformanceValueINTEL( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT + : PerformanceValueINTEL( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceBufferDeviceAddressFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + PerformanceValueINTEL & operator=( PerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT + PerformanceValueINTEL & operator=( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT { - bufferDeviceAddress = bufferDeviceAddress_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT + PerformanceValueINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT { - bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_; + type = type_; return *this; } - PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT + PerformanceValueINTEL & setData( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & data_ ) VULKAN_HPP_NOEXCEPT { - bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_; + data = data_; return *this; } - operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkPerformanceValueINTEL const &() const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( bufferDeviceAddress == rhs.bufferDeviceAddress ) - && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay ) - && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice ); + return *reinterpret_cast( this ); } - bool operator!=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkPerformanceValueINTEL &() VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return *reinterpret_cast( this ); } public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {}; + VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32; + VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data = {}; }; - static_assert( sizeof( PhysicalDeviceBufferDeviceAddressFeaturesEXT ) == sizeof( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PerformanceValueINTEL ) == sizeof( VkPerformanceValueINTEL ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceCoherentMemoryFeaturesAMD + struct PipelineExecutableInfoKHR { - VULKAN_HPP_CONSTEXPR PhysicalDeviceCoherentMemoryFeaturesAMD( VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ = {} ) VULKAN_HPP_NOEXCEPT - : deviceCoherentMemory( deviceCoherentMemory_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineExecutableInfoKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, + uint32_t executableIndex_ = {} ) VULKAN_HPP_NOEXCEPT + : pipeline( pipeline_ ) + , executableIndex( executableIndex_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD ) - offsetof( PhysicalDeviceCoherentMemoryFeaturesAMD, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + PipelineExecutableInfoKHR( PipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceCoherentMemoryFeaturesAMD( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PipelineExecutableInfoKHR( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PipelineExecutableInfoKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceCoherentMemoryFeaturesAMD& operator=( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInfoKHR & + operator=( PipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineExecutableInfoKHR & operator=( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceCoherentMemoryFeaturesAMD & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + PipelineExecutableInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PhysicalDeviceCoherentMemoryFeaturesAMD & setDeviceCoherentMemory( VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ ) VULKAN_HPP_NOEXCEPT + PipelineExecutableInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT { - deviceCoherentMemory = deviceCoherentMemory_; + pipeline = pipeline_; return *this; } - operator VkPhysicalDeviceCoherentMemoryFeaturesAMD const&() const VULKAN_HPP_NOEXCEPT + PipelineExecutableInfoKHR & setExecutableIndex( uint32_t executableIndex_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + executableIndex = executableIndex_; + return *this; } - operator VkPhysicalDeviceCoherentMemoryFeaturesAMD &() VULKAN_HPP_NOEXCEPT + operator VkPipelineExecutableInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceCoherentMemoryFeaturesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkPipelineExecutableInfoKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineExecutableInfoKHR const & ) const = default; +#else + bool operator==( PipelineExecutableInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceCoherentMemory == rhs.deviceCoherentMemory ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipeline == rhs.pipeline ) && + ( executableIndex == rhs.executableIndex ); } - bool operator!=( PhysicalDeviceCoherentMemoryFeaturesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PipelineExecutableInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Pipeline pipeline = {}; + uint32_t executableIndex = {}; }; - static_assert( sizeof( PhysicalDeviceCoherentMemoryFeaturesAMD ) == sizeof( VkPhysicalDeviceCoherentMemoryFeaturesAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PipelineExecutableInfoKHR ) == sizeof( VkPipelineExecutableInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceComputeShaderDerivativesFeaturesNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceComputeShaderDerivativesFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ = {} ) VULKAN_HPP_NOEXCEPT - : computeDerivativeGroupQuads( computeDerivativeGroupQuads_ ) - , computeDerivativeGroupLinear( computeDerivativeGroupLinear_ ) - {} + using Type = PipelineExecutableInfoKHR; + }; - VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV ) - offsetof( PhysicalDeviceComputeShaderDerivativesFeaturesNV, pNext ) ); - return *this; - } + struct PipelineExecutableInternalRepresentationKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineExecutableInternalRepresentationKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 + PipelineExecutableInternalRepresentationKHR( std::array const & name_ = {}, + std::array const & description_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 isText_ = {}, + size_t dataSize_ = {}, + void * pData_ = {} ) VULKAN_HPP_NOEXCEPT + : name( name_ ) + , description( description_ ) + , isText( isText_ ) + , dataSize( dataSize_ ) + , pData( pData_ ) + {} - PhysicalDeviceComputeShaderDerivativesFeaturesNV( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInternalRepresentationKHR( + PipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceComputeShaderDerivativesFeaturesNV& operator=( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + PipelineExecutableInternalRepresentationKHR( VkPipelineExecutableInternalRepresentationKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + : PipelineExecutableInternalRepresentationKHR( + *reinterpret_cast( &rhs ) ) + {} - PhysicalDeviceComputeShaderDerivativesFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + template + PipelineExecutableInternalRepresentationKHR( std::array const & name_, + std::array const & description_, + VULKAN_HPP_NAMESPACE::Bool32 isText_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & data_ ) + : name( name_ ) + , description( description_ ) + , isText( isText_ ) + , dataSize( data_.size() * sizeof( T ) ) + , pData( data_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceComputeShaderDerivativesFeaturesNV & setComputeDerivativeGroupQuads( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ ) VULKAN_HPP_NOEXCEPT - { - computeDerivativeGroupQuads = computeDerivativeGroupQuads_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInternalRepresentationKHR & + operator=( PipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceComputeShaderDerivativesFeaturesNV & setComputeDerivativeGroupLinear( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ ) VULKAN_HPP_NOEXCEPT + PipelineExecutableInternalRepresentationKHR & + operator=( VkPipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - computeDerivativeGroupLinear = computeDerivativeGroupLinear_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const&() const VULKAN_HPP_NOEXCEPT + operator VkPipelineExecutableInternalRepresentationKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV &() VULKAN_HPP_NOEXCEPT + operator VkPipelineExecutableInternalRepresentationKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineExecutableInternalRepresentationKHR const & ) const = default; +#else + bool operator==( PipelineExecutableInternalRepresentationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( computeDerivativeGroupQuads == rhs.computeDerivativeGroupQuads ) - && ( computeDerivativeGroupLinear == rhs.computeDerivativeGroupLinear ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( name == rhs.name ) && + ( description == rhs.description ) && ( isText == rhs.isText ) && ( dataSize == rhs.dataSize ) && + ( pData == rhs.pData ); } - bool operator!=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PipelineExecutableInternalRepresentationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads = {}; - VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInternalRepresentationKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D name = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D description = {}; + VULKAN_HPP_NAMESPACE::Bool32 isText = {}; + size_t dataSize = {}; + void * pData = {}; }; - static_assert( sizeof( PhysicalDeviceComputeShaderDerivativesFeaturesNV ) == sizeof( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PipelineExecutableInternalRepresentationKHR ) == + sizeof( VkPipelineExecutableInternalRepresentationKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceConditionalRenderingFeaturesEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceConditionalRenderingFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ = {} ) VULKAN_HPP_NOEXCEPT - : conditionalRendering( conditionalRendering_ ) - , inheritedConditionalRendering( inheritedConditionalRendering_ ) + using Type = PipelineExecutableInternalRepresentationKHR; + }; + + struct PipelineInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineInfoKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {} ) VULKAN_HPP_NOEXCEPT + : pipeline( pipeline_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT ) - offsetof( PhysicalDeviceConditionalRenderingFeaturesEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PipelineInfoKHR( PipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceConditionalRenderingFeaturesEXT( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PipelineInfoKHR( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PipelineInfoKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceConditionalRenderingFeaturesEXT& operator=( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 PipelineInfoKHR & operator=( PipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceConditionalRenderingFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + PipelineInfoKHR & operator=( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceConditionalRenderingFeaturesEXT & setConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ ) VULKAN_HPP_NOEXCEPT + PipelineInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - conditionalRendering = conditionalRendering_; + pNext = pNext_; return *this; } - PhysicalDeviceConditionalRenderingFeaturesEXT & setInheritedConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ ) VULKAN_HPP_NOEXCEPT + PipelineInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT { - inheritedConditionalRendering = inheritedConditionalRendering_; + pipeline = pipeline_; return *this; } - operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkPipelineInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceConditionalRenderingFeaturesEXT &() VULKAN_HPP_NOEXCEPT + operator VkPipelineInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceConditionalRenderingFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineInfoKHR const & ) const = default; +#else + bool operator==( PipelineInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( conditionalRendering == rhs.conditionalRendering ) - && ( inheritedConditionalRendering == rhs.inheritedConditionalRendering ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipeline == rhs.pipeline ); } - bool operator!=( PhysicalDeviceConditionalRenderingFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PipelineInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering = {}; - VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Pipeline pipeline = {}; }; - static_assert( sizeof( PhysicalDeviceConditionalRenderingFeaturesEXT ) == sizeof( VkPhysicalDeviceConditionalRenderingFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PipelineInfoKHR ) == sizeof( VkPipelineInfoKHR ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceConservativeRasterizationPropertiesEXT + template <> + struct CppType { - PhysicalDeviceConservativeRasterizationPropertiesEXT( float primitiveOverestimationSize_ = {}, - float maxExtraPrimitiveOverestimationSize_ = {}, - float extraPrimitiveOverestimationSizeGranularity_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 primitiveUnderestimation_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 conservativePointAndLineRasterization_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 degenerateTrianglesRasterized_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 degenerateLinesRasterized_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 fullyCoveredFragmentShaderInputVariable_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 conservativeRasterizationPostDepthCoverage_ = {} ) VULKAN_HPP_NOEXCEPT - : primitiveOverestimationSize( primitiveOverestimationSize_ ) - , maxExtraPrimitiveOverestimationSize( maxExtraPrimitiveOverestimationSize_ ) - , extraPrimitiveOverestimationSizeGranularity( extraPrimitiveOverestimationSizeGranularity_ ) - , primitiveUnderestimation( primitiveUnderestimation_ ) - , conservativePointAndLineRasterization( conservativePointAndLineRasterization_ ) - , degenerateTrianglesRasterized( degenerateTrianglesRasterized_ ) - , degenerateLinesRasterized( degenerateLinesRasterized_ ) - , fullyCoveredFragmentShaderInputVariable( fullyCoveredFragmentShaderInputVariable_ ) - , conservativeRasterizationPostDepthCoverage( conservativeRasterizationPostDepthCoverage_ ) + using Type = PipelineInfoKHR; + }; + + struct PipelineExecutablePropertiesKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutablePropertiesKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 + PipelineExecutablePropertiesKHR( VULKAN_HPP_NAMESPACE::ShaderStageFlags stages_ = {}, + std::array const & name_ = {}, + std::array const & description_ = {}, + uint32_t subgroupSize_ = {} ) VULKAN_HPP_NOEXCEPT + : stages( stages_ ) + , name( name_ ) + , description( description_ ) + , subgroupSize( subgroupSize_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT ) - offsetof( PhysicalDeviceConservativeRasterizationPropertiesEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 + PipelineExecutablePropertiesKHR( PipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceConservativeRasterizationPropertiesEXT( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PipelineExecutablePropertiesKHR( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PipelineExecutablePropertiesKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceConservativeRasterizationPropertiesEXT& operator=( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PipelineExecutablePropertiesKHR & + operator=( PipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineExecutablePropertiesKHR & operator=( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkPipelineExecutablePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT + operator VkPipelineExecutablePropertiesKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceConservativeRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineExecutablePropertiesKHR const & ) const = default; +#else + bool operator==( PipelineExecutablePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( primitiveOverestimationSize == rhs.primitiveOverestimationSize ) - && ( maxExtraPrimitiveOverestimationSize == rhs.maxExtraPrimitiveOverestimationSize ) - && ( extraPrimitiveOverestimationSizeGranularity == rhs.extraPrimitiveOverestimationSizeGranularity ) - && ( primitiveUnderestimation == rhs.primitiveUnderestimation ) - && ( conservativePointAndLineRasterization == rhs.conservativePointAndLineRasterization ) - && ( degenerateTrianglesRasterized == rhs.degenerateTrianglesRasterized ) - && ( degenerateLinesRasterized == rhs.degenerateLinesRasterized ) - && ( fullyCoveredFragmentShaderInputVariable == rhs.fullyCoveredFragmentShaderInputVariable ) - && ( conservativeRasterizationPostDepthCoverage == rhs.conservativeRasterizationPostDepthCoverage ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stages == rhs.stages ) && ( name == rhs.name ) && + ( description == rhs.description ) && ( subgroupSize == rhs.subgroupSize ); } - bool operator!=( PhysicalDeviceConservativeRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PipelineExecutablePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT; - void* pNext = {}; - float primitiveOverestimationSize = {}; - float maxExtraPrimitiveOverestimationSize = {}; - float extraPrimitiveOverestimationSizeGranularity = {}; - VULKAN_HPP_NAMESPACE::Bool32 primitiveUnderestimation = {}; - VULKAN_HPP_NAMESPACE::Bool32 conservativePointAndLineRasterization = {}; - VULKAN_HPP_NAMESPACE::Bool32 degenerateTrianglesRasterized = {}; - VULKAN_HPP_NAMESPACE::Bool32 degenerateLinesRasterized = {}; - VULKAN_HPP_NAMESPACE::Bool32 fullyCoveredFragmentShaderInputVariable = {}; - VULKAN_HPP_NAMESPACE::Bool32 conservativeRasterizationPostDepthCoverage = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutablePropertiesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::ShaderStageFlags stages = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D name = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D description = {}; + uint32_t subgroupSize = {}; }; - static_assert( sizeof( PhysicalDeviceConservativeRasterizationPropertiesEXT ) == sizeof( VkPhysicalDeviceConservativeRasterizationPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PipelineExecutablePropertiesKHR ) == sizeof( VkPipelineExecutablePropertiesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceCooperativeMatrixFeaturesNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ = {} ) VULKAN_HPP_NOEXCEPT - : cooperativeMatrix( cooperativeMatrix_ ) - , cooperativeMatrixRobustBufferAccess( cooperativeMatrixRobustBufferAccess_ ) - {} + using Type = PipelineExecutablePropertiesKHR; + }; - VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + union PipelineExecutableStatisticValueKHR + { + PipelineExecutableStatisticValueKHR( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const & rhs ) + VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV ) - offsetof( PhysicalDeviceCooperativeMatrixFeaturesNV, pNext ) ); - return *this; + memcpy( static_cast( this ), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR ) ); } - PhysicalDeviceCooperativeMatrixFeaturesNV( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + PipelineExecutableStatisticValueKHR( VULKAN_HPP_NAMESPACE::Bool32 b32_ = {} ) : b32( b32_ ) {} + + PipelineExecutableStatisticValueKHR( int64_t i64_ ) : i64( i64_ ) {} + + PipelineExecutableStatisticValueKHR( uint64_t u64_ ) : u64( u64_ ) {} + + PipelineExecutableStatisticValueKHR( double f64_ ) : f64( f64_ ) {} + + PipelineExecutableStatisticValueKHR & setB32( VULKAN_HPP_NAMESPACE::Bool32 b32_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + b32 = b32_; + return *this; } - PhysicalDeviceCooperativeMatrixFeaturesNV& operator=( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + PipelineExecutableStatisticValueKHR & setI64( int64_t i64_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + i64 = i64_; return *this; } - PhysicalDeviceCooperativeMatrixFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + PipelineExecutableStatisticValueKHR & setU64( uint64_t u64_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + u64 = u64_; return *this; } - PhysicalDeviceCooperativeMatrixFeaturesNV & setCooperativeMatrix( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ ) VULKAN_HPP_NOEXCEPT + PipelineExecutableStatisticValueKHR & setF64( double f64_ ) VULKAN_HPP_NOEXCEPT { - cooperativeMatrix = cooperativeMatrix_; + f64 = f64_; return *this; } - PhysicalDeviceCooperativeMatrixFeaturesNV & setCooperativeMatrixRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR & + operator=( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - cooperativeMatrixRobustBufferAccess = cooperativeMatrixRobustBufferAccess_; + memcpy( static_cast( this ), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR ) ); return *this; } - operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const&() const VULKAN_HPP_NOEXCEPT + operator VkPipelineExecutableStatisticValueKHR const &() const { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceCooperativeMatrixFeaturesNV &() VULKAN_HPP_NOEXCEPT + operator VkPipelineExecutableStatisticValueKHR &() + { + return *reinterpret_cast( this ); + } + +#ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS + VULKAN_HPP_NAMESPACE::Bool32 b32; + int64_t i64; + uint64_t u64; + double f64; +#else + VkBool32 b32; + int64_t i64; + uint64_t u64; + double f64; +#endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/ + }; + + struct PipelineExecutableStatisticKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableStatisticKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + PipelineExecutableStatisticKHR( std::array const & name_ = {}, + std::array const & description_ = {}, + VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR format_ = + VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR::eBool32, + VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR value_ = {} ) + VULKAN_HPP_NOEXCEPT + : name( name_ ) + , description( description_ ) + , format( format_ ) + , value( value_ ) + {} + + PipelineExecutableStatisticKHR( PipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineExecutableStatisticKHR( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PipelineExecutableStatisticKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + PipelineExecutableStatisticKHR & + operator=( PipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineExecutableStatisticKHR & operator=( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + *this = *reinterpret_cast( &rhs ); + return *this; } - bool operator==( PhysicalDeviceCooperativeMatrixFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkPipelineExecutableStatisticKHR const &() const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( cooperativeMatrix == rhs.cooperativeMatrix ) - && ( cooperativeMatrixRobustBufferAccess == rhs.cooperativeMatrixRobustBufferAccess ); + return *reinterpret_cast( this ); } - bool operator!=( PhysicalDeviceCooperativeMatrixFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkPipelineExecutableStatisticKHR &() VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return *reinterpret_cast( this ); } public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix = {}; - VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableStatisticKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D name = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D description = {}; + VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR format = + VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR::eBool32; + VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR value = {}; }; - static_assert( sizeof( PhysicalDeviceCooperativeMatrixFeaturesNV ) == sizeof( VkPhysicalDeviceCooperativeMatrixFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PipelineExecutableStatisticKHR ) == sizeof( VkPipelineExecutableStatisticKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceCooperativeMatrixPropertiesNV + template <> + struct CppType { - PhysicalDeviceCooperativeMatrixPropertiesNV( VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages_ = {} ) VULKAN_HPP_NOEXCEPT - : cooperativeMatrixSupportedStages( cooperativeMatrixSupportedStages_ ) + using Type = PipelineExecutableStatisticKHR; + }; + + struct RefreshCycleDurationGOOGLE + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR RefreshCycleDurationGOOGLE( uint64_t refreshDuration_ = {} ) VULKAN_HPP_NOEXCEPT + : refreshDuration( refreshDuration_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV ) - offsetof( PhysicalDeviceCooperativeMatrixPropertiesNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + RefreshCycleDurationGOOGLE( RefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + RefreshCycleDurationGOOGLE( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT + : RefreshCycleDurationGOOGLE( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 RefreshCycleDurationGOOGLE & + operator=( RefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceCooperativeMatrixPropertiesNV& operator=( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + RefreshCycleDurationGOOGLE & operator=( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceCooperativeMatrixPropertiesNV const&() const VULKAN_HPP_NOEXCEPT + operator VkRefreshCycleDurationGOOGLE const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT + operator VkRefreshCycleDurationGOOGLE &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceCooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( RefreshCycleDurationGOOGLE const & ) const = default; +#else + bool operator==( RefreshCycleDurationGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( cooperativeMatrixSupportedStages == rhs.cooperativeMatrixSupportedStages ); + return ( refreshDuration == rhs.refreshDuration ); } - bool operator!=( PhysicalDeviceCooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( RefreshCycleDurationGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages = {}; + uint64_t refreshDuration = {}; }; - static_assert( sizeof( PhysicalDeviceCooperativeMatrixPropertiesNV ) == sizeof( VkPhysicalDeviceCooperativeMatrixPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( RefreshCycleDurationGOOGLE ) == sizeof( VkRefreshCycleDurationGOOGLE ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceCornerSampledImageFeaturesNV + struct SemaphoreGetFdInfoKHR { - VULKAN_HPP_CONSTEXPR PhysicalDeviceCornerSampledImageFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ = {} ) VULKAN_HPP_NOEXCEPT - : cornerSampledImage( cornerSampledImage_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetFdInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SemaphoreGetFdInfoKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) + VULKAN_HPP_NOEXCEPT + : semaphore( semaphore_ ) + , handleType( handleType_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV ) - offsetof( PhysicalDeviceCornerSampledImageFeaturesNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR SemaphoreGetFdInfoKHR( SemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SemaphoreGetFdInfoKHR( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : SemaphoreGetFdInfoKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceCornerSampledImageFeaturesNV( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 SemaphoreGetFdInfoKHR & + operator=( SemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SemaphoreGetFdInfoKHR & operator=( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - PhysicalDeviceCornerSampledImageFeaturesNV& operator=( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + SemaphoreGetFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - PhysicalDeviceCornerSampledImageFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + SemaphoreGetFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + semaphore = semaphore_; return *this; } - PhysicalDeviceCornerSampledImageFeaturesNV & setCornerSampledImage( VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ ) VULKAN_HPP_NOEXCEPT + SemaphoreGetFdInfoKHR & + setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT { - cornerSampledImage = cornerSampledImage_; + handleType = handleType_; return *this; } - operator VkPhysicalDeviceCornerSampledImageFeaturesNV const&() const VULKAN_HPP_NOEXCEPT + operator VkSemaphoreGetFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceCornerSampledImageFeaturesNV &() VULKAN_HPP_NOEXCEPT + operator VkSemaphoreGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceCornerSampledImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SemaphoreGetFdInfoKHR const & ) const = default; +#else + bool operator==( SemaphoreGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( cornerSampledImage == rhs.cornerSampledImage ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && + ( handleType == rhs.handleType ); } - bool operator!=( PhysicalDeviceCornerSampledImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SemaphoreGetFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetFdInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd; }; - static_assert( sizeof( PhysicalDeviceCornerSampledImageFeaturesNV ) == sizeof( VkPhysicalDeviceCornerSampledImageFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SemaphoreGetFdInfoKHR ) == sizeof( VkSemaphoreGetFdInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceCoverageReductionModeFeaturesNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceCoverageReductionModeFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ = {} ) VULKAN_HPP_NOEXCEPT - : coverageReductionMode( coverageReductionMode_ ) + using Type = SemaphoreGetFdInfoKHR; + }; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + struct SemaphoreGetWin32HandleInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetWin32HandleInfoKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SemaphoreGetWin32HandleInfoKHR( + VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT + : semaphore( semaphore_ ) + , handleType( handleType_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV ) - offsetof( PhysicalDeviceCoverageReductionModeFeaturesNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + SemaphoreGetWin32HandleInfoKHR( SemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SemaphoreGetWin32HandleInfoKHR( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : SemaphoreGetWin32HandleInfoKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SemaphoreGetWin32HandleInfoKHR & + operator=( SemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceCoverageReductionModeFeaturesNV( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + SemaphoreGetWin32HandleInfoKHR & operator=( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - PhysicalDeviceCoverageReductionModeFeaturesNV& operator=( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + SemaphoreGetWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - PhysicalDeviceCoverageReductionModeFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + SemaphoreGetWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + semaphore = semaphore_; return *this; } - PhysicalDeviceCoverageReductionModeFeaturesNV & setCoverageReductionMode( VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT + SemaphoreGetWin32HandleInfoKHR & + setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT { - coverageReductionMode = coverageReductionMode_; + handleType = handleType_; return *this; } - operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const&() const VULKAN_HPP_NOEXCEPT + operator VkSemaphoreGetWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceCoverageReductionModeFeaturesNV &() VULKAN_HPP_NOEXCEPT + operator VkSemaphoreGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceCoverageReductionModeFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SemaphoreGetWin32HandleInfoKHR const & ) const = default; +# else + bool operator==( SemaphoreGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( coverageReductionMode == rhs.coverageReductionMode ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && + ( handleType == rhs.handleType ); } - bool operator!=( PhysicalDeviceCoverageReductionModeFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SemaphoreGetWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetWin32HandleInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd; }; - static_assert( sizeof( PhysicalDeviceCoverageReductionModeFeaturesNV ) == sizeof( VkPhysicalDeviceCoverageReductionModeFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SemaphoreGetWin32HandleInfoKHR ) == sizeof( VkSemaphoreGetWin32HandleInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ = {} ) VULKAN_HPP_NOEXCEPT - : dedicatedAllocationImageAliasing( dedicatedAllocationImageAliasing_ ) + using Type = SemaphoreGetWin32HandleInfoKHR; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + struct SemaphoreGetZirconHandleInfoFUCHSIA + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eSemaphoreGetZirconHandleInfoFUCHSIA; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SemaphoreGetZirconHandleInfoFUCHSIA( + VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT + : semaphore( semaphore_ ) + , handleType( handleType_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ) - offsetof( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR SemaphoreGetZirconHandleInfoFUCHSIA( SemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + SemaphoreGetZirconHandleInfoFUCHSIA( VkSemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT + : SemaphoreGetZirconHandleInfoFUCHSIA( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 SemaphoreGetZirconHandleInfoFUCHSIA & + operator=( SemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SemaphoreGetZirconHandleInfoFUCHSIA & + operator=( VkSemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& operator=( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + SemaphoreGetZirconHandleInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + SemaphoreGetZirconHandleInfoFUCHSIA & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + semaphore = semaphore_; return *this; } - PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setDedicatedAllocationImageAliasing( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ ) VULKAN_HPP_NOEXCEPT + SemaphoreGetZirconHandleInfoFUCHSIA & + setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT { - dedicatedAllocationImageAliasing = dedicatedAllocationImageAliasing_; + handleType = handleType_; return *this; } - operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const&() const VULKAN_HPP_NOEXCEPT + operator VkSemaphoreGetZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV &() VULKAN_HPP_NOEXCEPT + operator VkSemaphoreGetZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SemaphoreGetZirconHandleInfoFUCHSIA const & ) const = default; +# else + bool operator==( SemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( dedicatedAllocationImageAliasing == rhs.dedicatedAllocationImageAliasing ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && + ( handleType == rhs.handleType ); } - bool operator!=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SemaphoreGetZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetZirconHandleInfoFUCHSIA; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd; }; - static_assert( sizeof( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ) == sizeof( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SemaphoreGetZirconHandleInfoFUCHSIA ) == sizeof( VkSemaphoreGetZirconHandleInfoFUCHSIA ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceDepthClipEnableFeaturesEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipEnableFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {} ) VULKAN_HPP_NOEXCEPT - : depthClipEnable( depthClipEnable_ ) + using Type = SemaphoreGetZirconHandleInfoFUCHSIA; + }; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoGetMemoryPropertiesKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoGetMemoryPropertiesKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoGetMemoryPropertiesKHR( + uint32_t memoryBindIndex_ = {}, + VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements_ = {} ) VULKAN_HPP_NOEXCEPT + : memoryBindIndex( memoryBindIndex_ ) + , pMemoryRequirements( pMemoryRequirements_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT ) - offsetof( PhysicalDeviceDepthClipEnableFeaturesEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + VideoGetMemoryPropertiesKHR( VideoGetMemoryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoGetMemoryPropertiesKHR( VkVideoGetMemoryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoGetMemoryPropertiesKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceDepthClipEnableFeaturesEXT( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 VideoGetMemoryPropertiesKHR & + operator=( VideoGetMemoryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoGetMemoryPropertiesKHR & operator=( VkVideoGetMemoryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - PhysicalDeviceDepthClipEnableFeaturesEXT& operator=( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VideoGetMemoryPropertiesKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - PhysicalDeviceDepthClipEnableFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + VideoGetMemoryPropertiesKHR & setMemoryBindIndex( uint32_t memoryBindIndex_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + memoryBindIndex = memoryBindIndex_; return *this; } - PhysicalDeviceDepthClipEnableFeaturesEXT & setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT + VideoGetMemoryPropertiesKHR & + setPMemoryRequirements( VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements_ ) VULKAN_HPP_NOEXCEPT { - depthClipEnable = depthClipEnable_; + pMemoryRequirements = pMemoryRequirements_; return *this; } - operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkVideoGetMemoryPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceDepthClipEnableFeaturesEXT &() VULKAN_HPP_NOEXCEPT + operator VkVideoGetMemoryPropertiesKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceDepthClipEnableFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoGetMemoryPropertiesKHR const & ) const = default; +# else + bool operator==( VideoGetMemoryPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( depthClipEnable == rhs.depthClipEnable ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryBindIndex == rhs.memoryBindIndex ) && + ( pMemoryRequirements == rhs.pMemoryRequirements ); } - bool operator!=( PhysicalDeviceDepthClipEnableFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( VideoGetMemoryPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoGetMemoryPropertiesKHR; + const void * pNext = {}; + uint32_t memoryBindIndex = {}; + VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements = {}; }; - static_assert( sizeof( PhysicalDeviceDepthClipEnableFeaturesEXT ) == sizeof( VkPhysicalDeviceDepthClipEnableFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VideoGetMemoryPropertiesKHR ) == sizeof( VkVideoGetMemoryPropertiesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceDepthStencilResolveProperties + template <> + struct CppType { - PhysicalDeviceDepthStencilResolveProperties( VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes_ = {}, - VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 independentResolve_ = {} ) VULKAN_HPP_NOEXCEPT - : supportedDepthResolveModes( supportedDepthResolveModes_ ) - , supportedStencilResolveModes( supportedStencilResolveModes_ ) - , independentResolveNone( independentResolveNone_ ) - , independentResolve( independentResolve_ ) + using Type = VideoGetMemoryPropertiesKHR; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + struct ImportFenceFdInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportFenceFdInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ImportFenceFdInfoKHR( VULKAN_HPP_NAMESPACE::Fence fence_ = {}, + VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd, + int fd_ = {} ) VULKAN_HPP_NOEXCEPT + : fence( fence_ ) + , flags( flags_ ) + , handleType( handleType_ ) + , fd( fd_ ) + {} + + VULKAN_HPP_CONSTEXPR ImportFenceFdInfoKHR( ImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImportFenceFdInfoKHR( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : ImportFenceFdInfoKHR( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ImportFenceFdInfoKHR & + operator=( ImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImportFenceFdInfoKHR & operator=( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + ImportFenceFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + ImportFenceFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT + { + fence = fence_; + return *this; + } - VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT + ImportFenceFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties ) - offsetof( PhysicalDeviceDepthStencilResolveProperties, pNext ) ); + flags = flags_; return *this; } - PhysicalDeviceDepthStencilResolveProperties( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT + ImportFenceFdInfoKHR & + setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + handleType = handleType_; + return *this; } - PhysicalDeviceDepthStencilResolveProperties& operator=( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT + ImportFenceFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + fd = fd_; return *this; } - operator VkPhysicalDeviceDepthStencilResolveProperties const&() const VULKAN_HPP_NOEXCEPT + operator VkImportFenceFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceDepthStencilResolveProperties &() VULKAN_HPP_NOEXCEPT + operator VkImportFenceFdInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceDepthStencilResolveProperties const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImportFenceFdInfoKHR const & ) const = default; +#else + bool operator==( ImportFenceFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( supportedDepthResolveModes == rhs.supportedDepthResolveModes ) - && ( supportedStencilResolveModes == rhs.supportedStencilResolveModes ) - && ( independentResolveNone == rhs.independentResolveNone ) - && ( independentResolve == rhs.independentResolve ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fence == rhs.fence ) && ( flags == rhs.flags ) && + ( handleType == rhs.handleType ) && ( fd == rhs.fd ); } - bool operator!=( PhysicalDeviceDepthStencilResolveProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImportFenceFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthStencilResolveProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {}; - VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {}; - VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {}; - VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceFdInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Fence fence = {}; + VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {}; + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd; + int fd = {}; }; - static_assert( sizeof( PhysicalDeviceDepthStencilResolveProperties ) == sizeof( VkPhysicalDeviceDepthStencilResolveProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImportFenceFdInfoKHR ) == sizeof( VkImportFenceFdInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceDescriptorIndexingFeatures + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ = {} ) VULKAN_HPP_NOEXCEPT - : shaderInputAttachmentArrayDynamicIndexing( shaderInputAttachmentArrayDynamicIndexing_ ) - , shaderUniformTexelBufferArrayDynamicIndexing( shaderUniformTexelBufferArrayDynamicIndexing_ ) - , shaderStorageTexelBufferArrayDynamicIndexing( shaderStorageTexelBufferArrayDynamicIndexing_ ) - , shaderUniformBufferArrayNonUniformIndexing( shaderUniformBufferArrayNonUniformIndexing_ ) - , shaderSampledImageArrayNonUniformIndexing( shaderSampledImageArrayNonUniformIndexing_ ) - , shaderStorageBufferArrayNonUniformIndexing( shaderStorageBufferArrayNonUniformIndexing_ ) - , shaderStorageImageArrayNonUniformIndexing( shaderStorageImageArrayNonUniformIndexing_ ) - , shaderInputAttachmentArrayNonUniformIndexing( shaderInputAttachmentArrayNonUniformIndexing_ ) - , shaderUniformTexelBufferArrayNonUniformIndexing( shaderUniformTexelBufferArrayNonUniformIndexing_ ) - , shaderStorageTexelBufferArrayNonUniformIndexing( shaderStorageTexelBufferArrayNonUniformIndexing_ ) - , descriptorBindingUniformBufferUpdateAfterBind( descriptorBindingUniformBufferUpdateAfterBind_ ) - , descriptorBindingSampledImageUpdateAfterBind( descriptorBindingSampledImageUpdateAfterBind_ ) - , descriptorBindingStorageImageUpdateAfterBind( descriptorBindingStorageImageUpdateAfterBind_ ) - , descriptorBindingStorageBufferUpdateAfterBind( descriptorBindingStorageBufferUpdateAfterBind_ ) - , descriptorBindingUniformTexelBufferUpdateAfterBind( descriptorBindingUniformTexelBufferUpdateAfterBind_ ) - , descriptorBindingStorageTexelBufferUpdateAfterBind( descriptorBindingStorageTexelBufferUpdateAfterBind_ ) - , descriptorBindingUpdateUnusedWhilePending( descriptorBindingUpdateUnusedWhilePending_ ) - , descriptorBindingPartiallyBound( descriptorBindingPartiallyBound_ ) - , descriptorBindingVariableDescriptorCount( descriptorBindingVariableDescriptorCount_ ) - , runtimeDescriptorArray( runtimeDescriptorArray_ ) + using Type = ImportFenceFdInfoKHR; + }; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + struct ImportFenceWin32HandleInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportFenceWin32HandleInfoKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ImportFenceWin32HandleInfoKHR( VULKAN_HPP_NAMESPACE::Fence fence_ = {}, + VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd, + HANDLE handle_ = {}, + LPCWSTR name_ = {} ) VULKAN_HPP_NOEXCEPT + : fence( fence_ ) + , flags( flags_ ) + , handleType( handleType_ ) + , handle( handle_ ) + , name( name_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures ) - offsetof( PhysicalDeviceDescriptorIndexingFeatures, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + ImportFenceWin32HandleInfoKHR( ImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceDescriptorIndexingFeatures( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ImportFenceWin32HandleInfoKHR( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : ImportFenceWin32HandleInfoKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ImportFenceWin32HandleInfoKHR & + operator=( ImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceDescriptorIndexingFeatures& operator=( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + ImportFenceWin32HandleInfoKHR & operator=( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceDescriptorIndexingFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + ImportFenceWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PhysicalDeviceDescriptorIndexingFeatures & setShaderInputAttachmentArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT + ImportFenceWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT { - shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_; + fence = fence_; return *this; } - PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT + ImportFenceWin32HandleInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT { - shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_; + flags = flags_; return *this; } - PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT + ImportFenceWin32HandleInfoKHR & + setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT { - shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_; + handleType = handleType_; return *this; } - PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT + ImportFenceWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT { - shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_; + handle = handle_; return *this; } - PhysicalDeviceDescriptorIndexingFeatures & setShaderSampledImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT + ImportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT { - shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_; + name = name_; return *this; } - PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT + operator VkImportFenceWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT + operator VkImportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT { - shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceDescriptorIndexingFeatures & setShaderInputAttachmentArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImportFenceWin32HandleInfoKHR const & ) const = default; +# else + bool operator==( ImportFenceWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fence == rhs.fence ) && ( flags == rhs.flags ) && + ( handleType == rhs.handleType ) && ( handle == rhs.handle ) && ( name == rhs.name ); } - PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( ImportFenceWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_; - return *this; + return !operator==( rhs ); } +# endif - PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_; - return *this; - } + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceWin32HandleInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Fence fence = {}; + VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {}; + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd; + HANDLE handle = {}; + LPCWSTR name = {}; + }; + static_assert( sizeof( ImportFenceWin32HandleInfoKHR ) == sizeof( VkImportFenceWin32HandleInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUniformBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_; - return *this; - } + template <> + struct CppType + { + using Type = ImportFenceWin32HandleInfoKHR; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + struct ImportSemaphoreFdInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreFdInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ImportSemaphoreFdInfoKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, + VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd, + int fd_ = {} ) VULKAN_HPP_NOEXCEPT + : semaphore( semaphore_ ) + , flags( flags_ ) + , handleType( handleType_ ) + , fd( fd_ ) + {} + + VULKAN_HPP_CONSTEXPR ImportSemaphoreFdInfoKHR( ImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImportSemaphoreFdInfoKHR( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : ImportSemaphoreFdInfoKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreFdInfoKHR & + operator=( ImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingSampledImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT + ImportSemaphoreFdInfoKHR & operator=( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT + ImportSemaphoreFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_; + pNext = pNext_; return *this; } - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT + ImportSemaphoreFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT { - descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_; + semaphore = semaphore_; return *this; } - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUniformTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT + ImportSemaphoreFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT { - descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_; + flags = flags_; return *this; } - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT + ImportSemaphoreFdInfoKHR & + setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT { - descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_; + handleType = handleType_; return *this; } - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUpdateUnusedWhilePending( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT + ImportSemaphoreFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT { - descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_; + fd = fd_; return *this; } - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT + operator VkImportSemaphoreFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingVariableDescriptorCount( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT + operator VkImportSemaphoreFdInfoKHR &() VULKAN_HPP_NOEXCEPT { - descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceDescriptorIndexingFeatures & setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImportSemaphoreFdInfoKHR const & ) const = default; +#else + bool operator==( ImportSemaphoreFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - runtimeDescriptorArray = runtimeDescriptorArray_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && + ( flags == rhs.flags ) && ( handleType == rhs.handleType ) && ( fd == rhs.fd ); } - operator VkPhysicalDeviceDescriptorIndexingFeatures const&() const VULKAN_HPP_NOEXCEPT + bool operator!=( ImportSemaphoreFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return !operator==( rhs ); } +#endif - operator VkPhysicalDeviceDescriptorIndexingFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( PhysicalDeviceDescriptorIndexingFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing ) - && ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing ) - && ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing ) - && ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing ) - && ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing ) - && ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing ) - && ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing ) - && ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing ) - && ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing ) - && ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing ) - && ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind ) - && ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind ) - && ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind ) - && ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind ) - && ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind ) - && ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind ) - && ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending ) - && ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound ) - && ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount ) - && ( runtimeDescriptorArray == rhs.runtimeDescriptorArray ); - } - - bool operator!=( PhysicalDeviceDescriptorIndexingFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {}; - VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {}; - }; - static_assert( sizeof( PhysicalDeviceDescriptorIndexingFeatures ) == sizeof( VkPhysicalDeviceDescriptorIndexingFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreFdInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; + VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {}; + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd; + int fd = {}; + }; + static_assert( sizeof( ImportSemaphoreFdInfoKHR ) == sizeof( VkImportSemaphoreFdInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceDescriptorIndexingProperties + template <> + struct CppType { - PhysicalDeviceDescriptorIndexingProperties( uint32_t maxUpdateAfterBindDescriptorsInAllPools_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod_ = {}, - uint32_t maxPerStageDescriptorUpdateAfterBindSamplers_ = {}, - uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers_ = {}, - uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers_ = {}, - uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages_ = {}, - uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages_ = {}, - uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments_ = {}, - uint32_t maxPerStageUpdateAfterBindResources_ = {}, - uint32_t maxDescriptorSetUpdateAfterBindSamplers_ = {}, - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers_ = {}, - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ = {}, - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers_ = {}, - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ = {}, - uint32_t maxDescriptorSetUpdateAfterBindSampledImages_ = {}, - uint32_t maxDescriptorSetUpdateAfterBindStorageImages_ = {}, - uint32_t maxDescriptorSetUpdateAfterBindInputAttachments_ = {} ) VULKAN_HPP_NOEXCEPT - : maxUpdateAfterBindDescriptorsInAllPools( maxUpdateAfterBindDescriptorsInAllPools_ ) - , shaderUniformBufferArrayNonUniformIndexingNative( shaderUniformBufferArrayNonUniformIndexingNative_ ) - , shaderSampledImageArrayNonUniformIndexingNative( shaderSampledImageArrayNonUniformIndexingNative_ ) - , shaderStorageBufferArrayNonUniformIndexingNative( shaderStorageBufferArrayNonUniformIndexingNative_ ) - , shaderStorageImageArrayNonUniformIndexingNative( shaderStorageImageArrayNonUniformIndexingNative_ ) - , shaderInputAttachmentArrayNonUniformIndexingNative( shaderInputAttachmentArrayNonUniformIndexingNative_ ) - , robustBufferAccessUpdateAfterBind( robustBufferAccessUpdateAfterBind_ ) - , quadDivergentImplicitLod( quadDivergentImplicitLod_ ) - , maxPerStageDescriptorUpdateAfterBindSamplers( maxPerStageDescriptorUpdateAfterBindSamplers_ ) - , maxPerStageDescriptorUpdateAfterBindUniformBuffers( maxPerStageDescriptorUpdateAfterBindUniformBuffers_ ) - , maxPerStageDescriptorUpdateAfterBindStorageBuffers( maxPerStageDescriptorUpdateAfterBindStorageBuffers_ ) - , maxPerStageDescriptorUpdateAfterBindSampledImages( maxPerStageDescriptorUpdateAfterBindSampledImages_ ) - , maxPerStageDescriptorUpdateAfterBindStorageImages( maxPerStageDescriptorUpdateAfterBindStorageImages_ ) - , maxPerStageDescriptorUpdateAfterBindInputAttachments( maxPerStageDescriptorUpdateAfterBindInputAttachments_ ) - , maxPerStageUpdateAfterBindResources( maxPerStageUpdateAfterBindResources_ ) - , maxDescriptorSetUpdateAfterBindSamplers( maxDescriptorSetUpdateAfterBindSamplers_ ) - , maxDescriptorSetUpdateAfterBindUniformBuffers( maxDescriptorSetUpdateAfterBindUniformBuffers_ ) - , maxDescriptorSetUpdateAfterBindUniformBuffersDynamic( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ ) - , maxDescriptorSetUpdateAfterBindStorageBuffers( maxDescriptorSetUpdateAfterBindStorageBuffers_ ) - , maxDescriptorSetUpdateAfterBindStorageBuffersDynamic( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ ) - , maxDescriptorSetUpdateAfterBindSampledImages( maxDescriptorSetUpdateAfterBindSampledImages_ ) - , maxDescriptorSetUpdateAfterBindStorageImages( maxDescriptorSetUpdateAfterBindStorageImages_ ) - , maxDescriptorSetUpdateAfterBindInputAttachments( maxDescriptorSetUpdateAfterBindInputAttachments_ ) + using Type = ImportSemaphoreFdInfoKHR; + }; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + struct ImportSemaphoreWin32HandleInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eImportSemaphoreWin32HandleInfoKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ImportSemaphoreWin32HandleInfoKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, + VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd, + HANDLE handle_ = {}, + LPCWSTR name_ = {} ) VULKAN_HPP_NOEXCEPT + : semaphore( semaphore_ ) + , flags( flags_ ) + , handleType( handleType_ ) + , handle( handle_ ) + , name( name_ ) + {} + + VULKAN_HPP_CONSTEXPR + ImportSemaphoreWin32HandleInfoKHR( ImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImportSemaphoreWin32HandleInfoKHR( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : ImportSemaphoreWin32HandleInfoKHR( *reinterpret_cast( &rhs ) ) {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreWin32HandleInfoKHR & + operator=( ImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImportSemaphoreWin32HandleInfoKHR & operator=( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties ) - offsetof( PhysicalDeviceDescriptorIndexingProperties, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceDescriptorIndexingProperties( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT + ImportSemaphoreWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - PhysicalDeviceDescriptorIndexingProperties& operator=( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT + ImportSemaphoreWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + semaphore = semaphore_; return *this; } - operator VkPhysicalDeviceDescriptorIndexingProperties const&() const VULKAN_HPP_NOEXCEPT + ImportSemaphoreWin32HandleInfoKHR & + setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + flags = flags_; + return *this; } - operator VkPhysicalDeviceDescriptorIndexingProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( PhysicalDeviceDescriptorIndexingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools ) - && ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative ) - && ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative ) - && ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative ) - && ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative ) - && ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative ) - && ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind ) - && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod ) - && ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers ) - && ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers ) - && ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers ) - && ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages ) - && ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages ) - && ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments ) - && ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources ) - && ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers ) - && ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers ) - && ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic ) - && ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers ) - && ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic ) - && ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages ) - && ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages ) - && ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments ); - } - - bool operator!=( PhysicalDeviceDescriptorIndexingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingProperties; - void* pNext = {}; - uint32_t maxUpdateAfterBindDescriptorsInAllPools = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {}; - uint32_t maxPerStageUpdateAfterBindResources = {}; - uint32_t maxDescriptorSetUpdateAfterBindSamplers = {}; - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {}; - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {}; - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {}; - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {}; - uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {}; - uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {}; - uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {}; - }; - static_assert( sizeof( PhysicalDeviceDescriptorIndexingProperties ) == sizeof( VkPhysicalDeviceDescriptorIndexingProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PhysicalDeviceDiscardRectanglePropertiesEXT - { - PhysicalDeviceDiscardRectanglePropertiesEXT( uint32_t maxDiscardRectangles_ = {} ) VULKAN_HPP_NOEXCEPT - : maxDiscardRectangles( maxDiscardRectangles_ ) - {} - - VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + ImportSemaphoreWin32HandleInfoKHR & + setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT ) - offsetof( PhysicalDeviceDiscardRectanglePropertiesEXT, pNext ) ); + handleType = handleType_; return *this; } - PhysicalDeviceDiscardRectanglePropertiesEXT( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + ImportSemaphoreWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + handle = handle_; + return *this; } - PhysicalDeviceDiscardRectanglePropertiesEXT& operator=( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + ImportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + name = name_; return *this; } - operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkImportSemaphoreWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceDiscardRectanglePropertiesEXT &() VULKAN_HPP_NOEXCEPT + operator VkImportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceDiscardRectanglePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImportSemaphoreWin32HandleInfoKHR const & ) const = default; +# else + bool operator==( ImportSemaphoreWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxDiscardRectangles == rhs.maxDiscardRectangles ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && + ( flags == rhs.flags ) && ( handleType == rhs.handleType ) && ( handle == rhs.handle ) && + ( name == rhs.name ); } - bool operator!=( PhysicalDeviceDiscardRectanglePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImportSemaphoreWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT; - void* pNext = {}; - uint32_t maxDiscardRectangles = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreWin32HandleInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; + VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {}; + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd; + HANDLE handle = {}; + LPCWSTR name = {}; }; - static_assert( sizeof( PhysicalDeviceDiscardRectanglePropertiesEXT ) == sizeof( VkPhysicalDeviceDiscardRectanglePropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImportSemaphoreWin32HandleInfoKHR ) == sizeof( VkImportSemaphoreWin32HandleInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceDriverProperties + template <> + struct CppType { - PhysicalDeviceDriverProperties( VULKAN_HPP_NAMESPACE::DriverId driverID_ = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary, - std::array const& driverName_ = {}, - std::array const& driverInfo_ = {}, - VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion_ = {} ) VULKAN_HPP_NOEXCEPT - : driverID( driverID_ ) - , driverName{} - , driverInfo{} - , conformanceVersion( conformanceVersion_ ) - { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( driverName, driverName_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( driverInfo, driverInfo_ ); - } - - VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties ) - offsetof( PhysicalDeviceDriverProperties, pNext ) ); - return *this; - } - - PhysicalDeviceDriverProperties( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - - PhysicalDeviceDriverProperties& operator=( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } - - operator VkPhysicalDeviceDriverProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceDriverProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( PhysicalDeviceDriverProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( driverID == rhs.driverID ) - && ( memcmp( driverName, rhs.driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof( char ) ) == 0 ) - && ( memcmp( driverInfo, rhs.driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof( char ) ) == 0 ) - && ( conformanceVersion == rhs.conformanceVersion ); - } - - bool operator!=( PhysicalDeviceDriverProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDriverProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary; - char driverName[VK_MAX_DRIVER_NAME_SIZE] = {}; - char driverInfo[VK_MAX_DRIVER_INFO_SIZE] = {}; - VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {}; + using Type = ImportSemaphoreWin32HandleInfoKHR; }; - static_assert( sizeof( PhysicalDeviceDriverProperties ) == sizeof( VkPhysicalDeviceDriverProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - struct PhysicalDeviceExclusiveScissorFeaturesNV +#if defined( VK_USE_PLATFORM_FUCHSIA ) + struct ImportSemaphoreZirconHandleInfoFUCHSIA { - VULKAN_HPP_CONSTEXPR PhysicalDeviceExclusiveScissorFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ = {} ) VULKAN_HPP_NOEXCEPT - : exclusiveScissor( exclusiveScissor_ ) - {} - - VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV ) - offsetof( PhysicalDeviceExclusiveScissorFeaturesNV, pNext ) ); - return *this; - } - - PhysicalDeviceExclusiveScissorFeaturesNV( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - - PhysicalDeviceExclusiveScissorFeaturesNV& operator=( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } - - PhysicalDeviceExclusiveScissorFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceExclusiveScissorFeaturesNV & setExclusiveScissor( VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ ) VULKAN_HPP_NOEXCEPT - { - exclusiveScissor = exclusiveScissor_; - return *this; - } - - operator VkPhysicalDeviceExclusiveScissorFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceExclusiveScissorFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eImportSemaphoreZirconHandleInfoFUCHSIA; - bool operator==( PhysicalDeviceExclusiveScissorFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( exclusiveScissor == rhs.exclusiveScissor ); - } - - bool operator!=( PhysicalDeviceExclusiveScissorFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ImportSemaphoreZirconHandleInfoFUCHSIA( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, + VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd, + zx_handle_t zirconHandle_ = {} ) VULKAN_HPP_NOEXCEPT + : semaphore( semaphore_ ) + , flags( flags_ ) + , handleType( handleType_ ) + , zirconHandle( zirconHandle_ ) + {} - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor = {}; - }; - static_assert( sizeof( PhysicalDeviceExclusiveScissorFeaturesNV ) == sizeof( VkPhysicalDeviceExclusiveScissorFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + VULKAN_HPP_CONSTEXPR ImportSemaphoreZirconHandleInfoFUCHSIA( ImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - struct PhysicalDeviceExternalBufferInfo - { - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalBufferInfo( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ = {}, - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , usage( usage_ ) - , handleType( handleType_ ) + ImportSemaphoreZirconHandleInfoFUCHSIA( VkImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT + : ImportSemaphoreZirconHandleInfoFUCHSIA( + *reinterpret_cast( &rhs ) ) {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo ) - offsetof( PhysicalDeviceExternalBufferInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 ImportSemaphoreZirconHandleInfoFUCHSIA & + operator=( ImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceExternalBufferInfo( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT + ImportSemaphoreZirconHandleInfoFUCHSIA & + operator=( VkImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - PhysicalDeviceExternalBufferInfo& operator=( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT + ImportSemaphoreZirconHandleInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - PhysicalDeviceExternalBufferInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ImportSemaphoreZirconHandleInfoFUCHSIA & + setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + semaphore = semaphore_; return *this; } - PhysicalDeviceExternalBufferInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + ImportSemaphoreZirconHandleInfoFUCHSIA & + setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT { flags = flags_; return *this; } - PhysicalDeviceExternalBufferInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT + ImportSemaphoreZirconHandleInfoFUCHSIA & + setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT { - usage = usage_; + handleType = handleType_; return *this; } - PhysicalDeviceExternalBufferInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT + ImportSemaphoreZirconHandleInfoFUCHSIA & setZirconHandle( zx_handle_t zirconHandle_ ) VULKAN_HPP_NOEXCEPT { - handleType = handleType_; + zirconHandle = zirconHandle_; return *this; } - operator VkPhysicalDeviceExternalBufferInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkImportSemaphoreZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceExternalBufferInfo &() VULKAN_HPP_NOEXCEPT + operator VkImportSemaphoreZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceExternalBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImportSemaphoreZirconHandleInfoFUCHSIA const & ) const = default; +# else + bool operator==( ImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( usage == rhs.usage ) - && ( handleType == rhs.handleType ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && + ( flags == rhs.flags ) && ( handleType == rhs.handleType ) && + ( memcmp( &zirconHandle, &rhs.zirconHandle, sizeof( zx_handle_t ) ) == 0 ); } - bool operator!=( PhysicalDeviceExternalBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImportSemaphoreZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalBufferInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreZirconHandleInfoFUCHSIA; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; + VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {}; + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd; + zx_handle_t zirconHandle = {}; }; - static_assert( sizeof( PhysicalDeviceExternalBufferInfo ) == sizeof( VkPhysicalDeviceExternalBufferInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImportSemaphoreZirconHandleInfoFUCHSIA ) == sizeof( VkImportSemaphoreZirconHandleInfoFUCHSIA ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceExternalFenceInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFenceInfo( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT - : handleType( handleType_ ) + using Type = ImportSemaphoreZirconHandleInfoFUCHSIA; + }; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + + struct InitializePerformanceApiInfoINTEL + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eInitializePerformanceApiInfoINTEL; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR InitializePerformanceApiInfoINTEL( void * pUserData_ = {} ) VULKAN_HPP_NOEXCEPT + : pUserData( pUserData_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo ) - offsetof( PhysicalDeviceExternalFenceInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + InitializePerformanceApiInfoINTEL( InitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceExternalFenceInfo( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + InitializePerformanceApiInfoINTEL( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT + : InitializePerformanceApiInfoINTEL( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 InitializePerformanceApiInfoINTEL & + operator=( InitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceExternalFenceInfo& operator=( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT + InitializePerformanceApiInfoINTEL & operator=( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceExternalFenceInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + InitializePerformanceApiInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PhysicalDeviceExternalFenceInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT + InitializePerformanceApiInfoINTEL & setPUserData( void * pUserData_ ) VULKAN_HPP_NOEXCEPT { - handleType = handleType_; + pUserData = pUserData_; return *this; } - operator VkPhysicalDeviceExternalFenceInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkInitializePerformanceApiInfoINTEL const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceExternalFenceInfo &() VULKAN_HPP_NOEXCEPT + operator VkInitializePerformanceApiInfoINTEL &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceExternalFenceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( InitializePerformanceApiInfoINTEL const & ) const = default; +#else + bool operator==( InitializePerformanceApiInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleType == rhs.handleType ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pUserData == rhs.pUserData ); } - bool operator!=( PhysicalDeviceExternalFenceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( InitializePerformanceApiInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalFenceInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInitializePerformanceApiInfoINTEL; + const void * pNext = {}; + void * pUserData = {}; }; - static_assert( sizeof( PhysicalDeviceExternalFenceInfo ) == sizeof( VkPhysicalDeviceExternalFenceInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( InitializePerformanceApiInfoINTEL ) == sizeof( VkInitializePerformanceApiInfoINTEL ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceExternalImageFormatInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalImageFormatInfo( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT - : handleType( handleType_ ) + using Type = InitializePerformanceApiInfoINTEL; + }; + + struct DisplayEventInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayEventInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + DisplayEventInfoEXT( VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ = + VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut ) VULKAN_HPP_NOEXCEPT + : displayEvent( displayEvent_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo ) - offsetof( PhysicalDeviceExternalImageFormatInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR DisplayEventInfoEXT( DisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceExternalImageFormatInfo( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + DisplayEventInfoEXT( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : DisplayEventInfoEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DisplayEventInfoEXT & + operator=( DisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceExternalImageFormatInfo& operator=( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT + DisplayEventInfoEXT & operator=( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceExternalImageFormatInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + DisplayEventInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PhysicalDeviceExternalImageFormatInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT + DisplayEventInfoEXT & setDisplayEvent( VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ ) VULKAN_HPP_NOEXCEPT { - handleType = handleType_; + displayEvent = displayEvent_; return *this; } - operator VkPhysicalDeviceExternalImageFormatInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkDisplayEventInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceExternalImageFormatInfo &() VULKAN_HPP_NOEXCEPT + operator VkDisplayEventInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceExternalImageFormatInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DisplayEventInfoEXT const & ) const = default; +#else + bool operator==( DisplayEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleType == rhs.handleType ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( displayEvent == rhs.displayEvent ); } - bool operator!=( PhysicalDeviceExternalImageFormatInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DisplayEventInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalImageFormatInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayEventInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut; }; - static_assert( sizeof( PhysicalDeviceExternalImageFormatInfo ) == sizeof( VkPhysicalDeviceExternalImageFormatInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DisplayEventInfoEXT ) == sizeof( VkDisplayEventInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceExternalMemoryHostPropertiesEXT + template <> + struct CppType { - PhysicalDeviceExternalMemoryHostPropertiesEXT( VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment_ = {} ) VULKAN_HPP_NOEXCEPT - : minImportedHostPointerAlignment( minImportedHostPointerAlignment_ ) - {} - - VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT ) - offsetof( PhysicalDeviceExternalMemoryHostPropertiesEXT, pNext ) ); - return *this; - } - - PhysicalDeviceExternalMemoryHostPropertiesEXT( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - - PhysicalDeviceExternalMemoryHostPropertiesEXT& operator=( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } - - operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( PhysicalDeviceExternalMemoryHostPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( minImportedHostPointerAlignment == rhs.minImportedHostPointerAlignment ); - } - - bool operator!=( PhysicalDeviceExternalMemoryHostPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment = {}; + using Type = DisplayEventInfoEXT; }; - static_assert( sizeof( PhysicalDeviceExternalMemoryHostPropertiesEXT ) == sizeof( VkPhysicalDeviceExternalMemoryHostPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceExternalSemaphoreInfo + struct XYColorEXT { - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalSemaphoreInfo( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT - : handleType( handleType_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR XYColorEXT( float x_ = {}, float y_ = {} ) VULKAN_HPP_NOEXCEPT + : x( x_ ) + , y( y_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo ) - offsetof( PhysicalDeviceExternalSemaphoreInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR XYColorEXT( XYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceExternalSemaphoreInfo( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + XYColorEXT( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : XYColorEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 XYColorEXT & operator=( XYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceExternalSemaphoreInfo& operator=( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT + XYColorEXT & operator=( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceExternalSemaphoreInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + XYColorEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + x = x_; return *this; } - PhysicalDeviceExternalSemaphoreInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT + XYColorEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT { - handleType = handleType_; + y = y_; return *this; } - operator VkPhysicalDeviceExternalSemaphoreInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkXYColorEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceExternalSemaphoreInfo &() VULKAN_HPP_NOEXCEPT + operator VkXYColorEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceExternalSemaphoreInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( XYColorEXT const & ) const = default; +#else + bool operator==( XYColorEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleType == rhs.handleType ); + return ( x == rhs.x ) && ( y == rhs.y ); } - bool operator!=( PhysicalDeviceExternalSemaphoreInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( XYColorEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalSemaphoreInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd; + float x = {}; + float y = {}; }; - static_assert( sizeof( PhysicalDeviceExternalSemaphoreInfo ) == sizeof( VkPhysicalDeviceExternalSemaphoreInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( XYColorEXT ) == sizeof( VkXYColorEXT ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceFeatures2 + struct HdrMetadataEXT { - VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features_ = {} ) VULKAN_HPP_NOEXCEPT - : features( features_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHdrMetadataEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR HdrMetadataEXT( VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryRed_ = {}, + VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryGreen_ = {}, + VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryBlue_ = {}, + VULKAN_HPP_NAMESPACE::XYColorEXT whitePoint_ = {}, + float maxLuminance_ = {}, + float minLuminance_ = {}, + float maxContentLightLevel_ = {}, + float maxFrameAverageLightLevel_ = {} ) VULKAN_HPP_NOEXCEPT + : displayPrimaryRed( displayPrimaryRed_ ) + , displayPrimaryGreen( displayPrimaryGreen_ ) + , displayPrimaryBlue( displayPrimaryBlue_ ) + , whitePoint( whitePoint_ ) + , maxLuminance( maxLuminance_ ) + , minLuminance( minLuminance_ ) + , maxContentLightLevel( maxContentLightLevel_ ) + , maxFrameAverageLightLevel( maxFrameAverageLightLevel_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 ) - offsetof( PhysicalDeviceFeatures2, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR HdrMetadataEXT( HdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceFeatures2( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + HdrMetadataEXT( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : HdrMetadataEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceFeatures2& operator=( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 HdrMetadataEXT & operator=( HdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + HdrMetadataEXT & operator=( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceFeatures2 & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + HdrMetadataEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PhysicalDeviceFeatures2 & setFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features_ ) VULKAN_HPP_NOEXCEPT + HdrMetadataEXT & + setDisplayPrimaryRed( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryRed_ ) VULKAN_HPP_NOEXCEPT { - features = features_; + displayPrimaryRed = displayPrimaryRed_; return *this; } - operator VkPhysicalDeviceFeatures2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFeatures2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( PhysicalDeviceFeatures2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( features == rhs.features ); - } - - bool operator!=( PhysicalDeviceFeatures2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFeatures2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features = {}; - }; - static_assert( sizeof( PhysicalDeviceFeatures2 ) == sizeof( VkPhysicalDeviceFeatures2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PhysicalDeviceFloatControlsProperties - { - PhysicalDeviceFloatControlsProperties( VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, - VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64_ = {} ) VULKAN_HPP_NOEXCEPT - : denormBehaviorIndependence( denormBehaviorIndependence_ ) - , roundingModeIndependence( roundingModeIndependence_ ) - , shaderSignedZeroInfNanPreserveFloat16( shaderSignedZeroInfNanPreserveFloat16_ ) - , shaderSignedZeroInfNanPreserveFloat32( shaderSignedZeroInfNanPreserveFloat32_ ) - , shaderSignedZeroInfNanPreserveFloat64( shaderSignedZeroInfNanPreserveFloat64_ ) - , shaderDenormPreserveFloat16( shaderDenormPreserveFloat16_ ) - , shaderDenormPreserveFloat32( shaderDenormPreserveFloat32_ ) - , shaderDenormPreserveFloat64( shaderDenormPreserveFloat64_ ) - , shaderDenormFlushToZeroFloat16( shaderDenormFlushToZeroFloat16_ ) - , shaderDenormFlushToZeroFloat32( shaderDenormFlushToZeroFloat32_ ) - , shaderDenormFlushToZeroFloat64( shaderDenormFlushToZeroFloat64_ ) - , shaderRoundingModeRTEFloat16( shaderRoundingModeRTEFloat16_ ) - , shaderRoundingModeRTEFloat32( shaderRoundingModeRTEFloat32_ ) - , shaderRoundingModeRTEFloat64( shaderRoundingModeRTEFloat64_ ) - , shaderRoundingModeRTZFloat16( shaderRoundingModeRTZFloat16_ ) - , shaderRoundingModeRTZFloat32( shaderRoundingModeRTZFloat32_ ) - , shaderRoundingModeRTZFloat64( shaderRoundingModeRTZFloat64_ ) - {} - - VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT + HdrMetadataEXT & + setDisplayPrimaryGreen( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryGreen_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties ) - offsetof( PhysicalDeviceFloatControlsProperties, pNext ) ); + displayPrimaryGreen = displayPrimaryGreen_; return *this; } - PhysicalDeviceFloatControlsProperties( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - - PhysicalDeviceFloatControlsProperties& operator=( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT + HdrMetadataEXT & + setDisplayPrimaryBlue( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryBlue_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + displayPrimaryBlue = displayPrimaryBlue_; return *this; } - operator VkPhysicalDeviceFloatControlsProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFloatControlsProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( PhysicalDeviceFloatControlsProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + HdrMetadataEXT & setWhitePoint( VULKAN_HPP_NAMESPACE::XYColorEXT const & whitePoint_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( denormBehaviorIndependence == rhs.denormBehaviorIndependence ) - && ( roundingModeIndependence == rhs.roundingModeIndependence ) - && ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 ) - && ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 ) - && ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 ) - && ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 ) - && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 ) - && ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 ) - && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 ) - && ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 ) - && ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 ) - && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 ) - && ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 ) - && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 ) - && ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 ) - && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 ) - && ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 ); + whitePoint = whitePoint_; + return *this; } - bool operator!=( PhysicalDeviceFloatControlsProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + HdrMetadataEXT & setMaxLuminance( float maxLuminance_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + maxLuminance = maxLuminance_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFloatControlsProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly; - VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly; - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {}; - }; - static_assert( sizeof( PhysicalDeviceFloatControlsProperties ) == sizeof( VkPhysicalDeviceFloatControlsProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PhysicalDeviceFragmentDensityMapFeaturesEXT - { - PhysicalDeviceFragmentDensityMapFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ = {} ) VULKAN_HPP_NOEXCEPT - : fragmentDensityMap( fragmentDensityMap_ ) - , fragmentDensityMapDynamic( fragmentDensityMapDynamic_ ) - , fragmentDensityMapNonSubsampledImages( fragmentDensityMapNonSubsampledImages_ ) - {} - - VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + HdrMetadataEXT & setMinLuminance( float minLuminance_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT ) - offsetof( PhysicalDeviceFragmentDensityMapFeaturesEXT, pNext ) ); + minLuminance = minLuminance_; return *this; } - PhysicalDeviceFragmentDensityMapFeaturesEXT( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + HdrMetadataEXT & setMaxContentLightLevel( float maxContentLightLevel_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + maxContentLightLevel = maxContentLightLevel_; + return *this; } - PhysicalDeviceFragmentDensityMapFeaturesEXT& operator=( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + HdrMetadataEXT & setMaxFrameAverageLightLevel( float maxFrameAverageLightLevel_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + maxFrameAverageLightLevel = maxFrameAverageLightLevel_; return *this; } - operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkHdrMetadataEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT &() VULKAN_HPP_NOEXCEPT + operator VkHdrMetadataEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceFragmentDensityMapFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( HdrMetadataEXT const & ) const = default; +#else + bool operator==( HdrMetadataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fragmentDensityMap == rhs.fragmentDensityMap ) - && ( fragmentDensityMapDynamic == rhs.fragmentDensityMapDynamic ) - && ( fragmentDensityMapNonSubsampledImages == rhs.fragmentDensityMapNonSubsampledImages ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( displayPrimaryRed == rhs.displayPrimaryRed ) && + ( displayPrimaryGreen == rhs.displayPrimaryGreen ) && ( displayPrimaryBlue == rhs.displayPrimaryBlue ) && + ( whitePoint == rhs.whitePoint ) && ( maxLuminance == rhs.maxLuminance ) && + ( minLuminance == rhs.minLuminance ) && ( maxContentLightLevel == rhs.maxContentLightLevel ) && + ( maxFrameAverageLightLevel == rhs.maxFrameAverageLightLevel ); } - bool operator!=( PhysicalDeviceFragmentDensityMapFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( HdrMetadataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHdrMetadataEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryRed = {}; + VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryGreen = {}; + VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryBlue = {}; + VULKAN_HPP_NAMESPACE::XYColorEXT whitePoint = {}; + float maxLuminance = {}; + float minLuminance = {}; + float maxContentLightLevel = {}; + float maxFrameAverageLightLevel = {}; }; - static_assert( sizeof( PhysicalDeviceFragmentDensityMapFeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMapFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( HdrMetadataEXT ) == sizeof( VkHdrMetadataEXT ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceFragmentDensityMapPropertiesEXT + template <> + struct CppType { - PhysicalDeviceFragmentDensityMapPropertiesEXT( VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize_ = {}, - VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations_ = {} ) VULKAN_HPP_NOEXCEPT - : minFragmentDensityTexelSize( minFragmentDensityTexelSize_ ) - , maxFragmentDensityTexelSize( maxFragmentDensityTexelSize_ ) - , fragmentDensityInvocations( fragmentDensityInvocations_ ) - {} - - VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT ) - offsetof( PhysicalDeviceFragmentDensityMapPropertiesEXT, pNext ) ); - return *this; - } - - PhysicalDeviceFragmentDensityMapPropertiesEXT( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - - PhysicalDeviceFragmentDensityMapPropertiesEXT& operator=( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } - - operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + using Type = HdrMetadataEXT; + }; - bool operator==( PhysicalDeviceFragmentDensityMapPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( minFragmentDensityTexelSize == rhs.minFragmentDensityTexelSize ) - && ( maxFragmentDensityTexelSize == rhs.maxFragmentDensityTexelSize ) - && ( fragmentDensityInvocations == rhs.fragmentDensityInvocations ); - } + struct SemaphoreSignalInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreSignalInfo; - bool operator!=( PhysicalDeviceFragmentDensityMapPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SemaphoreSignalInfo( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, + uint64_t value_ = {} ) VULKAN_HPP_NOEXCEPT + : semaphore( semaphore_ ) + , value( value_ ) + {} - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations = {}; - }; - static_assert( sizeof( PhysicalDeviceFragmentDensityMapPropertiesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMapPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + VULKAN_HPP_CONSTEXPR SemaphoreSignalInfo( SemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - struct PhysicalDeviceFragmentShaderBarycentricFeaturesNV - { - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderBarycentricFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ = {} ) VULKAN_HPP_NOEXCEPT - : fragmentShaderBarycentric( fragmentShaderBarycentric_ ) + SemaphoreSignalInfo( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : SemaphoreSignalInfo( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesNV ) - offsetof( PhysicalDeviceFragmentShaderBarycentricFeaturesNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 SemaphoreSignalInfo & + operator=( SemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceFragmentShaderBarycentricFeaturesNV( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + SemaphoreSignalInfo & operator=( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - PhysicalDeviceFragmentShaderBarycentricFeaturesNV& operator=( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + SemaphoreSignalInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - PhysicalDeviceFragmentShaderBarycentricFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + SemaphoreSignalInfo & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + semaphore = semaphore_; return *this; } - PhysicalDeviceFragmentShaderBarycentricFeaturesNV & setFragmentShaderBarycentric( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ ) VULKAN_HPP_NOEXCEPT + SemaphoreSignalInfo & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT { - fragmentShaderBarycentric = fragmentShaderBarycentric_; + value = value_; return *this; } - operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const&() const VULKAN_HPP_NOEXCEPT + operator VkSemaphoreSignalInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV &() VULKAN_HPP_NOEXCEPT + operator VkSemaphoreSignalInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SemaphoreSignalInfo const & ) const = default; +#else + bool operator==( SemaphoreSignalInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fragmentShaderBarycentric == rhs.fragmentShaderBarycentric ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphore == rhs.semaphore ) && + ( value == rhs.value ); } - bool operator!=( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SemaphoreSignalInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreSignalInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; + uint64_t value = {}; }; - static_assert( sizeof( PhysicalDeviceFragmentShaderBarycentricFeaturesNV ) == sizeof( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SemaphoreSignalInfo ) == sizeof( VkSemaphoreSignalInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderInterlockFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ = {} ) VULKAN_HPP_NOEXCEPT - : fragmentShaderSampleInterlock( fragmentShaderSampleInterlock_ ) - , fragmentShaderPixelInterlock( fragmentShaderPixelInterlock_ ) - , fragmentShaderShadingRateInterlock( fragmentShaderShadingRateInterlock_ ) - {} + using Type = SemaphoreSignalInfo; + }; + using SemaphoreSignalInfoKHR = SemaphoreSignalInfo; - VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT ) - offsetof( PhysicalDeviceFragmentShaderInterlockFeaturesEXT, pNext ) ); - return *this; - } +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoSessionParametersUpdateInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eVideoSessionParametersUpdateInfoKHR; - PhysicalDeviceFragmentShaderInterlockFeaturesEXT( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoSessionParametersUpdateInfoKHR( uint32_t updateSequenceCount_ = {} ) VULKAN_HPP_NOEXCEPT + : updateSequenceCount( updateSequenceCount_ ) + {} - PhysicalDeviceFragmentShaderInterlockFeaturesEXT& operator=( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR VideoSessionParametersUpdateInfoKHR( VideoSessionParametersUpdateInfoKHR const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + VideoSessionParametersUpdateInfoKHR( VkVideoSessionParametersUpdateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoSessionParametersUpdateInfoKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderSampleInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 VideoSessionParametersUpdateInfoKHR & + operator=( VideoSessionParametersUpdateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoSessionParametersUpdateInfoKHR & + operator=( VkVideoSessionParametersUpdateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - fragmentShaderSampleInterlock = fragmentShaderSampleInterlock_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderPixelInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ ) VULKAN_HPP_NOEXCEPT + VideoSessionParametersUpdateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - fragmentShaderPixelInterlock = fragmentShaderPixelInterlock_; + pNext = pNext_; return *this; } - PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderShadingRateInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ ) VULKAN_HPP_NOEXCEPT + VideoSessionParametersUpdateInfoKHR & setUpdateSequenceCount( uint32_t updateSequenceCount_ ) VULKAN_HPP_NOEXCEPT { - fragmentShaderShadingRateInterlock = fragmentShaderShadingRateInterlock_; + updateSequenceCount = updateSequenceCount_; return *this; } - operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkVideoSessionParametersUpdateInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT &() VULKAN_HPP_NOEXCEPT + operator VkVideoSessionParametersUpdateInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoSessionParametersUpdateInfoKHR const & ) const = default; +# else + bool operator==( VideoSessionParametersUpdateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fragmentShaderSampleInterlock == rhs.fragmentShaderSampleInterlock ) - && ( fragmentShaderPixelInterlock == rhs.fragmentShaderPixelInterlock ) - && ( fragmentShaderShadingRateInterlock == rhs.fragmentShaderShadingRateInterlock ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( updateSequenceCount == rhs.updateSequenceCount ); } - bool operator!=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( VideoSessionParametersUpdateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoSessionParametersUpdateInfoKHR; + const void * pNext = {}; + uint32_t updateSequenceCount = {}; }; - static_assert( sizeof( PhysicalDeviceFragmentShaderInterlockFeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VideoSessionParametersUpdateInfoKHR ) == sizeof( VkVideoSessionParametersUpdateInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceGroupProperties + template <> + struct CppType { - PhysicalDeviceGroupProperties( uint32_t physicalDeviceCount_ = {}, - std::array const& physicalDevices_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 subsetAllocation_ = {} ) VULKAN_HPP_NOEXCEPT - : physicalDeviceCount( physicalDeviceCount_ ) - , physicalDevices{} - , subsetAllocation( subsetAllocation_ ) - { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( physicalDevices, physicalDevices_ ); - } - - VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties ) - offsetof( PhysicalDeviceGroupProperties, pNext ) ); - return *this; - } - - PhysicalDeviceGroupProperties( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - - PhysicalDeviceGroupProperties& operator=( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } - - operator VkPhysicalDeviceGroupProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceGroupProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + using Type = VideoSessionParametersUpdateInfoKHR; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - bool operator==( PhysicalDeviceGroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( physicalDeviceCount == rhs.physicalDeviceCount ) - && ( memcmp( physicalDevices, rhs.physicalDevices, std::min( VK_MAX_DEVICE_GROUP_SIZE, physicalDeviceCount ) * sizeof( VULKAN_HPP_NAMESPACE::PhysicalDevice ) ) == 0 ) - && ( subsetAllocation == rhs.subsetAllocation ); - } + struct SemaphoreWaitInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreWaitInfo; - bool operator!=( PhysicalDeviceGroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SemaphoreWaitInfo( VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_ = {}, + uint32_t semaphoreCount_ = {}, + const VULKAN_HPP_NAMESPACE::Semaphore * pSemaphores_ = {}, + const uint64_t * pValues_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , semaphoreCount( semaphoreCount_ ) + , pSemaphores( pSemaphores_ ) + , pValues( pValues_ ) + {} - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceGroupProperties; - void* pNext = {}; - uint32_t physicalDeviceCount = {}; - VULKAN_HPP_NAMESPACE::PhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE] = {}; - VULKAN_HPP_NAMESPACE::Bool32 subsetAllocation = {}; - }; - static_assert( sizeof( PhysicalDeviceGroupProperties ) == sizeof( VkPhysicalDeviceGroupProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + VULKAN_HPP_CONSTEXPR SemaphoreWaitInfo( SemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - struct PhysicalDeviceHostQueryResetFeatures - { - VULKAN_HPP_CONSTEXPR PhysicalDeviceHostQueryResetFeatures( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ = {} ) VULKAN_HPP_NOEXCEPT - : hostQueryReset( hostQueryReset_ ) + SemaphoreWaitInfo( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : SemaphoreWaitInfo( *reinterpret_cast( &rhs ) ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures ) - offsetof( PhysicalDeviceHostQueryResetFeatures, pNext ) ); - return *this; +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SemaphoreWaitInfo( + VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & semaphores_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & values_ = {} ) + : flags( flags_ ) + , semaphoreCount( static_cast( semaphores_.size() ) ) + , pSemaphores( semaphores_.data() ) + , pValues( values_.data() ) + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( semaphores_.size() == values_.size() ); +# else + if ( semaphores_.size() != values_.size() ) + { + throw LogicError( VULKAN_HPP_NAMESPACE_STRING + "::SemaphoreWaitInfo::SemaphoreWaitInfo: semaphores_.size() != values_.size()" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceHostQueryResetFeatures( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR_14 SemaphoreWaitInfo & + operator=( SemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceHostQueryResetFeatures& operator=( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + SemaphoreWaitInfo & operator=( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceHostQueryResetFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + SemaphoreWaitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PhysicalDeviceHostQueryResetFeatures & setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT + SemaphoreWaitInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_ ) VULKAN_HPP_NOEXCEPT { - hostQueryReset = hostQueryReset_; + flags = flags_; return *this; } - operator VkPhysicalDeviceHostQueryResetFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceHostQueryResetFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( PhysicalDeviceHostQueryResetFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( hostQueryReset == rhs.hostQueryReset ); - } - - bool operator!=( PhysicalDeviceHostQueryResetFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT + SemaphoreWaitInfo & setSemaphoreCount( uint32_t semaphoreCount_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + semaphoreCount = semaphoreCount_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceHostQueryResetFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {}; - }; - static_assert( sizeof( PhysicalDeviceHostQueryResetFeatures ) == sizeof( VkPhysicalDeviceHostQueryResetFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PhysicalDeviceIDProperties - { - PhysicalDeviceIDProperties( std::array const& deviceUUID_ = {}, - std::array const& driverUUID_ = {}, - std::array const& deviceLUID_ = {}, - uint32_t deviceNodeMask_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid_ = {} ) VULKAN_HPP_NOEXCEPT - : deviceUUID{} - , driverUUID{} - , deviceLUID{} - , deviceNodeMask( deviceNodeMask_ ) - , deviceLUIDValid( deviceLUIDValid_ ) + SemaphoreWaitInfo & setPSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore * pSemaphores_ ) VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( deviceUUID, deviceUUID_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( driverUUID, driverUUID_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( deviceLUID, deviceLUID_ ); + pSemaphores = pSemaphores_; + return *this; } - VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SemaphoreWaitInfo & setSemaphores( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & semaphores_ ) + VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties ) - offsetof( PhysicalDeviceIDProperties, pNext ) ); + semaphoreCount = static_cast( semaphores_.size() ); + pSemaphores = semaphores_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceIDProperties( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT + SemaphoreWaitInfo & setPValues( const uint64_t * pValues_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pValues = pValues_; + return *this; } - PhysicalDeviceIDProperties& operator=( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + SemaphoreWaitInfo & + setValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & values_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + semaphoreCount = static_cast( values_.size() ); + pValues = values_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPhysicalDeviceIDProperties const&() const VULKAN_HPP_NOEXCEPT + operator VkSemaphoreWaitInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceIDProperties &() VULKAN_HPP_NOEXCEPT + operator VkSemaphoreWaitInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceIDProperties const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SemaphoreWaitInfo const & ) const = default; +#else + bool operator==( SemaphoreWaitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memcmp( deviceUUID, rhs.deviceUUID, VK_UUID_SIZE * sizeof( uint8_t ) ) == 0 ) - && ( memcmp( driverUUID, rhs.driverUUID, VK_UUID_SIZE * sizeof( uint8_t ) ) == 0 ) - && ( memcmp( deviceLUID, rhs.deviceLUID, VK_LUID_SIZE * sizeof( uint8_t ) ) == 0 ) - && ( deviceNodeMask == rhs.deviceNodeMask ) - && ( deviceLUIDValid == rhs.deviceLUIDValid ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( semaphoreCount == rhs.semaphoreCount ) && ( pSemaphores == rhs.pSemaphores ) && + ( pValues == rhs.pValues ); } - bool operator!=( PhysicalDeviceIDProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SemaphoreWaitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIdProperties; - void* pNext = {}; - uint8_t deviceUUID[VK_UUID_SIZE] = {}; - uint8_t driverUUID[VK_UUID_SIZE] = {}; - uint8_t deviceLUID[VK_LUID_SIZE] = {}; - uint32_t deviceNodeMask = {}; - VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreWaitInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags = {}; + uint32_t semaphoreCount = {}; + const VULKAN_HPP_NAMESPACE::Semaphore * pSemaphores = {}; + const uint64_t * pValues = {}; }; - static_assert( sizeof( PhysicalDeviceIDProperties ) == sizeof( VkPhysicalDeviceIDProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SemaphoreWaitInfo ) == sizeof( VkSemaphoreWaitInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceImageDrmFormatModifierInfoEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceImageDrmFormatModifierInfoEXT( uint64_t drmFormatModifier_ = {}, - VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, - uint32_t queueFamilyIndexCount_ = {}, - const uint32_t* pQueueFamilyIndices_ = {} ) VULKAN_HPP_NOEXCEPT - : drmFormatModifier( drmFormatModifier_ ) - , sharingMode( sharingMode_ ) - , queueFamilyIndexCount( queueFamilyIndexCount_ ) - , pQueueFamilyIndices( pQueueFamilyIndices_ ) - {} - - VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT ) - offsetof( PhysicalDeviceImageDrmFormatModifierInfoEXT, pNext ) ); - return *this; - } - - PhysicalDeviceImageDrmFormatModifierInfoEXT( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + using Type = SemaphoreWaitInfo; + }; + using SemaphoreWaitInfoKHR = SemaphoreWaitInfo; - PhysicalDeviceImageDrmFormatModifierInfoEXT& operator=( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } +#ifndef VULKAN_HPP_NO_SMART_HANDLE + class Device; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueAccelerationStructureKHR = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueAccelerationStructureNV = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueBuffer = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueBufferView = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = PoolFree; + }; + using UniqueCommandBuffer = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueCommandPool = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueDeferredOperationKHR = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueDescriptorPool = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = PoolFree; + }; + using UniqueDescriptorSet = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueDescriptorSetLayout = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueDescriptorUpdateTemplate = UniqueHandle; + using UniqueDescriptorUpdateTemplateKHR = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectFree; + }; + using UniqueDeviceMemory = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueEvent = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueFence = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueFramebuffer = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueImage = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueImageView = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueIndirectCommandsLayoutNV = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniquePipeline = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniquePipelineCache = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniquePipelineLayout = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniquePrivateDataSlotEXT = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueQueryPool = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueRenderPass = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueSampler = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueSamplerYcbcrConversion = UniqueHandle; + using UniqueSamplerYcbcrConversionKHR = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueSemaphore = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueShaderModule = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueSwapchainKHR = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueValidationCacheEXT = UniqueHandle; +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueVideoSessionKHR = UniqueHandle; +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueVideoSessionParametersKHR = UniqueHandle; +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ - PhysicalDeviceImageDrmFormatModifierInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + class Device + { + public: + using CType = VkDevice; - PhysicalDeviceImageDrmFormatModifierInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT - { - drmFormatModifier = drmFormatModifier_; - return *this; - } + 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; - PhysicalDeviceImageDrmFormatModifierInfoEXT & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT - { - sharingMode = sharingMode_; - return *this; - } + public: + VULKAN_HPP_CONSTEXPR Device() = default; + VULKAN_HPP_CONSTEXPR Device( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT Device( VkDevice device ) VULKAN_HPP_NOEXCEPT : m_device( device ) {} - PhysicalDeviceImageDrmFormatModifierInfoEXT & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + Device & operator=( VkDevice device ) VULKAN_HPP_NOEXCEPT { - queueFamilyIndexCount = queueFamilyIndexCount_; + m_device = device; return *this; } +#endif - PhysicalDeviceImageDrmFormatModifierInfoEXT & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT + Device & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - pQueueFamilyIndices = pQueueFamilyIndices_; + m_device = {}; return *this; } - operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const&() const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( Device const & ) const = default; +#else + bool operator==( Device const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_device == rhs.m_device; } - operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT &() VULKAN_HPP_NOEXCEPT + bool operator!=( Device const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_device != rhs.m_device; } - bool operator==( PhysicalDeviceImageDrmFormatModifierInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator<( Device const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( drmFormatModifier == rhs.drmFormatModifier ) - && ( sharingMode == rhs.sharingMode ) - && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) - && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices ); + return m_device < rhs.m_device; } +#endif - bool operator!=( PhysicalDeviceImageDrmFormatModifierInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } +#if defined( VK_USE_PLATFORM_WIN32_KHR ) +# ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result acquireFullScreenExclusiveModeEXT( + VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + template + VULKAN_HPP_NODISCARD Result + acquireNextImage2KHR( const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR * pAcquireInfo, + uint32_t * pImageIndex, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD ResultValue + acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + uint64_t timeout, + VULKAN_HPP_NAMESPACE::Semaphore semaphore, + VULKAN_HPP_NAMESPACE::Fence fence, + uint32_t * pImageIndex, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD ResultValue + acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + uint64_t timeout, + VULKAN_HPP_NAMESPACE::Semaphore semaphore VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result acquirePerformanceConfigurationINTEL( + const VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL * pAcquireInfo, + VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL * pConfiguration, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType::type + acquirePerformanceConfigurationINTEL( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + acquirePerformanceConfigurationINTELUnique( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR * pInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + allocateCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo * pAllocateInfo, + VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType>::type + allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = CommandBufferAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType>::type + allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, + CommandBufferAllocator & commandBufferAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template >> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType, CommandBufferAllocator>>::type + allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template < + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename CommandBufferAllocator = std::allocator>, + typename B = CommandBufferAllocator, + typename std::enable_if>::value, + int>::type = 0> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType, CommandBufferAllocator>>::type + allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, + CommandBufferAllocator & commandBufferAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + allocateDescriptorSets( const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo * pAllocateInfo, + VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType>::type + allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = DescriptorSetAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType>::type + allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, + DescriptorSetAllocator & descriptorSetAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template >> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType, DescriptorSetAllocator>>::type + allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template < + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename DescriptorSetAllocator = std::allocator>, + typename B = DescriptorSetAllocator, + typename std::enable_if>::value, + int>::type = 0> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType, DescriptorSetAllocator>>::type + allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, + DescriptorSetAllocator & descriptorSetAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + allocateMemory( const VULKAN_HPP_NAMESPACE::MemoryAllocateInfo * pAllocateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::DeviceMemory * pMemory, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + allocateMemory( const MemoryAllocateInfo & allocateInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + allocateMemoryUnique( const MemoryAllocateInfo & allocateInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result bindAccelerationStructureMemoryNV( + uint32_t bindInfoCount, + const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV * pBindInfos, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type bindAccelerationStructureMemoryNV( + ArrayProxy const & bindInfos, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT; - const void* pNext = {}; - uint64_t drmFormatModifier = {}; - VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive; - uint32_t queueFamilyIndexCount = {}; - const uint32_t* pQueueFamilyIndices = {}; - }; - static_assert( sizeof( PhysicalDeviceImageDrmFormatModifierInfoEXT ) == sizeof( VkPhysicalDeviceImageDrmFormatModifierInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result + bindBufferMemory( VULKAN_HPP_NAMESPACE::Buffer buffer, + VULKAN_HPP_NAMESPACE::DeviceMemory memory, + VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + bindBufferMemory( VULKAN_HPP_NAMESPACE::Buffer buffer, + VULKAN_HPP_NAMESPACE::DeviceMemory memory, + VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - struct PhysicalDeviceImageFormatInfo2 - { - VULKAN_HPP_CONSTEXPR PhysicalDeviceImageFormatInfo2( VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, - VULKAN_HPP_NAMESPACE::ImageType type_ = VULKAN_HPP_NAMESPACE::ImageType::e1D, - VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal, - VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, - VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT - : format( format_ ) - , type( type_ ) - , tiling( tiling_ ) - , usage( usage_ ) - , flags( flags_ ) - {} + template + VULKAN_HPP_NODISCARD Result + bindBufferMemory2( uint32_t bindInfoCount, + const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo * pBindInfos, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + bindBufferMemory2( ArrayProxy const & bindInfos, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 ) - offsetof( PhysicalDeviceImageFormatInfo2, pNext ) ); - return *this; - } + template + VULKAN_HPP_NODISCARD Result + bindBufferMemory2KHR( uint32_t bindInfoCount, + const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo * pBindInfos, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + bindBufferMemory2KHR( ArrayProxy const & bindInfos, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceImageFormatInfo2( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result + bindImageMemory( VULKAN_HPP_NAMESPACE::Image image, + VULKAN_HPP_NAMESPACE::DeviceMemory memory, + VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + bindImageMemory( VULKAN_HPP_NAMESPACE::Image image, + VULKAN_HPP_NAMESPACE::DeviceMemory memory, + VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + bindImageMemory2( uint32_t bindInfoCount, + const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo * pBindInfos, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + bindImageMemory2( ArrayProxy const & bindInfos, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + bindImageMemory2KHR( uint32_t bindInfoCount, + const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo * pBindInfos, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + bindImageMemory2KHR( ArrayProxy const & bindInfos, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + VULKAN_HPP_NODISCARD Result bindVideoSessionMemoryKHR( + VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession, + uint32_t videoSessionBindMemoryCount, + const VULKAN_HPP_NAMESPACE::VideoBindMemoryKHR * pVideoSessionBindMemories, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type bindVideoSessionMemoryKHR( + VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession, + ArrayProxy const & videoSessionBindMemories, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + template + VULKAN_HPP_NODISCARD Result buildAccelerationStructuresKHR( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + uint32_t infoCount, + const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pInfos, + const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + Result buildAccelerationStructuresKHR( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + ArrayProxy const & infos, + ArrayProxy const & pBuildRangeInfos, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceImageFormatInfo2& operator=( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result + compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t shader, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t shader, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result copyAccelerationStructureKHR( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR * pInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result + copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + const CopyAccelerationStructureInfoKHR & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result copyAccelerationStructureToMemoryKHR( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR * pInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result + copyAccelerationStructureToMemoryKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + const CopyAccelerationStructureToMemoryInfoKHR & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result copyMemoryToAccelerationStructureKHR( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR * pInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result + copyMemoryToAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + const CopyMemoryToAccelerationStructureInfoKHR & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result createAccelerationStructureKHR( + const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructure, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType::type + createAccelerationStructureKHR( const AccelerationStructureCreateInfoKHR & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createAccelerationStructureKHRUnique( const AccelerationStructureCreateInfoKHR & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result createAccelerationStructureNV( + const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructure, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + typename ResultValueType::type createAccelerationStructureNV( + const AccelerationStructureCreateInfoNV & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_INLINE + typename ResultValueType>::type + createAccelerationStructureNVUnique( const AccelerationStructureCreateInfoNV & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createBuffer( const VULKAN_HPP_NAMESPACE::BufferCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Buffer * pBuffer, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createBuffer( const BufferCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createBufferUnique( const BufferCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createBufferView( const VULKAN_HPP_NAMESPACE::BufferViewCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::BufferView * pView, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createBufferView( const BufferViewCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createBufferViewUnique( const BufferViewCreateInfo & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createCommandPool( const VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::CommandPool * pCommandPool, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createCommandPool( const CommandPoolCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createCommandPoolUnique( const CommandPoolCreateInfo & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + uint32_t createInfoCount, + const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo * pCreateInfos, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Pipeline * pPipelines, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD ResultValue> createComputePipelines( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = PipelineAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD ResultValue> + createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + PipelineAllocator & pipelineAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template + VULKAN_HPP_NODISCARD ResultValue createComputePipeline( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template >> + VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> + createComputePipelinesUnique( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template >, + typename B = PipelineAllocator, + typename std::enable_if>::value, + int>::type = 0> + VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> + createComputePipelinesUnique( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + PipelineAllocator & pipelineAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template + VULKAN_HPP_NODISCARD ResultValue> createComputePipelineUnique( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result createDeferredOperationKHR( + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::DeferredOperationKHR * pDeferredOperation, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + typename ResultValueType::type createDeferredOperationKHR( + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_INLINE typename ResultValueType>::type + createDeferredOperationKHRUnique( Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createDescriptorPool( const VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::DescriptorPool * pDescriptorPool, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createDescriptorPool( const DescriptorPoolCreateInfo & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createDescriptorPoolUnique( const DescriptorPoolCreateInfo & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result createDescriptorSetLayout( + const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayout, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createDescriptorSetLayout( const DescriptorSetLayoutCreateInfo & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createDescriptorSetLayoutUnique( const DescriptorSetLayoutCreateInfo & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result createDescriptorUpdateTemplate( + const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate * pDescriptorUpdateTemplate, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType::type + createDescriptorUpdateTemplate( const DescriptorUpdateTemplateCreateInfo & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createDescriptorUpdateTemplateUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result createDescriptorUpdateTemplateKHR( + const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate * pDescriptorUpdateTemplate, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType::type + createDescriptorUpdateTemplateKHR( const DescriptorUpdateTemplateCreateInfo & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createDescriptorUpdateTemplateKHRUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createEvent( const VULKAN_HPP_NAMESPACE::EventCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Event * pEvent, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createEvent( const EventCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createEventUnique( const EventCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createFence( const VULKAN_HPP_NAMESPACE::FenceCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Fence * pFence, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createFence( const FenceCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createFenceUnique( const FenceCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createFramebuffer( const VULKAN_HPP_NAMESPACE::FramebufferCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Framebuffer * pFramebuffer, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createFramebuffer( const FramebufferCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createFramebufferUnique( const FramebufferCreateInfo & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + uint32_t createInfoCount, + const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo * pCreateInfos, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Pipeline * pPipelines, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD ResultValue> createGraphicsPipelines( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = PipelineAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD ResultValue> + createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + PipelineAllocator & pipelineAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template + VULKAN_HPP_NODISCARD ResultValue createGraphicsPipeline( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template >> + VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> + createGraphicsPipelinesUnique( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template >, + typename B = PipelineAllocator, + typename std::enable_if>::value, + int>::type = 0> + VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> + createGraphicsPipelinesUnique( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + PipelineAllocator & pipelineAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template + VULKAN_HPP_NODISCARD ResultValue> createGraphicsPipelineUnique( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createImage( const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Image * pImage, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createImage( const ImageCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createImageUnique( const ImageCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createImageView( const VULKAN_HPP_NAMESPACE::ImageViewCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::ImageView * pView, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createImageView( const ImageViewCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createImageViewUnique( const ImageViewCreateInfo & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result createIndirectCommandsLayoutNV( + const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV * pIndirectCommandsLayout, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType::type + createIndirectCommandsLayoutNV( const IndirectCommandsLayoutCreateInfoNV & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createIndirectCommandsLayoutNVUnique( const IndirectCommandsLayoutCreateInfoNV & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createPipelineCache( const VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::PipelineCache * pPipelineCache, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createPipelineCache( const PipelineCacheCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createPipelineCacheUnique( const PipelineCacheCreateInfo & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createPipelineLayout( const VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::PipelineLayout * pPipelineLayout, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createPipelineLayout( const PipelineLayoutCreateInfo & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createPipelineLayoutUnique( const PipelineLayoutCreateInfo & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createPrivateDataSlotEXT( const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT * pPrivateDataSlot, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + typename ResultValueType::type createPrivateDataSlotEXT( + const PrivateDataSlotCreateInfoEXT & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_INLINE typename ResultValueType>::type + createPrivateDataSlotEXTUnique( const PrivateDataSlotCreateInfoEXT & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createQueryPool( const VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::QueryPool * pQueryPool, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createQueryPool( const QueryPoolCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createQueryPoolUnique( const QueryPoolCreateInfo & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result createRayTracingPipelinesKHR( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + uint32_t createInfoCount, + const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR * pCreateInfos, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Pipeline * pPipelines, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD ResultValue> createRayTracingPipelinesKHR( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = PipelineAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD ResultValue> createRayTracingPipelinesKHR( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + PipelineAllocator & pipelineAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template + VULKAN_HPP_NODISCARD ResultValue createRayTracingPipelineKHR( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template >> + VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> + createRayTracingPipelinesKHRUnique( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template >, + typename B = PipelineAllocator, + typename std::enable_if>::value, + int>::type = 0> + VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> + createRayTracingPipelinesKHRUnique( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + PipelineAllocator & pipelineAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template + VULKAN_HPP_NODISCARD ResultValue> createRayTracingPipelineKHRUnique( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result createRayTracingPipelinesNV( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + uint32_t createInfoCount, + const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV * pCreateInfos, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Pipeline * pPipelines, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD ResultValue> createRayTracingPipelinesNV( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = PipelineAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD ResultValue> createRayTracingPipelinesNV( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + PipelineAllocator & pipelineAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template + VULKAN_HPP_NODISCARD ResultValue createRayTracingPipelineNV( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template >> + VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> + createRayTracingPipelinesNVUnique( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template >, + typename B = PipelineAllocator, + typename std::enable_if>::value, + int>::type = 0> + VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> + createRayTracingPipelinesNVUnique( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + PipelineAllocator & pipelineAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template + VULKAN_HPP_NODISCARD ResultValue> createRayTracingPipelineNVUnique( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createRenderPass( const RenderPassCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createRenderPassUnique( const RenderPassCreateInfo & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createRenderPass2( const RenderPassCreateInfo2 & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createRenderPass2Unique( const RenderPassCreateInfo2 & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createRenderPass2KHR( const RenderPassCreateInfo2 & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createRenderPass2KHRUnique( const RenderPassCreateInfo2 & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createSampler( const VULKAN_HPP_NAMESPACE::SamplerCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Sampler * pSampler, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createSampler( const SamplerCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createSamplerUnique( const SamplerCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result createSamplerYcbcrConversion( + const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion * pYcbcrConversion, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createSamplerYcbcrConversion( const SamplerYcbcrConversionCreateInfo & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createSamplerYcbcrConversionUnique( const SamplerYcbcrConversionCreateInfo & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result createSamplerYcbcrConversionKHR( + const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion * pYcbcrConversion, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createSamplerYcbcrConversionKHR( const SamplerYcbcrConversionCreateInfo & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createSamplerYcbcrConversionKHRUnique( const SamplerYcbcrConversionCreateInfo & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Semaphore * pSemaphore, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createSemaphore( const SemaphoreCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createSemaphoreUnique( const SemaphoreCreateInfo & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createShaderModule( const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::ShaderModule * pShaderModule, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createShaderModule( const ShaderModuleCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createShaderModuleUnique( const ShaderModuleCreateInfo & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result createSharedSwapchainsKHR( + uint32_t swapchainCount, + const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR * pCreateInfos, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType>::type + createSharedSwapchainsKHR( ArrayProxy const & createInfos, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = SwapchainKHRAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType>::type + createSharedSwapchainsKHR( ArrayProxy const & createInfos, + Optional allocator, + SwapchainKHRAllocator & swapchainKHRAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createSharedSwapchainKHR( + const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template >> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType, SwapchainKHRAllocator>>::type + createSharedSwapchainsKHRUnique( + ArrayProxy const & createInfos, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template >, + typename B = SwapchainKHRAllocator, + typename std::enable_if>::value, + int>::type = 0> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType, SwapchainKHRAllocator>>::type + createSharedSwapchainsKHRUnique( + ArrayProxy const & createInfos, + Optional allocator, + SwapchainKHRAllocator & swapchainKHRAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type + createSharedSwapchainKHRUnique( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createSwapchainKHR( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchain, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createValidationCacheEXT( const VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::ValidationCacheEXT * pValidationCache, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + typename ResultValueType::type createValidationCacheEXT( + const ValidationCacheCreateInfoEXT & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_INLINE typename ResultValueType>::type + createValidationCacheEXTUnique( const ValidationCacheCreateInfoEXT & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + VULKAN_HPP_NODISCARD Result + createVideoSessionKHR( const VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::VideoSessionKHR * pVideoSession, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createVideoSessionKHR( const VideoSessionCreateInfoKHR & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createVideoSessionKHRUnique( const VideoSessionCreateInfoKHR & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + VULKAN_HPP_NODISCARD Result createVideoSessionParametersKHR( + const VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR * pVideoSessionParameters, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType::type + createVideoSessionParametersKHR( const VideoSessionParametersCreateInfoKHR & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createVideoSessionParametersKHRUnique( const VideoSessionParametersCreateInfoKHR & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + template + VULKAN_HPP_NODISCARD Result debugMarkerSetObjectNameEXT( + const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT * pNameInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result debugMarkerSetObjectTagEXT( + const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT * pTagInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceImageFormatInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result + deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#else + template + VULKAN_HPP_NODISCARD Result + deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT - { - format = format_; - return *this; - } + template + void destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroyAccelerationStructureKHR( + VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } + template + void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT - { - tiling = tiling_; - return *this; - } + template + void destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroyAccelerationStructureNV( + VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT - { - usage = usage_; - return *this; - } + template + void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceImageFormatInfo2 & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } + template + void destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPhysicalDeviceImageFormatInfo2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + template + void destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPhysicalDeviceImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + template + void destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void + destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - bool operator==( PhysicalDeviceImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( format == rhs.format ) - && ( type == rhs.type ) - && ( tiling == rhs.tiling ) - && ( usage == rhs.usage ) - && ( flags == rhs.flags ); - } + template + void destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - bool operator!=( PhysicalDeviceImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } + template + void destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void + destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageFormatInfo2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D; - VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal; - VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {}; - VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {}; - }; - static_assert( sizeof( PhysicalDeviceImageFormatInfo2 ) == sizeof( VkPhysicalDeviceImageFormatInfo2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + template + void destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - struct PhysicalDeviceImageViewImageFormatInfoEXT - { - VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewImageFormatInfoEXT( VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ = VULKAN_HPP_NAMESPACE::ImageViewType::e1D ) VULKAN_HPP_NOEXCEPT - : imageViewType( imageViewType_ ) - {} + template + void destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroyDeferredOperationKHR( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT ) - offsetof( PhysicalDeviceImageViewImageFormatInfoEXT, pNext ) ); - return *this; - } + template + void destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceImageViewImageFormatInfoEXT( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + template + void destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroyDescriptorPool( + VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceImageViewImageFormatInfoEXT& operator=( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + template + void destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceImageViewImageFormatInfoEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + template + void destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroyDescriptorSetLayout( + VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceImageViewImageFormatInfoEXT & setImageViewType( VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ ) VULKAN_HPP_NOEXCEPT - { - imageViewType = imageViewType_; - return *this; - } + template + void destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPhysicalDeviceImageViewImageFormatInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + template + void destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroyDescriptorUpdateTemplate( + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPhysicalDeviceImageViewImageFormatInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + template + void destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroyDescriptorUpdateTemplateKHR( + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - bool operator==( PhysicalDeviceImageViewImageFormatInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( imageViewType == rhs.imageViewType ); - } + template + void destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - bool operator!=( PhysicalDeviceImageViewImageFormatInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } + template + void destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageViewType imageViewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D; - }; - static_assert( sizeof( PhysicalDeviceImageViewImageFormatInfoEXT ) == sizeof( VkPhysicalDeviceImageViewImageFormatInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + template + void destroyEvent( VULKAN_HPP_NAMESPACE::Event event, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroyEvent( VULKAN_HPP_NAMESPACE::Event event VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - struct PhysicalDeviceImagelessFramebufferFeatures - { - VULKAN_HPP_CONSTEXPR PhysicalDeviceImagelessFramebufferFeatures( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ = {} ) VULKAN_HPP_NOEXCEPT - : imagelessFramebuffer( imagelessFramebuffer_ ) - {} + template + void destroy( VULKAN_HPP_NAMESPACE::Event event, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::Event event, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures ) - offsetof( PhysicalDeviceImagelessFramebufferFeatures, pNext ) ); - return *this; - } + template + void destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroyFence( VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceImagelessFramebufferFeatures( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + template + void destroy( VULKAN_HPP_NAMESPACE::Fence fence, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::Fence fence, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceImagelessFramebufferFeatures& operator=( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + template + void destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void + destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceImagelessFramebufferFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + template + void destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceImagelessFramebufferFeatures & setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT - { - imagelessFramebuffer = imagelessFramebuffer_; - return *this; - } + template + void destroyImage( VULKAN_HPP_NAMESPACE::Image image, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroyImage( VULKAN_HPP_NAMESPACE::Image image VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPhysicalDeviceImagelessFramebufferFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + template + void destroy( VULKAN_HPP_NAMESPACE::Image image, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::Image image, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPhysicalDeviceImagelessFramebufferFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + template + void destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - bool operator==( PhysicalDeviceImagelessFramebufferFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( imagelessFramebuffer == rhs.imagelessFramebuffer ); - } + template + void destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - bool operator!=( PhysicalDeviceImagelessFramebufferFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } + template + void destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroyIndirectCommandsLayoutNV( + VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImagelessFramebufferFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {}; - }; - static_assert( sizeof( PhysicalDeviceImagelessFramebufferFeatures ) == sizeof( VkPhysicalDeviceImagelessFramebufferFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + template + void destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - struct PhysicalDeviceIndexTypeUint8FeaturesEXT - { - VULKAN_HPP_CONSTEXPR PhysicalDeviceIndexTypeUint8FeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ = {} ) VULKAN_HPP_NOEXCEPT - : indexTypeUint8( indexTypeUint8_ ) - {} + template + void destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT ) - offsetof( PhysicalDeviceIndexTypeUint8FeaturesEXT, pNext ) ); - return *this; - } + template + void destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceIndexTypeUint8FeaturesEXT( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + template + void destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceIndexTypeUint8FeaturesEXT& operator=( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + template + void destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceIndexTypeUint8FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + template + void destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroyPipelineLayout( + VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceIndexTypeUint8FeaturesEXT & setIndexTypeUint8( VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ ) VULKAN_HPP_NOEXCEPT - { - indexTypeUint8 = indexTypeUint8_; - return *this; - } + template + void destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + template + void destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroyPrivateDataSlotEXT( + VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + template + void destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - bool operator==( PhysicalDeviceIndexTypeUint8FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( indexTypeUint8 == rhs.indexTypeUint8 ); - } + template + void destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - bool operator!=( PhysicalDeviceIndexTypeUint8FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } + template + void destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8 = {}; - }; - static_assert( sizeof( PhysicalDeviceIndexTypeUint8FeaturesEXT ) == sizeof( VkPhysicalDeviceIndexTypeUint8FeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + template + void destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void + destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - struct PhysicalDeviceInlineUniformBlockFeaturesEXT - { - VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ = {} ) VULKAN_HPP_NOEXCEPT - : inlineUniformBlock( inlineUniformBlock_ ) - , descriptorBindingInlineUniformBlockUpdateAfterBind( descriptorBindingInlineUniformBlockUpdateAfterBind_ ) - {} + template + void destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeaturesEXT ) - offsetof( PhysicalDeviceInlineUniformBlockFeaturesEXT, pNext ) ); - return *this; - } + template + void destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceInlineUniformBlockFeaturesEXT( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + template + void destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceInlineUniformBlockFeaturesEXT& operator=( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + template + void destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroySamplerYcbcrConversion( + VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceInlineUniformBlockFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + template + void destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroySamplerYcbcrConversionKHR( + VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceInlineUniformBlockFeaturesEXT & setInlineUniformBlock( VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ ) VULKAN_HPP_NOEXCEPT - { - inlineUniformBlock = inlineUniformBlock_; - return *this; - } + template + void destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceInlineUniformBlockFeaturesEXT & setDescriptorBindingInlineUniformBlockUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingInlineUniformBlockUpdateAfterBind = descriptorBindingInlineUniformBlockUpdateAfterBind_; - return *this; - } + template + void destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void + destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void + destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroyValidationCacheEXT( + VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + void + destroyVideoSessionKHR( VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroyVideoSessionKHR( + VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + void destroy( VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + void destroyVideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroyVideoSessionParametersKHR( + VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + void destroy( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result + waitIdle( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + waitIdle( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + template + VULKAN_HPP_NODISCARD Result + displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, + const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT * pDisplayPowerInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + typename ResultValueType::type + displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, + const DisplayPowerInfoEXT & displayPowerInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + flushMappedMemoryRanges( uint32_t memoryRangeCount, + const VULKAN_HPP_NAMESPACE::MappedMemoryRange * pMemoryRanges, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + flushMappedMemoryRanges( ArrayProxy const & memoryRanges, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - bool operator==( PhysicalDeviceInlineUniformBlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( inlineUniformBlock == rhs.inlineUniformBlock ) - && ( descriptorBindingInlineUniformBlockUpdateAfterBind == rhs.descriptorBindingInlineUniformBlockUpdateAfterBind ); - } + template + void freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool commandPool, + uint32_t commandBufferCount, + const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool commandPool, + ArrayProxy const & commandBuffers, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void free( VULKAN_HPP_NAMESPACE::CommandPool commandPool, + uint32_t commandBufferCount, + const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void free( VULKAN_HPP_NAMESPACE::CommandPool commandPool, + ArrayProxy const & commandBuffers, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + Result freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, + uint32_t descriptorSetCount, + const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + typename ResultValueType::type + freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, + ArrayProxy const & descriptorSets, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + Result free( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, + uint32_t descriptorSetCount, + const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + typename ResultValueType::type + free( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, + ArrayProxy const & descriptorSets, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getAccelerationStructureBuildSizesKHR( + VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, + const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pBuildInfo, + const uint32_t * pMaxPrimitiveCounts, + VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR * pSizeInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR + getAccelerationStructureBuildSizesKHR( + VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, + const AccelerationStructureBuildGeometryInfoKHR & buildInfo, + ArrayProxy const & maxPrimitiveCounts VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + DeviceAddress getAccelerationStructureAddressKHR( + const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR * pInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + DeviceAddress getAccelerationStructureAddressKHR( + const AccelerationStructureDeviceAddressInfoKHR & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getAccelerationStructureHandleNV( + VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, + size_t dataSize, + void * pData, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, + ArrayProxy const & data, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type + getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, + size_t dataSize, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getAccelerationStructureMemoryRequirementsNV( + const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV * pInfo, + VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR * pMemoryRequirements, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR getAccelerationStructureMemoryRequirementsNV( + const AccelerationStructureMemoryRequirementsInfoNV & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + template + VULKAN_HPP_NODISCARD StructureChain getAccelerationStructureMemoryRequirementsNV( + const AccelerationStructureMemoryRequirementsInfoNV & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + template + VULKAN_HPP_NODISCARD Result getAndroidHardwareBufferPropertiesANDROID( + const struct AHardwareBuffer * buffer, + VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID * pProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType::type + getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type + getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + + template + DeviceAddress + getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + DeviceAddress + getBufferAddress( const BufferDeviceAddressInfo & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + DeviceAddress + getBufferAddressEXT( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + DeviceAddress + getBufferAddressEXT( const BufferDeviceAddressInfo & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + DeviceAddress + getBufferAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + DeviceAddress + getBufferAddressKHR( const BufferDeviceAddressInfo & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, + VULKAN_HPP_NAMESPACE::MemoryRequirements * pMemoryRequirements, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements getBufferMemoryRequirements( + VULKAN_HPP_NAMESPACE::Buffer buffer, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 * pInfo, + VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2( + const BufferMemoryRequirementsInfo2 & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + template + VULKAN_HPP_NODISCARD StructureChain getBufferMemoryRequirements2( + const BufferMemoryRequirementsInfo2 & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 * pInfo, + VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2KHR( + const BufferMemoryRequirementsInfo2 & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + template + VULKAN_HPP_NODISCARD StructureChain getBufferMemoryRequirements2KHR( + const BufferMemoryRequirementsInfo2 & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + uint64_t getBufferOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + uint64_t getBufferOpaqueCaptureAddress( const BufferDeviceAddressInfo & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + uint64_t getBufferOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + uint64_t getBufferOpaqueCaptureAddressKHR( const BufferDeviceAddressInfo & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getCalibratedTimestampsEXT( + uint32_t timestampCount, + const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT * pTimestampInfos, + uint64_t * pTimestamps, + uint64_t * pMaxDeviation, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getCalibratedTimestampsEXT( + ArrayProxy const & timestampInfos, + ArrayProxy const & timestamps, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType, uint64_t>>::type + getCalibratedTimestampsEXT( + ArrayProxy const & timestampInfos, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = Uint64_tAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType, uint64_t>>::type + getCalibratedTimestampsEXT( + ArrayProxy const & timestampInfos, + Uint64_tAllocator & uint64_tAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + uint32_t getDeferredOperationMaxConcurrencyKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; - bool operator!=( PhysicalDeviceInlineUniformBlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result getDeferredOperationResultKHR( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#else + template + VULKAN_HPP_NODISCARD Result + getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo, + VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport * pSupport, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupport( + const DescriptorSetLayoutCreateInfo & createInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + template + VULKAN_HPP_NODISCARD StructureChain getDescriptorSetLayoutSupport( + const DescriptorSetLayoutCreateInfo & createInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo, + VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport * pSupport, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupportKHR( + const DescriptorSetLayoutCreateInfo & createInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + template + VULKAN_HPP_NODISCARD StructureChain getDescriptorSetLayoutSupportKHR( + const DescriptorSetLayoutCreateInfo & createInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getAccelerationStructureCompatibilityKHR( + const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR * pVersionInfo, + VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR * pCompatibility, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR + getAccelerationStructureCompatibilityKHR( const AccelerationStructureVersionInfoKHR & versionInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getGroupPeerMemoryFeatures( uint32_t heapIndex, + uint32_t localDeviceIndex, + uint32_t remoteDeviceIndex, + VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags * pPeerMemoryFeatures, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeatures( + uint32_t heapIndex, + uint32_t localDeviceIndex, + uint32_t remoteDeviceIndex, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, + uint32_t localDeviceIndex, + uint32_t remoteDeviceIndex, + VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags * pPeerMemoryFeatures, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeaturesKHR( + uint32_t heapIndex, + uint32_t localDeviceIndex, + uint32_t remoteDeviceIndex, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getGroupPresentCapabilitiesKHR( + VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType::type + getGroupPresentCapabilitiesKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + VULKAN_HPP_NODISCARD Result getGroupSurfacePresentModes2EXT( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo, + VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR * pModes, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType::type + getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + template + VULKAN_HPP_NODISCARD Result getGroupSurfacePresentModesKHR( + VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR * pModes, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType::type + getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, + VULKAN_HPP_NAMESPACE::DeviceSize * pCommittedMemoryInBytes, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceSize + getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + uint64_t getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo * pInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + uint64_t getMemoryOpaqueCaptureAddress( const DeviceMemoryOpaqueCaptureAddressInfo & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + uint64_t getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo * pInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + uint64_t getMemoryOpaqueCaptureAddressKHR( const DeviceMemoryOpaqueCaptureAddressInfo & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + PFN_vkVoidFunction + getProcAddr( const char * pName, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + PFN_vkVoidFunction + getProcAddr( const std::string & name, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getQueue( uint32_t queueFamilyIndex, + uint32_t queueIndex, + VULKAN_HPP_NAMESPACE::Queue * pQueue, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Queue + getQueue( uint32_t queueFamilyIndex, + uint32_t queueIndex, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getQueue2( const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 * pQueueInfo, + VULKAN_HPP_NAMESPACE::Queue * pQueue, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Queue + getQueue2( const DeviceQueueInfo2 & queueInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind = {}; - }; - static_assert( sizeof( PhysicalDeviceInlineUniformBlockFeaturesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result + getEventStatus( VULKAN_HPP_NAMESPACE::Event event, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#else + template + VULKAN_HPP_NODISCARD Result getEventStatus( VULKAN_HPP_NAMESPACE::Event event, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - struct PhysicalDeviceInlineUniformBlockPropertiesEXT - { - PhysicalDeviceInlineUniformBlockPropertiesEXT( uint32_t maxInlineUniformBlockSize_ = {}, - uint32_t maxPerStageDescriptorInlineUniformBlocks_ = {}, - uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ = {}, - uint32_t maxDescriptorSetInlineUniformBlocks_ = {}, - uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ = {} ) VULKAN_HPP_NOEXCEPT - : maxInlineUniformBlockSize( maxInlineUniformBlockSize_ ) - , maxPerStageDescriptorInlineUniformBlocks( maxPerStageDescriptorInlineUniformBlocks_ ) - , maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ ) - , maxDescriptorSetInlineUniformBlocks( maxDescriptorSetInlineUniformBlocks_ ) - , maxDescriptorSetUpdateAfterBindInlineUniformBlocks( maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ ) - {} + template + VULKAN_HPP_NODISCARD Result + getFenceFdKHR( const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR * pGetFdInfo, + int * pFd, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockPropertiesEXT ) - offsetof( PhysicalDeviceInlineUniformBlockPropertiesEXT, pNext ) ); - return *this; - } +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result + getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#else + template + VULKAN_HPP_NODISCARD Result getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + VULKAN_HPP_NODISCARD Result + getFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR * pGetWin32HandleInfo, + HANDLE * pHandle, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + template + void getGeneratedCommandsMemoryRequirementsNV( + const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV * pInfo, + VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getGeneratedCommandsMemoryRequirementsNV( + const GeneratedCommandsMemoryRequirementsInfoNV & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + template + VULKAN_HPP_NODISCARD StructureChain getGeneratedCommandsMemoryRequirementsNV( + const GeneratedCommandsMemoryRequirementsInfoNV & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getImageDrmFormatModifierPropertiesEXT( + VULKAN_HPP_NAMESPACE::Image image, + VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT * pProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + typename ResultValueType::type + getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, + VULKAN_HPP_NAMESPACE::MemoryRequirements * pMemoryRequirements, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements getImageMemoryRequirements( + VULKAN_HPP_NAMESPACE::Image image, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 * pInfo, + VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2( + const ImageMemoryRequirementsInfo2 & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + template + VULKAN_HPP_NODISCARD StructureChain getImageMemoryRequirements2( + const ImageMemoryRequirementsInfo2 & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 * pInfo, + VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2KHR( + const ImageMemoryRequirementsInfo2 & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + template + VULKAN_HPP_NODISCARD StructureChain getImageMemoryRequirements2KHR( + const ImageMemoryRequirementsInfo2 & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getImageSparseMemoryRequirements( + VULKAN_HPP_NAMESPACE::Image image, + uint32_t * pSparseMemoryRequirementCount, + VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements * pSparseMemoryRequirements, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD std::vector + getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = SparseImageMemoryRequirementsAllocator, + typename std::enable_if::value, + int>::type = 0> + VULKAN_HPP_NODISCARD std::vector + getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, + SparseImageMemoryRequirementsAllocator & sparseImageMemoryRequirementsAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getImageSparseMemoryRequirements2( + const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 * pInfo, + uint32_t * pSparseMemoryRequirementCount, + VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 * pSparseMemoryRequirements, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD std::vector + getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = SparseImageMemoryRequirements2Allocator, + typename std::enable_if::value, + int>::type = 0> + VULKAN_HPP_NODISCARD std::vector + getImageSparseMemoryRequirements2( + const ImageSparseMemoryRequirementsInfo2 & info, + SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getImageSparseMemoryRequirements2KHR( + const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 * pInfo, + uint32_t * pSparseMemoryRequirementCount, + VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 * pSparseMemoryRequirements, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD std::vector + getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = SparseImageMemoryRequirements2Allocator, + typename std::enable_if::value, + int>::type = 0> + VULKAN_HPP_NODISCARD std::vector + getImageSparseMemoryRequirements2KHR( + const ImageSparseMemoryRequirementsInfo2 & info, + SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, + const VULKAN_HPP_NAMESPACE::ImageSubresource * pSubresource, + VULKAN_HPP_NAMESPACE::SubresourceLayout * pLayout, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SubresourceLayout getImageSubresourceLayout( + VULKAN_HPP_NAMESPACE::Image image, + const ImageSubresource & subresource, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + getImageViewAddressNVX( VULKAN_HPP_NAMESPACE::ImageView imageView, + VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX * pProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType::type + getImageViewAddressNVX( VULKAN_HPP_NAMESPACE::ImageView imageView, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + uint32_t + getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX * pInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + uint32_t + getImageViewHandleNVX( const ImageViewHandleInfoNVX & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + template + VULKAN_HPP_NODISCARD Result getMemoryAndroidHardwareBufferANDROID( + const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID * pInfo, + struct AHardwareBuffer ** pBuffer, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + + template + VULKAN_HPP_NODISCARD Result + getMemoryFdKHR( const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR * pGetFdInfo, + int * pFd, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, + int fd, + VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR * pMemoryFdProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, + int fd, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getMemoryHostPointerPropertiesEXT( + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, + const void * pHostPointer, + VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType::type + getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, + const void * pHostPointer, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + VULKAN_HPP_NODISCARD Result + getMemoryWin32HandleKHR( const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo, + HANDLE * pHandle, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + VULKAN_HPP_NODISCARD Result + getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory memory, + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, + HANDLE * pHandle, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory memory, + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + VULKAN_HPP_NODISCARD Result getMemoryWin32HandlePropertiesKHR( + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, + HANDLE handle, + VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType::type + getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, + HANDLE handle, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + template + VULKAN_HPP_NODISCARD Result getMemoryZirconHandleFUCHSIA( + const VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo, + zx_handle_t * pZirconHandle, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getMemoryZirconHandleFUCHSIA( const MemoryGetZirconHandleInfoFUCHSIA & getZirconHandleInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + template + VULKAN_HPP_NODISCARD Result getMemoryZirconHandlePropertiesFUCHSIA( + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, + zx_handle_t zirconHandle, + VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA * pMemoryZirconHandleProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + typename ResultValueType::type + getMemoryZirconHandlePropertiesFUCHSIA( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, + zx_handle_t zirconHandle, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + + template + VULKAN_HPP_NODISCARD Result getPastPresentationTimingGOOGLE( + VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + uint32_t * pPresentationTimingCount, + VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE * pPresentationTimings, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template < + typename PastPresentationTimingGOOGLEAllocator = std::allocator, + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = PastPresentationTimingGOOGLEAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + PastPresentationTimingGOOGLEAllocator & pastPresentationTimingGOOGLEAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getPerformanceParameterINTEL( + VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, + VULKAN_HPP_NAMESPACE::PerformanceValueINTEL * pValue, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + size_t * pDataSize, + void * pData, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = Uint8_tAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + Uint8_tAllocator & uint8_tAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getPipelineExecutableInternalRepresentationsKHR( + const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR * pExecutableInfo, + uint32_t * pInternalRepresentationCount, + VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR * pInternalRepresentations, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, + Dispatch const & d + VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template < + typename PipelineExecutableInternalRepresentationKHRAllocator = + std::allocator, + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = PipelineExecutableInternalRepresentationKHRAllocator, + typename std::enable_if::value, + int>::type = 0> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + getPipelineExecutableInternalRepresentationsKHR( + const PipelineExecutableInfoKHR & executableInfo, + PipelineExecutableInternalRepresentationKHRAllocator & pipelineExecutableInternalRepresentationKHRAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getPipelineExecutablePropertiesKHR( + const VULKAN_HPP_NAMESPACE::PipelineInfoKHR * pPipelineInfo, + uint32_t * pExecutableCount, + VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR * pProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType< + std::vector>::type + getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = PipelineExecutablePropertiesKHRAllocator, + typename std::enable_if::value, + int>::type = 0> + VULKAN_HPP_NODISCARD typename ResultValueType< + std::vector>::type + getPipelineExecutablePropertiesKHR( + const PipelineInfoKHR & pipelineInfo, + PipelineExecutablePropertiesKHRAllocator & pipelineExecutablePropertiesKHRAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getPipelineExecutableStatisticsKHR( + const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR * pExecutableInfo, + uint32_t * pStatisticCount, + VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR * pStatistics, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType< + std::vector>::type + getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = PipelineExecutableStatisticKHRAllocator, + typename std::enable_if::value, + int>::type = 0> + VULKAN_HPP_NODISCARD typename ResultValueType< + std::vector>::type + getPipelineExecutableStatisticsKHR( + const PipelineExecutableInfoKHR & executableInfo, + PipelineExecutableStatisticKHRAllocator & pipelineExecutableStatisticKHRAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, + uint64_t objectHandle, + VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, + uint64_t * pData, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD uint64_t + getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, + uint64_t objectHandle, + VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount, + size_t dataSize, + void * pData, + VULKAN_HPP_NAMESPACE::DeviceSize stride, + VULKAN_HPP_NAMESPACE::QueryResultFlags flags, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result + getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount, + ArrayProxy const & data, + VULKAN_HPP_NAMESPACE::DeviceSize stride, + VULKAN_HPP_NAMESPACE::QueryResultFlags flags, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD ResultValue> + getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount, + size_t dataSize, + VULKAN_HPP_NAMESPACE::DeviceSize stride, + VULKAN_HPP_NAMESPACE::QueryResultFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template + VULKAN_HPP_NODISCARD ResultValue + getQueryPoolResult( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount, + VULKAN_HPP_NAMESPACE::DeviceSize stride, + VULKAN_HPP_NAMESPACE::QueryResultFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getRayTracingCaptureReplayShaderGroupHandlesKHR( + VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void * pData, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + ArrayProxy const & data, + Dispatch const & d + VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type + getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + Dispatch const & d + VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getRayTracingCaptureReplayShaderGroupHandleKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + Dispatch const & d + VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getRayTracingShaderGroupHandlesKHR( + VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void * pData, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + ArrayProxy const & data, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type + getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getRayTracingShaderGroupHandleKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getRayTracingShaderGroupHandlesNV( + VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void * pData, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + ArrayProxy const & data, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type + getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getRayTracingShaderGroupHandleNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + DeviceSize getRayTracingShaderGroupStackSizeKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t group, + VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; + + template + VULKAN_HPP_NODISCARD Result getRefreshCycleDurationGOOGLE( + VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE * pDisplayTimingProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType::type + getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void + getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, + VULKAN_HPP_NAMESPACE::Extent2D * pGranularity, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Extent2D + getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, + uint64_t * pValue, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getSemaphoreCounterValueKHR( + VULKAN_HPP_NAMESPACE::Semaphore semaphore, + uint64_t * pValue, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + getSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR * pGetFdInfo, + int * pFd, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + VULKAN_HPP_NODISCARD Result getSemaphoreWin32HandleKHR( + const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo, + HANDLE * pHandle, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + template + VULKAN_HPP_NODISCARD Result getSemaphoreZirconHandleFUCHSIA( + const VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo, + zx_handle_t * pZirconHandle, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getSemaphoreZirconHandleFUCHSIA( const SemaphoreGetZirconHandleInfoFUCHSIA & getZirconHandleInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + + template + VULKAN_HPP_NODISCARD Result + getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, + VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, + size_t * pInfoSize, + void * pInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, + VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = Uint8_tAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, + VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, + Uint8_tAllocator & uint8_tAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, + uint64_t * pCounterValue, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + uint32_t * pSwapchainImageCount, + VULKAN_HPP_NAMESPACE::Image * pSwapchainImages, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = ImageAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + ImageAllocator & imageAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PhysicalDeviceInlineUniformBlockPropertiesEXT( VkPhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result + getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#else + template + VULKAN_HPP_NODISCARD Result getSwapchainStatusKHR( + VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getValidationCacheDataEXT( + VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, + size_t * pDataSize, + void * pData, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = Uint8_tAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, + Uint8_tAllocator & uint8_tAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + VULKAN_HPP_NODISCARD Result getVideoSessionMemoryRequirementsKHR( + VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession, + uint32_t * pVideoSessionMemoryRequirementsCount, + VULKAN_HPP_NAMESPACE::VideoGetMemoryPropertiesKHR * pVideoSessionMemoryRequirements, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + getVideoSessionMemoryRequirementsKHR( VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template < + typename VideoGetMemoryPropertiesKHRAllocator = std::allocator, + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = VideoGetMemoryPropertiesKHRAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + getVideoSessionMemoryRequirementsKHR( VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession, + VideoGetMemoryPropertiesKHRAllocator & videoGetMemoryPropertiesKHRAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + template + VULKAN_HPP_NODISCARD Result + importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR * pImportFenceFdInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + VULKAN_HPP_NODISCARD Result importFenceWin32HandleKHR( + const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + template + VULKAN_HPP_NODISCARD Result + importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + VULKAN_HPP_NODISCARD Result importSemaphoreWin32HandleKHR( + const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + template + VULKAN_HPP_NODISCARD Result importSemaphoreZirconHandleFUCHSIA( + const VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA * pImportSemaphoreZirconHandleInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type importSemaphoreZirconHandleFUCHSIA( + const ImportSemaphoreZirconHandleInfoFUCHSIA & importSemaphoreZirconHandleInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + + template + VULKAN_HPP_NODISCARD Result initializePerformanceApiINTEL( + const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL * pInitializeInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result invalidateMappedMemoryRanges( + uint32_t memoryRangeCount, + const VULKAN_HPP_NAMESPACE::MappedMemoryRange * pMemoryRanges, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + invalidateMappedMemoryRanges( ArrayProxy const & memoryRanges, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + mapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, + VULKAN_HPP_NAMESPACE::DeviceSize offset, + VULKAN_HPP_NAMESPACE::DeviceSize size, + VULKAN_HPP_NAMESPACE::MemoryMapFlags flags, + void ** ppData, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + mapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, + VULKAN_HPP_NAMESPACE::DeviceSize offset, + VULKAN_HPP_NAMESPACE::DeviceSize size, + VULKAN_HPP_NAMESPACE::MemoryMapFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache dstCache, + uint32_t srcCacheCount, + const VULKAN_HPP_NAMESPACE::PipelineCache * pSrcCaches, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache dstCache, + ArrayProxy const & srcCaches, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache, + uint32_t srcCacheCount, + const VULKAN_HPP_NAMESPACE::ValidationCacheEXT * pSrcCaches, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache, + ArrayProxy const & srcCaches, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + registerEventEXT( const VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT * pDeviceEventInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Fence * pFence, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + typename ResultValueType::type + registerEventEXT( const DeviceEventInfoEXT & deviceEventInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_INLINE typename ResultValueType>::type + registerEventEXTUnique( const DeviceEventInfoEXT & deviceEventInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, + const VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT * pDisplayEventInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Fence * pFence, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + typename ResultValueType::type registerDisplayEventEXT( + VULKAN_HPP_NAMESPACE::DisplayKHR display, + const DisplayEventInfoEXT & displayEventInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_INLINE typename ResultValueType>::type + registerDisplayEventEXTUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, + const DisplayEventInfoEXT & displayEventInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) +# ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result releaseFullScreenExclusiveModeEXT( + VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PhysicalDeviceInlineUniformBlockPropertiesEXT& operator=( VkPhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result releasePerformanceConfigurationINTEL( + VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type releasePerformanceConfigurationINTEL( + VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result + release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT &() VULKAN_HPP_NOEXCEPT + template + void + releaseProfilingLockKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result + resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, + VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#else + template + typename ResultValueType::type + resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, + VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + Result resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, + VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#else + template + typename ResultValueType::type + resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, + VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result + resetEvent( VULKAN_HPP_NAMESPACE::Event event, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#else + template + typename ResultValueType::type + resetEvent( VULKAN_HPP_NAMESPACE::Event event, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + resetFences( uint32_t fenceCount, + const VULKAN_HPP_NAMESPACE::Fence * pFences, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + typename ResultValueType::type + resetFences( ArrayProxy const & fences, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void resetQueryPoolEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + VULKAN_HPP_NODISCARD Result setDebugUtilsObjectNameEXT( + const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pNameInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result setDebugUtilsObjectTagEXT( + const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT * pTagInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result + setEvent( VULKAN_HPP_NAMESPACE::Event event, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void setHdrMetadataEXT( uint32_t swapchainCount, + const VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains, + const VULKAN_HPP_NAMESPACE::HdrMetadataEXT * pMetadata, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void setHdrMetadataEXT( ArrayProxy const & swapchains, + ArrayProxy const & metadata, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain, + VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result + setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, + uint64_t objectHandle, + VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, + uint64_t data, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#else + template + typename ResultValueType::type + setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, + uint64_t objectHandle, + VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, + uint64_t data, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo * pSignalInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + signalSemaphore( const SemaphoreSignalInfo & signalInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo * pSignalInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + signalSemaphoreKHR( const SemaphoreSignalInfo & signalInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void trimCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, + VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void trimCommandPoolKHR( VULKAN_HPP_NAMESPACE::CommandPool commandPool, + VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void uninitializePerformanceApiINTEL( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; + + template + void unmapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + + template + void updateDescriptorSetWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, + const void * pData, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; + + template + void updateDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, + const void * pData, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; + + template + void updateDescriptorSets( uint32_t descriptorWriteCount, + const VULKAN_HPP_NAMESPACE::WriteDescriptorSet * pDescriptorWrites, + uint32_t descriptorCopyCount, + const VULKAN_HPP_NAMESPACE::CopyDescriptorSet * pDescriptorCopies, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void updateDescriptorSets( ArrayProxy const & descriptorWrites, + ArrayProxy const & descriptorCopies, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + VULKAN_HPP_NODISCARD Result updateVideoSessionParametersKHR( + VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters, + const VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR * pUpdateInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + updateVideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters, + const VideoSessionParametersUpdateInfoKHR & updateInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + template + VULKAN_HPP_NODISCARD Result + waitForFences( uint32_t fenceCount, + const VULKAN_HPP_NAMESPACE::Fence * pFences, + VULKAN_HPP_NAMESPACE::Bool32 waitAll, + uint64_t timeout, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result waitForFences( ArrayProxy const & fences, + VULKAN_HPP_NAMESPACE::Bool32 waitAll, + uint64_t timeout, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + waitSemaphores( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo * pWaitInfo, + uint64_t timeout, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result waitSemaphores( const SemaphoreWaitInfo & waitInfo, + uint64_t timeout, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + waitSemaphoresKHR( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo * pWaitInfo, + uint64_t timeout, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result waitSemaphoresKHR( const SemaphoreWaitInfo & waitInfo, + uint64_t timeout, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result writeAccelerationStructuresPropertiesKHR( + uint32_t accelerationStructureCount, + const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures, + VULKAN_HPP_NAMESPACE::QueryType queryType, + size_t dataSize, + void * pData, + size_t stride, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + writeAccelerationStructuresPropertiesKHR( + ArrayProxy const & accelerationStructures, + VULKAN_HPP_NAMESPACE::QueryType queryType, + ArrayProxy const & data, + size_t stride, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type + writeAccelerationStructuresPropertiesKHR( + ArrayProxy const & accelerationStructures, + VULKAN_HPP_NAMESPACE::QueryType queryType, + size_t dataSize, + size_t stride, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type writeAccelerationStructuresPropertyKHR( + ArrayProxy const & accelerationStructures, + VULKAN_HPP_NAMESPACE::QueryType queryType, + size_t stride, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDevice() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_device; } - bool operator==( PhysicalDeviceInlineUniformBlockPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxInlineUniformBlockSize == rhs.maxInlineUniformBlockSize ) - && ( maxPerStageDescriptorInlineUniformBlocks == rhs.maxPerStageDescriptorInlineUniformBlocks ) - && ( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks == rhs.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks ) - && ( maxDescriptorSetInlineUniformBlocks == rhs.maxDescriptorSetInlineUniformBlocks ) - && ( maxDescriptorSetUpdateAfterBindInlineUniformBlocks == rhs.maxDescriptorSetUpdateAfterBindInlineUniformBlocks ); + return m_device != VK_NULL_HANDLE; } - bool operator!=( PhysicalDeviceInlineUniformBlockPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_device == VK_NULL_HANDLE; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT; - void* pNext = {}; - uint32_t maxInlineUniformBlockSize = {}; - uint32_t maxPerStageDescriptorInlineUniformBlocks = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = {}; - uint32_t maxDescriptorSetInlineUniformBlocks = {}; - uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks = {}; + private: + VkDevice m_device = {}; }; - static_assert( sizeof( PhysicalDeviceInlineUniformBlockPropertiesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::Device ) == sizeof( VkDevice ), + "handle and wrapper have different size!" ); - struct PhysicalDeviceLimits + template <> + struct VULKAN_HPP_DEPRECATED( "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - PhysicalDeviceLimits( uint32_t maxImageDimension1D_ = {}, - uint32_t maxImageDimension2D_ = {}, - uint32_t maxImageDimension3D_ = {}, - uint32_t maxImageDimensionCube_ = {}, - uint32_t maxImageArrayLayers_ = {}, - uint32_t maxTexelBufferElements_ = {}, - uint32_t maxUniformBufferRange_ = {}, - uint32_t maxStorageBufferRange_ = {}, - uint32_t maxPushConstantsSize_ = {}, - uint32_t maxMemoryAllocationCount_ = {}, - uint32_t maxSamplerAllocationCount_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize bufferImageGranularity_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize sparseAddressSpaceSize_ = {}, - uint32_t maxBoundDescriptorSets_ = {}, - uint32_t maxPerStageDescriptorSamplers_ = {}, - uint32_t maxPerStageDescriptorUniformBuffers_ = {}, - uint32_t maxPerStageDescriptorStorageBuffers_ = {}, - uint32_t maxPerStageDescriptorSampledImages_ = {}, - uint32_t maxPerStageDescriptorStorageImages_ = {}, - uint32_t maxPerStageDescriptorInputAttachments_ = {}, - uint32_t maxPerStageResources_ = {}, - uint32_t maxDescriptorSetSamplers_ = {}, - uint32_t maxDescriptorSetUniformBuffers_ = {}, - uint32_t maxDescriptorSetUniformBuffersDynamic_ = {}, - uint32_t maxDescriptorSetStorageBuffers_ = {}, - uint32_t maxDescriptorSetStorageBuffersDynamic_ = {}, - uint32_t maxDescriptorSetSampledImages_ = {}, - uint32_t maxDescriptorSetStorageImages_ = {}, - uint32_t maxDescriptorSetInputAttachments_ = {}, - uint32_t maxVertexInputAttributes_ = {}, - uint32_t maxVertexInputBindings_ = {}, - uint32_t maxVertexInputAttributeOffset_ = {}, - uint32_t maxVertexInputBindingStride_ = {}, - uint32_t maxVertexOutputComponents_ = {}, - uint32_t maxTessellationGenerationLevel_ = {}, - uint32_t maxTessellationPatchSize_ = {}, - uint32_t maxTessellationControlPerVertexInputComponents_ = {}, - uint32_t maxTessellationControlPerVertexOutputComponents_ = {}, - uint32_t maxTessellationControlPerPatchOutputComponents_ = {}, - uint32_t maxTessellationControlTotalOutputComponents_ = {}, - uint32_t maxTessellationEvaluationInputComponents_ = {}, - uint32_t maxTessellationEvaluationOutputComponents_ = {}, - uint32_t maxGeometryShaderInvocations_ = {}, - uint32_t maxGeometryInputComponents_ = {}, - uint32_t maxGeometryOutputComponents_ = {}, - uint32_t maxGeometryOutputVertices_ = {}, - uint32_t maxGeometryTotalOutputComponents_ = {}, - uint32_t maxFragmentInputComponents_ = {}, - uint32_t maxFragmentOutputAttachments_ = {}, - uint32_t maxFragmentDualSrcAttachments_ = {}, - uint32_t maxFragmentCombinedOutputResources_ = {}, - uint32_t maxComputeSharedMemorySize_ = {}, - std::array const& maxComputeWorkGroupCount_ = {}, - uint32_t maxComputeWorkGroupInvocations_ = {}, - std::array const& maxComputeWorkGroupSize_ = {}, - uint32_t subPixelPrecisionBits_ = {}, - uint32_t subTexelPrecisionBits_ = {}, - uint32_t mipmapPrecisionBits_ = {}, - uint32_t maxDrawIndexedIndexValue_ = {}, - uint32_t maxDrawIndirectCount_ = {}, - float maxSamplerLodBias_ = {}, - float maxSamplerAnisotropy_ = {}, - uint32_t maxViewports_ = {}, - std::array const& maxViewportDimensions_ = {}, - std::array const& viewportBoundsRange_ = {}, - uint32_t viewportSubPixelBits_ = {}, - size_t minMemoryMapAlignment_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize minTexelBufferOffsetAlignment_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize minUniformBufferOffsetAlignment_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize minStorageBufferOffsetAlignment_ = {}, - int32_t minTexelOffset_ = {}, - uint32_t maxTexelOffset_ = {}, - int32_t minTexelGatherOffset_ = {}, - uint32_t maxTexelGatherOffset_ = {}, - float minInterpolationOffset_ = {}, - float maxInterpolationOffset_ = {}, - uint32_t subPixelInterpolationOffsetBits_ = {}, - uint32_t maxFramebufferWidth_ = {}, - uint32_t maxFramebufferHeight_ = {}, - uint32_t maxFramebufferLayers_ = {}, - VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferColorSampleCounts_ = {}, - VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferDepthSampleCounts_ = {}, - VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferStencilSampleCounts_ = {}, - VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferNoAttachmentsSampleCounts_ = {}, - uint32_t maxColorAttachments_ = {}, - VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageColorSampleCounts_ = {}, - VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageIntegerSampleCounts_ = {}, - VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageDepthSampleCounts_ = {}, - VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageStencilSampleCounts_ = {}, - VULKAN_HPP_NAMESPACE::SampleCountFlags storageImageSampleCounts_ = {}, - uint32_t maxSampleMaskWords_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 timestampComputeAndGraphics_ = {}, - float timestampPeriod_ = {}, - uint32_t maxClipDistances_ = {}, - uint32_t maxCullDistances_ = {}, - uint32_t maxCombinedClipAndCullDistances_ = {}, - uint32_t discreteQueuePriorities_ = {}, - std::array const& pointSizeRange_ = {}, - std::array const& lineWidthRange_ = {}, - float pointSizeGranularity_ = {}, - float lineWidthGranularity_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 strictLines_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 standardSampleLocations_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyOffsetAlignment_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyRowPitchAlignment_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize nonCoherentAtomSize_ = {} ) VULKAN_HPP_NOEXCEPT - : maxImageDimension1D( maxImageDimension1D_ ) - , maxImageDimension2D( maxImageDimension2D_ ) - , maxImageDimension3D( maxImageDimension3D_ ) - , maxImageDimensionCube( maxImageDimensionCube_ ) - , maxImageArrayLayers( maxImageArrayLayers_ ) - , maxTexelBufferElements( maxTexelBufferElements_ ) - , maxUniformBufferRange( maxUniformBufferRange_ ) - , maxStorageBufferRange( maxStorageBufferRange_ ) - , maxPushConstantsSize( maxPushConstantsSize_ ) - , maxMemoryAllocationCount( maxMemoryAllocationCount_ ) - , maxSamplerAllocationCount( maxSamplerAllocationCount_ ) - , bufferImageGranularity( bufferImageGranularity_ ) - , sparseAddressSpaceSize( sparseAddressSpaceSize_ ) - , maxBoundDescriptorSets( maxBoundDescriptorSets_ ) - , maxPerStageDescriptorSamplers( maxPerStageDescriptorSamplers_ ) - , maxPerStageDescriptorUniformBuffers( maxPerStageDescriptorUniformBuffers_ ) - , maxPerStageDescriptorStorageBuffers( maxPerStageDescriptorStorageBuffers_ ) - , maxPerStageDescriptorSampledImages( maxPerStageDescriptorSampledImages_ ) - , maxPerStageDescriptorStorageImages( maxPerStageDescriptorStorageImages_ ) - , maxPerStageDescriptorInputAttachments( maxPerStageDescriptorInputAttachments_ ) - , maxPerStageResources( maxPerStageResources_ ) - , maxDescriptorSetSamplers( maxDescriptorSetSamplers_ ) - , maxDescriptorSetUniformBuffers( maxDescriptorSetUniformBuffers_ ) - , maxDescriptorSetUniformBuffersDynamic( maxDescriptorSetUniformBuffersDynamic_ ) - , maxDescriptorSetStorageBuffers( maxDescriptorSetStorageBuffers_ ) - , maxDescriptorSetStorageBuffersDynamic( maxDescriptorSetStorageBuffersDynamic_ ) - , maxDescriptorSetSampledImages( maxDescriptorSetSampledImages_ ) - , maxDescriptorSetStorageImages( maxDescriptorSetStorageImages_ ) - , maxDescriptorSetInputAttachments( maxDescriptorSetInputAttachments_ ) - , maxVertexInputAttributes( maxVertexInputAttributes_ ) - , maxVertexInputBindings( maxVertexInputBindings_ ) - , maxVertexInputAttributeOffset( maxVertexInputAttributeOffset_ ) - , maxVertexInputBindingStride( maxVertexInputBindingStride_ ) - , maxVertexOutputComponents( maxVertexOutputComponents_ ) - , maxTessellationGenerationLevel( maxTessellationGenerationLevel_ ) - , maxTessellationPatchSize( maxTessellationPatchSize_ ) - , maxTessellationControlPerVertexInputComponents( maxTessellationControlPerVertexInputComponents_ ) - , maxTessellationControlPerVertexOutputComponents( maxTessellationControlPerVertexOutputComponents_ ) - , maxTessellationControlPerPatchOutputComponents( maxTessellationControlPerPatchOutputComponents_ ) - , maxTessellationControlTotalOutputComponents( maxTessellationControlTotalOutputComponents_ ) - , maxTessellationEvaluationInputComponents( maxTessellationEvaluationInputComponents_ ) - , maxTessellationEvaluationOutputComponents( maxTessellationEvaluationOutputComponents_ ) - , maxGeometryShaderInvocations( maxGeometryShaderInvocations_ ) - , maxGeometryInputComponents( maxGeometryInputComponents_ ) - , maxGeometryOutputComponents( maxGeometryOutputComponents_ ) - , maxGeometryOutputVertices( maxGeometryOutputVertices_ ) - , maxGeometryTotalOutputComponents( maxGeometryTotalOutputComponents_ ) - , maxFragmentInputComponents( maxFragmentInputComponents_ ) - , maxFragmentOutputAttachments( maxFragmentOutputAttachments_ ) - , maxFragmentDualSrcAttachments( maxFragmentDualSrcAttachments_ ) - , maxFragmentCombinedOutputResources( maxFragmentCombinedOutputResources_ ) - , maxComputeSharedMemorySize( maxComputeSharedMemorySize_ ) - , maxComputeWorkGroupCount{} - , maxComputeWorkGroupInvocations( maxComputeWorkGroupInvocations_ ) - , maxComputeWorkGroupSize{} - , subPixelPrecisionBits( subPixelPrecisionBits_ ) - , subTexelPrecisionBits( subTexelPrecisionBits_ ) - , mipmapPrecisionBits( mipmapPrecisionBits_ ) - , maxDrawIndexedIndexValue( maxDrawIndexedIndexValue_ ) - , maxDrawIndirectCount( maxDrawIndirectCount_ ) - , maxSamplerLodBias( maxSamplerLodBias_ ) - , maxSamplerAnisotropy( maxSamplerAnisotropy_ ) - , maxViewports( maxViewports_ ) - , maxViewportDimensions{} - , viewportBoundsRange{} - , viewportSubPixelBits( viewportSubPixelBits_ ) - , minMemoryMapAlignment( minMemoryMapAlignment_ ) - , minTexelBufferOffsetAlignment( minTexelBufferOffsetAlignment_ ) - , minUniformBufferOffsetAlignment( minUniformBufferOffsetAlignment_ ) - , minStorageBufferOffsetAlignment( minStorageBufferOffsetAlignment_ ) - , minTexelOffset( minTexelOffset_ ) - , maxTexelOffset( maxTexelOffset_ ) - , minTexelGatherOffset( minTexelGatherOffset_ ) - , maxTexelGatherOffset( maxTexelGatherOffset_ ) - , minInterpolationOffset( minInterpolationOffset_ ) - , maxInterpolationOffset( maxInterpolationOffset_ ) - , subPixelInterpolationOffsetBits( subPixelInterpolationOffsetBits_ ) - , maxFramebufferWidth( maxFramebufferWidth_ ) - , maxFramebufferHeight( maxFramebufferHeight_ ) - , maxFramebufferLayers( maxFramebufferLayers_ ) - , framebufferColorSampleCounts( framebufferColorSampleCounts_ ) - , framebufferDepthSampleCounts( framebufferDepthSampleCounts_ ) - , framebufferStencilSampleCounts( framebufferStencilSampleCounts_ ) - , framebufferNoAttachmentsSampleCounts( framebufferNoAttachmentsSampleCounts_ ) - , maxColorAttachments( maxColorAttachments_ ) - , sampledImageColorSampleCounts( sampledImageColorSampleCounts_ ) - , sampledImageIntegerSampleCounts( sampledImageIntegerSampleCounts_ ) - , sampledImageDepthSampleCounts( sampledImageDepthSampleCounts_ ) - , sampledImageStencilSampleCounts( sampledImageStencilSampleCounts_ ) - , storageImageSampleCounts( storageImageSampleCounts_ ) - , maxSampleMaskWords( maxSampleMaskWords_ ) - , timestampComputeAndGraphics( timestampComputeAndGraphics_ ) - , timestampPeriod( timestampPeriod_ ) - , maxClipDistances( maxClipDistances_ ) - , maxCullDistances( maxCullDistances_ ) - , maxCombinedClipAndCullDistances( maxCombinedClipAndCullDistances_ ) - , discreteQueuePriorities( discreteQueuePriorities_ ) - , pointSizeRange{} - , lineWidthRange{} - , pointSizeGranularity( pointSizeGranularity_ ) - , lineWidthGranularity( lineWidthGranularity_ ) - , strictLines( strictLines_ ) - , standardSampleLocations( standardSampleLocations_ ) - , optimalBufferCopyOffsetAlignment( optimalBufferCopyOffsetAlignment_ ) - , optimalBufferCopyRowPitchAlignment( optimalBufferCopyRowPitchAlignment_ ) - , nonCoherentAtomSize( nonCoherentAtomSize_ ) - { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( maxComputeWorkGroupCount, maxComputeWorkGroupCount_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( maxComputeWorkGroupSize, maxComputeWorkGroupSize_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( maxViewportDimensions, maxViewportDimensions_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( viewportBoundsRange, viewportBoundsRange_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( pointSizeRange, pointSizeRange_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( lineWidthRange, lineWidthRange_ ); - } - - PhysicalDeviceLimits( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + using type = VULKAN_HPP_NAMESPACE::Device; + }; - PhysicalDeviceLimits& operator=( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::Device; + }; - operator VkPhysicalDeviceLimits const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::Device; + }; - operator VkPhysicalDeviceLimits &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( PhysicalDeviceLimits const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( maxImageDimension1D == rhs.maxImageDimension1D ) - && ( maxImageDimension2D == rhs.maxImageDimension2D ) - && ( maxImageDimension3D == rhs.maxImageDimension3D ) - && ( maxImageDimensionCube == rhs.maxImageDimensionCube ) - && ( maxImageArrayLayers == rhs.maxImageArrayLayers ) - && ( maxTexelBufferElements == rhs.maxTexelBufferElements ) - && ( maxUniformBufferRange == rhs.maxUniformBufferRange ) - && ( maxStorageBufferRange == rhs.maxStorageBufferRange ) - && ( maxPushConstantsSize == rhs.maxPushConstantsSize ) - && ( maxMemoryAllocationCount == rhs.maxMemoryAllocationCount ) - && ( maxSamplerAllocationCount == rhs.maxSamplerAllocationCount ) - && ( bufferImageGranularity == rhs.bufferImageGranularity ) - && ( sparseAddressSpaceSize == rhs.sparseAddressSpaceSize ) - && ( maxBoundDescriptorSets == rhs.maxBoundDescriptorSets ) - && ( maxPerStageDescriptorSamplers == rhs.maxPerStageDescriptorSamplers ) - && ( maxPerStageDescriptorUniformBuffers == rhs.maxPerStageDescriptorUniformBuffers ) - && ( maxPerStageDescriptorStorageBuffers == rhs.maxPerStageDescriptorStorageBuffers ) - && ( maxPerStageDescriptorSampledImages == rhs.maxPerStageDescriptorSampledImages ) - && ( maxPerStageDescriptorStorageImages == rhs.maxPerStageDescriptorStorageImages ) - && ( maxPerStageDescriptorInputAttachments == rhs.maxPerStageDescriptorInputAttachments ) - && ( maxPerStageResources == rhs.maxPerStageResources ) - && ( maxDescriptorSetSamplers == rhs.maxDescriptorSetSamplers ) - && ( maxDescriptorSetUniformBuffers == rhs.maxDescriptorSetUniformBuffers ) - && ( maxDescriptorSetUniformBuffersDynamic == rhs.maxDescriptorSetUniformBuffersDynamic ) - && ( maxDescriptorSetStorageBuffers == rhs.maxDescriptorSetStorageBuffers ) - && ( maxDescriptorSetStorageBuffersDynamic == rhs.maxDescriptorSetStorageBuffersDynamic ) - && ( maxDescriptorSetSampledImages == rhs.maxDescriptorSetSampledImages ) - && ( maxDescriptorSetStorageImages == rhs.maxDescriptorSetStorageImages ) - && ( maxDescriptorSetInputAttachments == rhs.maxDescriptorSetInputAttachments ) - && ( maxVertexInputAttributes == rhs.maxVertexInputAttributes ) - && ( maxVertexInputBindings == rhs.maxVertexInputBindings ) - && ( maxVertexInputAttributeOffset == rhs.maxVertexInputAttributeOffset ) - && ( maxVertexInputBindingStride == rhs.maxVertexInputBindingStride ) - && ( maxVertexOutputComponents == rhs.maxVertexOutputComponents ) - && ( maxTessellationGenerationLevel == rhs.maxTessellationGenerationLevel ) - && ( maxTessellationPatchSize == rhs.maxTessellationPatchSize ) - && ( maxTessellationControlPerVertexInputComponents == rhs.maxTessellationControlPerVertexInputComponents ) - && ( maxTessellationControlPerVertexOutputComponents == rhs.maxTessellationControlPerVertexOutputComponents ) - && ( maxTessellationControlPerPatchOutputComponents == rhs.maxTessellationControlPerPatchOutputComponents ) - && ( maxTessellationControlTotalOutputComponents == rhs.maxTessellationControlTotalOutputComponents ) - && ( maxTessellationEvaluationInputComponents == rhs.maxTessellationEvaluationInputComponents ) - && ( maxTessellationEvaluationOutputComponents == rhs.maxTessellationEvaluationOutputComponents ) - && ( maxGeometryShaderInvocations == rhs.maxGeometryShaderInvocations ) - && ( maxGeometryInputComponents == rhs.maxGeometryInputComponents ) - && ( maxGeometryOutputComponents == rhs.maxGeometryOutputComponents ) - && ( maxGeometryOutputVertices == rhs.maxGeometryOutputVertices ) - && ( maxGeometryTotalOutputComponents == rhs.maxGeometryTotalOutputComponents ) - && ( maxFragmentInputComponents == rhs.maxFragmentInputComponents ) - && ( maxFragmentOutputAttachments == rhs.maxFragmentOutputAttachments ) - && ( maxFragmentDualSrcAttachments == rhs.maxFragmentDualSrcAttachments ) - && ( maxFragmentCombinedOutputResources == rhs.maxFragmentCombinedOutputResources ) - && ( maxComputeSharedMemorySize == rhs.maxComputeSharedMemorySize ) - && ( memcmp( maxComputeWorkGroupCount, rhs.maxComputeWorkGroupCount, 3 * sizeof( uint32_t ) ) == 0 ) - && ( maxComputeWorkGroupInvocations == rhs.maxComputeWorkGroupInvocations ) - && ( memcmp( maxComputeWorkGroupSize, rhs.maxComputeWorkGroupSize, 3 * sizeof( uint32_t ) ) == 0 ) - && ( subPixelPrecisionBits == rhs.subPixelPrecisionBits ) - && ( subTexelPrecisionBits == rhs.subTexelPrecisionBits ) - && ( mipmapPrecisionBits == rhs.mipmapPrecisionBits ) - && ( maxDrawIndexedIndexValue == rhs.maxDrawIndexedIndexValue ) - && ( maxDrawIndirectCount == rhs.maxDrawIndirectCount ) - && ( maxSamplerLodBias == rhs.maxSamplerLodBias ) - && ( maxSamplerAnisotropy == rhs.maxSamplerAnisotropy ) - && ( maxViewports == rhs.maxViewports ) - && ( memcmp( maxViewportDimensions, rhs.maxViewportDimensions, 2 * sizeof( uint32_t ) ) == 0 ) - && ( memcmp( viewportBoundsRange, rhs.viewportBoundsRange, 2 * sizeof( float ) ) == 0 ) - && ( viewportSubPixelBits == rhs.viewportSubPixelBits ) - && ( minMemoryMapAlignment == rhs.minMemoryMapAlignment ) - && ( minTexelBufferOffsetAlignment == rhs.minTexelBufferOffsetAlignment ) - && ( minUniformBufferOffsetAlignment == rhs.minUniformBufferOffsetAlignment ) - && ( minStorageBufferOffsetAlignment == rhs.minStorageBufferOffsetAlignment ) - && ( minTexelOffset == rhs.minTexelOffset ) - && ( maxTexelOffset == rhs.maxTexelOffset ) - && ( minTexelGatherOffset == rhs.minTexelGatherOffset ) - && ( maxTexelGatherOffset == rhs.maxTexelGatherOffset ) - && ( minInterpolationOffset == rhs.minInterpolationOffset ) - && ( maxInterpolationOffset == rhs.maxInterpolationOffset ) - && ( subPixelInterpolationOffsetBits == rhs.subPixelInterpolationOffsetBits ) - && ( maxFramebufferWidth == rhs.maxFramebufferWidth ) - && ( maxFramebufferHeight == rhs.maxFramebufferHeight ) - && ( maxFramebufferLayers == rhs.maxFramebufferLayers ) - && ( framebufferColorSampleCounts == rhs.framebufferColorSampleCounts ) - && ( framebufferDepthSampleCounts == rhs.framebufferDepthSampleCounts ) - && ( framebufferStencilSampleCounts == rhs.framebufferStencilSampleCounts ) - && ( framebufferNoAttachmentsSampleCounts == rhs.framebufferNoAttachmentsSampleCounts ) - && ( maxColorAttachments == rhs.maxColorAttachments ) - && ( sampledImageColorSampleCounts == rhs.sampledImageColorSampleCounts ) - && ( sampledImageIntegerSampleCounts == rhs.sampledImageIntegerSampleCounts ) - && ( sampledImageDepthSampleCounts == rhs.sampledImageDepthSampleCounts ) - && ( sampledImageStencilSampleCounts == rhs.sampledImageStencilSampleCounts ) - && ( storageImageSampleCounts == rhs.storageImageSampleCounts ) - && ( maxSampleMaskWords == rhs.maxSampleMaskWords ) - && ( timestampComputeAndGraphics == rhs.timestampComputeAndGraphics ) - && ( timestampPeriod == rhs.timestampPeriod ) - && ( maxClipDistances == rhs.maxClipDistances ) - && ( maxCullDistances == rhs.maxCullDistances ) - && ( maxCombinedClipAndCullDistances == rhs.maxCombinedClipAndCullDistances ) - && ( discreteQueuePriorities == rhs.discreteQueuePriorities ) - && ( memcmp( pointSizeRange, rhs.pointSizeRange, 2 * sizeof( float ) ) == 0 ) - && ( memcmp( lineWidthRange, rhs.lineWidthRange, 2 * sizeof( float ) ) == 0 ) - && ( pointSizeGranularity == rhs.pointSizeGranularity ) - && ( lineWidthGranularity == rhs.lineWidthGranularity ) - && ( strictLines == rhs.strictLines ) - && ( standardSampleLocations == rhs.standardSampleLocations ) - && ( optimalBufferCopyOffsetAlignment == rhs.optimalBufferCopyOffsetAlignment ) - && ( optimalBufferCopyRowPitchAlignment == rhs.optimalBufferCopyRowPitchAlignment ) - && ( nonCoherentAtomSize == rhs.nonCoherentAtomSize ); - } - - bool operator!=( PhysicalDeviceLimits const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } - - public: - uint32_t maxImageDimension1D = {}; - uint32_t maxImageDimension2D = {}; - uint32_t maxImageDimension3D = {}; - uint32_t maxImageDimensionCube = {}; - uint32_t maxImageArrayLayers = {}; - uint32_t maxTexelBufferElements = {}; - uint32_t maxUniformBufferRange = {}; - uint32_t maxStorageBufferRange = {}; - uint32_t maxPushConstantsSize = {}; - uint32_t maxMemoryAllocationCount = {}; - uint32_t maxSamplerAllocationCount = {}; - VULKAN_HPP_NAMESPACE::DeviceSize bufferImageGranularity = {}; - VULKAN_HPP_NAMESPACE::DeviceSize sparseAddressSpaceSize = {}; - uint32_t maxBoundDescriptorSets = {}; - uint32_t maxPerStageDescriptorSamplers = {}; - uint32_t maxPerStageDescriptorUniformBuffers = {}; - uint32_t maxPerStageDescriptorStorageBuffers = {}; - uint32_t maxPerStageDescriptorSampledImages = {}; - uint32_t maxPerStageDescriptorStorageImages = {}; - uint32_t maxPerStageDescriptorInputAttachments = {}; - uint32_t maxPerStageResources = {}; - uint32_t maxDescriptorSetSamplers = {}; - uint32_t maxDescriptorSetUniformBuffers = {}; - uint32_t maxDescriptorSetUniformBuffersDynamic = {}; - uint32_t maxDescriptorSetStorageBuffers = {}; - uint32_t maxDescriptorSetStorageBuffersDynamic = {}; - uint32_t maxDescriptorSetSampledImages = {}; - uint32_t maxDescriptorSetStorageImages = {}; - uint32_t maxDescriptorSetInputAttachments = {}; - uint32_t maxVertexInputAttributes = {}; - uint32_t maxVertexInputBindings = {}; - uint32_t maxVertexInputAttributeOffset = {}; - uint32_t maxVertexInputBindingStride = {}; - uint32_t maxVertexOutputComponents = {}; - uint32_t maxTessellationGenerationLevel = {}; - uint32_t maxTessellationPatchSize = {}; - uint32_t maxTessellationControlPerVertexInputComponents = {}; - uint32_t maxTessellationControlPerVertexOutputComponents = {}; - uint32_t maxTessellationControlPerPatchOutputComponents = {}; - uint32_t maxTessellationControlTotalOutputComponents = {}; - uint32_t maxTessellationEvaluationInputComponents = {}; - uint32_t maxTessellationEvaluationOutputComponents = {}; - uint32_t maxGeometryShaderInvocations = {}; - uint32_t maxGeometryInputComponents = {}; - uint32_t maxGeometryOutputComponents = {}; - uint32_t maxGeometryOutputVertices = {}; - uint32_t maxGeometryTotalOutputComponents = {}; - uint32_t maxFragmentInputComponents = {}; - uint32_t maxFragmentOutputAttachments = {}; - uint32_t maxFragmentDualSrcAttachments = {}; - uint32_t maxFragmentCombinedOutputResources = {}; - uint32_t maxComputeSharedMemorySize = {}; - uint32_t maxComputeWorkGroupCount[3] = {}; - uint32_t maxComputeWorkGroupInvocations = {}; - uint32_t maxComputeWorkGroupSize[3] = {}; - uint32_t subPixelPrecisionBits = {}; - uint32_t subTexelPrecisionBits = {}; - uint32_t mipmapPrecisionBits = {}; - uint32_t maxDrawIndexedIndexValue = {}; - uint32_t maxDrawIndirectCount = {}; - float maxSamplerLodBias = {}; - float maxSamplerAnisotropy = {}; - uint32_t maxViewports = {}; - uint32_t maxViewportDimensions[2] = {}; - float viewportBoundsRange[2] = {}; - uint32_t viewportSubPixelBits = {}; - size_t minMemoryMapAlignment = {}; - VULKAN_HPP_NAMESPACE::DeviceSize minTexelBufferOffsetAlignment = {}; - VULKAN_HPP_NAMESPACE::DeviceSize minUniformBufferOffsetAlignment = {}; - VULKAN_HPP_NAMESPACE::DeviceSize minStorageBufferOffsetAlignment = {}; - int32_t minTexelOffset = {}; - uint32_t maxTexelOffset = {}; - int32_t minTexelGatherOffset = {}; - uint32_t maxTexelGatherOffset = {}; - float minInterpolationOffset = {}; - float maxInterpolationOffset = {}; - uint32_t subPixelInterpolationOffsetBits = {}; - uint32_t maxFramebufferWidth = {}; - uint32_t maxFramebufferHeight = {}; - uint32_t maxFramebufferLayers = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferColorSampleCounts = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferDepthSampleCounts = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferStencilSampleCounts = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferNoAttachmentsSampleCounts = {}; - uint32_t maxColorAttachments = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageColorSampleCounts = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageIntegerSampleCounts = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageDepthSampleCounts = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageStencilSampleCounts = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags storageImageSampleCounts = {}; - uint32_t maxSampleMaskWords = {}; - VULKAN_HPP_NAMESPACE::Bool32 timestampComputeAndGraphics = {}; - float timestampPeriod = {}; - uint32_t maxClipDistances = {}; - uint32_t maxCullDistances = {}; - uint32_t maxCombinedClipAndCullDistances = {}; - uint32_t discreteQueuePriorities = {}; - float pointSizeRange[2] = {}; - float lineWidthRange[2] = {}; - float pointSizeGranularity = {}; - float lineWidthGranularity = {}; - VULKAN_HPP_NAMESPACE::Bool32 strictLines = {}; - VULKAN_HPP_NAMESPACE::Bool32 standardSampleLocations = {}; - VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyOffsetAlignment = {}; - VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyRowPitchAlignment = {}; - VULKAN_HPP_NAMESPACE::DeviceSize nonCoherentAtomSize = {}; - }; - static_assert( sizeof( PhysicalDeviceLimits ) == sizeof( VkPhysicalDeviceLimits ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; - struct PhysicalDeviceLineRasterizationFeaturesEXT + struct DisplayModeParametersKHR { - VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 rectangularLines_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 smoothLines_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ = {} ) VULKAN_HPP_NOEXCEPT - : rectangularLines( rectangularLines_ ) - , bresenhamLines( bresenhamLines_ ) - , smoothLines( smoothLines_ ) - , stippledRectangularLines( stippledRectangularLines_ ) - , stippledBresenhamLines( stippledBresenhamLines_ ) - , stippledSmoothLines( stippledSmoothLines_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DisplayModeParametersKHR( VULKAN_HPP_NAMESPACE::Extent2D visibleRegion_ = {}, + uint32_t refreshRate_ = {} ) VULKAN_HPP_NOEXCEPT + : visibleRegion( visibleRegion_ ) + , refreshRate( refreshRate_ ) + {} + + VULKAN_HPP_CONSTEXPR DisplayModeParametersKHR( DisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DisplayModeParametersKHR( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : DisplayModeParametersKHR( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 DisplayModeParametersKHR & + operator=( DisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DisplayModeParametersKHR & operator=( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT ) - offsetof( PhysicalDeviceLineRasterizationFeaturesEXT, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceLineRasterizationFeaturesEXT( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DisplayModeParametersKHR & + setVisibleRegion( VULKAN_HPP_NAMESPACE::Extent2D const & visibleRegion_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + visibleRegion = visibleRegion_; + return *this; } - PhysicalDeviceLineRasterizationFeaturesEXT& operator=( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DisplayModeParametersKHR & setRefreshRate( uint32_t refreshRate_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + refreshRate = refreshRate_; return *this; } - PhysicalDeviceLineRasterizationFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + operator VkDisplayModeParametersKHR const &() const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceLineRasterizationFeaturesEXT & setRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 rectangularLines_ ) VULKAN_HPP_NOEXCEPT + operator VkDisplayModeParametersKHR &() VULKAN_HPP_NOEXCEPT { - rectangularLines = rectangularLines_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceLineRasterizationFeaturesEXT & setBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DisplayModeParametersKHR const & ) const = default; +#else + bool operator==( DisplayModeParametersKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - bresenhamLines = bresenhamLines_; - return *this; + return ( visibleRegion == rhs.visibleRegion ) && ( refreshRate == rhs.refreshRate ); } - PhysicalDeviceLineRasterizationFeaturesEXT & setSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 smoothLines_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( DisplayModeParametersKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - smoothLines = smoothLines_; + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::Extent2D visibleRegion = {}; + uint32_t refreshRate = {}; + }; + static_assert( sizeof( DisplayModeParametersKHR ) == sizeof( VkDisplayModeParametersKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + struct DisplayModeCreateInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayModeCreateInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + DisplayModeCreateInfoKHR( VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ = {}, + VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , parameters( parameters_ ) + {} + + VULKAN_HPP_CONSTEXPR DisplayModeCreateInfoKHR( DisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DisplayModeCreateInfoKHR( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : DisplayModeCreateInfoKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DisplayModeCreateInfoKHR & + operator=( DisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DisplayModeCreateInfoKHR & operator=( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceLineRasterizationFeaturesEXT & setStippledRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines_ ) VULKAN_HPP_NOEXCEPT + DisplayModeCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - stippledRectangularLines = stippledRectangularLines_; + pNext = pNext_; return *this; } - PhysicalDeviceLineRasterizationFeaturesEXT & setStippledBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ ) VULKAN_HPP_NOEXCEPT + DisplayModeCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT { - stippledBresenhamLines = stippledBresenhamLines_; + flags = flags_; return *this; } - PhysicalDeviceLineRasterizationFeaturesEXT & setStippledSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ ) VULKAN_HPP_NOEXCEPT + DisplayModeCreateInfoKHR & + setParameters( VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const & parameters_ ) VULKAN_HPP_NOEXCEPT { - stippledSmoothLines = stippledSmoothLines_; + parameters = parameters_; return *this; } - operator VkPhysicalDeviceLineRasterizationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkDisplayModeCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceLineRasterizationFeaturesEXT &() VULKAN_HPP_NOEXCEPT + operator VkDisplayModeCreateInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceLineRasterizationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DisplayModeCreateInfoKHR const & ) const = default; +#else + bool operator==( DisplayModeCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( rectangularLines == rhs.rectangularLines ) - && ( bresenhamLines == rhs.bresenhamLines ) - && ( smoothLines == rhs.smoothLines ) - && ( stippledRectangularLines == rhs.stippledRectangularLines ) - && ( stippledBresenhamLines == rhs.stippledBresenhamLines ) - && ( stippledSmoothLines == rhs.stippledSmoothLines ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( parameters == rhs.parameters ); } - bool operator!=( PhysicalDeviceLineRasterizationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DisplayModeCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 rectangularLines = {}; - VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines = {}; - VULKAN_HPP_NAMESPACE::Bool32 smoothLines = {}; - VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines = {}; - VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines = {}; - VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeCreateInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags = {}; + VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {}; }; - static_assert( sizeof( PhysicalDeviceLineRasterizationFeaturesEXT ) == sizeof( VkPhysicalDeviceLineRasterizationFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DisplayModeCreateInfoKHR ) == sizeof( VkDisplayModeCreateInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceLineRasterizationPropertiesEXT + template <> + struct CppType { - PhysicalDeviceLineRasterizationPropertiesEXT( uint32_t lineSubPixelPrecisionBits_ = {} ) VULKAN_HPP_NOEXCEPT - : lineSubPixelPrecisionBits( lineSubPixelPrecisionBits_ ) + using Type = DisplayModeCreateInfoKHR; + }; + + 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: + VULKAN_HPP_CONSTEXPR DisplayModeKHR() = default; + VULKAN_HPP_CONSTEXPR DisplayModeKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT DisplayModeKHR( VkDisplayModeKHR displayModeKHR ) VULKAN_HPP_NOEXCEPT + : m_displayModeKHR( displayModeKHR ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + DisplayModeKHR & operator=( VkDisplayModeKHR displayModeKHR ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT ) - offsetof( PhysicalDeviceLineRasterizationPropertiesEXT, pNext ) ); + m_displayModeKHR = displayModeKHR; return *this; } +#endif - PhysicalDeviceLineRasterizationPropertiesEXT( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DisplayModeKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + m_displayModeKHR = {}; + return *this; } - PhysicalDeviceLineRasterizationPropertiesEXT& operator=( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DisplayModeKHR const & ) const = default; +#else + bool operator==( DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return m_displayModeKHR == rhs.m_displayModeKHR; } - operator VkPhysicalDeviceLineRasterizationPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT + bool operator!=( DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_displayModeKHR != rhs.m_displayModeKHR; } - operator VkPhysicalDeviceLineRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT + bool operator<( DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_displayModeKHR < rhs.m_displayModeKHR; } +#endif - bool operator==( PhysicalDeviceLineRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDisplayModeKHR() const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( lineSubPixelPrecisionBits == rhs.lineSubPixelPrecisionBits ); + return m_displayModeKHR; } - bool operator!=( PhysicalDeviceLineRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + return m_displayModeKHR != VK_NULL_HANDLE; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT; - void* pNext = {}; - uint32_t lineSubPixelPrecisionBits = {}; + bool operator!() const VULKAN_HPP_NOEXCEPT + { + return m_displayModeKHR == VK_NULL_HANDLE; + } + + private: + VkDisplayModeKHR m_displayModeKHR = {}; }; - static_assert( sizeof( PhysicalDeviceLineRasterizationPropertiesEXT ) == sizeof( VkPhysicalDeviceLineRasterizationPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VULKAN_HPP_NAMESPACE::DisplayModeKHR ) == sizeof( VkDisplayModeKHR ), + "handle and wrapper have different size!" ); - struct PhysicalDeviceMaintenance3Properties + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type { - PhysicalDeviceMaintenance3Properties( uint32_t maxPerSetDescriptors_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ = {} ) VULKAN_HPP_NOEXCEPT - : maxPerSetDescriptors( maxPerSetDescriptors_ ) - , maxMemoryAllocationSize( maxMemoryAllocationSize_ ) + using type = VULKAN_HPP_NAMESPACE::DisplayModeKHR; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::DisplayModeKHR; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::DisplayModeKHR; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + struct ExtensionProperties + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 + ExtensionProperties( std::array const & extensionName_ = {}, + uint32_t specVersion_ = {} ) VULKAN_HPP_NOEXCEPT + : extensionName( extensionName_ ) + , specVersion( specVersion_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties ) - offsetof( PhysicalDeviceMaintenance3Properties, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 ExtensionProperties( ExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceMaintenance3Properties( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ExtensionProperties( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT + : ExtensionProperties( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ExtensionProperties & + operator=( ExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceMaintenance3Properties& operator=( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT + ExtensionProperties & operator=( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceMaintenance3Properties const&() const VULKAN_HPP_NOEXCEPT + operator VkExtensionProperties const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceMaintenance3Properties &() VULKAN_HPP_NOEXCEPT + operator VkExtensionProperties &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceMaintenance3Properties const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ExtensionProperties const & ) const = default; +#else + bool operator==( ExtensionProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors ) - && ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize ); + return ( extensionName == rhs.extensionName ) && ( specVersion == rhs.specVersion ); } - bool operator!=( PhysicalDeviceMaintenance3Properties const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ExtensionProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance3Properties; - void* pNext = {}; - uint32_t maxPerSetDescriptors = {}; - VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D extensionName = {}; + uint32_t specVersion = {}; }; - static_assert( sizeof( PhysicalDeviceMaintenance3Properties ) == sizeof( VkPhysicalDeviceMaintenance3Properties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ExtensionProperties ) == sizeof( VkExtensionProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceMemoryBudgetPropertiesEXT + struct LayerProperties { - PhysicalDeviceMemoryBudgetPropertiesEXT( std::array const& heapBudget_ = {}, - std::array const& heapUsage_ = {} ) VULKAN_HPP_NOEXCEPT - : heapBudget{} - , heapUsage{} - { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( heapBudget, heapBudget_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( heapUsage, heapUsage_ ); - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 + LayerProperties( std::array const & layerName_ = {}, + uint32_t specVersion_ = {}, + uint32_t implementationVersion_ = {}, + std::array const & description_ = {} ) VULKAN_HPP_NOEXCEPT + : layerName( layerName_ ) + , specVersion( specVersion_ ) + , implementationVersion( implementationVersion_ ) + , description( description_ ) + {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT ) - offsetof( PhysicalDeviceMemoryBudgetPropertiesEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 LayerProperties( LayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceMemoryBudgetPropertiesEXT( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + LayerProperties( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT + : LayerProperties( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceMemoryBudgetPropertiesEXT& operator=( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 LayerProperties & operator=( LayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + LayerProperties & operator=( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceMemoryBudgetPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkLayerProperties const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceMemoryBudgetPropertiesEXT &() VULKAN_HPP_NOEXCEPT + operator VkLayerProperties &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceMemoryBudgetPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( LayerProperties const & ) const = default; +#else + bool operator==( LayerProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memcmp( heapBudget, rhs.heapBudget, VK_MAX_MEMORY_HEAPS * sizeof( VULKAN_HPP_NAMESPACE::DeviceSize ) ) == 0 ) - && ( memcmp( heapUsage, rhs.heapUsage, VK_MAX_MEMORY_HEAPS * sizeof( VULKAN_HPP_NAMESPACE::DeviceSize ) ) == 0 ); + return ( layerName == rhs.layerName ) && ( specVersion == rhs.specVersion ) && + ( implementationVersion == rhs.implementationVersion ) && ( description == rhs.description ); } - bool operator!=( PhysicalDeviceMemoryBudgetPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( LayerProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize heapBudget[VK_MAX_MEMORY_HEAPS] = {}; - VULKAN_HPP_NAMESPACE::DeviceSize heapUsage[VK_MAX_MEMORY_HEAPS] = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D layerName = {}; + uint32_t specVersion = {}; + uint32_t implementationVersion = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D description = {}; }; - static_assert( sizeof( PhysicalDeviceMemoryBudgetPropertiesEXT ) == sizeof( VkPhysicalDeviceMemoryBudgetPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( LayerProperties ) == sizeof( VkLayerProperties ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceMemoryPriorityFeaturesEXT + struct PerformanceCounterKHR { - VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryPriorityFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ = {} ) VULKAN_HPP_NOEXCEPT - : memoryPriority( memoryPriority_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceCounterKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 PerformanceCounterKHR( + VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR unit_ = VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR::eGeneric, + VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR scope_ = + VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR::eCommandBuffer, + VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR storage_ = + VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR::eInt32, + std::array const & uuid_ = {} ) VULKAN_HPP_NOEXCEPT + : unit( unit_ ) + , scope( scope_ ) + , storage( storage_ ) + , uuid( uuid_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT ) - offsetof( PhysicalDeviceMemoryPriorityFeaturesEXT, pNext ) ); - return *this; - } - - PhysicalDeviceMemoryPriorityFeaturesEXT( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR_14 PerformanceCounterKHR( PerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceMemoryPriorityFeaturesEXT& operator=( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + PerformanceCounterKHR( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PerformanceCounterKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceMemoryPriorityFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 PerformanceCounterKHR & + operator=( PerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceMemoryPriorityFeaturesEXT & setMemoryPriority( VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ ) VULKAN_HPP_NOEXCEPT + PerformanceCounterKHR & operator=( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - memoryPriority = memoryPriority_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkPerformanceCounterKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceMemoryPriorityFeaturesEXT &() VULKAN_HPP_NOEXCEPT + operator VkPerformanceCounterKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceMemoryPriorityFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PerformanceCounterKHR const & ) const = default; +#else + bool operator==( PerformanceCounterKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memoryPriority == rhs.memoryPriority ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( unit == rhs.unit ) && ( scope == rhs.scope ) && + ( storage == rhs.storage ) && ( uuid == rhs.uuid ); } - bool operator!=( PhysicalDeviceMemoryPriorityFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PerformanceCounterKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 memoryPriority = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR unit = VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR::eGeneric; + VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR scope = + VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR::eCommandBuffer; + VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR storage = + VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR::eInt32; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D uuid = {}; }; - static_assert( sizeof( PhysicalDeviceMemoryPriorityFeaturesEXT ) == sizeof( VkPhysicalDeviceMemoryPriorityFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PerformanceCounterKHR ) == sizeof( VkPerformanceCounterKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceMemoryProperties + template <> + struct CppType { - PhysicalDeviceMemoryProperties( uint32_t memoryTypeCount_ = {}, - std::array const& memoryTypes_ = {}, - uint32_t memoryHeapCount_ = {}, - std::array const& memoryHeaps_ = {} ) VULKAN_HPP_NOEXCEPT - : memoryTypeCount( memoryTypeCount_ ) - , memoryTypes{} - , memoryHeapCount( memoryHeapCount_ ) - , memoryHeaps{} - { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( memoryTypes, memoryTypes_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( memoryHeaps, memoryHeaps_ ); - } + using Type = PerformanceCounterKHR; + }; - PhysicalDeviceMemoryProperties( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + struct PerformanceCounterDescriptionKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceCounterDescriptionKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 PerformanceCounterDescriptionKHR( + VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR flags_ = {}, + std::array const & name_ = {}, + std::array const & category_ = {}, + std::array const & description_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , name( name_ ) + , category( category_ ) + , description( description_ ) + {} + + VULKAN_HPP_CONSTEXPR_14 + PerformanceCounterDescriptionKHR( PerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PerformanceCounterDescriptionKHR( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PerformanceCounterDescriptionKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PerformanceCounterDescriptionKHR & + operator=( PerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceMemoryProperties& operator=( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT + PerformanceCounterDescriptionKHR & operator=( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceMemoryProperties const&() const VULKAN_HPP_NOEXCEPT + operator VkPerformanceCounterDescriptionKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceMemoryProperties &() VULKAN_HPP_NOEXCEPT + operator VkPerformanceCounterDescriptionKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PerformanceCounterDescriptionKHR const & ) const = default; +#else + bool operator==( PerformanceCounterDescriptionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( memoryTypeCount == rhs.memoryTypeCount ) - && ( memcmp( memoryTypes, rhs.memoryTypes, std::min( VK_MAX_MEMORY_TYPES, memoryTypeCount ) * sizeof( VULKAN_HPP_NAMESPACE::MemoryType ) ) == 0 ) - && ( memoryHeapCount == rhs.memoryHeapCount ) - && ( memcmp( memoryHeaps, rhs.memoryHeaps, std::min( VK_MAX_MEMORY_HEAPS, memoryHeapCount ) * sizeof( VULKAN_HPP_NAMESPACE::MemoryHeap ) ) == 0 ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( name == rhs.name ) && + ( category == rhs.category ) && ( description == rhs.description ); } - bool operator!=( PhysicalDeviceMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PerformanceCounterDescriptionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint32_t memoryTypeCount = {}; - VULKAN_HPP_NAMESPACE::MemoryType memoryTypes[VK_MAX_MEMORY_TYPES] = {}; - uint32_t memoryHeapCount = {}; - VULKAN_HPP_NAMESPACE::MemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS] = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterDescriptionKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR flags = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D name = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D category = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D description = {}; }; - static_assert( sizeof( PhysicalDeviceMemoryProperties ) == sizeof( VkPhysicalDeviceMemoryProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PerformanceCounterDescriptionKHR ) == sizeof( VkPerformanceCounterDescriptionKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceMemoryProperties2 + template <> + struct CppType { - PhysicalDeviceMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties_ = {} ) VULKAN_HPP_NOEXCEPT - : memoryProperties( memoryProperties_ ) + using Type = PerformanceCounterDescriptionKHR; + }; + + struct DisplayModePropertiesKHR + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + DisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ = {}, + VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {} ) VULKAN_HPP_NOEXCEPT + : displayMode( displayMode_ ) + , parameters( parameters_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 ) - offsetof( PhysicalDeviceMemoryProperties2, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR DisplayModePropertiesKHR( DisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceMemoryProperties2( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + DisplayModePropertiesKHR( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : DisplayModePropertiesKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DisplayModePropertiesKHR & + operator=( DisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceMemoryProperties2& operator=( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT + DisplayModePropertiesKHR & operator=( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceMemoryProperties2 const&() const VULKAN_HPP_NOEXCEPT + operator VkDisplayModePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceMemoryProperties2 &() VULKAN_HPP_NOEXCEPT + operator VkDisplayModePropertiesKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceMemoryProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DisplayModePropertiesKHR const & ) const = default; +#else + bool operator==( DisplayModePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memoryProperties == rhs.memoryProperties ); + return ( displayMode == rhs.displayMode ) && ( parameters == rhs.parameters ); } - bool operator!=( PhysicalDeviceMemoryProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DisplayModePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryProperties2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties = {}; + VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {}; + VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {}; }; - static_assert( sizeof( PhysicalDeviceMemoryProperties2 ) == sizeof( VkPhysicalDeviceMemoryProperties2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DisplayModePropertiesKHR ) == sizeof( VkDisplayModePropertiesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceMeshShaderFeaturesNV + struct DisplayModeProperties2KHR { - VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 taskShader_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 meshShader_ = {} ) VULKAN_HPP_NOEXCEPT - : taskShader( taskShader_ ) - , meshShader( meshShader_ ) - {} - - VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV ) - offsetof( PhysicalDeviceMeshShaderFeaturesNV, pNext ) ); - return *this; - } + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayModeProperties2KHR; - PhysicalDeviceMeshShaderFeaturesNV( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DisplayModeProperties2KHR( + VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties_ = {} ) VULKAN_HPP_NOEXCEPT + : displayModeProperties( displayModeProperties_ ) + {} - PhysicalDeviceMeshShaderFeaturesNV& operator=( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR + DisplayModeProperties2KHR( DisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceMeshShaderFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + DisplayModeProperties2KHR( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : DisplayModeProperties2KHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceMeshShaderFeaturesNV & setTaskShader( VULKAN_HPP_NAMESPACE::Bool32 taskShader_ ) VULKAN_HPP_NOEXCEPT - { - taskShader = taskShader_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 DisplayModeProperties2KHR & + operator=( DisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceMeshShaderFeaturesNV & setMeshShader( VULKAN_HPP_NAMESPACE::Bool32 meshShader_ ) VULKAN_HPP_NOEXCEPT + DisplayModeProperties2KHR & operator=( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT { - meshShader = meshShader_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceMeshShaderFeaturesNV const&() const VULKAN_HPP_NOEXCEPT + operator VkDisplayModeProperties2KHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceMeshShaderFeaturesNV &() VULKAN_HPP_NOEXCEPT + operator VkDisplayModeProperties2KHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceMeshShaderFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DisplayModeProperties2KHR const & ) const = default; +#else + bool operator==( DisplayModeProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( taskShader == rhs.taskShader ) - && ( meshShader == rhs.meshShader ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( displayModeProperties == rhs.displayModeProperties ); } - bool operator!=( PhysicalDeviceMeshShaderFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DisplayModeProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 taskShader = {}; - VULKAN_HPP_NAMESPACE::Bool32 meshShader = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeProperties2KHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties = {}; }; - static_assert( sizeof( PhysicalDeviceMeshShaderFeaturesNV ) == sizeof( VkPhysicalDeviceMeshShaderFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DisplayModeProperties2KHR ) == sizeof( VkDisplayModeProperties2KHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceMeshShaderPropertiesNV + template <> + struct CppType { - PhysicalDeviceMeshShaderPropertiesNV( uint32_t maxDrawMeshTasksCount_ = {}, - uint32_t maxTaskWorkGroupInvocations_ = {}, - std::array const& maxTaskWorkGroupSize_ = {}, - uint32_t maxTaskTotalMemorySize_ = {}, - uint32_t maxTaskOutputCount_ = {}, - uint32_t maxMeshWorkGroupInvocations_ = {}, - std::array const& maxMeshWorkGroupSize_ = {}, - uint32_t maxMeshTotalMemorySize_ = {}, - uint32_t maxMeshOutputVertices_ = {}, - uint32_t maxMeshOutputPrimitives_ = {}, - uint32_t maxMeshMultiviewViewCount_ = {}, - uint32_t meshOutputPerVertexGranularity_ = {}, - uint32_t meshOutputPerPrimitiveGranularity_ = {} ) VULKAN_HPP_NOEXCEPT - : maxDrawMeshTasksCount( maxDrawMeshTasksCount_ ) - , maxTaskWorkGroupInvocations( maxTaskWorkGroupInvocations_ ) - , maxTaskWorkGroupSize{} - , maxTaskTotalMemorySize( maxTaskTotalMemorySize_ ) - , maxTaskOutputCount( maxTaskOutputCount_ ) - , maxMeshWorkGroupInvocations( maxMeshWorkGroupInvocations_ ) - , maxMeshWorkGroupSize{} - , maxMeshTotalMemorySize( maxMeshTotalMemorySize_ ) - , maxMeshOutputVertices( maxMeshOutputVertices_ ) - , maxMeshOutputPrimitives( maxMeshOutputPrimitives_ ) - , maxMeshMultiviewViewCount( maxMeshMultiviewViewCount_ ) - , meshOutputPerVertexGranularity( meshOutputPerVertexGranularity_ ) - , meshOutputPerPrimitiveGranularity( meshOutputPerPrimitiveGranularity_ ) + using Type = DisplayModeProperties2KHR; + }; + + struct DisplayPlaneInfo2KHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneInfo2KHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DisplayPlaneInfo2KHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ = {}, + uint32_t planeIndex_ = {} ) VULKAN_HPP_NOEXCEPT + : mode( mode_ ) + , planeIndex( planeIndex_ ) + {} + + VULKAN_HPP_CONSTEXPR DisplayPlaneInfo2KHR( DisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DisplayPlaneInfo2KHR( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : DisplayPlaneInfo2KHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DisplayPlaneInfo2KHR & + operator=( DisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DisplayPlaneInfo2KHR & operator=( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( maxTaskWorkGroupSize, maxTaskWorkGroupSize_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( maxMeshWorkGroupSize, maxMeshWorkGroupSize_ ); + *this = *reinterpret_cast( &rhs ); + return *this; } - VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + DisplayPlaneInfo2KHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV ) - offsetof( PhysicalDeviceMeshShaderPropertiesNV, pNext ) ); + pNext = pNext_; return *this; } - PhysicalDeviceMeshShaderPropertiesNV( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + DisplayPlaneInfo2KHR & setMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + mode = mode_; + return *this; } - PhysicalDeviceMeshShaderPropertiesNV& operator=( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + DisplayPlaneInfo2KHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + planeIndex = planeIndex_; return *this; } - operator VkPhysicalDeviceMeshShaderPropertiesNV const&() const VULKAN_HPP_NOEXCEPT + operator VkDisplayPlaneInfo2KHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceMeshShaderPropertiesNV &() VULKAN_HPP_NOEXCEPT + operator VkDisplayPlaneInfo2KHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceMeshShaderPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DisplayPlaneInfo2KHR const & ) const = default; +#else + bool operator==( DisplayPlaneInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxDrawMeshTasksCount == rhs.maxDrawMeshTasksCount ) - && ( maxTaskWorkGroupInvocations == rhs.maxTaskWorkGroupInvocations ) - && ( memcmp( maxTaskWorkGroupSize, rhs.maxTaskWorkGroupSize, 3 * sizeof( uint32_t ) ) == 0 ) - && ( maxTaskTotalMemorySize == rhs.maxTaskTotalMemorySize ) - && ( maxTaskOutputCount == rhs.maxTaskOutputCount ) - && ( maxMeshWorkGroupInvocations == rhs.maxMeshWorkGroupInvocations ) - && ( memcmp( maxMeshWorkGroupSize, rhs.maxMeshWorkGroupSize, 3 * sizeof( uint32_t ) ) == 0 ) - && ( maxMeshTotalMemorySize == rhs.maxMeshTotalMemorySize ) - && ( maxMeshOutputVertices == rhs.maxMeshOutputVertices ) - && ( maxMeshOutputPrimitives == rhs.maxMeshOutputPrimitives ) - && ( maxMeshMultiviewViewCount == rhs.maxMeshMultiviewViewCount ) - && ( meshOutputPerVertexGranularity == rhs.meshOutputPerVertexGranularity ) - && ( meshOutputPerPrimitiveGranularity == rhs.meshOutputPerPrimitiveGranularity ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( mode == rhs.mode ) && + ( planeIndex == rhs.planeIndex ); } - bool operator!=( PhysicalDeviceMeshShaderPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DisplayPlaneInfo2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV; - void* pNext = {}; - uint32_t maxDrawMeshTasksCount = {}; - uint32_t maxTaskWorkGroupInvocations = {}; - uint32_t maxTaskWorkGroupSize[3] = {}; - uint32_t maxTaskTotalMemorySize = {}; - uint32_t maxTaskOutputCount = {}; - uint32_t maxMeshWorkGroupInvocations = {}; - uint32_t maxMeshWorkGroupSize[3] = {}; - uint32_t maxMeshTotalMemorySize = {}; - uint32_t maxMeshOutputVertices = {}; - uint32_t maxMeshOutputPrimitives = {}; - uint32_t maxMeshMultiviewViewCount = {}; - uint32_t meshOutputPerVertexGranularity = {}; - uint32_t meshOutputPerPrimitiveGranularity = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneInfo2KHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DisplayModeKHR mode = {}; + uint32_t planeIndex = {}; }; - static_assert( sizeof( PhysicalDeviceMeshShaderPropertiesNV ) == sizeof( VkPhysicalDeviceMeshShaderPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DisplayPlaneInfo2KHR ) == sizeof( VkDisplayPlaneInfo2KHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceMultiviewFeatures + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewFeatures( VULKAN_HPP_NAMESPACE::Bool32 multiview_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ = {} ) VULKAN_HPP_NOEXCEPT - : multiview( multiview_ ) - , multiviewGeometryShader( multiviewGeometryShader_ ) - , multiviewTessellationShader( multiviewTessellationShader_ ) - {} - - VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures ) - offsetof( PhysicalDeviceMultiviewFeatures, pNext ) ); - return *this; - } - - PhysicalDeviceMultiviewFeatures( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + using Type = DisplayPlaneInfo2KHR; + }; - PhysicalDeviceMultiviewFeatures& operator=( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + struct DisplayPlaneCapabilitiesKHR + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + DisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR supportedAlpha_ = {}, + VULKAN_HPP_NAMESPACE::Offset2D minSrcPosition_ = {}, + VULKAN_HPP_NAMESPACE::Offset2D maxSrcPosition_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D minSrcExtent_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D maxSrcExtent_ = {}, + VULKAN_HPP_NAMESPACE::Offset2D minDstPosition_ = {}, + VULKAN_HPP_NAMESPACE::Offset2D maxDstPosition_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D minDstExtent_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D maxDstExtent_ = {} ) VULKAN_HPP_NOEXCEPT + : supportedAlpha( supportedAlpha_ ) + , minSrcPosition( minSrcPosition_ ) + , maxSrcPosition( maxSrcPosition_ ) + , minSrcExtent( minSrcExtent_ ) + , maxSrcExtent( maxSrcExtent_ ) + , minDstPosition( minDstPosition_ ) + , maxDstPosition( maxDstPosition_ ) + , minDstExtent( minDstExtent_ ) + , maxDstExtent( maxDstExtent_ ) + {} - PhysicalDeviceMultiviewFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + VULKAN_HPP_CONSTEXPR + DisplayPlaneCapabilitiesKHR( DisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceMultiviewFeatures & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT - { - multiview = multiview_; - return *this; - } + DisplayPlaneCapabilitiesKHR( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : DisplayPlaneCapabilitiesKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceMultiviewFeatures & setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT - { - multiviewGeometryShader = multiviewGeometryShader_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 DisplayPlaneCapabilitiesKHR & + operator=( DisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceMultiviewFeatures & setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT + DisplayPlaneCapabilitiesKHR & operator=( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - multiviewTessellationShader = multiviewTessellationShader_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceMultiviewFeatures const&() const VULKAN_HPP_NOEXCEPT + operator VkDisplayPlaneCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceMultiviewFeatures &() VULKAN_HPP_NOEXCEPT + operator VkDisplayPlaneCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceMultiviewFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DisplayPlaneCapabilitiesKHR const & ) const = default; +#else + bool operator==( DisplayPlaneCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( multiview == rhs.multiview ) - && ( multiviewGeometryShader == rhs.multiviewGeometryShader ) - && ( multiviewTessellationShader == rhs.multiviewTessellationShader ); + return ( supportedAlpha == rhs.supportedAlpha ) && ( minSrcPosition == rhs.minSrcPosition ) && + ( maxSrcPosition == rhs.maxSrcPosition ) && ( minSrcExtent == rhs.minSrcExtent ) && + ( maxSrcExtent == rhs.maxSrcExtent ) && ( minDstPosition == rhs.minDstPosition ) && + ( maxDstPosition == rhs.maxDstPosition ) && ( minDstExtent == rhs.minDstExtent ) && + ( maxDstExtent == rhs.maxDstExtent ); } - bool operator!=( PhysicalDeviceMultiviewFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DisplayPlaneCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiview = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {}; - }; - static_assert( sizeof( PhysicalDeviceMultiviewFeatures ) == sizeof( VkPhysicalDeviceMultiviewFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR supportedAlpha = {}; + VULKAN_HPP_NAMESPACE::Offset2D minSrcPosition = {}; + VULKAN_HPP_NAMESPACE::Offset2D maxSrcPosition = {}; + VULKAN_HPP_NAMESPACE::Extent2D minSrcExtent = {}; + VULKAN_HPP_NAMESPACE::Extent2D maxSrcExtent = {}; + VULKAN_HPP_NAMESPACE::Offset2D minDstPosition = {}; + VULKAN_HPP_NAMESPACE::Offset2D maxDstPosition = {}; + VULKAN_HPP_NAMESPACE::Extent2D minDstExtent = {}; + VULKAN_HPP_NAMESPACE::Extent2D maxDstExtent = {}; + }; + static_assert( sizeof( DisplayPlaneCapabilitiesKHR ) == sizeof( VkDisplayPlaneCapabilitiesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX + struct DisplayPlaneCapabilities2KHR { - PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents_ = {} ) VULKAN_HPP_NOEXCEPT - : perViewPositionAllComponents( perViewPositionAllComponents_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneCapabilities2KHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilities2KHR( + VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities_ = {} ) VULKAN_HPP_NOEXCEPT + : capabilities( capabilities_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ) - offsetof( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + DisplayPlaneCapabilities2KHR( DisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + DisplayPlaneCapabilities2KHR( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : DisplayPlaneCapabilities2KHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX& operator=( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 DisplayPlaneCapabilities2KHR & + operator=( DisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DisplayPlaneCapabilities2KHR & operator=( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const&() const VULKAN_HPP_NOEXCEPT + operator VkDisplayPlaneCapabilities2KHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX &() VULKAN_HPP_NOEXCEPT + operator VkDisplayPlaneCapabilities2KHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DisplayPlaneCapabilities2KHR const & ) const = default; +#else + bool operator==( DisplayPlaneCapabilities2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( perViewPositionAllComponents == rhs.perViewPositionAllComponents ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( capabilities == rhs.capabilities ); } - bool operator!=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DisplayPlaneCapabilities2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneCapabilities2KHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities = {}; }; - static_assert( sizeof( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ) == sizeof( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DisplayPlaneCapabilities2KHR ) == sizeof( VkDisplayPlaneCapabilities2KHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceMultiviewProperties + template <> + struct CppType { - PhysicalDeviceMultiviewProperties( uint32_t maxMultiviewViewCount_ = {}, - uint32_t maxMultiviewInstanceIndex_ = {} ) VULKAN_HPP_NOEXCEPT - : maxMultiviewViewCount( maxMultiviewViewCount_ ) - , maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ ) + using Type = DisplayPlaneCapabilities2KHR; + }; + + struct DisplayPlanePropertiesKHR + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DisplayPlanePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay_ = {}, + uint32_t currentStackIndex_ = {} ) VULKAN_HPP_NOEXCEPT + : currentDisplay( currentDisplay_ ) + , currentStackIndex( currentStackIndex_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties ) - offsetof( PhysicalDeviceMultiviewProperties, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + DisplayPlanePropertiesKHR( DisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceMultiviewProperties( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + DisplayPlanePropertiesKHR( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : DisplayPlanePropertiesKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceMultiviewProperties& operator=( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 DisplayPlanePropertiesKHR & + operator=( DisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DisplayPlanePropertiesKHR & operator=( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceMultiviewProperties const&() const VULKAN_HPP_NOEXCEPT + operator VkDisplayPlanePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceMultiviewProperties &() VULKAN_HPP_NOEXCEPT + operator VkDisplayPlanePropertiesKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceMultiviewProperties const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DisplayPlanePropertiesKHR const & ) const = default; +#else + bool operator==( DisplayPlanePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxMultiviewViewCount == rhs.maxMultiviewViewCount ) - && ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex ); + return ( currentDisplay == rhs.currentDisplay ) && ( currentStackIndex == rhs.currentStackIndex ); } - bool operator!=( PhysicalDeviceMultiviewProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DisplayPlanePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewProperties; - void* pNext = {}; - uint32_t maxMultiviewViewCount = {}; - uint32_t maxMultiviewInstanceIndex = {}; + VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay = {}; + uint32_t currentStackIndex = {}; }; - static_assert( sizeof( PhysicalDeviceMultiviewProperties ) == sizeof( VkPhysicalDeviceMultiviewProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DisplayPlanePropertiesKHR ) == sizeof( VkDisplayPlanePropertiesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDevicePCIBusInfoPropertiesEXT + struct DisplayPlaneProperties2KHR { - PhysicalDevicePCIBusInfoPropertiesEXT( uint32_t pciDomain_ = {}, - uint32_t pciBus_ = {}, - uint32_t pciDevice_ = {}, - uint32_t pciFunction_ = {} ) VULKAN_HPP_NOEXCEPT - : pciDomain( pciDomain_ ) - , pciBus( pciBus_ ) - , pciDevice( pciDevice_ ) - , pciFunction( pciFunction_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneProperties2KHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DisplayPlaneProperties2KHR( + VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties_ = {} ) VULKAN_HPP_NOEXCEPT + : displayPlaneProperties( displayPlaneProperties_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT ) - offsetof( PhysicalDevicePCIBusInfoPropertiesEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + DisplayPlaneProperties2KHR( DisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDevicePCIBusInfoPropertiesEXT( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + DisplayPlaneProperties2KHR( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : DisplayPlaneProperties2KHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DisplayPlaneProperties2KHR & + operator=( DisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDevicePCIBusInfoPropertiesEXT& operator=( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DisplayPlaneProperties2KHR & operator=( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDevicePCIBusInfoPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkDisplayPlaneProperties2KHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDevicePCIBusInfoPropertiesEXT &() VULKAN_HPP_NOEXCEPT + operator VkDisplayPlaneProperties2KHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDevicePCIBusInfoPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DisplayPlaneProperties2KHR const & ) const = default; +#else + bool operator==( DisplayPlaneProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pciDomain == rhs.pciDomain ) - && ( pciBus == rhs.pciBus ) - && ( pciDevice == rhs.pciDevice ) - && ( pciFunction == rhs.pciFunction ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( displayPlaneProperties == rhs.displayPlaneProperties ); } - bool operator!=( PhysicalDevicePCIBusInfoPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DisplayPlaneProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT; - void* pNext = {}; - uint32_t pciDomain = {}; - uint32_t pciBus = {}; - uint32_t pciDevice = {}; - uint32_t pciFunction = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneProperties2KHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties = {}; }; - static_assert( sizeof( PhysicalDevicePCIBusInfoPropertiesEXT ) == sizeof( VkPhysicalDevicePCIBusInfoPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DisplayPlaneProperties2KHR ) == sizeof( VkDisplayPlaneProperties2KHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDevicePerformanceQueryFeaturesKHR + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ = {} ) VULKAN_HPP_NOEXCEPT - : performanceCounterQueryPools( performanceCounterQueryPools_ ) - , performanceCounterMultipleQueryPools( performanceCounterMultipleQueryPools_ ) - {} - - VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR & operator=( VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR ) - offsetof( PhysicalDevicePerformanceQueryFeaturesKHR, pNext ) ); - return *this; - } + using Type = DisplayPlaneProperties2KHR; + }; - PhysicalDevicePerformanceQueryFeaturesKHR( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + struct DisplayPropertiesKHR + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + DisplayPropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display_ = {}, + const char * displayName_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D physicalDimensions_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D physicalResolution_ = {}, + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 planeReorderPossible_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 persistentContent_ = {} ) VULKAN_HPP_NOEXCEPT + : display( display_ ) + , displayName( displayName_ ) + , physicalDimensions( physicalDimensions_ ) + , physicalResolution( physicalResolution_ ) + , supportedTransforms( supportedTransforms_ ) + , planeReorderPossible( planeReorderPossible_ ) + , persistentContent( persistentContent_ ) + {} - PhysicalDevicePerformanceQueryFeaturesKHR& operator=( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR DisplayPropertiesKHR( DisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDevicePerformanceQueryFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + DisplayPropertiesKHR( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : DisplayPropertiesKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDevicePerformanceQueryFeaturesKHR & setPerformanceCounterQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ ) VULKAN_HPP_NOEXCEPT - { - performanceCounterQueryPools = performanceCounterQueryPools_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 DisplayPropertiesKHR & + operator=( DisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDevicePerformanceQueryFeaturesKHR & setPerformanceCounterMultipleQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ ) VULKAN_HPP_NOEXCEPT + DisplayPropertiesKHR & operator=( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - performanceCounterMultipleQueryPools = performanceCounterMultipleQueryPools_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDevicePerformanceQueryFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkDisplayPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDevicePerformanceQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT + operator VkDisplayPropertiesKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDevicePerformanceQueryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DisplayPropertiesKHR const & ) const = default; +#else + bool operator==( DisplayPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( performanceCounterQueryPools == rhs.performanceCounterQueryPools ) - && ( performanceCounterMultipleQueryPools == rhs.performanceCounterMultipleQueryPools ); + return ( display == rhs.display ) && ( displayName == rhs.displayName ) && + ( physicalDimensions == rhs.physicalDimensions ) && ( physicalResolution == rhs.physicalResolution ) && + ( supportedTransforms == rhs.supportedTransforms ) && + ( planeReorderPossible == rhs.planeReorderPossible ) && ( persistentContent == rhs.persistentContent ); } - bool operator!=( PhysicalDevicePerformanceQueryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DisplayPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools = {}; - VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools = {}; + VULKAN_HPP_NAMESPACE::DisplayKHR display = {}; + const char * displayName = {}; + VULKAN_HPP_NAMESPACE::Extent2D physicalDimensions = {}; + VULKAN_HPP_NAMESPACE::Extent2D physicalResolution = {}; + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {}; + VULKAN_HPP_NAMESPACE::Bool32 planeReorderPossible = {}; + VULKAN_HPP_NAMESPACE::Bool32 persistentContent = {}; }; - static_assert( sizeof( PhysicalDevicePerformanceQueryFeaturesKHR ) == sizeof( VkPhysicalDevicePerformanceQueryFeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DisplayPropertiesKHR ) == sizeof( VkDisplayPropertiesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDevicePerformanceQueryPropertiesKHR + struct DisplayProperties2KHR { - PhysicalDevicePerformanceQueryPropertiesKHR( VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies_ = {} ) VULKAN_HPP_NOEXCEPT - : allowCommandBufferQueryCopies( allowCommandBufferQueryCopies_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayProperties2KHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + DisplayProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties_ = {} ) VULKAN_HPP_NOEXCEPT + : displayProperties( displayProperties_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR & operator=( VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR ) - offsetof( PhysicalDevicePerformanceQueryPropertiesKHR, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR DisplayProperties2KHR( DisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDevicePerformanceQueryPropertiesKHR( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + DisplayProperties2KHR( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : DisplayProperties2KHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDevicePerformanceQueryPropertiesKHR& operator=( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 DisplayProperties2KHR & + operator=( DisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DisplayProperties2KHR & operator=( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDevicePerformanceQueryPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkDisplayProperties2KHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDevicePerformanceQueryPropertiesKHR &() VULKAN_HPP_NOEXCEPT + operator VkDisplayProperties2KHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDevicePerformanceQueryPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DisplayProperties2KHR const & ) const = default; +#else + bool operator==( DisplayProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( allowCommandBufferQueryCopies == rhs.allowCommandBufferQueryCopies ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( displayProperties == rhs.displayProperties ); } - bool operator!=( PhysicalDevicePerformanceQueryPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DisplayProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayProperties2KHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties = {}; }; - static_assert( sizeof( PhysicalDevicePerformanceQueryPropertiesKHR ) == sizeof( VkPhysicalDevicePerformanceQueryPropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DisplayProperties2KHR ) == sizeof( VkDisplayProperties2KHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ = {} ) VULKAN_HPP_NOEXCEPT - : pipelineExecutableInfo( pipelineExecutableInfo_ ) + using Type = DisplayProperties2KHR; + }; + + struct PhysicalDeviceExternalBufferInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalBufferInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalBufferInfo( + VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ = {}, + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , usage( usage_ ) + , handleType( handleType_ ) + {} + + VULKAN_HPP_CONSTEXPR + PhysicalDeviceExternalBufferInfo( PhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceExternalBufferInfo( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceExternalBufferInfo( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & operator=( VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalBufferInfo & + operator=( PhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceExternalBufferInfo & operator=( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR ) - offsetof( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceExternalBufferInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - PhysicalDevicePipelineExecutablePropertiesFeaturesKHR& operator=( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceExternalBufferInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + flags = flags_; return *this; } - PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceExternalBufferInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + usage = usage_; return *this; } - PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPipelineExecutableInfo( VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceExternalBufferInfo & + setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT { - pipelineExecutableInfo = pipelineExecutableInfo_; + handleType = handleType_; return *this; } - operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceExternalBufferInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceExternalBufferInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceExternalBufferInfo const & ) const = default; +#else + bool operator==( PhysicalDeviceExternalBufferInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pipelineExecutableInfo == rhs.pipelineExecutableInfo ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( usage == rhs.usage ) && + ( handleType == rhs.handleType ); } - bool operator!=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceExternalBufferInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalBufferInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {}; + VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; }; - static_assert( sizeof( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR ) == sizeof( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceExternalBufferInfo ) == sizeof( VkPhysicalDeviceExternalBufferInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDevicePointClippingProperties + template <> + struct CppType { - PhysicalDevicePointClippingProperties( VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior_ = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes ) VULKAN_HPP_NOEXCEPT - : pointClippingBehavior( pointClippingBehavior_ ) + using Type = PhysicalDeviceExternalBufferInfo; + }; + using PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo; + + struct ExternalMemoryProperties + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ExternalMemoryProperties( + VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures_ = {}, + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes_ = {}, + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes_ = {} ) VULKAN_HPP_NOEXCEPT + : externalMemoryFeatures( externalMemoryFeatures_ ) + , exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ) + , compatibleHandleTypes( compatibleHandleTypes_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties & operator=( VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties ) - offsetof( PhysicalDevicePointClippingProperties, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR ExternalMemoryProperties( ExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDevicePointClippingProperties( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ExternalMemoryProperties( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT + : ExternalMemoryProperties( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ExternalMemoryProperties & + operator=( ExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDevicePointClippingProperties& operator=( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT + ExternalMemoryProperties & operator=( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDevicePointClippingProperties const&() const VULKAN_HPP_NOEXCEPT + operator VkExternalMemoryProperties const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDevicePointClippingProperties &() VULKAN_HPP_NOEXCEPT + operator VkExternalMemoryProperties &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDevicePointClippingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ExternalMemoryProperties const & ) const = default; +#else + bool operator==( ExternalMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pointClippingBehavior == rhs.pointClippingBehavior ); + return ( externalMemoryFeatures == rhs.externalMemoryFeatures ) && + ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) && + ( compatibleHandleTypes == rhs.compatibleHandleTypes ); } - bool operator!=( PhysicalDevicePointClippingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ExternalMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePointClippingProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes; + VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes = {}; }; - static_assert( sizeof( PhysicalDevicePointClippingProperties ) == sizeof( VkPhysicalDevicePointClippingProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ExternalMemoryProperties ) == sizeof( VkExternalMemoryProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + using ExternalMemoryPropertiesKHR = ExternalMemoryProperties; - struct PhysicalDeviceSparseProperties + struct ExternalBufferProperties { - PhysicalDeviceSparseProperties( VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DBlockShape_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DMultisampleBlockShape_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 residencyStandard3DBlockShape_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 residencyAlignedMipSize_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 residencyNonResidentStrict_ = {} ) VULKAN_HPP_NOEXCEPT - : residencyStandard2DBlockShape( residencyStandard2DBlockShape_ ) - , residencyStandard2DMultisampleBlockShape( residencyStandard2DMultisampleBlockShape_ ) - , residencyStandard3DBlockShape( residencyStandard3DBlockShape_ ) - , residencyAlignedMipSize( residencyAlignedMipSize_ ) - , residencyNonResidentStrict( residencyNonResidentStrict_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalBufferProperties; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ExternalBufferProperties( + VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {} ) VULKAN_HPP_NOEXCEPT + : externalMemoryProperties( externalMemoryProperties_ ) {} - PhysicalDeviceSparseProperties( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR ExternalBufferProperties( ExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ExternalBufferProperties( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT + : ExternalBufferProperties( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceSparseProperties& operator=( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 ExternalBufferProperties & + operator=( ExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ExternalBufferProperties & operator=( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceSparseProperties const&() const VULKAN_HPP_NOEXCEPT + operator VkExternalBufferProperties const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceSparseProperties &() VULKAN_HPP_NOEXCEPT + operator VkExternalBufferProperties &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceSparseProperties const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ExternalBufferProperties const & ) const = default; +#else + bool operator==( ExternalBufferProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( residencyStandard2DBlockShape == rhs.residencyStandard2DBlockShape ) - && ( residencyStandard2DMultisampleBlockShape == rhs.residencyStandard2DMultisampleBlockShape ) - && ( residencyStandard3DBlockShape == rhs.residencyStandard3DBlockShape ) - && ( residencyAlignedMipSize == rhs.residencyAlignedMipSize ) - && ( residencyNonResidentStrict == rhs.residencyNonResidentStrict ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( externalMemoryProperties == rhs.externalMemoryProperties ); } - bool operator!=( PhysicalDeviceSparseProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ExternalBufferProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DBlockShape = {}; - VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DMultisampleBlockShape = {}; - VULKAN_HPP_NAMESPACE::Bool32 residencyStandard3DBlockShape = {}; - VULKAN_HPP_NAMESPACE::Bool32 residencyAlignedMipSize = {}; - VULKAN_HPP_NAMESPACE::Bool32 residencyNonResidentStrict = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalBufferProperties; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {}; + }; + static_assert( sizeof( ExternalBufferProperties ) == sizeof( VkExternalBufferProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = ExternalBufferProperties; }; - static_assert( sizeof( PhysicalDeviceSparseProperties ) == sizeof( VkPhysicalDeviceSparseProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + using ExternalBufferPropertiesKHR = ExternalBufferProperties; - struct PhysicalDeviceProperties + struct PhysicalDeviceExternalFenceInfo { - PhysicalDeviceProperties( uint32_t apiVersion_ = {}, - uint32_t driverVersion_ = {}, - uint32_t vendorID_ = {}, - uint32_t deviceID_ = {}, - VULKAN_HPP_NAMESPACE::PhysicalDeviceType deviceType_ = VULKAN_HPP_NAMESPACE::PhysicalDeviceType::eOther, - std::array const& deviceName_ = {}, - std::array const& pipelineCacheUUID_ = {}, - VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits limits_ = {}, - VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties sparseProperties_ = {} ) VULKAN_HPP_NOEXCEPT - : apiVersion( apiVersion_ ) - , driverVersion( driverVersion_ ) - , vendorID( vendorID_ ) - , deviceID( deviceID_ ) - , deviceType( deviceType_ ) - , deviceName{} - , pipelineCacheUUID{} - , limits( limits_ ) - , sparseProperties( sparseProperties_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalFenceInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFenceInfo( + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT + : handleType( handleType_ ) + {} + + VULKAN_HPP_CONSTEXPR + PhysicalDeviceExternalFenceInfo( PhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceExternalFenceInfo( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceExternalFenceInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalFenceInfo & + operator=( PhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceExternalFenceInfo & operator=( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( deviceName, deviceName_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( pipelineCacheUUID, pipelineCacheUUID_ ); + *this = *reinterpret_cast( &rhs ); + return *this; } - PhysicalDeviceProperties( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceExternalFenceInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - PhysicalDeviceProperties& operator=( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceExternalFenceInfo & + setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + handleType = handleType_; return *this; } - operator VkPhysicalDeviceProperties const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceExternalFenceInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceProperties &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceExternalFenceInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceExternalFenceInfo const & ) const = default; +#else + bool operator==( PhysicalDeviceExternalFenceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( apiVersion == rhs.apiVersion ) - && ( driverVersion == rhs.driverVersion ) - && ( vendorID == rhs.vendorID ) - && ( deviceID == rhs.deviceID ) - && ( deviceType == rhs.deviceType ) - && ( memcmp( deviceName, rhs.deviceName, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE * sizeof( char ) ) == 0 ) - && ( memcmp( pipelineCacheUUID, rhs.pipelineCacheUUID, VK_UUID_SIZE * sizeof( uint8_t ) ) == 0 ) - && ( limits == rhs.limits ) - && ( sparseProperties == rhs.sparseProperties ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType ); } - bool operator!=( PhysicalDeviceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceExternalFenceInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint32_t apiVersion = {}; - uint32_t driverVersion = {}; - uint32_t vendorID = {}; - uint32_t deviceID = {}; - VULKAN_HPP_NAMESPACE::PhysicalDeviceType deviceType = VULKAN_HPP_NAMESPACE::PhysicalDeviceType::eOther; - char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] = {}; - uint8_t pipelineCacheUUID[VK_UUID_SIZE] = {}; - VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits limits = {}; - VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties sparseProperties = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalFenceInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd; }; - static_assert( sizeof( PhysicalDeviceProperties ) == sizeof( VkPhysicalDeviceProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceExternalFenceInfo ) == sizeof( VkPhysicalDeviceExternalFenceInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceProperties2 + template <> + struct CppType { - PhysicalDeviceProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties_ = {} ) VULKAN_HPP_NOEXCEPT - : properties( properties_ ) + using Type = PhysicalDeviceExternalFenceInfo; + }; + using PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo; + + struct ExternalFenceProperties + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFenceProperties; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ExternalFenceProperties( + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes_ = {}, + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes_ = {}, + VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures_ = {} ) VULKAN_HPP_NOEXCEPT + : exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ) + , compatibleHandleTypes( compatibleHandleTypes_ ) + , externalFenceFeatures( externalFenceFeatures_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 ) - offsetof( PhysicalDeviceProperties2, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR ExternalFenceProperties( ExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceProperties2( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ExternalFenceProperties( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT + : ExternalFenceProperties( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ExternalFenceProperties & + operator=( ExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceProperties2& operator=( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT + ExternalFenceProperties & operator=( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceProperties2 const&() const VULKAN_HPP_NOEXCEPT + operator VkExternalFenceProperties const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceProperties2 &() VULKAN_HPP_NOEXCEPT + operator VkExternalFenceProperties &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ExternalFenceProperties const & ) const = default; +#else + bool operator==( ExternalFenceProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( properties == rhs.properties ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) && + ( compatibleHandleTypes == rhs.compatibleHandleTypes ) && + ( externalFenceFeatures == rhs.externalFenceFeatures ); } - bool operator!=( PhysicalDeviceProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ExternalFenceProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProperties2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFenceProperties; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes = {}; + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes = {}; + VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures = {}; }; - static_assert( sizeof( PhysicalDeviceProperties2 ) == sizeof( VkPhysicalDeviceProperties2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ExternalFenceProperties ) == sizeof( VkExternalFenceProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceProtectedMemoryFeatures + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryFeatures( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ = {} ) VULKAN_HPP_NOEXCEPT - : protectedMemory( protectedMemory_ ) - {} + using Type = ExternalFenceProperties; + }; + using ExternalFencePropertiesKHR = ExternalFenceProperties; - VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures ) - offsetof( PhysicalDeviceProtectedMemoryFeatures, pNext ) ); - return *this; - } + struct ImageFormatProperties + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ImageFormatProperties( VULKAN_HPP_NAMESPACE::Extent3D maxExtent_ = {}, + uint32_t maxMipLevels_ = {}, + uint32_t maxArrayLayers_ = {}, + VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize maxResourceSize_ = {} ) VULKAN_HPP_NOEXCEPT + : maxExtent( maxExtent_ ) + , maxMipLevels( maxMipLevels_ ) + , maxArrayLayers( maxArrayLayers_ ) + , sampleCounts( sampleCounts_ ) + , maxResourceSize( maxResourceSize_ ) + {} - PhysicalDeviceProtectedMemoryFeatures( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR ImageFormatProperties( ImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceProtectedMemoryFeatures& operator=( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + ImageFormatProperties( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageFormatProperties( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceProtectedMemoryFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 ImageFormatProperties & + operator=( ImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceProtectedMemoryFeatures & setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT + ImageFormatProperties & operator=( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - protectedMemory = protectedMemory_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceProtectedMemoryFeatures const&() const VULKAN_HPP_NOEXCEPT + operator VkImageFormatProperties const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceProtectedMemoryFeatures &() VULKAN_HPP_NOEXCEPT + operator VkImageFormatProperties &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceProtectedMemoryFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageFormatProperties const & ) const = default; +#else + bool operator==( ImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( protectedMemory == rhs.protectedMemory ); + return ( maxExtent == rhs.maxExtent ) && ( maxMipLevels == rhs.maxMipLevels ) && + ( maxArrayLayers == rhs.maxArrayLayers ) && ( sampleCounts == rhs.sampleCounts ) && + ( maxResourceSize == rhs.maxResourceSize ); } - bool operator!=( PhysicalDeviceProtectedMemoryFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {}; + VULKAN_HPP_NAMESPACE::Extent3D maxExtent = {}; + uint32_t maxMipLevels = {}; + uint32_t maxArrayLayers = {}; + VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts = {}; + VULKAN_HPP_NAMESPACE::DeviceSize maxResourceSize = {}; }; - static_assert( sizeof( PhysicalDeviceProtectedMemoryFeatures ) == sizeof( VkPhysicalDeviceProtectedMemoryFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageFormatProperties ) == sizeof( VkImageFormatProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceProtectedMemoryProperties + struct ExternalImageFormatPropertiesNV { - PhysicalDeviceProtectedMemoryProperties( VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault_ = {} ) VULKAN_HPP_NOEXCEPT - : protectedNoFault( protectedNoFault_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ExternalImageFormatPropertiesNV( + VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties_ = {}, + VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV externalMemoryFeatures_ = {}, + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes_ = {}, + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes_ = {} ) VULKAN_HPP_NOEXCEPT + : imageFormatProperties( imageFormatProperties_ ) + , externalMemoryFeatures( externalMemoryFeatures_ ) + , exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ) + , compatibleHandleTypes( compatibleHandleTypes_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties ) - offsetof( PhysicalDeviceProtectedMemoryProperties, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + ExternalImageFormatPropertiesNV( ExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceProtectedMemoryProperties( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ExternalImageFormatPropertiesNV( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + : ExternalImageFormatPropertiesNV( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ExternalImageFormatPropertiesNV & + operator=( ExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceProtectedMemoryProperties& operator=( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT + ExternalImageFormatPropertiesNV & operator=( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceProtectedMemoryProperties const&() const VULKAN_HPP_NOEXCEPT + operator VkExternalImageFormatPropertiesNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceProtectedMemoryProperties &() VULKAN_HPP_NOEXCEPT + operator VkExternalImageFormatPropertiesNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceProtectedMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ExternalImageFormatPropertiesNV const & ) const = default; +#else + bool operator==( ExternalImageFormatPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( protectedNoFault == rhs.protectedNoFault ); + return ( imageFormatProperties == rhs.imageFormatProperties ) && + ( externalMemoryFeatures == rhs.externalMemoryFeatures ) && + ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) && + ( compatibleHandleTypes == rhs.compatibleHandleTypes ); } - bool operator!=( PhysicalDeviceProtectedMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ExternalImageFormatPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {}; + VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV externalMemoryFeatures = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes = {}; }; - static_assert( sizeof( PhysicalDeviceProtectedMemoryProperties ) == sizeof( VkPhysicalDeviceProtectedMemoryProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ExternalImageFormatPropertiesNV ) == sizeof( VkExternalImageFormatPropertiesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDevicePushDescriptorPropertiesKHR + struct PhysicalDeviceExternalSemaphoreInfo { - PhysicalDevicePushDescriptorPropertiesKHR( uint32_t maxPushDescriptors_ = {} ) VULKAN_HPP_NOEXCEPT - : maxPushDescriptors( maxPushDescriptors_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceExternalSemaphoreInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalSemaphoreInfo( + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT + : handleType( handleType_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalSemaphoreInfo( PhysicalDeviceExternalSemaphoreInfo const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceExternalSemaphoreInfo( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceExternalSemaphoreInfo( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR & operator=( VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalSemaphoreInfo & + operator=( PhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceExternalSemaphoreInfo & + operator=( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR ) - offsetof( PhysicalDevicePushDescriptorPropertiesKHR, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDevicePushDescriptorPropertiesKHR( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceExternalSemaphoreInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - PhysicalDevicePushDescriptorPropertiesKHR& operator=( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceExternalSemaphoreInfo & + setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + handleType = handleType_; return *this; } - operator VkPhysicalDevicePushDescriptorPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceExternalSemaphoreInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDevicePushDescriptorPropertiesKHR &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceExternalSemaphoreInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDevicePushDescriptorPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceExternalSemaphoreInfo const & ) const = default; +#else + bool operator==( PhysicalDeviceExternalSemaphoreInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxPushDescriptors == rhs.maxPushDescriptors ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType ); } - bool operator!=( PhysicalDevicePushDescriptorPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceExternalSemaphoreInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR; - void* pNext = {}; - uint32_t maxPushDescriptors = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalSemaphoreInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd; }; - static_assert( sizeof( PhysicalDevicePushDescriptorPropertiesKHR ) == sizeof( VkPhysicalDevicePushDescriptorPropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceExternalSemaphoreInfo ) == sizeof( VkPhysicalDeviceExternalSemaphoreInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceRayTracingPropertiesNV + template <> + struct CppType { - PhysicalDeviceRayTracingPropertiesNV( uint32_t shaderGroupHandleSize_ = {}, - uint32_t maxRecursionDepth_ = {}, - uint32_t maxShaderGroupStride_ = {}, - uint32_t shaderGroupBaseAlignment_ = {}, - uint64_t maxGeometryCount_ = {}, - uint64_t maxInstanceCount_ = {}, - uint64_t maxTriangleCount_ = {}, - uint32_t maxDescriptorSetAccelerationStructures_ = {} ) VULKAN_HPP_NOEXCEPT - : shaderGroupHandleSize( shaderGroupHandleSize_ ) - , maxRecursionDepth( maxRecursionDepth_ ) - , maxShaderGroupStride( maxShaderGroupStride_ ) - , shaderGroupBaseAlignment( shaderGroupBaseAlignment_ ) - , maxGeometryCount( maxGeometryCount_ ) - , maxInstanceCount( maxInstanceCount_ ) - , maxTriangleCount( maxTriangleCount_ ) - , maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ ) + using Type = PhysicalDeviceExternalSemaphoreInfo; + }; + using PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo; + + struct ExternalSemaphoreProperties + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalSemaphoreProperties; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ExternalSemaphoreProperties( + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes_ = {}, + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes_ = {}, + VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures_ = {} ) VULKAN_HPP_NOEXCEPT + : exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ) + , compatibleHandleTypes( compatibleHandleTypes_ ) + , externalSemaphoreFeatures( externalSemaphoreFeatures_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV ) - offsetof( PhysicalDeviceRayTracingPropertiesNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + ExternalSemaphoreProperties( ExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceRayTracingPropertiesNV( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ExternalSemaphoreProperties( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT + : ExternalSemaphoreProperties( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ExternalSemaphoreProperties & + operator=( ExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceRayTracingPropertiesNV& operator=( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + ExternalSemaphoreProperties & operator=( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceRayTracingPropertiesNV const&() const VULKAN_HPP_NOEXCEPT + operator VkExternalSemaphoreProperties const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceRayTracingPropertiesNV &() VULKAN_HPP_NOEXCEPT + operator VkExternalSemaphoreProperties &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceRayTracingPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ExternalSemaphoreProperties const & ) const = default; +#else + bool operator==( ExternalSemaphoreProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderGroupHandleSize == rhs.shaderGroupHandleSize ) - && ( maxRecursionDepth == rhs.maxRecursionDepth ) - && ( maxShaderGroupStride == rhs.maxShaderGroupStride ) - && ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment ) - && ( maxGeometryCount == rhs.maxGeometryCount ) - && ( maxInstanceCount == rhs.maxInstanceCount ) - && ( maxTriangleCount == rhs.maxTriangleCount ) - && ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) && + ( compatibleHandleTypes == rhs.compatibleHandleTypes ) && + ( externalSemaphoreFeatures == rhs.externalSemaphoreFeatures ); } - bool operator!=( PhysicalDeviceRayTracingPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ExternalSemaphoreProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPropertiesNV; - void* pNext = {}; - uint32_t shaderGroupHandleSize = {}; - uint32_t maxRecursionDepth = {}; - uint32_t maxShaderGroupStride = {}; - uint32_t shaderGroupBaseAlignment = {}; - uint64_t maxGeometryCount = {}; - uint64_t maxInstanceCount = {}; - uint64_t maxTriangleCount = {}; - uint32_t maxDescriptorSetAccelerationStructures = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalSemaphoreProperties; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes = {}; + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes = {}; + VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures = {}; }; - static_assert( sizeof( PhysicalDeviceRayTracingPropertiesNV ) == sizeof( VkPhysicalDeviceRayTracingPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ExternalSemaphoreProperties ) == sizeof( VkExternalSemaphoreProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceRepresentativeFragmentTestFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ = {} ) VULKAN_HPP_NOEXCEPT - : representativeFragmentTest( representativeFragmentTest_ ) + using Type = ExternalSemaphoreProperties; + }; + using ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties; + + struct PhysicalDeviceFeatures2 + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFeatures2; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features_ = {} ) VULKAN_HPP_NOEXCEPT + : features( features_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV ) - offsetof( PhysicalDeviceRepresentativeFragmentTestFeaturesNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures2( PhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceRepresentativeFragmentTestFeaturesNV( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceFeatures2( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceFeatures2( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceRepresentativeFragmentTestFeaturesNV& operator=( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFeatures2 & + operator=( PhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceFeatures2 & operator=( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures2 & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setRepresentativeFragmentTest( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFeatures2 & + setFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const & features_ ) VULKAN_HPP_NOEXCEPT { - representativeFragmentTest = representativeFragmentTest_; + features = features_; return *this; } - operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFeatures2 const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFeatures2 &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceFeatures2 const & ) const = default; +#else + bool operator==( PhysicalDeviceFeatures2 const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( representativeFragmentTest == rhs.representativeFragmentTest ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( features == rhs.features ); } - bool operator!=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceFeatures2 const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFeatures2; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features = {}; }; - static_assert( sizeof( PhysicalDeviceRepresentativeFragmentTestFeaturesNV ) == sizeof( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceFeatures2 ) == sizeof( VkPhysicalDeviceFeatures2 ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceSampleLocationsPropertiesEXT + template <> + struct CppType { - PhysicalDeviceSampleLocationsPropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlags sampleLocationSampleCounts_ = {}, - VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize_ = {}, - std::array const& sampleLocationCoordinateRange_ = {}, - uint32_t sampleLocationSubPixelBits_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 variableSampleLocations_ = {} ) VULKAN_HPP_NOEXCEPT - : sampleLocationSampleCounts( sampleLocationSampleCounts_ ) - , maxSampleLocationGridSize( maxSampleLocationGridSize_ ) - , sampleLocationCoordinateRange{} - , sampleLocationSubPixelBits( sampleLocationSubPixelBits_ ) - , variableSampleLocations( variableSampleLocations_ ) - { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( sampleLocationCoordinateRange, sampleLocationCoordinateRange_ ); - } + using Type = PhysicalDeviceFeatures2; + }; + using PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2; - VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT ) - offsetof( PhysicalDeviceSampleLocationsPropertiesEXT, pNext ) ); - return *this; - } + struct FormatProperties + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + FormatProperties( VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures_ = {}, + VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures_ = {}, + VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures_ = {} ) VULKAN_HPP_NOEXCEPT + : linearTilingFeatures( linearTilingFeatures_ ) + , optimalTilingFeatures( optimalTilingFeatures_ ) + , bufferFeatures( bufferFeatures_ ) + {} - PhysicalDeviceSampleLocationsPropertiesEXT( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR FormatProperties( FormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + FormatProperties( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT + : FormatProperties( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 FormatProperties & operator=( FormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceSampleLocationsPropertiesEXT& operator=( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + FormatProperties & operator=( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceSampleLocationsPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkFormatProperties const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceSampleLocationsPropertiesEXT &() VULKAN_HPP_NOEXCEPT + operator VkFormatProperties &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceSampleLocationsPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( FormatProperties const & ) const = default; +#else + bool operator==( FormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( sampleLocationSampleCounts == rhs.sampleLocationSampleCounts ) - && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize ) - && ( memcmp( sampleLocationCoordinateRange, rhs.sampleLocationCoordinateRange, 2 * sizeof( float ) ) == 0 ) - && ( sampleLocationSubPixelBits == rhs.sampleLocationSubPixelBits ) - && ( variableSampleLocations == rhs.variableSampleLocations ); + return ( linearTilingFeatures == rhs.linearTilingFeatures ) && + ( optimalTilingFeatures == rhs.optimalTilingFeatures ) && ( bufferFeatures == rhs.bufferFeatures ); } - bool operator!=( PhysicalDeviceSampleLocationsPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( FormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags sampleLocationSampleCounts = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {}; - float sampleLocationCoordinateRange[2] = {}; - uint32_t sampleLocationSubPixelBits = {}; - VULKAN_HPP_NAMESPACE::Bool32 variableSampleLocations = {}; + VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures = {}; + VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures = {}; + VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures = {}; }; - static_assert( sizeof( PhysicalDeviceSampleLocationsPropertiesEXT ) == sizeof( VkPhysicalDeviceSampleLocationsPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( FormatProperties ) == sizeof( VkFormatProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceSamplerFilterMinmaxProperties + struct FormatProperties2 { - PhysicalDeviceSamplerFilterMinmaxProperties( VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping_ = {} ) VULKAN_HPP_NOEXCEPT - : filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ ) - , filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFormatProperties2; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + FormatProperties2( VULKAN_HPP_NAMESPACE::FormatProperties formatProperties_ = {} ) VULKAN_HPP_NOEXCEPT + : formatProperties( formatProperties_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties ) - offsetof( PhysicalDeviceSamplerFilterMinmaxProperties, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR FormatProperties2( FormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceSamplerFilterMinmaxProperties( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + FormatProperties2( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT + : FormatProperties2( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 FormatProperties2 & + operator=( FormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceSamplerFilterMinmaxProperties& operator=( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT + FormatProperties2 & operator=( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceSamplerFilterMinmaxProperties const&() const VULKAN_HPP_NOEXCEPT + operator VkFormatProperties2 const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceSamplerFilterMinmaxProperties &() VULKAN_HPP_NOEXCEPT + operator VkFormatProperties2 &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceSamplerFilterMinmaxProperties const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( FormatProperties2 const & ) const = default; +#else + bool operator==( FormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats ) - && ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( formatProperties == rhs.formatProperties ); } - bool operator!=( PhysicalDeviceSamplerFilterMinmaxProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( FormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {}; - VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFormatProperties2; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::FormatProperties formatProperties = {}; }; - static_assert( sizeof( PhysicalDeviceSamplerFilterMinmaxProperties ) == sizeof( VkPhysicalDeviceSamplerFilterMinmaxProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( FormatProperties2 ) == sizeof( VkFormatProperties2 ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceSamplerYcbcrConversionFeatures + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerYcbcrConversionFeatures( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ = {} ) VULKAN_HPP_NOEXCEPT - : samplerYcbcrConversion( samplerYcbcrConversion_ ) + using Type = FormatProperties2; + }; + using FormatProperties2KHR = FormatProperties2; + + struct PhysicalDeviceFragmentShadingRateKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceFragmentShadingRateKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceFragmentShadingRateKHR( VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D fragmentSize_ = {} ) VULKAN_HPP_NOEXCEPT + : sampleCounts( sampleCounts_ ) + , fragmentSize( fragmentSize_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateKHR( PhysicalDeviceFragmentShadingRateKHR const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceFragmentShadingRateKHR( VkPhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceFragmentShadingRateKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateKHR & + operator=( PhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceFragmentShadingRateKHR & + operator=( VkPhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures ) - offsetof( PhysicalDeviceSamplerYcbcrConversionFeatures, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceSamplerYcbcrConversionFeatures( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFragmentShadingRateKHR const &() const VULKAN_HPP_NOEXCEPT { - *this = rhs; + return *reinterpret_cast( this ); } - PhysicalDeviceSamplerYcbcrConversionFeatures& operator=( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFragmentShadingRateKHR &() VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceSamplerYcbcrConversionFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceFragmentShadingRateKHR const & ) const = default; +#else + bool operator==( PhysicalDeviceFragmentShadingRateKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( sampleCounts == rhs.sampleCounts ) && + ( fragmentSize == rhs.fragmentSize ); } - PhysicalDeviceSamplerYcbcrConversionFeatures & setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceFragmentShadingRateKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - samplerYcbcrConversion = samplerYcbcrConversion_; - return *this; + return !operator==( rhs ); } +#endif - operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts = {}; + VULKAN_HPP_NAMESPACE::Extent2D fragmentSize = {}; + }; + static_assert( sizeof( PhysicalDeviceFragmentShadingRateKHR ) == sizeof( VkPhysicalDeviceFragmentShadingRateKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - operator VkPhysicalDeviceSamplerYcbcrConversionFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + template <> + struct CppType + { + using Type = PhysicalDeviceFragmentShadingRateKHR; + }; + + struct PhysicalDeviceImageFormatInfo2 + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageFormatInfo2; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceImageFormatInfo2( + VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, + VULKAN_HPP_NAMESPACE::ImageType type_ = VULKAN_HPP_NAMESPACE::ImageType::e1D, + VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal, + VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, + VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT + : format( format_ ) + , type( type_ ) + , tiling( tiling_ ) + , usage( usage_ ) + , flags( flags_ ) + {} + + VULKAN_HPP_CONSTEXPR + PhysicalDeviceImageFormatInfo2( PhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceImageFormatInfo2( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceImageFormatInfo2( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageFormatInfo2 & + operator=( PhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - bool operator==( PhysicalDeviceSamplerYcbcrConversionFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT + PhysicalDeviceImageFormatInfo2 & operator=( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion ); + *this = *reinterpret_cast( &rhs ); + return *this; } - bool operator!=( PhysicalDeviceSamplerYcbcrConversionFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT + PhysicalDeviceImageFormatInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + pNext = pNext_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {}; - }; - static_assert( sizeof( PhysicalDeviceSamplerYcbcrConversionFeatures ) == sizeof( VkPhysicalDeviceSamplerYcbcrConversionFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PhysicalDeviceScalarBlockLayoutFeatures - { - VULKAN_HPP_CONSTEXPR PhysicalDeviceScalarBlockLayoutFeatures( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ = {} ) VULKAN_HPP_NOEXCEPT - : scalarBlockLayout( scalarBlockLayout_ ) - {} - - VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures ) - offsetof( PhysicalDeviceScalarBlockLayoutFeatures, pNext ) ); + format = format_; return *this; } - PhysicalDeviceScalarBlockLayoutFeatures( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + type = type_; + return *this; } - PhysicalDeviceScalarBlockLayoutFeatures& operator=( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + tiling = tiling_; return *this; } - PhysicalDeviceScalarBlockLayoutFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + usage = usage_; return *this; } - PhysicalDeviceScalarBlockLayoutFeatures & setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceImageFormatInfo2 & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - scalarBlockLayout = scalarBlockLayout_; + flags = flags_; return *this; } - operator VkPhysicalDeviceScalarBlockLayoutFeatures const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceImageFormatInfo2 const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceScalarBlockLayoutFeatures &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceScalarBlockLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceImageFormatInfo2 const & ) const = default; +#else + bool operator==( PhysicalDeviceImageFormatInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( scalarBlockLayout == rhs.scalarBlockLayout ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( format == rhs.format ) && ( type == rhs.type ) && + ( tiling == rhs.tiling ) && ( usage == rhs.usage ) && ( flags == rhs.flags ); } - bool operator!=( PhysicalDeviceScalarBlockLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceImageFormatInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceScalarBlockLayoutFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageFormatInfo2; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; + VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D; + VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal; + VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {}; + VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {}; }; - static_assert( sizeof( PhysicalDeviceScalarBlockLayoutFeatures ) == sizeof( VkPhysicalDeviceScalarBlockLayoutFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceImageFormatInfo2 ) == sizeof( VkPhysicalDeviceImageFormatInfo2 ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceSeparateDepthStencilLayoutsFeatures( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ = {} ) VULKAN_HPP_NOEXCEPT - : separateDepthStencilLayouts( separateDepthStencilLayouts_ ) - {} + using Type = PhysicalDeviceImageFormatInfo2; + }; + using PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2; - VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures ) - offsetof( PhysicalDeviceSeparateDepthStencilLayoutsFeatures, pNext ) ); - return *this; - } + struct ImageFormatProperties2 + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatProperties2; - PhysicalDeviceSeparateDepthStencilLayoutsFeatures( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ImageFormatProperties2( + VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties_ = {} ) VULKAN_HPP_NOEXCEPT + : imageFormatProperties( imageFormatProperties_ ) + {} - PhysicalDeviceSeparateDepthStencilLayoutsFeatures& operator=( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR ImageFormatProperties2( ImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceSeparateDepthStencilLayoutsFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + ImageFormatProperties2( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageFormatProperties2( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ImageFormatProperties2 & + operator=( ImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceSeparateDepthStencilLayoutsFeatures & setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT + ImageFormatProperties2 & operator=( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT { - separateDepthStencilLayouts = separateDepthStencilLayouts_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const&() const VULKAN_HPP_NOEXCEPT + operator VkImageFormatProperties2 const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures &() VULKAN_HPP_NOEXCEPT + operator VkImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageFormatProperties2 const & ) const = default; +#else + bool operator==( ImageFormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageFormatProperties == rhs.imageFormatProperties ); } - bool operator!=( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageFormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatProperties2; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {}; }; - static_assert( sizeof( PhysicalDeviceSeparateDepthStencilLayoutsFeatures ) == sizeof( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageFormatProperties2 ) == sizeof( VkImageFormatProperties2 ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceShaderAtomicInt64Features + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicInt64Features( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ = {} ) VULKAN_HPP_NOEXCEPT - : shaderBufferInt64Atomics( shaderBufferInt64Atomics_ ) - , shaderSharedInt64Atomics( shaderSharedInt64Atomics_ ) - {} - - VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features ) - offsetof( PhysicalDeviceShaderAtomicInt64Features, pNext ) ); - return *this; - } + using Type = ImageFormatProperties2; + }; + using ImageFormatProperties2KHR = ImageFormatProperties2; - PhysicalDeviceShaderAtomicInt64Features( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + struct MemoryType + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR MemoryType( VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags_ = {}, + uint32_t heapIndex_ = {} ) VULKAN_HPP_NOEXCEPT + : propertyFlags( propertyFlags_ ) + , heapIndex( heapIndex_ ) + {} - PhysicalDeviceShaderAtomicInt64Features& operator=( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR MemoryType( MemoryType const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceShaderAtomicInt64Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + MemoryType( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT + : MemoryType( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceShaderAtomicInt64Features & setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT - { - shaderBufferInt64Atomics = shaderBufferInt64Atomics_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 MemoryType & operator=( MemoryType const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceShaderAtomicInt64Features & setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT + MemoryType & operator=( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT { - shaderSharedInt64Atomics = shaderSharedInt64Atomics_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceShaderAtomicInt64Features const&() const VULKAN_HPP_NOEXCEPT + operator VkMemoryType const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceShaderAtomicInt64Features &() VULKAN_HPP_NOEXCEPT + operator VkMemoryType &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceShaderAtomicInt64Features const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MemoryType const & ) const = default; +#else + bool operator==( MemoryType const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics ) - && ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics ); + return ( propertyFlags == rhs.propertyFlags ) && ( heapIndex == rhs.heapIndex ); } - bool operator!=( PhysicalDeviceShaderAtomicInt64Features const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( MemoryType const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicInt64Features; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {}; + VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags = {}; + uint32_t heapIndex = {}; }; - static_assert( sizeof( PhysicalDeviceShaderAtomicInt64Features ) == sizeof( VkPhysicalDeviceShaderAtomicInt64Features ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( MemoryType ) == sizeof( VkMemoryType ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceShaderClockFeaturesKHR + struct MemoryHeap { - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderClockFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ = {} ) VULKAN_HPP_NOEXCEPT - : shaderSubgroupClock( shaderSubgroupClock_ ) - , shaderDeviceClock( shaderDeviceClock_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR MemoryHeap( VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, + VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT + : size( size_ ) + , flags( flags_ ) + {} + + VULKAN_HPP_CONSTEXPR MemoryHeap( MemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + MemoryHeap( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT + : MemoryHeap( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 MemoryHeap & operator=( MemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + MemoryHeap & operator=( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR ) - offsetof( PhysicalDeviceShaderClockFeaturesKHR, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceShaderClockFeaturesKHR( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkMemoryHeap const &() const VULKAN_HPP_NOEXCEPT { - *this = rhs; + return *reinterpret_cast( this ); } - PhysicalDeviceShaderClockFeaturesKHR& operator=( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkMemoryHeap &() VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceShaderClockFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MemoryHeap const & ) const = default; +#else + bool operator==( MemoryHeap const & rhs ) const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; - return *this; + return ( size == rhs.size ) && ( flags == rhs.flags ); } - PhysicalDeviceShaderClockFeaturesKHR & setShaderSubgroupClock( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( MemoryHeap const & rhs ) const VULKAN_HPP_NOEXCEPT { - shaderSubgroupClock = shaderSubgroupClock_; - return *this; + return !operator==( rhs ); } +#endif + + public: + VULKAN_HPP_NAMESPACE::DeviceSize size = {}; + VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags = {}; + }; + static_assert( sizeof( MemoryHeap ) == sizeof( VkMemoryHeap ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + struct PhysicalDeviceMemoryProperties + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties( + uint32_t memoryTypeCount_ = {}, + std::array const & memoryTypes_ = {}, + uint32_t memoryHeapCount_ = {}, + std::array const & memoryHeaps_ = {} ) VULKAN_HPP_NOEXCEPT + : memoryTypeCount( memoryTypeCount_ ) + , memoryTypes( memoryTypes_ ) + , memoryHeapCount( memoryHeapCount_ ) + , memoryHeaps( memoryHeaps_ ) + {} - PhysicalDeviceShaderClockFeaturesKHR & setShaderDeviceClock( VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 + PhysicalDeviceMemoryProperties( PhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceMemoryProperties( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceMemoryProperties( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties & + operator=( PhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceMemoryProperties & operator=( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - shaderDeviceClock = shaderDeviceClock_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceShaderClockFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceMemoryProperties const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceShaderClockFeaturesKHR &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceMemoryProperties &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceShaderClockFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceMemoryProperties const & ) const = default; +#else + bool operator==( PhysicalDeviceMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderSubgroupClock == rhs.shaderSubgroupClock ) - && ( shaderDeviceClock == rhs.shaderDeviceClock ); + return ( memoryTypeCount == rhs.memoryTypeCount ) && ( memoryTypes == rhs.memoryTypes ) && + ( memoryHeapCount == rhs.memoryHeapCount ) && ( memoryHeaps == rhs.memoryHeaps ); } - bool operator!=( PhysicalDeviceShaderClockFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderClockFeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock = {}; + uint32_t memoryTypeCount = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D memoryTypes = {}; + uint32_t memoryHeapCount = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D memoryHeaps = {}; }; - static_assert( sizeof( PhysicalDeviceShaderClockFeaturesKHR ) == sizeof( VkPhysicalDeviceShaderClockFeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceMemoryProperties ) == sizeof( VkPhysicalDeviceMemoryProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceShaderCoreProperties2AMD + struct PhysicalDeviceMemoryProperties2 { - PhysicalDeviceShaderCoreProperties2AMD( VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures_ = {}, - uint32_t activeComputeUnitCount_ = {} ) VULKAN_HPP_NOEXCEPT - : shaderCoreFeatures( shaderCoreFeatures_ ) - , activeComputeUnitCount( activeComputeUnitCount_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryProperties2; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2( + VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties_ = {} ) VULKAN_HPP_NOEXCEPT + : memoryProperties( memoryProperties_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD ) - offsetof( PhysicalDeviceShaderCoreProperties2AMD, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 + PhysicalDeviceMemoryProperties2( PhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceShaderCoreProperties2AMD( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceMemoryProperties2( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceMemoryProperties2( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceShaderCoreProperties2AMD& operator=( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2 & + operator=( PhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceMemoryProperties2 & operator=( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceShaderCoreProperties2AMD const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceMemoryProperties2 const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceShaderCoreProperties2AMD &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceMemoryProperties2 &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceShaderCoreProperties2AMD const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceMemoryProperties2 const & ) const = default; +#else + bool operator==( PhysicalDeviceMemoryProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderCoreFeatures == rhs.shaderCoreFeatures ) - && ( activeComputeUnitCount == rhs.activeComputeUnitCount ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryProperties == rhs.memoryProperties ); } - bool operator!=( PhysicalDeviceShaderCoreProperties2AMD const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceMemoryProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCoreProperties2AMD; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures = {}; - uint32_t activeComputeUnitCount = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryProperties2; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties = {}; }; - static_assert( sizeof( PhysicalDeviceShaderCoreProperties2AMD ) == sizeof( VkPhysicalDeviceShaderCoreProperties2AMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceMemoryProperties2 ) == sizeof( VkPhysicalDeviceMemoryProperties2 ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceShaderCorePropertiesAMD + template <> + struct CppType { - PhysicalDeviceShaderCorePropertiesAMD( uint32_t shaderEngineCount_ = {}, - uint32_t shaderArraysPerEngineCount_ = {}, - uint32_t computeUnitsPerShaderArray_ = {}, - uint32_t simdPerComputeUnit_ = {}, - uint32_t wavefrontsPerSimd_ = {}, - uint32_t wavefrontSize_ = {}, - uint32_t sgprsPerSimd_ = {}, - uint32_t minSgprAllocation_ = {}, - uint32_t maxSgprAllocation_ = {}, - uint32_t sgprAllocationGranularity_ = {}, - uint32_t vgprsPerSimd_ = {}, - uint32_t minVgprAllocation_ = {}, - uint32_t maxVgprAllocation_ = {}, - uint32_t vgprAllocationGranularity_ = {} ) VULKAN_HPP_NOEXCEPT - : shaderEngineCount( shaderEngineCount_ ) - , shaderArraysPerEngineCount( shaderArraysPerEngineCount_ ) - , computeUnitsPerShaderArray( computeUnitsPerShaderArray_ ) - , simdPerComputeUnit( simdPerComputeUnit_ ) - , wavefrontsPerSimd( wavefrontsPerSimd_ ) - , wavefrontSize( wavefrontSize_ ) - , sgprsPerSimd( sgprsPerSimd_ ) - , minSgprAllocation( minSgprAllocation_ ) - , maxSgprAllocation( maxSgprAllocation_ ) - , sgprAllocationGranularity( sgprAllocationGranularity_ ) - , vgprsPerSimd( vgprsPerSimd_ ) - , minVgprAllocation( minVgprAllocation_ ) - , maxVgprAllocation( maxVgprAllocation_ ) - , vgprAllocationGranularity( vgprAllocationGranularity_ ) + using Type = PhysicalDeviceMemoryProperties2; + }; + using PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2; + + struct MultisamplePropertiesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMultisamplePropertiesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + MultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize_ = {} ) VULKAN_HPP_NOEXCEPT + : maxSampleLocationGridSize( maxSampleLocationGridSize_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD ) - offsetof( PhysicalDeviceShaderCorePropertiesAMD, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR MultisamplePropertiesEXT( MultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceShaderCorePropertiesAMD( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + MultisamplePropertiesEXT( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : MultisamplePropertiesEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 MultisamplePropertiesEXT & + operator=( MultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceShaderCorePropertiesAMD& operator=( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT + MultisamplePropertiesEXT & operator=( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceShaderCorePropertiesAMD const&() const VULKAN_HPP_NOEXCEPT + operator VkMultisamplePropertiesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceShaderCorePropertiesAMD &() VULKAN_HPP_NOEXCEPT + operator VkMultisamplePropertiesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceShaderCorePropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MultisamplePropertiesEXT const & ) const = default; +#else + bool operator==( MultisamplePropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderEngineCount == rhs.shaderEngineCount ) - && ( shaderArraysPerEngineCount == rhs.shaderArraysPerEngineCount ) - && ( computeUnitsPerShaderArray == rhs.computeUnitsPerShaderArray ) - && ( simdPerComputeUnit == rhs.simdPerComputeUnit ) - && ( wavefrontsPerSimd == rhs.wavefrontsPerSimd ) - && ( wavefrontSize == rhs.wavefrontSize ) - && ( sgprsPerSimd == rhs.sgprsPerSimd ) - && ( minSgprAllocation == rhs.minSgprAllocation ) - && ( maxSgprAllocation == rhs.maxSgprAllocation ) - && ( sgprAllocationGranularity == rhs.sgprAllocationGranularity ) - && ( vgprsPerSimd == rhs.vgprsPerSimd ) - && ( minVgprAllocation == rhs.minVgprAllocation ) - && ( maxVgprAllocation == rhs.maxVgprAllocation ) - && ( vgprAllocationGranularity == rhs.vgprAllocationGranularity ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize ); } - bool operator!=( PhysicalDeviceShaderCorePropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( MultisamplePropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD; - void* pNext = {}; - uint32_t shaderEngineCount = {}; - uint32_t shaderArraysPerEngineCount = {}; - uint32_t computeUnitsPerShaderArray = {}; - uint32_t simdPerComputeUnit = {}; - uint32_t wavefrontsPerSimd = {}; - uint32_t wavefrontSize = {}; - uint32_t sgprsPerSimd = {}; - uint32_t minSgprAllocation = {}; - uint32_t maxSgprAllocation = {}; - uint32_t sgprAllocationGranularity = {}; - uint32_t vgprsPerSimd = {}; - uint32_t minVgprAllocation = {}; - uint32_t maxVgprAllocation = {}; - uint32_t vgprAllocationGranularity = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMultisamplePropertiesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {}; }; - static_assert( sizeof( PhysicalDeviceShaderCorePropertiesAMD ) == sizeof( VkPhysicalDeviceShaderCorePropertiesAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( MultisamplePropertiesEXT ) == sizeof( VkMultisamplePropertiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ = {} ) VULKAN_HPP_NOEXCEPT - : shaderDemoteToHelperInvocation( shaderDemoteToHelperInvocation_ ) + using Type = MultisamplePropertiesEXT; + }; + + struct PhysicalDeviceLimits + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 + PhysicalDeviceLimits( uint32_t maxImageDimension1D_ = {}, + uint32_t maxImageDimension2D_ = {}, + uint32_t maxImageDimension3D_ = {}, + uint32_t maxImageDimensionCube_ = {}, + uint32_t maxImageArrayLayers_ = {}, + uint32_t maxTexelBufferElements_ = {}, + uint32_t maxUniformBufferRange_ = {}, + uint32_t maxStorageBufferRange_ = {}, + uint32_t maxPushConstantsSize_ = {}, + uint32_t maxMemoryAllocationCount_ = {}, + uint32_t maxSamplerAllocationCount_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize bufferImageGranularity_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize sparseAddressSpaceSize_ = {}, + uint32_t maxBoundDescriptorSets_ = {}, + uint32_t maxPerStageDescriptorSamplers_ = {}, + uint32_t maxPerStageDescriptorUniformBuffers_ = {}, + uint32_t maxPerStageDescriptorStorageBuffers_ = {}, + uint32_t maxPerStageDescriptorSampledImages_ = {}, + uint32_t maxPerStageDescriptorStorageImages_ = {}, + uint32_t maxPerStageDescriptorInputAttachments_ = {}, + uint32_t maxPerStageResources_ = {}, + uint32_t maxDescriptorSetSamplers_ = {}, + uint32_t maxDescriptorSetUniformBuffers_ = {}, + uint32_t maxDescriptorSetUniformBuffersDynamic_ = {}, + uint32_t maxDescriptorSetStorageBuffers_ = {}, + uint32_t maxDescriptorSetStorageBuffersDynamic_ = {}, + uint32_t maxDescriptorSetSampledImages_ = {}, + uint32_t maxDescriptorSetStorageImages_ = {}, + uint32_t maxDescriptorSetInputAttachments_ = {}, + uint32_t maxVertexInputAttributes_ = {}, + uint32_t maxVertexInputBindings_ = {}, + uint32_t maxVertexInputAttributeOffset_ = {}, + uint32_t maxVertexInputBindingStride_ = {}, + uint32_t maxVertexOutputComponents_ = {}, + uint32_t maxTessellationGenerationLevel_ = {}, + uint32_t maxTessellationPatchSize_ = {}, + uint32_t maxTessellationControlPerVertexInputComponents_ = {}, + uint32_t maxTessellationControlPerVertexOutputComponents_ = {}, + uint32_t maxTessellationControlPerPatchOutputComponents_ = {}, + uint32_t maxTessellationControlTotalOutputComponents_ = {}, + uint32_t maxTessellationEvaluationInputComponents_ = {}, + uint32_t maxTessellationEvaluationOutputComponents_ = {}, + uint32_t maxGeometryShaderInvocations_ = {}, + uint32_t maxGeometryInputComponents_ = {}, + uint32_t maxGeometryOutputComponents_ = {}, + uint32_t maxGeometryOutputVertices_ = {}, + uint32_t maxGeometryTotalOutputComponents_ = {}, + uint32_t maxFragmentInputComponents_ = {}, + uint32_t maxFragmentOutputAttachments_ = {}, + uint32_t maxFragmentDualSrcAttachments_ = {}, + uint32_t maxFragmentCombinedOutputResources_ = {}, + uint32_t maxComputeSharedMemorySize_ = {}, + std::array const & maxComputeWorkGroupCount_ = {}, + uint32_t maxComputeWorkGroupInvocations_ = {}, + std::array const & maxComputeWorkGroupSize_ = {}, + uint32_t subPixelPrecisionBits_ = {}, + uint32_t subTexelPrecisionBits_ = {}, + uint32_t mipmapPrecisionBits_ = {}, + uint32_t maxDrawIndexedIndexValue_ = {}, + uint32_t maxDrawIndirectCount_ = {}, + float maxSamplerLodBias_ = {}, + float maxSamplerAnisotropy_ = {}, + uint32_t maxViewports_ = {}, + std::array const & maxViewportDimensions_ = {}, + std::array const & viewportBoundsRange_ = {}, + uint32_t viewportSubPixelBits_ = {}, + size_t minMemoryMapAlignment_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize minTexelBufferOffsetAlignment_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize minUniformBufferOffsetAlignment_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize minStorageBufferOffsetAlignment_ = {}, + int32_t minTexelOffset_ = {}, + uint32_t maxTexelOffset_ = {}, + int32_t minTexelGatherOffset_ = {}, + uint32_t maxTexelGatherOffset_ = {}, + float minInterpolationOffset_ = {}, + float maxInterpolationOffset_ = {}, + uint32_t subPixelInterpolationOffsetBits_ = {}, + uint32_t maxFramebufferWidth_ = {}, + uint32_t maxFramebufferHeight_ = {}, + uint32_t maxFramebufferLayers_ = {}, + VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferColorSampleCounts_ = {}, + VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferDepthSampleCounts_ = {}, + VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferStencilSampleCounts_ = {}, + VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferNoAttachmentsSampleCounts_ = {}, + uint32_t maxColorAttachments_ = {}, + VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageColorSampleCounts_ = {}, + VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageIntegerSampleCounts_ = {}, + VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageDepthSampleCounts_ = {}, + VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageStencilSampleCounts_ = {}, + VULKAN_HPP_NAMESPACE::SampleCountFlags storageImageSampleCounts_ = {}, + uint32_t maxSampleMaskWords_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 timestampComputeAndGraphics_ = {}, + float timestampPeriod_ = {}, + uint32_t maxClipDistances_ = {}, + uint32_t maxCullDistances_ = {}, + uint32_t maxCombinedClipAndCullDistances_ = {}, + uint32_t discreteQueuePriorities_ = {}, + std::array const & pointSizeRange_ = {}, + std::array const & lineWidthRange_ = {}, + float pointSizeGranularity_ = {}, + float lineWidthGranularity_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 strictLines_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 standardSampleLocations_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyOffsetAlignment_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyRowPitchAlignment_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize nonCoherentAtomSize_ = {} ) VULKAN_HPP_NOEXCEPT + : maxImageDimension1D( maxImageDimension1D_ ) + , maxImageDimension2D( maxImageDimension2D_ ) + , maxImageDimension3D( maxImageDimension3D_ ) + , maxImageDimensionCube( maxImageDimensionCube_ ) + , maxImageArrayLayers( maxImageArrayLayers_ ) + , maxTexelBufferElements( maxTexelBufferElements_ ) + , maxUniformBufferRange( maxUniformBufferRange_ ) + , maxStorageBufferRange( maxStorageBufferRange_ ) + , maxPushConstantsSize( maxPushConstantsSize_ ) + , maxMemoryAllocationCount( maxMemoryAllocationCount_ ) + , maxSamplerAllocationCount( maxSamplerAllocationCount_ ) + , bufferImageGranularity( bufferImageGranularity_ ) + , sparseAddressSpaceSize( sparseAddressSpaceSize_ ) + , maxBoundDescriptorSets( maxBoundDescriptorSets_ ) + , maxPerStageDescriptorSamplers( maxPerStageDescriptorSamplers_ ) + , maxPerStageDescriptorUniformBuffers( maxPerStageDescriptorUniformBuffers_ ) + , maxPerStageDescriptorStorageBuffers( maxPerStageDescriptorStorageBuffers_ ) + , maxPerStageDescriptorSampledImages( maxPerStageDescriptorSampledImages_ ) + , maxPerStageDescriptorStorageImages( maxPerStageDescriptorStorageImages_ ) + , maxPerStageDescriptorInputAttachments( maxPerStageDescriptorInputAttachments_ ) + , maxPerStageResources( maxPerStageResources_ ) + , maxDescriptorSetSamplers( maxDescriptorSetSamplers_ ) + , maxDescriptorSetUniformBuffers( maxDescriptorSetUniformBuffers_ ) + , maxDescriptorSetUniformBuffersDynamic( maxDescriptorSetUniformBuffersDynamic_ ) + , maxDescriptorSetStorageBuffers( maxDescriptorSetStorageBuffers_ ) + , maxDescriptorSetStorageBuffersDynamic( maxDescriptorSetStorageBuffersDynamic_ ) + , maxDescriptorSetSampledImages( maxDescriptorSetSampledImages_ ) + , maxDescriptorSetStorageImages( maxDescriptorSetStorageImages_ ) + , maxDescriptorSetInputAttachments( maxDescriptorSetInputAttachments_ ) + , maxVertexInputAttributes( maxVertexInputAttributes_ ) + , maxVertexInputBindings( maxVertexInputBindings_ ) + , maxVertexInputAttributeOffset( maxVertexInputAttributeOffset_ ) + , maxVertexInputBindingStride( maxVertexInputBindingStride_ ) + , maxVertexOutputComponents( maxVertexOutputComponents_ ) + , maxTessellationGenerationLevel( maxTessellationGenerationLevel_ ) + , maxTessellationPatchSize( maxTessellationPatchSize_ ) + , maxTessellationControlPerVertexInputComponents( maxTessellationControlPerVertexInputComponents_ ) + , maxTessellationControlPerVertexOutputComponents( maxTessellationControlPerVertexOutputComponents_ ) + , maxTessellationControlPerPatchOutputComponents( maxTessellationControlPerPatchOutputComponents_ ) + , maxTessellationControlTotalOutputComponents( maxTessellationControlTotalOutputComponents_ ) + , maxTessellationEvaluationInputComponents( maxTessellationEvaluationInputComponents_ ) + , maxTessellationEvaluationOutputComponents( maxTessellationEvaluationOutputComponents_ ) + , maxGeometryShaderInvocations( maxGeometryShaderInvocations_ ) + , maxGeometryInputComponents( maxGeometryInputComponents_ ) + , maxGeometryOutputComponents( maxGeometryOutputComponents_ ) + , maxGeometryOutputVertices( maxGeometryOutputVertices_ ) + , maxGeometryTotalOutputComponents( maxGeometryTotalOutputComponents_ ) + , maxFragmentInputComponents( maxFragmentInputComponents_ ) + , maxFragmentOutputAttachments( maxFragmentOutputAttachments_ ) + , maxFragmentDualSrcAttachments( maxFragmentDualSrcAttachments_ ) + , maxFragmentCombinedOutputResources( maxFragmentCombinedOutputResources_ ) + , maxComputeSharedMemorySize( maxComputeSharedMemorySize_ ) + , maxComputeWorkGroupCount( maxComputeWorkGroupCount_ ) + , maxComputeWorkGroupInvocations( maxComputeWorkGroupInvocations_ ) + , maxComputeWorkGroupSize( maxComputeWorkGroupSize_ ) + , subPixelPrecisionBits( subPixelPrecisionBits_ ) + , subTexelPrecisionBits( subTexelPrecisionBits_ ) + , mipmapPrecisionBits( mipmapPrecisionBits_ ) + , maxDrawIndexedIndexValue( maxDrawIndexedIndexValue_ ) + , maxDrawIndirectCount( maxDrawIndirectCount_ ) + , maxSamplerLodBias( maxSamplerLodBias_ ) + , maxSamplerAnisotropy( maxSamplerAnisotropy_ ) + , maxViewports( maxViewports_ ) + , maxViewportDimensions( maxViewportDimensions_ ) + , viewportBoundsRange( viewportBoundsRange_ ) + , viewportSubPixelBits( viewportSubPixelBits_ ) + , minMemoryMapAlignment( minMemoryMapAlignment_ ) + , minTexelBufferOffsetAlignment( minTexelBufferOffsetAlignment_ ) + , minUniformBufferOffsetAlignment( minUniformBufferOffsetAlignment_ ) + , minStorageBufferOffsetAlignment( minStorageBufferOffsetAlignment_ ) + , minTexelOffset( minTexelOffset_ ) + , maxTexelOffset( maxTexelOffset_ ) + , minTexelGatherOffset( minTexelGatherOffset_ ) + , maxTexelGatherOffset( maxTexelGatherOffset_ ) + , minInterpolationOffset( minInterpolationOffset_ ) + , maxInterpolationOffset( maxInterpolationOffset_ ) + , subPixelInterpolationOffsetBits( subPixelInterpolationOffsetBits_ ) + , maxFramebufferWidth( maxFramebufferWidth_ ) + , maxFramebufferHeight( maxFramebufferHeight_ ) + , maxFramebufferLayers( maxFramebufferLayers_ ) + , framebufferColorSampleCounts( framebufferColorSampleCounts_ ) + , framebufferDepthSampleCounts( framebufferDepthSampleCounts_ ) + , framebufferStencilSampleCounts( framebufferStencilSampleCounts_ ) + , framebufferNoAttachmentsSampleCounts( framebufferNoAttachmentsSampleCounts_ ) + , maxColorAttachments( maxColorAttachments_ ) + , sampledImageColorSampleCounts( sampledImageColorSampleCounts_ ) + , sampledImageIntegerSampleCounts( sampledImageIntegerSampleCounts_ ) + , sampledImageDepthSampleCounts( sampledImageDepthSampleCounts_ ) + , sampledImageStencilSampleCounts( sampledImageStencilSampleCounts_ ) + , storageImageSampleCounts( storageImageSampleCounts_ ) + , maxSampleMaskWords( maxSampleMaskWords_ ) + , timestampComputeAndGraphics( timestampComputeAndGraphics_ ) + , timestampPeriod( timestampPeriod_ ) + , maxClipDistances( maxClipDistances_ ) + , maxCullDistances( maxCullDistances_ ) + , maxCombinedClipAndCullDistances( maxCombinedClipAndCullDistances_ ) + , discreteQueuePriorities( discreteQueuePriorities_ ) + , pointSizeRange( pointSizeRange_ ) + , lineWidthRange( lineWidthRange_ ) + , pointSizeGranularity( pointSizeGranularity_ ) + , lineWidthGranularity( lineWidthGranularity_ ) + , strictLines( strictLines_ ) + , standardSampleLocations( standardSampleLocations_ ) + , optimalBufferCopyOffsetAlignment( optimalBufferCopyOffsetAlignment_ ) + , optimalBufferCopyRowPitchAlignment( optimalBufferCopyRowPitchAlignment_ ) + , nonCoherentAtomSize( nonCoherentAtomSize_ ) + {} + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLimits( PhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceLimits( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceLimits( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLimits & + operator=( PhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceLimits & operator=( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ) - offsetof( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceLimits const &() const VULKAN_HPP_NOEXCEPT { - *this = rhs; + return *reinterpret_cast( this ); } - PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT& operator=( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceLimits &() VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceLimits const & ) const = default; +#else + bool operator==( PhysicalDeviceLimits const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( maxImageDimension1D == rhs.maxImageDimension1D ) && ( maxImageDimension2D == rhs.maxImageDimension2D ) && + ( maxImageDimension3D == rhs.maxImageDimension3D ) && + ( maxImageDimensionCube == rhs.maxImageDimensionCube ) && + ( maxImageArrayLayers == rhs.maxImageArrayLayers ) && + ( maxTexelBufferElements == rhs.maxTexelBufferElements ) && + ( maxUniformBufferRange == rhs.maxUniformBufferRange ) && + ( maxStorageBufferRange == rhs.maxStorageBufferRange ) && + ( maxPushConstantsSize == rhs.maxPushConstantsSize ) && + ( maxMemoryAllocationCount == rhs.maxMemoryAllocationCount ) && + ( maxSamplerAllocationCount == rhs.maxSamplerAllocationCount ) && + ( bufferImageGranularity == rhs.bufferImageGranularity ) && + ( sparseAddressSpaceSize == rhs.sparseAddressSpaceSize ) && + ( maxBoundDescriptorSets == rhs.maxBoundDescriptorSets ) && + ( maxPerStageDescriptorSamplers == rhs.maxPerStageDescriptorSamplers ) && + ( maxPerStageDescriptorUniformBuffers == rhs.maxPerStageDescriptorUniformBuffers ) && + ( maxPerStageDescriptorStorageBuffers == rhs.maxPerStageDescriptorStorageBuffers ) && + ( maxPerStageDescriptorSampledImages == rhs.maxPerStageDescriptorSampledImages ) && + ( maxPerStageDescriptorStorageImages == rhs.maxPerStageDescriptorStorageImages ) && + ( maxPerStageDescriptorInputAttachments == rhs.maxPerStageDescriptorInputAttachments ) && + ( maxPerStageResources == rhs.maxPerStageResources ) && + ( maxDescriptorSetSamplers == rhs.maxDescriptorSetSamplers ) && + ( maxDescriptorSetUniformBuffers == rhs.maxDescriptorSetUniformBuffers ) && + ( maxDescriptorSetUniformBuffersDynamic == rhs.maxDescriptorSetUniformBuffersDynamic ) && + ( maxDescriptorSetStorageBuffers == rhs.maxDescriptorSetStorageBuffers ) && + ( maxDescriptorSetStorageBuffersDynamic == rhs.maxDescriptorSetStorageBuffersDynamic ) && + ( maxDescriptorSetSampledImages == rhs.maxDescriptorSetSampledImages ) && + ( maxDescriptorSetStorageImages == rhs.maxDescriptorSetStorageImages ) && + ( maxDescriptorSetInputAttachments == rhs.maxDescriptorSetInputAttachments ) && + ( maxVertexInputAttributes == rhs.maxVertexInputAttributes ) && + ( maxVertexInputBindings == rhs.maxVertexInputBindings ) && + ( maxVertexInputAttributeOffset == rhs.maxVertexInputAttributeOffset ) && + ( maxVertexInputBindingStride == rhs.maxVertexInputBindingStride ) && + ( maxVertexOutputComponents == rhs.maxVertexOutputComponents ) && + ( maxTessellationGenerationLevel == rhs.maxTessellationGenerationLevel ) && + ( maxTessellationPatchSize == rhs.maxTessellationPatchSize ) && + ( maxTessellationControlPerVertexInputComponents == rhs.maxTessellationControlPerVertexInputComponents ) && + ( maxTessellationControlPerVertexOutputComponents == + rhs.maxTessellationControlPerVertexOutputComponents ) && + ( maxTessellationControlPerPatchOutputComponents == rhs.maxTessellationControlPerPatchOutputComponents ) && + ( maxTessellationControlTotalOutputComponents == rhs.maxTessellationControlTotalOutputComponents ) && + ( maxTessellationEvaluationInputComponents == rhs.maxTessellationEvaluationInputComponents ) && + ( maxTessellationEvaluationOutputComponents == rhs.maxTessellationEvaluationOutputComponents ) && + ( maxGeometryShaderInvocations == rhs.maxGeometryShaderInvocations ) && + ( maxGeometryInputComponents == rhs.maxGeometryInputComponents ) && + ( maxGeometryOutputComponents == rhs.maxGeometryOutputComponents ) && + ( maxGeometryOutputVertices == rhs.maxGeometryOutputVertices ) && + ( maxGeometryTotalOutputComponents == rhs.maxGeometryTotalOutputComponents ) && + ( maxFragmentInputComponents == rhs.maxFragmentInputComponents ) && + ( maxFragmentOutputAttachments == rhs.maxFragmentOutputAttachments ) && + ( maxFragmentDualSrcAttachments == rhs.maxFragmentDualSrcAttachments ) && + ( maxFragmentCombinedOutputResources == rhs.maxFragmentCombinedOutputResources ) && + ( maxComputeSharedMemorySize == rhs.maxComputeSharedMemorySize ) && + ( maxComputeWorkGroupCount == rhs.maxComputeWorkGroupCount ) && + ( maxComputeWorkGroupInvocations == rhs.maxComputeWorkGroupInvocations ) && + ( maxComputeWorkGroupSize == rhs.maxComputeWorkGroupSize ) && + ( subPixelPrecisionBits == rhs.subPixelPrecisionBits ) && + ( subTexelPrecisionBits == rhs.subTexelPrecisionBits ) && + ( mipmapPrecisionBits == rhs.mipmapPrecisionBits ) && + ( maxDrawIndexedIndexValue == rhs.maxDrawIndexedIndexValue ) && + ( maxDrawIndirectCount == rhs.maxDrawIndirectCount ) && ( maxSamplerLodBias == rhs.maxSamplerLodBias ) && + ( maxSamplerAnisotropy == rhs.maxSamplerAnisotropy ) && ( maxViewports == rhs.maxViewports ) && + ( maxViewportDimensions == rhs.maxViewportDimensions ) && + ( viewportBoundsRange == rhs.viewportBoundsRange ) && + ( viewportSubPixelBits == rhs.viewportSubPixelBits ) && + ( minMemoryMapAlignment == rhs.minMemoryMapAlignment ) && + ( minTexelBufferOffsetAlignment == rhs.minTexelBufferOffsetAlignment ) && + ( minUniformBufferOffsetAlignment == rhs.minUniformBufferOffsetAlignment ) && + ( minStorageBufferOffsetAlignment == rhs.minStorageBufferOffsetAlignment ) && + ( minTexelOffset == rhs.minTexelOffset ) && ( maxTexelOffset == rhs.maxTexelOffset ) && + ( minTexelGatherOffset == rhs.minTexelGatherOffset ) && + ( maxTexelGatherOffset == rhs.maxTexelGatherOffset ) && + ( minInterpolationOffset == rhs.minInterpolationOffset ) && + ( maxInterpolationOffset == rhs.maxInterpolationOffset ) && + ( subPixelInterpolationOffsetBits == rhs.subPixelInterpolationOffsetBits ) && + ( maxFramebufferWidth == rhs.maxFramebufferWidth ) && + ( maxFramebufferHeight == rhs.maxFramebufferHeight ) && + ( maxFramebufferLayers == rhs.maxFramebufferLayers ) && + ( framebufferColorSampleCounts == rhs.framebufferColorSampleCounts ) && + ( framebufferDepthSampleCounts == rhs.framebufferDepthSampleCounts ) && + ( framebufferStencilSampleCounts == rhs.framebufferStencilSampleCounts ) && + ( framebufferNoAttachmentsSampleCounts == rhs.framebufferNoAttachmentsSampleCounts ) && + ( maxColorAttachments == rhs.maxColorAttachments ) && + ( sampledImageColorSampleCounts == rhs.sampledImageColorSampleCounts ) && + ( sampledImageIntegerSampleCounts == rhs.sampledImageIntegerSampleCounts ) && + ( sampledImageDepthSampleCounts == rhs.sampledImageDepthSampleCounts ) && + ( sampledImageStencilSampleCounts == rhs.sampledImageStencilSampleCounts ) && + ( storageImageSampleCounts == rhs.storageImageSampleCounts ) && + ( maxSampleMaskWords == rhs.maxSampleMaskWords ) && + ( timestampComputeAndGraphics == rhs.timestampComputeAndGraphics ) && + ( timestampPeriod == rhs.timestampPeriod ) && ( maxClipDistances == rhs.maxClipDistances ) && + ( maxCullDistances == rhs.maxCullDistances ) && + ( maxCombinedClipAndCullDistances == rhs.maxCombinedClipAndCullDistances ) && + ( discreteQueuePriorities == rhs.discreteQueuePriorities ) && ( pointSizeRange == rhs.pointSizeRange ) && + ( lineWidthRange == rhs.lineWidthRange ) && ( pointSizeGranularity == rhs.pointSizeGranularity ) && + ( lineWidthGranularity == rhs.lineWidthGranularity ) && ( strictLines == rhs.strictLines ) && + ( standardSampleLocations == rhs.standardSampleLocations ) && + ( optimalBufferCopyOffsetAlignment == rhs.optimalBufferCopyOffsetAlignment ) && + ( optimalBufferCopyRowPitchAlignment == rhs.optimalBufferCopyRowPitchAlignment ) && + ( nonCoherentAtomSize == rhs.nonCoherentAtomSize ); + } + + bool operator!=( PhysicalDeviceLimits const & rhs ) const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; - return *this; + return !operator==( rhs ); } +#endif + + public: + uint32_t maxImageDimension1D = {}; + uint32_t maxImageDimension2D = {}; + uint32_t maxImageDimension3D = {}; + uint32_t maxImageDimensionCube = {}; + uint32_t maxImageArrayLayers = {}; + uint32_t maxTexelBufferElements = {}; + uint32_t maxUniformBufferRange = {}; + uint32_t maxStorageBufferRange = {}; + uint32_t maxPushConstantsSize = {}; + uint32_t maxMemoryAllocationCount = {}; + uint32_t maxSamplerAllocationCount = {}; + VULKAN_HPP_NAMESPACE::DeviceSize bufferImageGranularity = {}; + VULKAN_HPP_NAMESPACE::DeviceSize sparseAddressSpaceSize = {}; + uint32_t maxBoundDescriptorSets = {}; + uint32_t maxPerStageDescriptorSamplers = {}; + uint32_t maxPerStageDescriptorUniformBuffers = {}; + uint32_t maxPerStageDescriptorStorageBuffers = {}; + uint32_t maxPerStageDescriptorSampledImages = {}; + uint32_t maxPerStageDescriptorStorageImages = {}; + uint32_t maxPerStageDescriptorInputAttachments = {}; + uint32_t maxPerStageResources = {}; + uint32_t maxDescriptorSetSamplers = {}; + uint32_t maxDescriptorSetUniformBuffers = {}; + uint32_t maxDescriptorSetUniformBuffersDynamic = {}; + uint32_t maxDescriptorSetStorageBuffers = {}; + uint32_t maxDescriptorSetStorageBuffersDynamic = {}; + uint32_t maxDescriptorSetSampledImages = {}; + uint32_t maxDescriptorSetStorageImages = {}; + uint32_t maxDescriptorSetInputAttachments = {}; + uint32_t maxVertexInputAttributes = {}; + uint32_t maxVertexInputBindings = {}; + uint32_t maxVertexInputAttributeOffset = {}; + uint32_t maxVertexInputBindingStride = {}; + uint32_t maxVertexOutputComponents = {}; + uint32_t maxTessellationGenerationLevel = {}; + uint32_t maxTessellationPatchSize = {}; + uint32_t maxTessellationControlPerVertexInputComponents = {}; + uint32_t maxTessellationControlPerVertexOutputComponents = {}; + uint32_t maxTessellationControlPerPatchOutputComponents = {}; + uint32_t maxTessellationControlTotalOutputComponents = {}; + uint32_t maxTessellationEvaluationInputComponents = {}; + uint32_t maxTessellationEvaluationOutputComponents = {}; + uint32_t maxGeometryShaderInvocations = {}; + uint32_t maxGeometryInputComponents = {}; + uint32_t maxGeometryOutputComponents = {}; + uint32_t maxGeometryOutputVertices = {}; + uint32_t maxGeometryTotalOutputComponents = {}; + uint32_t maxFragmentInputComponents = {}; + uint32_t maxFragmentOutputAttachments = {}; + uint32_t maxFragmentDualSrcAttachments = {}; + uint32_t maxFragmentCombinedOutputResources = {}; + uint32_t maxComputeSharedMemorySize = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D maxComputeWorkGroupCount = {}; + uint32_t maxComputeWorkGroupInvocations = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D maxComputeWorkGroupSize = {}; + uint32_t subPixelPrecisionBits = {}; + uint32_t subTexelPrecisionBits = {}; + uint32_t mipmapPrecisionBits = {}; + uint32_t maxDrawIndexedIndexValue = {}; + uint32_t maxDrawIndirectCount = {}; + float maxSamplerLodBias = {}; + float maxSamplerAnisotropy = {}; + uint32_t maxViewports = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D maxViewportDimensions = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D viewportBoundsRange = {}; + uint32_t viewportSubPixelBits = {}; + size_t minMemoryMapAlignment = {}; + VULKAN_HPP_NAMESPACE::DeviceSize minTexelBufferOffsetAlignment = {}; + VULKAN_HPP_NAMESPACE::DeviceSize minUniformBufferOffsetAlignment = {}; + VULKAN_HPP_NAMESPACE::DeviceSize minStorageBufferOffsetAlignment = {}; + int32_t minTexelOffset = {}; + uint32_t maxTexelOffset = {}; + int32_t minTexelGatherOffset = {}; + uint32_t maxTexelGatherOffset = {}; + float minInterpolationOffset = {}; + float maxInterpolationOffset = {}; + uint32_t subPixelInterpolationOffsetBits = {}; + uint32_t maxFramebufferWidth = {}; + uint32_t maxFramebufferHeight = {}; + uint32_t maxFramebufferLayers = {}; + VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferColorSampleCounts = {}; + VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferDepthSampleCounts = {}; + VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferStencilSampleCounts = {}; + VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferNoAttachmentsSampleCounts = {}; + uint32_t maxColorAttachments = {}; + VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageColorSampleCounts = {}; + VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageIntegerSampleCounts = {}; + VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageDepthSampleCounts = {}; + VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageStencilSampleCounts = {}; + VULKAN_HPP_NAMESPACE::SampleCountFlags storageImageSampleCounts = {}; + uint32_t maxSampleMaskWords = {}; + VULKAN_HPP_NAMESPACE::Bool32 timestampComputeAndGraphics = {}; + float timestampPeriod = {}; + uint32_t maxClipDistances = {}; + uint32_t maxCullDistances = {}; + uint32_t maxCombinedClipAndCullDistances = {}; + uint32_t discreteQueuePriorities = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D pointSizeRange = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D lineWidthRange = {}; + float pointSizeGranularity = {}; + float lineWidthGranularity = {}; + VULKAN_HPP_NAMESPACE::Bool32 strictLines = {}; + VULKAN_HPP_NAMESPACE::Bool32 standardSampleLocations = {}; + VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyOffsetAlignment = {}; + VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyRowPitchAlignment = {}; + VULKAN_HPP_NAMESPACE::DeviceSize nonCoherentAtomSize = {}; + }; + static_assert( sizeof( PhysicalDeviceLimits ) == sizeof( VkPhysicalDeviceLimits ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + struct PhysicalDeviceSparseProperties + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseProperties( + VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DBlockShape_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DMultisampleBlockShape_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 residencyStandard3DBlockShape_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 residencyAlignedMipSize_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 residencyNonResidentStrict_ = {} ) VULKAN_HPP_NOEXCEPT + : residencyStandard2DBlockShape( residencyStandard2DBlockShape_ ) + , residencyStandard2DMultisampleBlockShape( residencyStandard2DMultisampleBlockShape_ ) + , residencyStandard3DBlockShape( residencyStandard3DBlockShape_ ) + , residencyAlignedMipSize( residencyAlignedMipSize_ ) + , residencyNonResidentStrict( residencyNonResidentStrict_ ) + {} + + VULKAN_HPP_CONSTEXPR + PhysicalDeviceSparseProperties( PhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceSparseProperties( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceSparseProperties( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & setShaderDemoteToHelperInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseProperties & + operator=( PhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceSparseProperties & operator=( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - shaderDemoteToHelperInvocation = shaderDemoteToHelperInvocation_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceSparseProperties const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceSparseProperties &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceSparseProperties const & ) const = default; +#else + bool operator==( PhysicalDeviceSparseProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderDemoteToHelperInvocation == rhs.shaderDemoteToHelperInvocation ); + return ( residencyStandard2DBlockShape == rhs.residencyStandard2DBlockShape ) && + ( residencyStandard2DMultisampleBlockShape == rhs.residencyStandard2DMultisampleBlockShape ) && + ( residencyStandard3DBlockShape == rhs.residencyStandard3DBlockShape ) && + ( residencyAlignedMipSize == rhs.residencyAlignedMipSize ) && + ( residencyNonResidentStrict == rhs.residencyNonResidentStrict ); } - bool operator!=( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceSparseProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation = {}; + VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DBlockShape = {}; + VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DMultisampleBlockShape = {}; + VULKAN_HPP_NAMESPACE::Bool32 residencyStandard3DBlockShape = {}; + VULKAN_HPP_NAMESPACE::Bool32 residencyAlignedMipSize = {}; + VULKAN_HPP_NAMESPACE::Bool32 residencyNonResidentStrict = {}; }; - static_assert( sizeof( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ) == sizeof( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceSparseProperties ) == sizeof( VkPhysicalDeviceSparseProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceShaderDrawParametersFeatures + struct PhysicalDeviceProperties { - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDrawParametersFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ = {} ) VULKAN_HPP_NOEXCEPT - : shaderDrawParameters( shaderDrawParameters_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties( + uint32_t apiVersion_ = {}, + uint32_t driverVersion_ = {}, + uint32_t vendorID_ = {}, + uint32_t deviceID_ = {}, + VULKAN_HPP_NAMESPACE::PhysicalDeviceType deviceType_ = VULKAN_HPP_NAMESPACE::PhysicalDeviceType::eOther, + std::array const & deviceName_ = {}, + std::array const & pipelineCacheUUID_ = {}, + VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits limits_ = {}, + VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties sparseProperties_ = {} ) VULKAN_HPP_NOEXCEPT + : apiVersion( apiVersion_ ) + , driverVersion( driverVersion_ ) + , vendorID( vendorID_ ) + , deviceID( deviceID_ ) + , deviceType( deviceType_ ) + , deviceName( deviceName_ ) + , pipelineCacheUUID( pipelineCacheUUID_ ) + , limits( limits_ ) + , sparseProperties( sparseProperties_ ) + {} + + VULKAN_HPP_CONSTEXPR_14 + PhysicalDeviceProperties( PhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceProperties( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceProperties( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties & + operator=( PhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceProperties & operator=( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures ) - offsetof( PhysicalDeviceShaderDrawParametersFeatures, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceShaderDrawParametersFeatures( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceProperties const &() const VULKAN_HPP_NOEXCEPT { - *this = rhs; + return *reinterpret_cast( this ); } - PhysicalDeviceShaderDrawParametersFeatures& operator=( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceProperties &() VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceShaderDrawParametersFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceProperties const & ) const = default; +#else + bool operator==( PhysicalDeviceProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; - return *this; + return ( apiVersion == rhs.apiVersion ) && ( driverVersion == rhs.driverVersion ) && + ( vendorID == rhs.vendorID ) && ( deviceID == rhs.deviceID ) && ( deviceType == rhs.deviceType ) && + ( deviceName == rhs.deviceName ) && ( pipelineCacheUUID == rhs.pipelineCacheUUID ) && + ( limits == rhs.limits ) && ( sparseProperties == rhs.sparseProperties ); } - PhysicalDeviceShaderDrawParametersFeatures & setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - shaderDrawParameters = shaderDrawParameters_; + return !operator==( rhs ); + } +#endif + + public: + uint32_t apiVersion = {}; + uint32_t driverVersion = {}; + uint32_t vendorID = {}; + uint32_t deviceID = {}; + VULKAN_HPP_NAMESPACE::PhysicalDeviceType deviceType = VULKAN_HPP_NAMESPACE::PhysicalDeviceType::eOther; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D deviceName = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D pipelineCacheUUID = {}; + VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits limits = {}; + VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties sparseProperties = {}; + }; + static_assert( sizeof( PhysicalDeviceProperties ) == sizeof( VkPhysicalDeviceProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + struct PhysicalDeviceProperties2 + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProperties2; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 + PhysicalDeviceProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties_ = {} ) VULKAN_HPP_NOEXCEPT + : properties( properties_ ) + {} + + VULKAN_HPP_CONSTEXPR_14 + PhysicalDeviceProperties2( PhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceProperties2( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceProperties2( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties2 & + operator=( PhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceProperties2 & operator=( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceShaderDrawParametersFeatures const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceProperties2 const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceShaderDrawParametersFeatures &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceProperties2 &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceShaderDrawParametersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceProperties2 const & ) const = default; +#else + bool operator==( PhysicalDeviceProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderDrawParameters == rhs.shaderDrawParameters ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( properties == rhs.properties ); } - bool operator!=( PhysicalDeviceShaderDrawParametersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProperties2; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties = {}; }; - static_assert( sizeof( PhysicalDeviceShaderDrawParametersFeatures ) == sizeof( VkPhysicalDeviceShaderDrawParametersFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceProperties2 ) == sizeof( VkPhysicalDeviceProperties2 ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceShaderFloat16Int8Features + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat16Int8Features( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ = {} ) VULKAN_HPP_NOEXCEPT - : shaderFloat16( shaderFloat16_ ) - , shaderInt8( shaderInt8_ ) + using Type = PhysicalDeviceProperties2; + }; + using PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2; + + struct QueryPoolPerformanceCreateInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eQueryPoolPerformanceCreateInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR QueryPoolPerformanceCreateInfoKHR( uint32_t queueFamilyIndex_ = {}, + uint32_t counterIndexCount_ = {}, + const uint32_t * pCounterIndices_ = {} ) VULKAN_HPP_NOEXCEPT + : queueFamilyIndex( queueFamilyIndex_ ) + , counterIndexCount( counterIndexCount_ ) + , pCounterIndices( pCounterIndices_ ) + {} + + VULKAN_HPP_CONSTEXPR + QueryPoolPerformanceCreateInfoKHR( QueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + QueryPoolPerformanceCreateInfoKHR( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : QueryPoolPerformanceCreateInfoKHR( *reinterpret_cast( &rhs ) ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + QueryPoolPerformanceCreateInfoKHR( + uint32_t queueFamilyIndex_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & counterIndices_ ) + : queueFamilyIndex( queueFamilyIndex_ ) + , counterIndexCount( static_cast( counterIndices_.size() ) ) + , pCounterIndices( counterIndices_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceCreateInfoKHR & + operator=( QueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + QueryPoolPerformanceCreateInfoKHR & operator=( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features ) - offsetof( PhysicalDeviceShaderFloat16Int8Features, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceShaderFloat16Int8Features( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT + QueryPoolPerformanceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - PhysicalDeviceShaderFloat16Int8Features& operator=( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT + QueryPoolPerformanceCreateInfoKHR & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + queueFamilyIndex = queueFamilyIndex_; return *this; } - PhysicalDeviceShaderFloat16Int8Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + QueryPoolPerformanceCreateInfoKHR & setCounterIndexCount( uint32_t counterIndexCount_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + counterIndexCount = counterIndexCount_; return *this; } - PhysicalDeviceShaderFloat16Int8Features & setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT + QueryPoolPerformanceCreateInfoKHR & setPCounterIndices( const uint32_t * pCounterIndices_ ) VULKAN_HPP_NOEXCEPT { - shaderFloat16 = shaderFloat16_; + pCounterIndices = pCounterIndices_; return *this; } - PhysicalDeviceShaderFloat16Int8Features & setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + QueryPoolPerformanceCreateInfoKHR & setCounterIndices( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & counterIndices_ ) VULKAN_HPP_NOEXCEPT { - shaderInt8 = shaderInt8_; + counterIndexCount = static_cast( counterIndices_.size() ); + pCounterIndices = counterIndices_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPhysicalDeviceShaderFloat16Int8Features const&() const VULKAN_HPP_NOEXCEPT + operator VkQueryPoolPerformanceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceShaderFloat16Int8Features &() VULKAN_HPP_NOEXCEPT + operator VkQueryPoolPerformanceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceShaderFloat16Int8Features const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( QueryPoolPerformanceCreateInfoKHR const & ) const = default; +#else + bool operator==( QueryPoolPerformanceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderFloat16 == rhs.shaderFloat16 ) - && ( shaderInt8 == rhs.shaderInt8 ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( queueFamilyIndex == rhs.queueFamilyIndex ) && + ( counterIndexCount == rhs.counterIndexCount ) && ( pCounterIndices == rhs.pCounterIndices ); } - bool operator!=( PhysicalDeviceShaderFloat16Int8Features const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( QueryPoolPerformanceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderFloat16Int8Features; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolPerformanceCreateInfoKHR; + const void * pNext = {}; + uint32_t queueFamilyIndex = {}; + uint32_t counterIndexCount = {}; + const uint32_t * pCounterIndices = {}; }; - static_assert( sizeof( PhysicalDeviceShaderFloat16Int8Features ) == sizeof( VkPhysicalDeviceShaderFloat16Int8Features ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( QueryPoolPerformanceCreateInfoKHR ) == sizeof( VkQueryPoolPerformanceCreateInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceShaderImageFootprintFeaturesNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageFootprintFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ = {} ) VULKAN_HPP_NOEXCEPT - : imageFootprint( imageFootprint_ ) - {} + using Type = QueryPoolPerformanceCreateInfoKHR; + }; - VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV ) - offsetof( PhysicalDeviceShaderImageFootprintFeaturesNV, pNext ) ); - return *this; - } + struct QueueFamilyProperties + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + QueueFamilyProperties( VULKAN_HPP_NAMESPACE::QueueFlags queueFlags_ = {}, + uint32_t queueCount_ = {}, + uint32_t timestampValidBits_ = {}, + VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity_ = {} ) VULKAN_HPP_NOEXCEPT + : queueFlags( queueFlags_ ) + , queueCount( queueCount_ ) + , timestampValidBits( timestampValidBits_ ) + , minImageTransferGranularity( minImageTransferGranularity_ ) + {} - PhysicalDeviceShaderImageFootprintFeaturesNV( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR QueueFamilyProperties( QueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceShaderImageFootprintFeaturesNV& operator=( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + QueueFamilyProperties( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT + : QueueFamilyProperties( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceShaderImageFootprintFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 QueueFamilyProperties & + operator=( QueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceShaderImageFootprintFeaturesNV & setImageFootprint( VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ ) VULKAN_HPP_NOEXCEPT + QueueFamilyProperties & operator=( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - imageFootprint = imageFootprint_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const&() const VULKAN_HPP_NOEXCEPT + operator VkQueueFamilyProperties const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceShaderImageFootprintFeaturesNV &() VULKAN_HPP_NOEXCEPT + operator VkQueueFamilyProperties &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceShaderImageFootprintFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( QueueFamilyProperties const & ) const = default; +#else + bool operator==( QueueFamilyProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( imageFootprint == rhs.imageFootprint ); + return ( queueFlags == rhs.queueFlags ) && ( queueCount == rhs.queueCount ) && + ( timestampValidBits == rhs.timestampValidBits ) && + ( minImageTransferGranularity == rhs.minImageTransferGranularity ); } - bool operator!=( PhysicalDeviceShaderImageFootprintFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( QueueFamilyProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 imageFootprint = {}; + VULKAN_HPP_NAMESPACE::QueueFlags queueFlags = {}; + uint32_t queueCount = {}; + uint32_t timestampValidBits = {}; + VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity = {}; }; - static_assert( sizeof( PhysicalDeviceShaderImageFootprintFeaturesNV ) == sizeof( VkPhysicalDeviceShaderImageFootprintFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( QueueFamilyProperties ) == sizeof( VkQueueFamilyProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL + struct QueueFamilyProperties2 { - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ = {} ) VULKAN_HPP_NOEXCEPT - : shaderIntegerFunctions2( shaderIntegerFunctions2_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyProperties2; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR QueueFamilyProperties2( + VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties_ = {} ) VULKAN_HPP_NOEXCEPT + : queueFamilyProperties( queueFamilyProperties_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ) - offsetof( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR QueueFamilyProperties2( QueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + QueueFamilyProperties2( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT + : QueueFamilyProperties2( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL& operator=( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 QueueFamilyProperties2 & + operator=( QueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + QueueFamilyProperties2 & operator=( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setShaderIntegerFunctions2( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ ) VULKAN_HPP_NOEXCEPT + operator VkQueueFamilyProperties2 const &() const VULKAN_HPP_NOEXCEPT { - shaderIntegerFunctions2 = shaderIntegerFunctions2_; - return *this; + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const&() const VULKAN_HPP_NOEXCEPT + operator VkQueueFamilyProperties2 &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL &() VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( QueueFamilyProperties2 const & ) const = default; +#else + bool operator==( QueueFamilyProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( queueFamilyProperties == rhs.queueFamilyProperties ); } - bool operator==( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderIntegerFunctions2 == rhs.shaderIntegerFunctions2 ); - } - - bool operator!=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( QueueFamilyProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2 = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyProperties2; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties = {}; }; - static_assert( sizeof( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ) == sizeof( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( QueueFamilyProperties2 ) == sizeof( VkQueueFamilyProperties2 ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceShaderSMBuiltinsFeaturesNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ = {} ) VULKAN_HPP_NOEXCEPT - : shaderSMBuiltins( shaderSMBuiltins_ ) + using Type = QueueFamilyProperties2; + }; + using QueueFamilyProperties2KHR = QueueFamilyProperties2; + + struct PhysicalDeviceSparseImageFormatInfo2 + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceSparseImageFormatInfo2; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseImageFormatInfo2( + VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, + VULKAN_HPP_NAMESPACE::ImageType type_ = VULKAN_HPP_NAMESPACE::ImageType::e1D, + VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, + VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, + VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal ) VULKAN_HPP_NOEXCEPT + : format( format_ ) + , type( type_ ) + , samples( samples_ ) + , usage( usage_ ) + , tiling( tiling_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseImageFormatInfo2( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceSparseImageFormatInfo2( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceSparseImageFormatInfo2( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSparseImageFormatInfo2 & + operator=( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceSparseImageFormatInfo2 & + operator=( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV ) - offsetof( PhysicalDeviceShaderSMBuiltinsFeaturesNV, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceShaderSMBuiltinsFeaturesNV( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceSparseImageFormatInfo2 & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - PhysicalDeviceShaderSMBuiltinsFeaturesNV& operator=( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceSparseImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + format = format_; return *this; } - PhysicalDeviceShaderSMBuiltinsFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceSparseImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + type = type_; return *this; } - PhysicalDeviceShaderSMBuiltinsFeaturesNV & setShaderSMBuiltins( VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceSparseImageFormatInfo2 & + setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT { - shaderSMBuiltins = shaderSMBuiltins_; + samples = samples_; return *this; } - operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const&() const VULKAN_HPP_NOEXCEPT + PhysicalDeviceSparseImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + usage = usage_; + return *this; } - operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV &() VULKAN_HPP_NOEXCEPT + PhysicalDeviceSparseImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT + { + tiling = tiling_; + return *this; + } + + operator VkPhysicalDeviceSparseImageFormatInfo2 const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceSparseImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceSparseImageFormatInfo2 const & ) const = default; +#else + bool operator==( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderSMBuiltins == rhs.shaderSMBuiltins ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( format == rhs.format ) && ( type == rhs.type ) && + ( samples == rhs.samples ) && ( usage == rhs.usage ) && ( tiling == rhs.tiling ); } - bool operator!=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSparseImageFormatInfo2; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; + VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D; + VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; + VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {}; + VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal; }; - static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsFeaturesNV ) == sizeof( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceSparseImageFormatInfo2 ) == sizeof( VkPhysicalDeviceSparseImageFormatInfo2 ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceShaderSMBuiltinsPropertiesNV + template <> + struct CppType { - PhysicalDeviceShaderSMBuiltinsPropertiesNV( uint32_t shaderSMCount_ = {}, - uint32_t shaderWarpsPerSM_ = {} ) VULKAN_HPP_NOEXCEPT - : shaderSMCount( shaderSMCount_ ) - , shaderWarpsPerSM( shaderWarpsPerSM_ ) + using Type = PhysicalDeviceSparseImageFormatInfo2; + }; + using PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2; + + struct SparseImageFormatProperties2 + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSparseImageFormatProperties2; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SparseImageFormatProperties2( + VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties_ = {} ) VULKAN_HPP_NOEXCEPT + : properties( properties_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV ) - offsetof( PhysicalDeviceShaderSMBuiltinsPropertiesNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + SparseImageFormatProperties2( SparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceShaderSMBuiltinsPropertiesNV( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + SparseImageFormatProperties2( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT + : SparseImageFormatProperties2( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SparseImageFormatProperties2 & + operator=( SparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceShaderSMBuiltinsPropertiesNV& operator=( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + SparseImageFormatProperties2 & operator=( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const&() const VULKAN_HPP_NOEXCEPT + operator VkSparseImageFormatProperties2 const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV &() VULKAN_HPP_NOEXCEPT + operator VkSparseImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SparseImageFormatProperties2 const & ) const = default; +#else + bool operator==( SparseImageFormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderSMCount == rhs.shaderSMCount ) - && ( shaderWarpsPerSM == rhs.shaderWarpsPerSM ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( properties == rhs.properties ); } - bool operator!=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SparseImageFormatProperties2 const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV; - void* pNext = {}; - uint32_t shaderSMCount = {}; - uint32_t shaderWarpsPerSM = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageFormatProperties2; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties = {}; }; - static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsPropertiesNV ) == sizeof( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SparseImageFormatProperties2 ) == sizeof( VkSparseImageFormatProperties2 ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceShaderSubgroupExtendedTypesFeatures + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupExtendedTypesFeatures( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ = {} ) VULKAN_HPP_NOEXCEPT - : shaderSubgroupExtendedTypes( shaderSubgroupExtendedTypes_ ) + using Type = SparseImageFormatProperties2; + }; + using SparseImageFormatProperties2KHR = SparseImageFormatProperties2; + + struct FramebufferMixedSamplesCombinationNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eFramebufferMixedSamplesCombinationNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR FramebufferMixedSamplesCombinationNV( + VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ = + VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge, + VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, + VULKAN_HPP_NAMESPACE::SampleCountFlags depthStencilSamples_ = {}, + VULKAN_HPP_NAMESPACE::SampleCountFlags colorSamples_ = {} ) VULKAN_HPP_NOEXCEPT + : coverageReductionMode( coverageReductionMode_ ) + , rasterizationSamples( rasterizationSamples_ ) + , depthStencilSamples( depthStencilSamples_ ) + , colorSamples( colorSamples_ ) + {} + + VULKAN_HPP_CONSTEXPR FramebufferMixedSamplesCombinationNV( FramebufferMixedSamplesCombinationNV const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + FramebufferMixedSamplesCombinationNV( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT + : FramebufferMixedSamplesCombinationNV( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 FramebufferMixedSamplesCombinationNV & + operator=( FramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + FramebufferMixedSamplesCombinationNV & + operator=( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures ) - offsetof( PhysicalDeviceShaderSubgroupExtendedTypesFeatures, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceShaderSubgroupExtendedTypesFeatures( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkFramebufferMixedSamplesCombinationNV const &() const VULKAN_HPP_NOEXCEPT { - *this = rhs; + return *reinterpret_cast( this ); } - PhysicalDeviceShaderSubgroupExtendedTypesFeatures& operator=( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkFramebufferMixedSamplesCombinationNV &() VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceShaderSubgroupExtendedTypesFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( FramebufferMixedSamplesCombinationNV const & ) const = default; +#else + bool operator==( FramebufferMixedSamplesCombinationNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( coverageReductionMode == rhs.coverageReductionMode ) && + ( rasterizationSamples == rhs.rasterizationSamples ) && + ( depthStencilSamples == rhs.depthStencilSamples ) && ( colorSamples == rhs.colorSamples ); } - PhysicalDeviceShaderSubgroupExtendedTypesFeatures & setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( FramebufferMixedSamplesCombinationNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_; + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferMixedSamplesCombinationNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = + VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge; + VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; + VULKAN_HPP_NAMESPACE::SampleCountFlags depthStencilSamples = {}; + VULKAN_HPP_NAMESPACE::SampleCountFlags colorSamples = {}; + }; + static_assert( sizeof( FramebufferMixedSamplesCombinationNV ) == sizeof( VkFramebufferMixedSamplesCombinationNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = FramebufferMixedSamplesCombinationNV; + }; + + struct SurfaceCapabilities2EXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilities2EXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SurfaceCapabilities2EXT( + uint32_t minImageCount_ = {}, + uint32_t maxImageCount_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D currentExtent_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D minImageExtent_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent_ = {}, + uint32_t maxImageArrayLayers_ = {}, + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {}, + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform_ = + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, + VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha_ = {}, + VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags_ = {}, + VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT supportedSurfaceCounters_ = {} ) VULKAN_HPP_NOEXCEPT + : minImageCount( minImageCount_ ) + , maxImageCount( maxImageCount_ ) + , currentExtent( currentExtent_ ) + , minImageExtent( minImageExtent_ ) + , maxImageExtent( maxImageExtent_ ) + , maxImageArrayLayers( maxImageArrayLayers_ ) + , supportedTransforms( supportedTransforms_ ) + , currentTransform( currentTransform_ ) + , supportedCompositeAlpha( supportedCompositeAlpha_ ) + , supportedUsageFlags( supportedUsageFlags_ ) + , supportedSurfaceCounters( supportedSurfaceCounters_ ) + {} + + VULKAN_HPP_CONSTEXPR SurfaceCapabilities2EXT( SurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SurfaceCapabilities2EXT( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT + : SurfaceCapabilities2EXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilities2EXT & + operator=( SurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SurfaceCapabilities2EXT & operator=( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const&() const VULKAN_HPP_NOEXCEPT + operator VkSurfaceCapabilities2EXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures &() VULKAN_HPP_NOEXCEPT + operator VkSurfaceCapabilities2EXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SurfaceCapabilities2EXT const & ) const = default; +#else + bool operator==( SurfaceCapabilities2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( minImageCount == rhs.minImageCount ) && + ( maxImageCount == rhs.maxImageCount ) && ( currentExtent == rhs.currentExtent ) && + ( minImageExtent == rhs.minImageExtent ) && ( maxImageExtent == rhs.maxImageExtent ) && + ( maxImageArrayLayers == rhs.maxImageArrayLayers ) && ( supportedTransforms == rhs.supportedTransforms ) && + ( currentTransform == rhs.currentTransform ) && + ( supportedCompositeAlpha == rhs.supportedCompositeAlpha ) && + ( supportedUsageFlags == rhs.supportedUsageFlags ) && + ( supportedSurfaceCounters == rhs.supportedSurfaceCounters ); } - bool operator!=( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SurfaceCapabilities2EXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2EXT; + void * pNext = {}; + uint32_t minImageCount = {}; + uint32_t maxImageCount = {}; + VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {}; + VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {}; + VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {}; + uint32_t maxImageArrayLayers = {}; + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {}; + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; + VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {}; + VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {}; + VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT supportedSurfaceCounters = {}; }; - static_assert( sizeof( PhysicalDeviceShaderSubgroupExtendedTypesFeatures ) == sizeof( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SurfaceCapabilities2EXT ) == sizeof( VkSurfaceCapabilities2EXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceShadingRateImageFeaturesNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImageFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ = {} ) VULKAN_HPP_NOEXCEPT - : shadingRateImage( shadingRateImage_ ) - , shadingRateCoarseSampleOrder( shadingRateCoarseSampleOrder_ ) + using Type = SurfaceCapabilities2EXT; + }; + + struct SurfaceCapabilitiesKHR + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + SurfaceCapabilitiesKHR( uint32_t minImageCount_ = {}, + uint32_t maxImageCount_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D currentExtent_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D minImageExtent_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent_ = {}, + uint32_t maxImageArrayLayers_ = {}, + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {}, + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform_ = + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, + VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha_ = {}, + VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags_ = {} ) VULKAN_HPP_NOEXCEPT + : minImageCount( minImageCount_ ) + , maxImageCount( maxImageCount_ ) + , currentExtent( currentExtent_ ) + , minImageExtent( minImageExtent_ ) + , maxImageExtent( maxImageExtent_ ) + , maxImageArrayLayers( maxImageArrayLayers_ ) + , supportedTransforms( supportedTransforms_ ) + , currentTransform( currentTransform_ ) + , supportedCompositeAlpha( supportedCompositeAlpha_ ) + , supportedUsageFlags( supportedUsageFlags_ ) + {} + + VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesKHR( SurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SurfaceCapabilitiesKHR( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : SurfaceCapabilitiesKHR( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilitiesKHR & + operator=( SurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + SurfaceCapabilitiesKHR & operator=( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV ) - offsetof( PhysicalDeviceShadingRateImageFeaturesNV, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceShadingRateImageFeaturesNV( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkSurfaceCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT { - *this = rhs; + return *reinterpret_cast( this ); } - PhysicalDeviceShadingRateImageFeaturesNV& operator=( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceShadingRateImageFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SurfaceCapabilitiesKHR const & ) const = default; +#else + bool operator==( SurfaceCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; - return *this; + return ( minImageCount == rhs.minImageCount ) && ( maxImageCount == rhs.maxImageCount ) && + ( currentExtent == rhs.currentExtent ) && ( minImageExtent == rhs.minImageExtent ) && + ( maxImageExtent == rhs.maxImageExtent ) && ( maxImageArrayLayers == rhs.maxImageArrayLayers ) && + ( supportedTransforms == rhs.supportedTransforms ) && ( currentTransform == rhs.currentTransform ) && + ( supportedCompositeAlpha == rhs.supportedCompositeAlpha ) && + ( supportedUsageFlags == rhs.supportedUsageFlags ); } - PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateImage( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( SurfaceCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - shadingRateImage = shadingRateImage_; - return *this; + return !operator==( rhs ); } +#endif + + public: + uint32_t minImageCount = {}; + uint32_t maxImageCount = {}; + VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {}; + VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {}; + VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {}; + uint32_t maxImageArrayLayers = {}; + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {}; + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; + VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {}; + VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {}; + }; + static_assert( sizeof( SurfaceCapabilitiesKHR ) == sizeof( VkSurfaceCapabilitiesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + struct SurfaceCapabilities2KHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilities2KHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SurfaceCapabilities2KHR( + VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities_ = {} ) VULKAN_HPP_NOEXCEPT + : surfaceCapabilities( surfaceCapabilities_ ) + {} + + VULKAN_HPP_CONSTEXPR SurfaceCapabilities2KHR( SurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SurfaceCapabilities2KHR( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : SurfaceCapabilities2KHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateCoarseSampleOrder( VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilities2KHR & + operator=( SurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SurfaceCapabilities2KHR & operator=( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT { - shadingRateCoarseSampleOrder = shadingRateCoarseSampleOrder_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceShadingRateImageFeaturesNV const&() const VULKAN_HPP_NOEXCEPT + operator VkSurfaceCapabilities2KHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceShadingRateImageFeaturesNV &() VULKAN_HPP_NOEXCEPT + operator VkSurfaceCapabilities2KHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceShadingRateImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SurfaceCapabilities2KHR const & ) const = default; +#else + bool operator==( SurfaceCapabilities2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shadingRateImage == rhs.shadingRateImage ) - && ( shadingRateCoarseSampleOrder == rhs.shadingRateCoarseSampleOrder ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( surfaceCapabilities == rhs.surfaceCapabilities ); } - bool operator!=( PhysicalDeviceShadingRateImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SurfaceCapabilities2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage = {}; - VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2KHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities = {}; }; - static_assert( sizeof( PhysicalDeviceShadingRateImageFeaturesNV ) == sizeof( VkPhysicalDeviceShadingRateImageFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SurfaceCapabilities2KHR ) == sizeof( VkSurfaceCapabilities2KHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceShadingRateImagePropertiesNV + template <> + struct CppType { - PhysicalDeviceShadingRateImagePropertiesNV( VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize_ = {}, - uint32_t shadingRatePaletteSize_ = {}, - uint32_t shadingRateMaxCoarseSamples_ = {} ) VULKAN_HPP_NOEXCEPT - : shadingRateTexelSize( shadingRateTexelSize_ ) - , shadingRatePaletteSize( shadingRatePaletteSize_ ) - , shadingRateMaxCoarseSamples( shadingRateMaxCoarseSamples_ ) + using Type = SurfaceCapabilities2KHR; + }; + + struct SurfaceFormatKHR + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + SurfaceFormatKHR( VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, + VULKAN_HPP_NAMESPACE::ColorSpaceKHR colorSpace_ = + VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear ) VULKAN_HPP_NOEXCEPT + : format( format_ ) + , colorSpace( colorSpace_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV ) - offsetof( PhysicalDeviceShadingRateImagePropertiesNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR SurfaceFormatKHR( SurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceShadingRateImagePropertiesNV( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + SurfaceFormatKHR( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : SurfaceFormatKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceShadingRateImagePropertiesNV& operator=( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 SurfaceFormatKHR & operator=( SurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SurfaceFormatKHR & operator=( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceShadingRateImagePropertiesNV const&() const VULKAN_HPP_NOEXCEPT + operator VkSurfaceFormatKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceShadingRateImagePropertiesNV &() VULKAN_HPP_NOEXCEPT + operator VkSurfaceFormatKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceShadingRateImagePropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SurfaceFormatKHR const & ) const = default; +#else + bool operator==( SurfaceFormatKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shadingRateTexelSize == rhs.shadingRateTexelSize ) - && ( shadingRatePaletteSize == rhs.shadingRatePaletteSize ) - && ( shadingRateMaxCoarseSamples == rhs.shadingRateMaxCoarseSamples ); + return ( format == rhs.format ) && ( colorSpace == rhs.colorSpace ); } - bool operator!=( PhysicalDeviceShadingRateImagePropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( SurfaceFormatKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize = {}; - uint32_t shadingRatePaletteSize = {}; - uint32_t shadingRateMaxCoarseSamples = {}; + VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; + VULKAN_HPP_NAMESPACE::ColorSpaceKHR colorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear; }; - static_assert( sizeof( PhysicalDeviceShadingRateImagePropertiesNV ) == sizeof( VkPhysicalDeviceShadingRateImagePropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( SurfaceFormatKHR ) == sizeof( VkSurfaceFormatKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceSparseImageFormatInfo2 + struct SurfaceFormat2KHR { - VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseImageFormatInfo2( VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, - VULKAN_HPP_NAMESPACE::ImageType type_ = VULKAN_HPP_NAMESPACE::ImageType::e1D, - VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, - VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, - VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal ) VULKAN_HPP_NOEXCEPT - : format( format_ ) - , type( type_ ) - , samples( samples_ ) - , usage( usage_ ) - , tiling( tiling_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFormat2KHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + SurfaceFormat2KHR( VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat_ = {} ) VULKAN_HPP_NOEXCEPT + : surfaceFormat( surfaceFormat_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 ) - offsetof( PhysicalDeviceSparseImageFormatInfo2, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR SurfaceFormat2KHR( SurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceSparseImageFormatInfo2( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + SurfaceFormat2KHR( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : SurfaceFormat2KHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceSparseImageFormatInfo2& operator=( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 SurfaceFormat2KHR & + operator=( SurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceSparseImageFormatInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + SurfaceFormat2KHR & operator=( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceSparseImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT + operator VkSurfaceFormat2KHR const &() const VULKAN_HPP_NOEXCEPT { - format = format_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceSparseImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT + operator VkSurfaceFormat2KHR &() VULKAN_HPP_NOEXCEPT { - type = type_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceSparseImageFormatInfo2 & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SurfaceFormat2KHR const & ) const = default; +#else + bool operator==( SurfaceFormat2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - samples = samples_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( surfaceFormat == rhs.surfaceFormat ); } - PhysicalDeviceSparseImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( SurfaceFormat2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - usage = usage_; - return *this; + return !operator==( rhs ); } +#endif - PhysicalDeviceSparseImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFormat2KHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat = {}; + }; + static_assert( sizeof( SurfaceFormat2KHR ) == sizeof( VkSurfaceFormat2KHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = SurfaceFormat2KHR; + }; + + struct PhysicalDeviceToolPropertiesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceToolPropertiesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceToolPropertiesEXT( + std::array const & name_ = {}, + std::array const & version_ = {}, + VULKAN_HPP_NAMESPACE::ToolPurposeFlagsEXT purposes_ = {}, + std::array const & description_ = {}, + std::array const & layer_ = {} ) VULKAN_HPP_NOEXCEPT + : name( name_ ) + , version( version_ ) + , purposes( purposes_ ) + , description( description_ ) + , layer( layer_ ) + {} + + VULKAN_HPP_CONSTEXPR_14 + PhysicalDeviceToolPropertiesEXT( PhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceToolPropertiesEXT( VkPhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceToolPropertiesEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceToolPropertiesEXT & + operator=( PhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceToolPropertiesEXT & operator=( VkPhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - tiling = tiling_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceSparseImageFormatInfo2 const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceToolPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceSparseImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceToolPropertiesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceSparseImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceToolPropertiesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceToolPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( format == rhs.format ) - && ( type == rhs.type ) - && ( samples == rhs.samples ) - && ( usage == rhs.usage ) - && ( tiling == rhs.tiling ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( name == rhs.name ) && ( version == rhs.version ) && + ( purposes == rhs.purposes ) && ( description == rhs.description ) && ( layer == rhs.layer ); } - bool operator!=( PhysicalDeviceSparseImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceToolPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSparseImageFormatInfo2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {}; - VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceToolPropertiesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D name = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D version = {}; + VULKAN_HPP_NAMESPACE::ToolPurposeFlagsEXT purposes = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D description = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D layer = {}; }; - static_assert( sizeof( PhysicalDeviceSparseImageFormatInfo2 ) == sizeof( VkPhysicalDeviceSparseImageFormatInfo2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceToolPropertiesEXT ) == sizeof( VkPhysicalDeviceToolPropertiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceSubgroupProperties + template <> + struct CppType { - PhysicalDeviceSubgroupProperties( uint32_t subgroupSize_ = {}, - VULKAN_HPP_NAMESPACE::ShaderStageFlags supportedStages_ = {}, - VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags supportedOperations_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 quadOperationsInAllStages_ = {} ) VULKAN_HPP_NOEXCEPT - : subgroupSize( subgroupSize_ ) - , supportedStages( supportedStages_ ) - , supportedOperations( supportedOperations_ ) - , quadOperationsInAllStages( quadOperationsInAllStages_ ) + using Type = PhysicalDeviceToolPropertiesEXT; + }; + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoCapabilitiesKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoCapabilitiesKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoCapabilitiesKHR( VULKAN_HPP_NAMESPACE::VideoCapabilitiesFlagsKHR capabilityFlags_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize minBitstreamBufferOffsetAlignment_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize minBitstreamBufferSizeAlignment_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D videoPictureExtentGranularity_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D minExtent_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D maxExtent_ = {}, + uint32_t maxReferencePicturesSlotsCount_ = {}, + uint32_t maxReferencePicturesActiveCount_ = {} ) VULKAN_HPP_NOEXCEPT + : capabilityFlags( capabilityFlags_ ) + , minBitstreamBufferOffsetAlignment( minBitstreamBufferOffsetAlignment_ ) + , minBitstreamBufferSizeAlignment( minBitstreamBufferSizeAlignment_ ) + , videoPictureExtentGranularity( videoPictureExtentGranularity_ ) + , minExtent( minExtent_ ) + , maxExtent( maxExtent_ ) + , maxReferencePicturesSlotsCount( maxReferencePicturesSlotsCount_ ) + , maxReferencePicturesActiveCount( maxReferencePicturesActiveCount_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties ) - offsetof( PhysicalDeviceSubgroupProperties, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR VideoCapabilitiesKHR( VideoCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceSubgroupProperties( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VideoCapabilitiesKHR( VkVideoCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoCapabilitiesKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceSubgroupProperties& operator=( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 VideoCapabilitiesKHR & + operator=( VideoCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoCapabilitiesKHR & operator=( VkVideoCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceSubgroupProperties const&() const VULKAN_HPP_NOEXCEPT + operator VkVideoCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceSubgroupProperties &() VULKAN_HPP_NOEXCEPT + operator VkVideoCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceSubgroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoCapabilitiesKHR const & ) const = default; +# else + bool operator==( VideoCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( subgroupSize == rhs.subgroupSize ) - && ( supportedStages == rhs.supportedStages ) - && ( supportedOperations == rhs.supportedOperations ) - && ( quadOperationsInAllStages == rhs.quadOperationsInAllStages ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( capabilityFlags == rhs.capabilityFlags ) && + ( minBitstreamBufferOffsetAlignment == rhs.minBitstreamBufferOffsetAlignment ) && + ( minBitstreamBufferSizeAlignment == rhs.minBitstreamBufferSizeAlignment ) && + ( videoPictureExtentGranularity == rhs.videoPictureExtentGranularity ) && ( minExtent == rhs.minExtent ) && + ( maxExtent == rhs.maxExtent ) && + ( maxReferencePicturesSlotsCount == rhs.maxReferencePicturesSlotsCount ) && + ( maxReferencePicturesActiveCount == rhs.maxReferencePicturesActiveCount ); } - bool operator!=( PhysicalDeviceSubgroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( VideoCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupProperties; - void* pNext = {}; - uint32_t subgroupSize = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlags supportedStages = {}; - VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags supportedOperations = {}; - VULKAN_HPP_NAMESPACE::Bool32 quadOperationsInAllStages = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoCapabilitiesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::VideoCapabilitiesFlagsKHR capabilityFlags = {}; + VULKAN_HPP_NAMESPACE::DeviceSize minBitstreamBufferOffsetAlignment = {}; + VULKAN_HPP_NAMESPACE::DeviceSize minBitstreamBufferSizeAlignment = {}; + VULKAN_HPP_NAMESPACE::Extent2D videoPictureExtentGranularity = {}; + VULKAN_HPP_NAMESPACE::Extent2D minExtent = {}; + VULKAN_HPP_NAMESPACE::Extent2D maxExtent = {}; + uint32_t maxReferencePicturesSlotsCount = {}; + uint32_t maxReferencePicturesActiveCount = {}; }; - static_assert( sizeof( PhysicalDeviceSubgroupProperties ) == sizeof( VkPhysicalDeviceSubgroupProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VideoCapabilitiesKHR ) == sizeof( VkVideoCapabilitiesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceSubgroupSizeControlFeaturesEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ = {} ) VULKAN_HPP_NOEXCEPT - : subgroupSizeControl( subgroupSizeControl_ ) - , computeFullSubgroups( computeFullSubgroups_ ) + using Type = VideoCapabilitiesKHR; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoProfilesKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoProfilesKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + VideoProfilesKHR( uint32_t profileCount_ = {}, + const VULKAN_HPP_NAMESPACE::VideoProfileKHR * pProfiles_ = {} ) VULKAN_HPP_NOEXCEPT + : profileCount( profileCount_ ) + , pProfiles( pProfiles_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeaturesEXT ) - offsetof( PhysicalDeviceSubgroupSizeControlFeaturesEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR VideoProfilesKHR( VideoProfilesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceSubgroupSizeControlFeaturesEXT( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VideoProfilesKHR( VkVideoProfilesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoProfilesKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoProfilesKHR & operator=( VideoProfilesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceSubgroupSizeControlFeaturesEXT& operator=( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VideoProfilesKHR & operator=( VkVideoProfilesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceSubgroupSizeControlFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + VideoProfilesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PhysicalDeviceSubgroupSizeControlFeaturesEXT & setSubgroupSizeControl( VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ ) VULKAN_HPP_NOEXCEPT + VideoProfilesKHR & setProfileCount( uint32_t profileCount_ ) VULKAN_HPP_NOEXCEPT { - subgroupSizeControl = subgroupSizeControl_; + profileCount = profileCount_; return *this; } - PhysicalDeviceSubgroupSizeControlFeaturesEXT & setComputeFullSubgroups( VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ ) VULKAN_HPP_NOEXCEPT + VideoProfilesKHR & setPProfiles( const VULKAN_HPP_NAMESPACE::VideoProfileKHR * pProfiles_ ) VULKAN_HPP_NOEXCEPT { - computeFullSubgroups = computeFullSubgroups_; + pProfiles = pProfiles_; return *this; } - operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkVideoProfilesKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT + operator VkVideoProfilesKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoProfilesKHR const & ) const = default; +# else + bool operator==( VideoProfilesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( subgroupSizeControl == rhs.subgroupSizeControl ) - && ( computeFullSubgroups == rhs.computeFullSubgroups ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( profileCount == rhs.profileCount ) && + ( pProfiles == rhs.pProfiles ); } - bool operator!=( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( VideoProfilesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl = {}; - VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoProfilesKHR; + void * pNext = {}; + uint32_t profileCount = {}; + const VULKAN_HPP_NAMESPACE::VideoProfileKHR * pProfiles = {}; }; - static_assert( sizeof( PhysicalDeviceSubgroupSizeControlFeaturesEXT ) == sizeof( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VideoProfilesKHR ) == sizeof( VkVideoProfilesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceSubgroupSizeControlPropertiesEXT + template <> + struct CppType { - PhysicalDeviceSubgroupSizeControlPropertiesEXT( uint32_t minSubgroupSize_ = {}, - uint32_t maxSubgroupSize_ = {}, - uint32_t maxComputeWorkgroupSubgroups_ = {}, - VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages_ = {} ) VULKAN_HPP_NOEXCEPT - : minSubgroupSize( minSubgroupSize_ ) - , maxSubgroupSize( maxSubgroupSize_ ) - , maxComputeWorkgroupSubgroups( maxComputeWorkgroupSubgroups_ ) - , requiredSubgroupSizeStages( requiredSubgroupSizeStages_ ) + using Type = VideoProfilesKHR; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct PhysicalDeviceVideoFormatInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVideoFormatInfoKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceVideoFormatInfoKHR( + VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ = {}, + const VULKAN_HPP_NAMESPACE::VideoProfilesKHR * pVideoProfiles_ = {} ) VULKAN_HPP_NOEXCEPT + : imageUsage( imageUsage_ ) + , pVideoProfiles( pVideoProfiles_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlPropertiesEXT ) - offsetof( PhysicalDeviceSubgroupSizeControlPropertiesEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + PhysicalDeviceVideoFormatInfoKHR( PhysicalDeviceVideoFormatInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceSubgroupSizeControlPropertiesEXT( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceVideoFormatInfoKHR( VkPhysicalDeviceVideoFormatInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceVideoFormatInfoKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVideoFormatInfoKHR & + operator=( PhysicalDeviceVideoFormatInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceSubgroupSizeControlPropertiesEXT& operator=( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceVideoFormatInfoKHR & operator=( VkPhysicalDeviceVideoFormatInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceVideoFormatInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceVideoFormatInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceVideoFormatInfoKHR const & ) const = default; +# else + bool operator==( PhysicalDeviceVideoFormatInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( minSubgroupSize == rhs.minSubgroupSize ) - && ( maxSubgroupSize == rhs.maxSubgroupSize ) - && ( maxComputeWorkgroupSubgroups == rhs.maxComputeWorkgroupSubgroups ) - && ( requiredSubgroupSizeStages == rhs.requiredSubgroupSizeStages ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageUsage == rhs.imageUsage ) && + ( pVideoProfiles == rhs.pVideoProfiles ); } - bool operator!=( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceVideoFormatInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT; - void* pNext = {}; - uint32_t minSubgroupSize = {}; - uint32_t maxSubgroupSize = {}; - uint32_t maxComputeWorkgroupSubgroups = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVideoFormatInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage = {}; + const VULKAN_HPP_NAMESPACE::VideoProfilesKHR * pVideoProfiles = {}; }; - static_assert( sizeof( PhysicalDeviceSubgroupSizeControlPropertiesEXT ) == sizeof( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceVideoFormatInfoKHR ) == sizeof( VkPhysicalDeviceVideoFormatInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceSurfaceInfo2KHR + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceSurfaceInfo2KHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ = {} ) VULKAN_HPP_NOEXCEPT - : surface( surface_ ) - {} + using Type = PhysicalDeviceVideoFormatInfoKHR; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR ) - offsetof( PhysicalDeviceSurfaceInfo2KHR, pNext ) ); - return *this; - } +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoFormatPropertiesKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoFormatPropertiesKHR; - PhysicalDeviceSurfaceInfo2KHR( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoFormatPropertiesKHR( + VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined ) VULKAN_HPP_NOEXCEPT + : format( format_ ) + {} - PhysicalDeviceSurfaceInfo2KHR& operator=( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR VideoFormatPropertiesKHR( VideoFormatPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceSurfaceInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + VideoFormatPropertiesKHR( VkVideoFormatPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoFormatPropertiesKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceSurfaceInfo2KHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 VideoFormatPropertiesKHR & + operator=( VideoFormatPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoFormatPropertiesKHR & operator=( VkVideoFormatPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - surface = surface_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceSurfaceInfo2KHR const&() const VULKAN_HPP_NOEXCEPT + operator VkVideoFormatPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceSurfaceInfo2KHR &() VULKAN_HPP_NOEXCEPT + operator VkVideoFormatPropertiesKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceSurfaceInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoFormatPropertiesKHR const & ) const = default; +# else + bool operator==( VideoFormatPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( surface == rhs.surface ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( format == rhs.format ); } - bool operator!=( PhysicalDeviceSurfaceInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( VideoFormatPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSurfaceInfo2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoFormatPropertiesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; }; - static_assert( sizeof( PhysicalDeviceSurfaceInfo2KHR ) == sizeof( VkPhysicalDeviceSurfaceInfo2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( VideoFormatPropertiesKHR ) == sizeof( VkVideoFormatPropertiesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ = {} ) VULKAN_HPP_NOEXCEPT - : texelBufferAlignment( texelBufferAlignment_ ) - {} + using Type = VideoFormatPropertiesKHR; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT ) - offsetof( PhysicalDeviceTexelBufferAlignmentFeaturesEXT, pNext ) ); - return *this; - } +#ifndef VULKAN_HPP_NO_SMART_HANDLE + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueDevice = UniqueHandle; +#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ - PhysicalDeviceTexelBufferAlignmentFeaturesEXT( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + class PhysicalDevice + { + public: + using CType = VkPhysicalDevice; - PhysicalDeviceTexelBufferAlignmentFeaturesEXT& operator=( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + 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: + VULKAN_HPP_CONSTEXPR PhysicalDevice() = default; + VULKAN_HPP_CONSTEXPR PhysicalDevice( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT PhysicalDevice( VkPhysicalDevice physicalDevice ) VULKAN_HPP_NOEXCEPT + : m_physicalDevice( physicalDevice ) + {} - PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + PhysicalDevice & operator=( VkPhysicalDevice physicalDevice ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + m_physicalDevice = physicalDevice; return *this; } +#endif - PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setTexelBufferAlignment( VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevice & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT { - texelBufferAlignment = texelBufferAlignment_; + m_physicalDevice = {}; return *this; } - operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDevice const & ) const = default; +#else + bool operator==( PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_physicalDevice == rhs.m_physicalDevice; } - operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT &() VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return m_physicalDevice != rhs.m_physicalDevice; } - bool operator==( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator<( PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( texelBufferAlignment == rhs.texelBufferAlignment ); + return m_physicalDevice < rhs.m_physicalDevice; } +#endif - bool operator!=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } +#if defined( VK_USE_PLATFORM_WIN32_KHR ) +# ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD Result + acquireWinrtDisplayNV( VULKAN_HPP_NAMESPACE::DisplayKHR display, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + acquireWinrtDisplayNV( VULKAN_HPP_NAMESPACE::DisplayKHR display, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) + template + VULKAN_HPP_NODISCARD Result + acquireXlibDisplayEXT( Display * dpy, + VULKAN_HPP_NAMESPACE::DisplayKHR display, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + acquireXlibDisplayEXT( Display & dpy, + VULKAN_HPP_NAMESPACE::DisplayKHR display, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ + + template + VULKAN_HPP_NODISCARD Result + createDevice( const VULKAN_HPP_NAMESPACE::DeviceCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Device * pDevice, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createDevice( const DeviceCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createDeviceUnique( const DeviceCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createDisplayModeKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, + const VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::DisplayModeKHR * pMode, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createDisplayModeKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, + const DisplayModeCreateInfoKHR & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createDisplayModeKHRUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, + const DisplayModeCreateInfoKHR & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result enumerateDeviceExtensionProperties( + const char * pLayerName, + uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::ExtensionProperties * pProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + enumerateDeviceExtensionProperties( Optional layerName + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = ExtensionPropertiesAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + enumerateDeviceExtensionProperties( Optional layerName, + ExtensionPropertiesAllocator & extensionPropertiesAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result enumerateDeviceLayerProperties( + uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::LayerProperties * pProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + enumerateDeviceLayerProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = LayerPropertiesAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + enumerateDeviceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result enumerateQueueFamilyPerformanceQueryCountersKHR( + uint32_t queueFamilyIndex, + uint32_t * pCounterCount, + VULKAN_HPP_NAMESPACE::PerformanceCounterKHR * pCounters, + VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR * pCounterDescriptions, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + enumerateQueueFamilyPerformanceQueryCountersKHR( + uint32_t queueFamilyIndex, + ArrayProxy const & counters, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = Allocator, + typename std::enable_if::value, + int>::type = 0> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + enumerateQueueFamilyPerformanceQueryCountersKHR( + uint32_t queueFamilyIndex, + ArrayProxy const & counters, + Allocator const & vectorAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename PerformanceCounterDescriptionKHRAllocator = std::allocator, + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType< + std::pair, + std::vector>>::type + enumerateQueueFamilyPerformanceQueryCountersKHR( + uint32_t queueFamilyIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename PerformanceCounterDescriptionKHRAllocator = std::allocator, + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B1 = PerformanceCounterKHRAllocator, + typename B2 = PerformanceCounterDescriptionKHRAllocator, + typename std::enable_if::value && + std::is_same::value, + int>::type = 0> + VULKAN_HPP_NODISCARD typename ResultValueType< + std::pair, + std::vector>>::type + enumerateQueueFamilyPerformanceQueryCountersKHR( + uint32_t queueFamilyIndex, + PerformanceCounterKHRAllocator & performanceCounterKHRAllocator, + PerformanceCounterDescriptionKHRAllocator & performanceCounterDescriptionKHRAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getDisplayModeProperties2KHR( + VULKAN_HPP_NAMESPACE::DisplayKHR display, + uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR * pProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template < + typename DisplayModeProperties2KHRAllocator = std::allocator, + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = DisplayModeProperties2KHRAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, + DisplayModeProperties2KHRAllocator & displayModeProperties2KHRAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getDisplayModePropertiesKHR( + VULKAN_HPP_NAMESPACE::DisplayKHR display, + uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR * pProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template < + typename DisplayModePropertiesKHRAllocator = std::allocator, + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = DisplayModePropertiesKHRAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, + DisplayModePropertiesKHRAllocator & displayModePropertiesKHRAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getDisplayPlaneCapabilities2KHR( + const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR * pDisplayPlaneInfo, + VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR * pCapabilities, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType::type + getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getDisplayPlaneCapabilitiesKHR( + VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, + uint32_t planeIndex, + VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR * pCapabilities, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType::type + getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, + uint32_t planeIndex, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getDisplayPlaneSupportedDisplaysKHR( + uint32_t planeIndex, + uint32_t * pDisplayCount, + VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplays, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = DisplayKHRAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, + DisplayKHRAllocator & displayKHRAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getCalibrateableTimeDomainsEXT( + uint32_t * pTimeDomainCount, + VULKAN_HPP_NAMESPACE::TimeDomainEXT * pTimeDomains, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getCalibrateableTimeDomainsEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = TimeDomainEXTAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getCalibrateableTimeDomainsEXT( TimeDomainEXTAllocator & timeDomainEXTAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getCooperativeMatrixPropertiesNV( + uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV * pProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + getCooperativeMatrixPropertiesNV( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = CooperativeMatrixPropertiesNVAllocator, + typename std::enable_if::value, + int>::type = 0> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + getCooperativeMatrixPropertiesNV( CooperativeMatrixPropertiesNVAllocator & cooperativeMatrixPropertiesNVAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) + template + Bool32 getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, + IDirectFB * dfb, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + Bool32 getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, + IDirectFB & dfb, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ + + template + VULKAN_HPP_NODISCARD Result getDisplayPlaneProperties2KHR( + uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR * pProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + getDisplayPlaneProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template < + typename DisplayPlaneProperties2KHRAllocator = std::allocator, + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = DisplayPlaneProperties2KHRAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + getDisplayPlaneProperties2KHR( DisplayPlaneProperties2KHRAllocator & displayPlaneProperties2KHRAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getDisplayPlanePropertiesKHR( + uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR * pProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + getDisplayPlanePropertiesKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template < + typename DisplayPlanePropertiesKHRAllocator = std::allocator, + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = DisplayPlanePropertiesKHRAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + getDisplayPlanePropertiesKHR( DisplayPlanePropertiesKHRAllocator & displayPlanePropertiesKHRAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + getDisplayProperties2KHR( uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::DisplayProperties2KHR * pProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + getDisplayProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template < + typename DisplayProperties2KHRAllocator = std::allocator, + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = DisplayProperties2KHRAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + getDisplayProperties2KHR( DisplayProperties2KHRAllocator & displayProperties2KHRAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + getDisplayPropertiesKHR( uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR * pProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + getDisplayPropertiesKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = DisplayPropertiesKHRAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + getDisplayPropertiesKHR( DisplayPropertiesKHRAllocator & displayPropertiesKHRAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getExternalBufferProperties( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo * pExternalBufferInfo, + VULKAN_HPP_NAMESPACE::ExternalBufferProperties * pExternalBufferProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferProperties( + const PhysicalDeviceExternalBufferInfo & externalBufferInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getExternalBufferPropertiesKHR( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo * pExternalBufferInfo, + VULKAN_HPP_NAMESPACE::ExternalBufferProperties * pExternalBufferProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferPropertiesKHR( + const PhysicalDeviceExternalBufferInfo & externalBufferInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getExternalFenceProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo * pExternalFenceInfo, + VULKAN_HPP_NAMESPACE::ExternalFenceProperties * pExternalFenceProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFenceProperties( + const PhysicalDeviceExternalFenceInfo & externalFenceInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getExternalFencePropertiesKHR( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo * pExternalFenceInfo, + VULKAN_HPP_NAMESPACE::ExternalFenceProperties * pExternalFenceProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFencePropertiesKHR( + const PhysicalDeviceExternalFenceInfo & externalFenceInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getExternalImageFormatPropertiesNV( + VULKAN_HPP_NAMESPACE::Format format, + VULKAN_HPP_NAMESPACE::ImageType type, + VULKAN_HPP_NAMESPACE::ImageTiling tiling, + VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, + VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType, + VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV * pExternalImageFormatProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType::type + getExternalImageFormatPropertiesNV( + VULKAN_HPP_NAMESPACE::Format format, + VULKAN_HPP_NAMESPACE::ImageType type, + VULKAN_HPP_NAMESPACE::ImageTiling tiling, + VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, + VULKAN_HPP_NAMESPACE::ImageCreateFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getExternalSemaphoreProperties( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo, + VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties * pExternalSemaphoreProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphoreProperties( + const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getExternalSemaphorePropertiesKHR( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo, + VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties * pExternalSemaphoreProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphorePropertiesKHR( + const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pFeatures, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures + getFeatures( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 * pFeatures, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 + getFeatures2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + template + VULKAN_HPP_NODISCARD StructureChain + getFeatures2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getFeatures2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 * pFeatures, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 + getFeatures2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + template + VULKAN_HPP_NODISCARD StructureChain + getFeatures2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, + VULKAN_HPP_NAMESPACE::FormatProperties * pFormatProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties + getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, + VULKAN_HPP_NAMESPACE::FormatProperties2 * pFormatProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties2 + getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + template + VULKAN_HPP_NODISCARD StructureChain + getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void + getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, + VULKAN_HPP_NAMESPACE::FormatProperties2 * pFormatProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties2 + getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + template + VULKAN_HPP_NODISCARD StructureChain + getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getFragmentShadingRatesKHR( + uint32_t * pFragmentShadingRateCount, + VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template < + typename PhysicalDeviceFragmentShadingRateKHRAllocator = std::allocator, + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType< + std::vector>::type + getFragmentShadingRatesKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template < + typename PhysicalDeviceFragmentShadingRateKHRAllocator = std::allocator, + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = PhysicalDeviceFragmentShadingRateKHRAllocator, + typename std::enable_if::value, + int>::type = 0> + VULKAN_HPP_NODISCARD typename ResultValueType< + std::vector>::type + getFragmentShadingRatesKHR( + PhysicalDeviceFragmentShadingRateKHRAllocator & physicalDeviceFragmentShadingRateKHRAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, + VULKAN_HPP_NAMESPACE::ImageType type, + VULKAN_HPP_NAMESPACE::ImageTiling tiling, + VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, + VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, + VULKAN_HPP_NAMESPACE::ImageFormatProperties * pImageFormatProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, + VULKAN_HPP_NAMESPACE::ImageType type, + VULKAN_HPP_NAMESPACE::ImageTiling tiling, + VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, + VULKAN_HPP_NAMESPACE::ImageCreateFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getImageFormatProperties2( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 * pImageFormatInfo, + VULKAN_HPP_NAMESPACE::ImageFormatProperties2 * pImageFormatProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type + getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getImageFormatProperties2KHR( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 * pImageFormatInfo, + VULKAN_HPP_NAMESPACE::ImageFormatProperties2 * pImageFormatProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type + getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getMemoryProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties * pMemoryProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties + getMemoryProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 * pMemoryProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 + getMemoryProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + template + VULKAN_HPP_NODISCARD StructureChain + getMemoryProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void + getMemoryProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 * pMemoryProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 + getMemoryProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + template + VULKAN_HPP_NODISCARD StructureChain + getMemoryProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, + VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT * pMultisampleProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT getMultisamplePropertiesEXT( + VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + uint32_t * pRectCount, + VULKAN_HPP_NAMESPACE::Rect2D * pRects, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = Rect2DAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + Rect2DAllocator & rect2DAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties * pProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties + getProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 * pProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 + getProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + template + VULKAN_HPP_NODISCARD StructureChain + getProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 * pProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 + getProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + template + VULKAN_HPP_NODISCARD StructureChain + getProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getQueueFamilyPerformanceQueryPassesKHR( + const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo, + uint32_t * pNumPasses, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD uint32_t getQueueFamilyPerformanceQueryPassesKHR( + const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void + getQueueFamilyProperties( uint32_t * pQueueFamilyPropertyCount, + VULKAN_HPP_NAMESPACE::QueueFamilyProperties * pQueueFamilyProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD std::vector + getQueueFamilyProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template < + typename QueueFamilyPropertiesAllocator = std::allocator, + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = QueueFamilyPropertiesAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD std::vector + getQueueFamilyProperties( QueueFamilyPropertiesAllocator & queueFamilyPropertiesAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getQueueFamilyProperties2( uint32_t * pQueueFamilyPropertyCount, + VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 * pQueueFamilyProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD std::vector + getQueueFamilyProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template < + typename QueueFamilyProperties2Allocator = std::allocator, + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = QueueFamilyProperties2Allocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD std::vector + getQueueFamilyProperties2( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD std::vector + getQueueFamilyProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = StructureChainAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD std::vector + getQueueFamilyProperties2( StructureChainAllocator & structureChainAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getQueueFamilyProperties2KHR( uint32_t * pQueueFamilyPropertyCount, + VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 * pQueueFamilyProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD std::vector + getQueueFamilyProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template < + typename QueueFamilyProperties2Allocator = std::allocator, + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = QueueFamilyProperties2Allocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD std::vector + getQueueFamilyProperties2KHR( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD std::vector + getQueueFamilyProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = StructureChainAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD std::vector + getQueueFamilyProperties2KHR( StructureChainAllocator & structureChainAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_SCREEN_QNX ) + template + Bool32 getScreenPresentationSupportQNX( uint32_t queueFamilyIndex, + struct _screen_window * window, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + Bool32 getScreenPresentationSupportQNX( uint32_t queueFamilyIndex, + struct _screen_window & window, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + + template + void getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, + VULKAN_HPP_NAMESPACE::ImageType type, + VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, + VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, + VULKAN_HPP_NAMESPACE::ImageTiling tiling, + uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::SparseImageFormatProperties * pProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD std::vector + getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, + VULKAN_HPP_NAMESPACE::ImageType type, + VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, + VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, + VULKAN_HPP_NAMESPACE::ImageTiling tiling, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template < + typename SparseImageFormatPropertiesAllocator = std::allocator, + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = SparseImageFormatPropertiesAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD std::vector + getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, + VULKAN_HPP_NAMESPACE::ImageType type, + VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, + VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, + VULKAN_HPP_NAMESPACE::ImageTiling tiling, + SparseImageFormatPropertiesAllocator & sparseImageFormatPropertiesAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getSparseImageFormatProperties2( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 * pFormatInfo, + uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 * pProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD std::vector + getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template < + typename SparseImageFormatProperties2Allocator = std::allocator, + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = SparseImageFormatProperties2Allocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD std::vector + getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, + SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void getSparseImageFormatProperties2KHR( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 * pFormatInfo, + uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 * pProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD std::vector + getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template < + typename SparseImageFormatProperties2Allocator = std::allocator, + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = SparseImageFormatProperties2Allocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD std::vector + getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, + SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getSupportedFramebufferMixedSamplesCombinationsNV( + uint32_t * pCombinationCount, + VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV * pCombinations, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template < + typename FramebufferMixedSamplesCombinationNVAllocator = std::allocator, + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType< + std::vector>::type + getSupportedFramebufferMixedSamplesCombinationsNV( + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template < + typename FramebufferMixedSamplesCombinationNVAllocator = std::allocator, + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = FramebufferMixedSamplesCombinationNVAllocator, + typename std::enable_if::value, + int>::type = 0> + VULKAN_HPP_NODISCARD typename ResultValueType< + std::vector>::type + getSupportedFramebufferMixedSamplesCombinationsNV( + FramebufferMixedSamplesCombinationNVAllocator & framebufferMixedSamplesCombinationNVAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getSurfaceCapabilities2EXT( + VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT * pSurfaceCapabilities, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType::type + getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getSurfaceCapabilities2KHR( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo, + VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR * pSurfaceCapabilities, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS + typename ResultValueType::type + getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type + getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result getSurfaceCapabilitiesKHR( + VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR * pSurfaceCapabilities, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo, + uint32_t * pSurfaceFormatCount, + VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR * pSurfaceFormats, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = SurfaceFormat2KHRAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, + SurfaceFormat2KHRAllocator & surfaceFormat2KHRAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + uint32_t * pSurfaceFormatCount, + VULKAN_HPP_NAMESPACE::SurfaceFormatKHR * pSurfaceFormats, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = SurfaceFormatKHRAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + SurfaceFormatKHRAllocator & surfaceFormatKHRAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + VULKAN_HPP_NODISCARD Result getSurfacePresentModes2EXT( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo, + uint32_t * pPresentModeCount, + VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = PresentModeKHRAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, + PresentModeKHRAllocator & presentModeKHRAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + template + VULKAN_HPP_NODISCARD Result getSurfacePresentModesKHR( + VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + uint32_t * pPresentModeCount, + VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = PresentModeKHRAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + PresentModeKHRAllocator & presentModeKHRAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + getSurfaceSupportKHR( uint32_t queueFamilyIndex, + VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + VULKAN_HPP_NAMESPACE::Bool32 * pSupported, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getSurfaceSupportKHR( uint32_t queueFamilyIndex, + VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + getToolPropertiesEXT( uint32_t * pToolCount, + VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT * pToolProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType< + std::vector>::type + getToolPropertiesEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = PhysicalDeviceToolPropertiesEXTAllocator, + typename std::enable_if::value, + int>::type = 0> + VULKAN_HPP_NODISCARD typename ResultValueType< + std::vector>::type + getToolPropertiesEXT( PhysicalDeviceToolPropertiesEXTAllocator & physicalDeviceToolPropertiesEXTAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + VULKAN_HPP_NODISCARD Result + getVideoCapabilitiesKHR( const VULKAN_HPP_NAMESPACE::VideoProfileKHR * pVideoProfile, + VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR * pCapabilities, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getVideoCapabilitiesKHR( const VideoProfileKHR & videoProfile, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type + getVideoCapabilitiesKHR( const VideoProfileKHR & videoProfile, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + VULKAN_HPP_NODISCARD Result getVideoFormatPropertiesKHR( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo, + uint32_t * pVideoFormatPropertyCount, + VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR * pVideoFormatProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + getVideoFormatPropertiesKHR( const PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template < + typename VideoFormatPropertiesKHRAllocator = std::allocator, + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = VideoFormatPropertiesKHRAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + getVideoFormatPropertiesKHR( const PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo, + VideoFormatPropertiesKHRAllocator & videoFormatPropertiesKHRAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_USE_PLATFORM_WAYLAND_KHR ) + template + Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, + struct wl_display * display, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, + struct wl_display & display, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + Bool32 getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment = {}; - }; - static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentFeaturesEXT ) == sizeof( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +#if defined( VK_USE_PLATFORM_XCB_KHR ) + template + Bool32 getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, + xcb_connection_t * connection, + xcb_visualid_t visual_id, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + Bool32 getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, + xcb_connection_t & connection, + xcb_visualid_t visual_id, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_XCB_KHR*/ + +#if defined( VK_USE_PLATFORM_XLIB_KHR ) + template + Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, + Display * dpy, + VisualID visualID, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, + Display & dpy, + VisualID visualID, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_XLIB_KHR*/ + +#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) + template + VULKAN_HPP_NODISCARD Result + getRandROutputDisplayEXT( Display * dpy, + RROutput rrOutput, + VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplay, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + typename ResultValueType::type getRandROutputDisplayEXT( + Display & dpy, RROutput rrOutput, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_INLINE typename ResultValueType>::type + getRandROutputDisplayEXTUnique( Display & dpy, + RROutput rrOutput, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + VULKAN_HPP_NODISCARD Result + getWinrtDisplayNV( uint32_t deviceRelativeId, + VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplay, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + getWinrtDisplayNV( uint32_t deviceRelativeId, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + getWinrtDisplayNVUnique( uint32_t deviceRelativeId, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - struct PhysicalDeviceTexelBufferAlignmentPropertiesEXT - { - PhysicalDeviceTexelBufferAlignmentPropertiesEXT( VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment_ = {} ) VULKAN_HPP_NOEXCEPT - : storageTexelBufferOffsetAlignmentBytes( storageTexelBufferOffsetAlignmentBytes_ ) - , storageTexelBufferOffsetSingleTexelAlignment( storageTexelBufferOffsetSingleTexelAlignment_ ) - , uniformTexelBufferOffsetAlignmentBytes( uniformTexelBufferOffsetAlignmentBytes_ ) - , uniformTexelBufferOffsetSingleTexelAlignment( uniformTexelBufferOffsetSingleTexelAlignment_ ) - {} +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + Result releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#else + template + typename ResultValueType::type + releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPhysicalDevice() const VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentPropertiesEXT ) - offsetof( PhysicalDeviceTexelBufferAlignmentPropertiesEXT, pNext ) ); - return *this; + return m_physicalDevice; } - PhysicalDeviceTexelBufferAlignmentPropertiesEXT( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + explicit operator bool() const VULKAN_HPP_NOEXCEPT { - *this = rhs; + return m_physicalDevice != VK_NULL_HANDLE; } - PhysicalDeviceTexelBufferAlignmentPropertiesEXT& operator=( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + bool operator!() const VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return m_physicalDevice == VK_NULL_HANDLE; } - operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + private: + VkPhysicalDevice m_physicalDevice = {}; + }; + static_assert( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDevice ) == sizeof( VkPhysicalDevice ), + "handle and wrapper have different size!" ); - operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type + { + using type = VULKAN_HPP_NAMESPACE::PhysicalDevice; + }; - bool operator==( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( storageTexelBufferOffsetAlignmentBytes == rhs.storageTexelBufferOffsetAlignmentBytes ) - && ( storageTexelBufferOffsetSingleTexelAlignment == rhs.storageTexelBufferOffsetSingleTexelAlignment ) - && ( uniformTexelBufferOffsetAlignmentBytes == rhs.uniformTexelBufferOffsetAlignmentBytes ) - && ( uniformTexelBufferOffsetSingleTexelAlignment == rhs.uniformTexelBufferOffsetSingleTexelAlignment ); - } + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::PhysicalDevice; + }; - bool operator!=( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::PhysicalDevice; + }; - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes = {}; - VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment = {}; - VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes = {}; - VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment = {}; + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; }; - static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentPropertiesEXT ) == sizeof( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT + struct DeviceGroupDeviceCreateInfo { - VULKAN_HPP_CONSTEXPR PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ = {} ) VULKAN_HPP_NOEXCEPT - : textureCompressionASTC_HDR( textureCompressionASTC_HDR_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupDeviceCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DeviceGroupDeviceCreateInfo( + uint32_t physicalDeviceCount_ = {}, + const VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices_ = {} ) VULKAN_HPP_NOEXCEPT + : physicalDeviceCount( physicalDeviceCount_ ) + , pPhysicalDevices( pPhysicalDevices_ ) + {} + + VULKAN_HPP_CONSTEXPR + DeviceGroupDeviceCreateInfo( DeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DeviceGroupDeviceCreateInfo( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : DeviceGroupDeviceCreateInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DeviceGroupDeviceCreateInfo( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + physicalDevices_ ) + : physicalDeviceCount( static_cast( physicalDevices_.size() ) ) + , pPhysicalDevices( physicalDevices_.data() ) {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DeviceGroupDeviceCreateInfo & + operator=( DeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceGroupDeviceCreateInfo & operator=( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ) - offsetof( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceGroupDeviceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT& operator=( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceGroupDeviceCreateInfo & setPhysicalDeviceCount( uint32_t physicalDeviceCount_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + physicalDeviceCount = physicalDeviceCount_; return *this; } - PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + DeviceGroupDeviceCreateInfo & + setPPhysicalDevices( const VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + pPhysicalDevices = pPhysicalDevices_; return *this; } - PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & setTextureCompressionASTC_HDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DeviceGroupDeviceCreateInfo & setPhysicalDevices( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + physicalDevices_ ) VULKAN_HPP_NOEXCEPT { - textureCompressionASTC_HDR = textureCompressionASTC_HDR_; + physicalDeviceCount = static_cast( physicalDevices_.size() ); + pPhysicalDevices = physicalDevices_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkDeviceGroupDeviceCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT &() VULKAN_HPP_NOEXCEPT + operator VkDeviceGroupDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DeviceGroupDeviceCreateInfo const & ) const = default; +#else + bool operator==( DeviceGroupDeviceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( textureCompressionASTC_HDR == rhs.textureCompressionASTC_HDR ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( physicalDeviceCount == rhs.physicalDeviceCount ) && + ( pPhysicalDevices == rhs.pPhysicalDevices ); } - bool operator!=( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DeviceGroupDeviceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupDeviceCreateInfo; + const void * pNext = {}; + uint32_t physicalDeviceCount = {}; + const VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices = {}; }; - static_assert( sizeof( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ) == sizeof( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DeviceGroupDeviceCreateInfo ) == sizeof( VkDeviceGroupDeviceCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceTimelineSemaphoreFeatures + template <> + struct CppType + { + using Type = DeviceGroupDeviceCreateInfo; + }; + using DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo; + + struct DeviceGroupPresentInfoKHR { - VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreFeatures( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ = {} ) VULKAN_HPP_NOEXCEPT - : timelineSemaphore( timelineSemaphore_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupPresentInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + DeviceGroupPresentInfoKHR( uint32_t swapchainCount_ = {}, + const uint32_t * pDeviceMasks_ = {}, + VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ = + VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal ) VULKAN_HPP_NOEXCEPT + : swapchainCount( swapchainCount_ ) + , pDeviceMasks( pDeviceMasks_ ) + , mode( mode_ ) + {} + + VULKAN_HPP_CONSTEXPR + DeviceGroupPresentInfoKHR( DeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DeviceGroupPresentInfoKHR( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : DeviceGroupPresentInfoKHR( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DeviceGroupPresentInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceMasks_, + VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ = + VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal ) + : swapchainCount( static_cast( deviceMasks_.size() ) ) + , pDeviceMasks( deviceMasks_.data() ) + , mode( mode_ ) {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentInfoKHR & + operator=( DeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DeviceGroupPresentInfoKHR & operator=( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures ) - offsetof( PhysicalDeviceTimelineSemaphoreFeatures, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceTimelineSemaphoreFeatures( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceGroupPresentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - PhysicalDeviceTimelineSemaphoreFeatures& operator=( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceGroupPresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + swapchainCount = swapchainCount_; return *this; } - PhysicalDeviceTimelineSemaphoreFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + DeviceGroupPresentInfoKHR & setPDeviceMasks( const uint32_t * pDeviceMasks_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + pDeviceMasks = pDeviceMasks_; return *this; } - PhysicalDeviceTimelineSemaphoreFeatures & setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DeviceGroupPresentInfoKHR & setDeviceMasks( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceMasks_ ) VULKAN_HPP_NOEXCEPT { - timelineSemaphore = timelineSemaphore_; + swapchainCount = static_cast( deviceMasks_.size() ); + pDeviceMasks = deviceMasks_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPhysicalDeviceTimelineSemaphoreFeatures const&() const VULKAN_HPP_NOEXCEPT + DeviceGroupPresentInfoKHR & + setMode( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + mode = mode_; + return *this; } - operator VkPhysicalDeviceTimelineSemaphoreFeatures &() VULKAN_HPP_NOEXCEPT + operator VkDeviceGroupPresentInfoKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkDeviceGroupPresentInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceTimelineSemaphoreFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DeviceGroupPresentInfoKHR const & ) const = default; +#else + bool operator==( DeviceGroupPresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( timelineSemaphore == rhs.timelineSemaphore ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchainCount == rhs.swapchainCount ) && + ( pDeviceMasks == rhs.pDeviceMasks ) && ( mode == rhs.mode ); } - bool operator!=( PhysicalDeviceTimelineSemaphoreFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DeviceGroupPresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentInfoKHR; + const void * pNext = {}; + uint32_t swapchainCount = {}; + const uint32_t * pDeviceMasks = {}; + VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode = + VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal; }; - static_assert( sizeof( PhysicalDeviceTimelineSemaphoreFeatures ) == sizeof( VkPhysicalDeviceTimelineSemaphoreFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DeviceGroupPresentInfoKHR ) == sizeof( VkDeviceGroupPresentInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceTimelineSemaphoreProperties + template <> + struct CppType { - PhysicalDeviceTimelineSemaphoreProperties( uint64_t maxTimelineSemaphoreValueDifference_ = {} ) VULKAN_HPP_NOEXCEPT - : maxTimelineSemaphoreValueDifference( maxTimelineSemaphoreValueDifference_ ) - {} + using Type = DeviceGroupPresentInfoKHR; + }; - VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties ) - offsetof( PhysicalDeviceTimelineSemaphoreProperties, pNext ) ); - return *this; - } + struct DeviceGroupRenderPassBeginInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupRenderPassBeginInfo; - PhysicalDeviceTimelineSemaphoreProperties( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DeviceGroupRenderPassBeginInfo( uint32_t deviceMask_ = {}, + uint32_t deviceRenderAreaCount_ = {}, + const VULKAN_HPP_NAMESPACE::Rect2D * pDeviceRenderAreas_ = {} ) + VULKAN_HPP_NOEXCEPT + : deviceMask( deviceMask_ ) + , deviceRenderAreaCount( deviceRenderAreaCount_ ) + , pDeviceRenderAreas( pDeviceRenderAreas_ ) + {} - PhysicalDeviceTimelineSemaphoreProperties& operator=( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR + DeviceGroupRenderPassBeginInfo( DeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - operator VkPhysicalDeviceTimelineSemaphoreProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + DeviceGroupRenderPassBeginInfo( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : DeviceGroupRenderPassBeginInfo( *reinterpret_cast( &rhs ) ) + {} - operator VkPhysicalDeviceTimelineSemaphoreProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DeviceGroupRenderPassBeginInfo( + uint32_t deviceMask_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceRenderAreas_ ) + : deviceMask( deviceMask_ ) + , deviceRenderAreaCount( static_cast( deviceRenderAreas_.size() ) ) + , pDeviceRenderAreas( deviceRenderAreas_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - bool operator==( PhysicalDeviceTimelineSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 DeviceGroupRenderPassBeginInfo & + operator=( DeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DeviceGroupRenderPassBeginInfo & operator=( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference ); + *this = *reinterpret_cast( &rhs ); + return *this; } - bool operator!=( PhysicalDeviceTimelineSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + DeviceGroupRenderPassBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + pNext = pNext_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreProperties; - void* pNext = {}; - uint64_t maxTimelineSemaphoreValueDifference = {}; - }; - static_assert( sizeof( PhysicalDeviceTimelineSemaphoreProperties ) == sizeof( VkPhysicalDeviceTimelineSemaphoreProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PhysicalDeviceToolPropertiesEXT - { - PhysicalDeviceToolPropertiesEXT( std::array const& name_ = {}, - std::array const& version_ = {}, - VULKAN_HPP_NAMESPACE::ToolPurposeFlagsEXT purposes_ = {}, - std::array const& description_ = {}, - std::array const& layer_ = {} ) VULKAN_HPP_NOEXCEPT - : name{} - , version{} - , purposes( purposes_ ) - , description{} - , layer{} + DeviceGroupRenderPassBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( name, name_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( version, version_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( description, description_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( layer, layer_ ); + deviceMask = deviceMask_; + return *this; } - VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceGroupRenderPassBeginInfo & setDeviceRenderAreaCount( uint32_t deviceRenderAreaCount_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT ) - offsetof( PhysicalDeviceToolPropertiesEXT, pNext ) ); + deviceRenderAreaCount = deviceRenderAreaCount_; return *this; } - PhysicalDeviceToolPropertiesEXT( VkPhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceGroupRenderPassBeginInfo & + setPDeviceRenderAreas( const VULKAN_HPP_NAMESPACE::Rect2D * pDeviceRenderAreas_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pDeviceRenderAreas = pDeviceRenderAreas_; + return *this; } - PhysicalDeviceToolPropertiesEXT& operator=( VkPhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DeviceGroupRenderPassBeginInfo & setDeviceRenderAreas( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceRenderAreas_ ) + VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + deviceRenderAreaCount = static_cast( deviceRenderAreas_.size() ); + pDeviceRenderAreas = deviceRenderAreas_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPhysicalDeviceToolPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkDeviceGroupRenderPassBeginInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceToolPropertiesEXT &() VULKAN_HPP_NOEXCEPT + operator VkDeviceGroupRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceToolPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DeviceGroupRenderPassBeginInfo const & ) const = default; +#else + bool operator==( DeviceGroupRenderPassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memcmp( name, rhs.name, VK_MAX_EXTENSION_NAME_SIZE * sizeof( char ) ) == 0 ) - && ( memcmp( version, rhs.version, VK_MAX_EXTENSION_NAME_SIZE * sizeof( char ) ) == 0 ) - && ( purposes == rhs.purposes ) - && ( memcmp( description, rhs.description, VK_MAX_DESCRIPTION_SIZE * sizeof( char ) ) == 0 ) - && ( memcmp( layer, rhs.layer, VK_MAX_EXTENSION_NAME_SIZE * sizeof( char ) ) == 0 ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceMask == rhs.deviceMask ) && + ( deviceRenderAreaCount == rhs.deviceRenderAreaCount ) && ( pDeviceRenderAreas == rhs.pDeviceRenderAreas ); } - bool operator!=( PhysicalDeviceToolPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DeviceGroupRenderPassBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceToolPropertiesEXT; - void* pNext = {}; - char name[VK_MAX_EXTENSION_NAME_SIZE] = {}; - char version[VK_MAX_EXTENSION_NAME_SIZE] = {}; - VULKAN_HPP_NAMESPACE::ToolPurposeFlagsEXT purposes = {}; - char description[VK_MAX_DESCRIPTION_SIZE] = {}; - char layer[VK_MAX_EXTENSION_NAME_SIZE] = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupRenderPassBeginInfo; + const void * pNext = {}; + uint32_t deviceMask = {}; + uint32_t deviceRenderAreaCount = {}; + const VULKAN_HPP_NAMESPACE::Rect2D * pDeviceRenderAreas = {}; }; - static_assert( sizeof( PhysicalDeviceToolPropertiesEXT ) == sizeof( VkPhysicalDeviceToolPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DeviceGroupRenderPassBeginInfo ) == sizeof( VkDeviceGroupRenderPassBeginInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceTransformFeedbackFeaturesEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ = {} ) VULKAN_HPP_NOEXCEPT - : transformFeedback( transformFeedback_ ) - , geometryStreams( geometryStreams_ ) + using Type = DeviceGroupRenderPassBeginInfo; + }; + using DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo; + + struct DeviceGroupSubmitInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupSubmitInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + DeviceGroupSubmitInfo( uint32_t waitSemaphoreCount_ = {}, + const uint32_t * pWaitSemaphoreDeviceIndices_ = {}, + uint32_t commandBufferCount_ = {}, + const uint32_t * pCommandBufferDeviceMasks_ = {}, + uint32_t signalSemaphoreCount_ = {}, + const uint32_t * pSignalSemaphoreDeviceIndices_ = {} ) VULKAN_HPP_NOEXCEPT + : waitSemaphoreCount( waitSemaphoreCount_ ) + , pWaitSemaphoreDeviceIndices( pWaitSemaphoreDeviceIndices_ ) + , commandBufferCount( commandBufferCount_ ) + , pCommandBufferDeviceMasks( pCommandBufferDeviceMasks_ ) + , signalSemaphoreCount( signalSemaphoreCount_ ) + , pSignalSemaphoreDeviceIndices( pSignalSemaphoreDeviceIndices_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT ) - offsetof( PhysicalDeviceTransformFeedbackFeaturesEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR DeviceGroupSubmitInfo( DeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceTransformFeedbackFeaturesEXT( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + DeviceGroupSubmitInfo( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : DeviceGroupSubmitInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DeviceGroupSubmitInfo( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphoreDeviceIndices_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & commandBufferDeviceMasks_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphoreDeviceIndices_ = {} ) + : waitSemaphoreCount( static_cast( waitSemaphoreDeviceIndices_.size() ) ) + , pWaitSemaphoreDeviceIndices( waitSemaphoreDeviceIndices_.data() ) + , commandBufferCount( static_cast( commandBufferDeviceMasks_.size() ) ) + , pCommandBufferDeviceMasks( commandBufferDeviceMasks_.data() ) + , signalSemaphoreCount( static_cast( signalSemaphoreDeviceIndices_.size() ) ) + , pSignalSemaphoreDeviceIndices( signalSemaphoreDeviceIndices_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceTransformFeedbackFeaturesEXT& operator=( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 DeviceGroupSubmitInfo & + operator=( DeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DeviceGroupSubmitInfo & operator=( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceTransformFeedbackFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + DeviceGroupSubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PhysicalDeviceTransformFeedbackFeaturesEXT & setTransformFeedback( VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ ) VULKAN_HPP_NOEXCEPT + DeviceGroupSubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT { - transformFeedback = transformFeedback_; + waitSemaphoreCount = waitSemaphoreCount_; return *this; } - PhysicalDeviceTransformFeedbackFeaturesEXT & setGeometryStreams( VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ ) VULKAN_HPP_NOEXCEPT + DeviceGroupSubmitInfo & + setPWaitSemaphoreDeviceIndices( const uint32_t * pWaitSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT { - geometryStreams = geometryStreams_; + pWaitSemaphoreDeviceIndices = pWaitSemaphoreDeviceIndices_; return *this; } - operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DeviceGroupSubmitInfo & setWaitSemaphoreDeviceIndices( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphoreDeviceIndices_ ) + VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + waitSemaphoreCount = static_cast( waitSemaphoreDeviceIndices_.size() ); + pWaitSemaphoreDeviceIndices = waitSemaphoreDeviceIndices_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPhysicalDeviceTransformFeedbackFeaturesEXT &() VULKAN_HPP_NOEXCEPT + DeviceGroupSubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + commandBufferCount = commandBufferCount_; + return *this; } - bool operator==( PhysicalDeviceTransformFeedbackFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + DeviceGroupSubmitInfo & + setPCommandBufferDeviceMasks( const uint32_t * pCommandBufferDeviceMasks_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( transformFeedback == rhs.transformFeedback ) - && ( geometryStreams == rhs.geometryStreams ); + pCommandBufferDeviceMasks = pCommandBufferDeviceMasks_; + return *this; } - bool operator!=( PhysicalDeviceTransformFeedbackFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DeviceGroupSubmitInfo & setCommandBufferDeviceMasks( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & commandBufferDeviceMasks_ ) + VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + commandBufferCount = static_cast( commandBufferDeviceMasks_.size() ); + pCommandBufferDeviceMasks = commandBufferDeviceMasks_.data(); + return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 transformFeedback = {}; - VULKAN_HPP_NAMESPACE::Bool32 geometryStreams = {}; - }; - static_assert( sizeof( PhysicalDeviceTransformFeedbackFeaturesEXT ) == sizeof( VkPhysicalDeviceTransformFeedbackFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PhysicalDeviceTransformFeedbackPropertiesEXT - { - PhysicalDeviceTransformFeedbackPropertiesEXT( uint32_t maxTransformFeedbackStreams_ = {}, - uint32_t maxTransformFeedbackBuffers_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize maxTransformFeedbackBufferSize_ = {}, - uint32_t maxTransformFeedbackStreamDataSize_ = {}, - uint32_t maxTransformFeedbackBufferDataSize_ = {}, - uint32_t maxTransformFeedbackBufferDataStride_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackQueries_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackStreamsLinesTriangles_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackRasterizationStreamSelect_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackDraw_ = {} ) VULKAN_HPP_NOEXCEPT - : maxTransformFeedbackStreams( maxTransformFeedbackStreams_ ) - , maxTransformFeedbackBuffers( maxTransformFeedbackBuffers_ ) - , maxTransformFeedbackBufferSize( maxTransformFeedbackBufferSize_ ) - , maxTransformFeedbackStreamDataSize( maxTransformFeedbackStreamDataSize_ ) - , maxTransformFeedbackBufferDataSize( maxTransformFeedbackBufferDataSize_ ) - , maxTransformFeedbackBufferDataStride( maxTransformFeedbackBufferDataStride_ ) - , transformFeedbackQueries( transformFeedbackQueries_ ) - , transformFeedbackStreamsLinesTriangles( transformFeedbackStreamsLinesTriangles_ ) - , transformFeedbackRasterizationStreamSelect( transformFeedbackRasterizationStreamSelect_ ) - , transformFeedbackDraw( transformFeedbackDraw_ ) - {} - - VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceGroupSubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT ) - offsetof( PhysicalDeviceTransformFeedbackPropertiesEXT, pNext ) ); + signalSemaphoreCount = signalSemaphoreCount_; return *this; } - PhysicalDeviceTransformFeedbackPropertiesEXT( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DeviceGroupSubmitInfo & + setPSignalSemaphoreDeviceIndices( const uint32_t * pSignalSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pSignalSemaphoreDeviceIndices = pSignalSemaphoreDeviceIndices_; + return *this; } - PhysicalDeviceTransformFeedbackPropertiesEXT& operator=( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DeviceGroupSubmitInfo & setSignalSemaphoreDeviceIndices( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphoreDeviceIndices_ ) + VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + signalSemaphoreCount = static_cast( signalSemaphoreDeviceIndices_.size() ); + pSignalSemaphoreDeviceIndices = signalSemaphoreDeviceIndices_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPhysicalDeviceTransformFeedbackPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkDeviceGroupSubmitInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceTransformFeedbackPropertiesEXT &() VULKAN_HPP_NOEXCEPT + operator VkDeviceGroupSubmitInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceTransformFeedbackPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DeviceGroupSubmitInfo const & ) const = default; +#else + bool operator==( DeviceGroupSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxTransformFeedbackStreams == rhs.maxTransformFeedbackStreams ) - && ( maxTransformFeedbackBuffers == rhs.maxTransformFeedbackBuffers ) - && ( maxTransformFeedbackBufferSize == rhs.maxTransformFeedbackBufferSize ) - && ( maxTransformFeedbackStreamDataSize == rhs.maxTransformFeedbackStreamDataSize ) - && ( maxTransformFeedbackBufferDataSize == rhs.maxTransformFeedbackBufferDataSize ) - && ( maxTransformFeedbackBufferDataStride == rhs.maxTransformFeedbackBufferDataStride ) - && ( transformFeedbackQueries == rhs.transformFeedbackQueries ) - && ( transformFeedbackStreamsLinesTriangles == rhs.transformFeedbackStreamsLinesTriangles ) - && ( transformFeedbackRasterizationStreamSelect == rhs.transformFeedbackRasterizationStreamSelect ) - && ( transformFeedbackDraw == rhs.transformFeedbackDraw ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) && + ( pWaitSemaphoreDeviceIndices == rhs.pWaitSemaphoreDeviceIndices ) && + ( commandBufferCount == rhs.commandBufferCount ) && + ( pCommandBufferDeviceMasks == rhs.pCommandBufferDeviceMasks ) && + ( signalSemaphoreCount == rhs.signalSemaphoreCount ) && + ( pSignalSemaphoreDeviceIndices == rhs.pSignalSemaphoreDeviceIndices ); } - bool operator!=( PhysicalDeviceTransformFeedbackPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DeviceGroupSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT; - void* pNext = {}; - uint32_t maxTransformFeedbackStreams = {}; - uint32_t maxTransformFeedbackBuffers = {}; - VULKAN_HPP_NAMESPACE::DeviceSize maxTransformFeedbackBufferSize = {}; - uint32_t maxTransformFeedbackStreamDataSize = {}; - uint32_t maxTransformFeedbackBufferDataSize = {}; - uint32_t maxTransformFeedbackBufferDataStride = {}; - VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackQueries = {}; - VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackStreamsLinesTriangles = {}; - VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackRasterizationStreamSelect = {}; - VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackDraw = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSubmitInfo; + const void * pNext = {}; + uint32_t waitSemaphoreCount = {}; + const uint32_t * pWaitSemaphoreDeviceIndices = {}; + uint32_t commandBufferCount = {}; + const uint32_t * pCommandBufferDeviceMasks = {}; + uint32_t signalSemaphoreCount = {}; + const uint32_t * pSignalSemaphoreDeviceIndices = {}; + }; + static_assert( sizeof( DeviceGroupSubmitInfo ) == sizeof( VkDeviceGroupSubmitInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = DeviceGroupSubmitInfo; }; - static_assert( sizeof( PhysicalDeviceTransformFeedbackPropertiesEXT ) == sizeof( VkPhysicalDeviceTransformFeedbackPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + using DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo; - struct PhysicalDeviceUniformBufferStandardLayoutFeatures + struct DeviceGroupSwapchainCreateInfoKHR { - VULKAN_HPP_CONSTEXPR PhysicalDeviceUniformBufferStandardLayoutFeatures( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ = {} ) VULKAN_HPP_NOEXCEPT - : uniformBufferStandardLayout( uniformBufferStandardLayout_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eDeviceGroupSwapchainCreateInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DeviceGroupSwapchainCreateInfoKHR( + VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {} ) VULKAN_HPP_NOEXCEPT : modes( modes_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures ) - offsetof( PhysicalDeviceUniformBufferStandardLayoutFeatures, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + DeviceGroupSwapchainCreateInfoKHR( DeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceUniformBufferStandardLayoutFeatures( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + DeviceGroupSwapchainCreateInfoKHR( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : DeviceGroupSwapchainCreateInfoKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceUniformBufferStandardLayoutFeatures& operator=( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 DeviceGroupSwapchainCreateInfoKHR & + operator=( DeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DeviceGroupSwapchainCreateInfoKHR & operator=( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceUniformBufferStandardLayoutFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + DeviceGroupSwapchainCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PhysicalDeviceUniformBufferStandardLayoutFeatures & setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT + DeviceGroupSwapchainCreateInfoKHR & + setModes( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ ) VULKAN_HPP_NOEXCEPT { - uniformBufferStandardLayout = uniformBufferStandardLayout_; + modes = modes_; return *this; } - operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures const&() const VULKAN_HPP_NOEXCEPT + operator VkDeviceGroupSwapchainCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures &() VULKAN_HPP_NOEXCEPT + operator VkDeviceGroupSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceUniformBufferStandardLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DeviceGroupSwapchainCreateInfoKHR const & ) const = default; +#else + bool operator==( DeviceGroupSwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( modes == rhs.modes ); } - bool operator!=( PhysicalDeviceUniformBufferStandardLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DeviceGroupSwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSwapchainCreateInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {}; }; - static_assert( sizeof( PhysicalDeviceUniformBufferStandardLayoutFeatures ) == sizeof( VkPhysicalDeviceUniformBufferStandardLayoutFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DeviceGroupSwapchainCreateInfoKHR ) == sizeof( VkDeviceGroupSwapchainCreateInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceVariablePointersFeatures + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceVariablePointersFeatures( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ = {} ) VULKAN_HPP_NOEXCEPT - : variablePointersStorageBuffer( variablePointersStorageBuffer_ ) - , variablePointers( variablePointers_ ) + using Type = DeviceGroupSwapchainCreateInfoKHR; + }; + + struct DeviceMemoryOverallocationCreateInfoAMD + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eDeviceMemoryOverallocationCreateInfoAMD; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DeviceMemoryOverallocationCreateInfoAMD( + VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ = + VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault ) VULKAN_HPP_NOEXCEPT + : overallocationBehavior( overallocationBehavior_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures ) - offsetof( PhysicalDeviceVariablePointersFeatures, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR DeviceMemoryOverallocationCreateInfoAMD( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceVariablePointersFeatures( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + DeviceMemoryOverallocationCreateInfoAMD( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT + : DeviceMemoryOverallocationCreateInfoAMD( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceVariablePointersFeatures& operator=( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 DeviceMemoryOverallocationCreateInfoAMD & + operator=( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceVariablePointersFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + DeviceMemoryOverallocationCreateInfoAMD & + operator=( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceVariablePointersFeatures & setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT + DeviceMemoryOverallocationCreateInfoAMD & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - variablePointersStorageBuffer = variablePointersStorageBuffer_; + pNext = pNext_; return *this; } - PhysicalDeviceVariablePointersFeatures & setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT + DeviceMemoryOverallocationCreateInfoAMD & setOverallocationBehavior( + VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ ) VULKAN_HPP_NOEXCEPT { - variablePointers = variablePointers_; + overallocationBehavior = overallocationBehavior_; return *this; } - operator VkPhysicalDeviceVariablePointersFeatures const&() const VULKAN_HPP_NOEXCEPT + operator VkDeviceMemoryOverallocationCreateInfoAMD const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceVariablePointersFeatures &() VULKAN_HPP_NOEXCEPT + operator VkDeviceMemoryOverallocationCreateInfoAMD &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceVariablePointersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DeviceMemoryOverallocationCreateInfoAMD const & ) const = default; +#else + bool operator==( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer ) - && ( variablePointers == rhs.variablePointers ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( overallocationBehavior == rhs.overallocationBehavior ); } - bool operator!=( PhysicalDeviceVariablePointersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVariablePointersFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {}; - VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior = + VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault; }; - static_assert( sizeof( PhysicalDeviceVariablePointersFeatures ) == sizeof( VkPhysicalDeviceVariablePointersFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DeviceMemoryOverallocationCreateInfoAMD ) == + sizeof( VkDeviceMemoryOverallocationCreateInfoAMD ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ = {} ) VULKAN_HPP_NOEXCEPT - : vertexAttributeInstanceRateDivisor( vertexAttributeInstanceRateDivisor_ ) - , vertexAttributeInstanceRateZeroDivisor( vertexAttributeInstanceRateZeroDivisor_ ) - {} + using Type = DeviceMemoryOverallocationCreateInfoAMD; + }; - VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT ) - offsetof( PhysicalDeviceVertexAttributeDivisorFeaturesEXT, pNext ) ); - return *this; - } + struct DeviceMemoryReportCallbackDataEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eDeviceMemoryReportCallbackDataEXT; - PhysicalDeviceVertexAttributeDivisorFeaturesEXT( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DeviceMemoryReportCallbackDataEXT( + VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ = {}, + VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT type_ = + VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT::eAllocate, + uint64_t memoryObjectId_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, + VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown, + uint64_t objectHandle_ = {}, + uint32_t heapIndex_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , type( type_ ) + , memoryObjectId( memoryObjectId_ ) + , size( size_ ) + , objectType( objectType_ ) + , objectHandle( objectHandle_ ) + , heapIndex( heapIndex_ ) + {} - PhysicalDeviceVertexAttributeDivisorFeaturesEXT& operator=( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR + DeviceMemoryReportCallbackDataEXT( DeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + DeviceMemoryReportCallbackDataEXT( VkDeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : DeviceMemoryReportCallbackDataEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ ) VULKAN_HPP_NOEXCEPT - { - vertexAttributeInstanceRateDivisor = vertexAttributeInstanceRateDivisor_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 DeviceMemoryReportCallbackDataEXT & + operator=( DeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateZeroDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ ) VULKAN_HPP_NOEXCEPT + DeviceMemoryReportCallbackDataEXT & operator=( VkDeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - vertexAttributeInstanceRateZeroDivisor = vertexAttributeInstanceRateZeroDivisor_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkDeviceMemoryReportCallbackDataEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT &() VULKAN_HPP_NOEXCEPT + operator VkDeviceMemoryReportCallbackDataEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DeviceMemoryReportCallbackDataEXT const & ) const = default; +#else + bool operator==( DeviceMemoryReportCallbackDataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( vertexAttributeInstanceRateDivisor == rhs.vertexAttributeInstanceRateDivisor ) - && ( vertexAttributeInstanceRateZeroDivisor == rhs.vertexAttributeInstanceRateZeroDivisor ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( type == rhs.type ) && + ( memoryObjectId == rhs.memoryObjectId ) && ( size == rhs.size ) && ( objectType == rhs.objectType ) && + ( objectHandle == rhs.objectHandle ) && ( heapIndex == rhs.heapIndex ); } - bool operator!=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DeviceMemoryReportCallbackDataEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor = {}; - VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryReportCallbackDataEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags = {}; + VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT type = + VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT::eAllocate; + uint64_t memoryObjectId = {}; + VULKAN_HPP_NAMESPACE::DeviceSize size = {}; + VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown; + uint64_t objectHandle = {}; + uint32_t heapIndex = {}; }; - static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorFeaturesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DeviceMemoryReportCallbackDataEXT ) == sizeof( VkDeviceMemoryReportCallbackDataEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT + template <> + struct CppType { - PhysicalDeviceVertexAttributeDivisorPropertiesEXT( uint32_t maxVertexAttribDivisor_ = {} ) VULKAN_HPP_NOEXCEPT - : maxVertexAttribDivisor( maxVertexAttribDivisor_ ) + using Type = DeviceMemoryReportCallbackDataEXT; + }; + + struct DevicePrivateDataCreateInfoEXT + { + static const bool allowDuplicate = true; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDevicePrivateDataCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + DevicePrivateDataCreateInfoEXT( uint32_t privateDataSlotRequestCount_ = {} ) VULKAN_HPP_NOEXCEPT + : privateDataSlotRequestCount( privateDataSlotRequestCount_ ) + {} + + VULKAN_HPP_CONSTEXPR + DevicePrivateDataCreateInfoEXT( DevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DevicePrivateDataCreateInfoEXT( VkDevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : DevicePrivateDataCreateInfoEXT( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 DevicePrivateDataCreateInfoEXT & + operator=( DevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DevicePrivateDataCreateInfoEXT & operator=( VkDevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT ) - offsetof( PhysicalDeviceVertexAttributeDivisorPropertiesEXT, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceVertexAttributeDivisorPropertiesEXT( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DevicePrivateDataCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - PhysicalDeviceVertexAttributeDivisorPropertiesEXT& operator=( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + DevicePrivateDataCreateInfoEXT & + setPrivateDataSlotRequestCount( uint32_t privateDataSlotRequestCount_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + privateDataSlotRequestCount = privateDataSlotRequestCount_; return *this; } - operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkDevicePrivateDataCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT &() VULKAN_HPP_NOEXCEPT + operator VkDevicePrivateDataCreateInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DevicePrivateDataCreateInfoEXT const & ) const = default; +#else + bool operator==( DevicePrivateDataCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxVertexAttribDivisor == rhs.maxVertexAttribDivisor ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( privateDataSlotRequestCount == rhs.privateDataSlotRequestCount ); } - bool operator!=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DevicePrivateDataCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT; - void* pNext = {}; - uint32_t maxVertexAttribDivisor = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDevicePrivateDataCreateInfoEXT; + const void * pNext = {}; + uint32_t privateDataSlotRequestCount = {}; }; - static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorPropertiesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DevicePrivateDataCreateInfoEXT ) == sizeof( VkDevicePrivateDataCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceVulkan11Features + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan11Features( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 multiview_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ = {} ) VULKAN_HPP_NOEXCEPT - : storageBuffer16BitAccess( storageBuffer16BitAccess_ ) - , uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ ) - , storagePushConstant16( storagePushConstant16_ ) - , storageInputOutput16( storageInputOutput16_ ) - , multiview( multiview_ ) - , multiviewGeometryShader( multiviewGeometryShader_ ) - , multiviewTessellationShader( multiviewTessellationShader_ ) - , variablePointersStorageBuffer( variablePointersStorageBuffer_ ) - , variablePointers( variablePointers_ ) - , protectedMemory( protectedMemory_ ) - , samplerYcbcrConversion( samplerYcbcrConversion_ ) - , shaderDrawParameters( shaderDrawParameters_ ) + using Type = DevicePrivateDataCreateInfoEXT; + }; + + struct DeviceQueueGlobalPriorityCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + DeviceQueueGlobalPriorityCreateInfoEXT( VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority_ = + VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT::eLow ) VULKAN_HPP_NOEXCEPT + : globalPriority( globalPriority_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features ) - offsetof( PhysicalDeviceVulkan11Features, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR DeviceQueueGlobalPriorityCreateInfoEXT( DeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceVulkan11Features( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + DeviceQueueGlobalPriorityCreateInfoEXT( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : DeviceQueueGlobalPriorityCreateInfoEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceVulkan11Features& operator=( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 DeviceQueueGlobalPriorityCreateInfoEXT & + operator=( DeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DeviceQueueGlobalPriorityCreateInfoEXT & + operator=( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceVulkan11Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + DeviceQueueGlobalPriorityCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PhysicalDeviceVulkan11Features & setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT + DeviceQueueGlobalPriorityCreateInfoEXT & + setGlobalPriority( VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority_ ) VULKAN_HPP_NOEXCEPT { - storageBuffer16BitAccess = storageBuffer16BitAccess_; + globalPriority = globalPriority_; return *this; } - PhysicalDeviceVulkan11Features & setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT + operator VkDeviceQueueGlobalPriorityCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan11Features & setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT + operator VkDeviceQueueGlobalPriorityCreateInfoEXT &() VULKAN_HPP_NOEXCEPT { - storagePushConstant16 = storagePushConstant16_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan11Features & setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DeviceQueueGlobalPriorityCreateInfoEXT const & ) const = default; +#else + bool operator==( DeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - storageInputOutput16 = storageInputOutput16_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( globalPriority == rhs.globalPriority ); } - PhysicalDeviceVulkan11Features & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( DeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - multiview = multiview_; - return *this; + return !operator==( rhs ); } +#endif - PhysicalDeviceVulkan11Features & setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT - { - multiviewGeometryShader = multiviewGeometryShader_; - return *this; - } + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT::eLow; + }; + static_assert( sizeof( DeviceQueueGlobalPriorityCreateInfoEXT ) == sizeof( VkDeviceQueueGlobalPriorityCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - PhysicalDeviceVulkan11Features & setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT - { - multiviewTessellationShader = multiviewTessellationShader_; - return *this; - } + template <> + struct CppType + { + using Type = DeviceQueueGlobalPriorityCreateInfoEXT; + }; + +#if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) + struct DirectFBSurfaceCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDirectfbSurfaceCreateInfoEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DirectFBSurfaceCreateInfoEXT( VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags_ = {}, + IDirectFB * dfb_ = {}, + IDirectFBSurface * surface_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , dfb( dfb_ ) + , surface( surface_ ) + {} - PhysicalDeviceVulkan11Features & setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR + DirectFBSurfaceCreateInfoEXT( DirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DirectFBSurfaceCreateInfoEXT( VkDirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : DirectFBSurfaceCreateInfoEXT( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DirectFBSurfaceCreateInfoEXT & + operator=( DirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DirectFBSurfaceCreateInfoEXT & operator=( VkDirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - variablePointersStorageBuffer = variablePointersStorageBuffer_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceVulkan11Features & setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT + DirectFBSurfaceCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - variablePointers = variablePointers_; + pNext = pNext_; return *this; } - PhysicalDeviceVulkan11Features & setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT + DirectFBSurfaceCreateInfoEXT & + setFlags( VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT { - protectedMemory = protectedMemory_; + flags = flags_; return *this; } - PhysicalDeviceVulkan11Features & setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT + DirectFBSurfaceCreateInfoEXT & setDfb( IDirectFB * dfb_ ) VULKAN_HPP_NOEXCEPT { - samplerYcbcrConversion = samplerYcbcrConversion_; + dfb = dfb_; return *this; } - PhysicalDeviceVulkan11Features & setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT + DirectFBSurfaceCreateInfoEXT & setSurface( IDirectFBSurface * surface_ ) VULKAN_HPP_NOEXCEPT { - shaderDrawParameters = shaderDrawParameters_; + surface = surface_; return *this; } - operator VkPhysicalDeviceVulkan11Features const&() const VULKAN_HPP_NOEXCEPT + operator VkDirectFBSurfaceCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceVulkan11Features &() VULKAN_HPP_NOEXCEPT + operator VkDirectFBSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceVulkan11Features const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DirectFBSurfaceCreateInfoEXT const & ) const = default; +# else + bool operator==( DirectFBSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess ) - && ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess ) - && ( storagePushConstant16 == rhs.storagePushConstant16 ) - && ( storageInputOutput16 == rhs.storageInputOutput16 ) - && ( multiview == rhs.multiview ) - && ( multiviewGeometryShader == rhs.multiviewGeometryShader ) - && ( multiviewTessellationShader == rhs.multiviewTessellationShader ) - && ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer ) - && ( variablePointers == rhs.variablePointers ) - && ( protectedMemory == rhs.protectedMemory ) - && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion ) - && ( shaderDrawParameters == rhs.shaderDrawParameters ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( dfb == rhs.dfb ) && + ( surface == rhs.surface ); } - bool operator!=( PhysicalDeviceVulkan11Features const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DirectFBSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Features; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiview = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {}; - VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {}; - VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {}; - VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {}; - VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDirectfbSurfaceCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags = {}; + IDirectFB * dfb = {}; + IDirectFBSurface * surface = {}; }; - static_assert( sizeof( PhysicalDeviceVulkan11Features ) == sizeof( VkPhysicalDeviceVulkan11Features ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DirectFBSurfaceCreateInfoEXT ) == sizeof( VkDirectFBSurfaceCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceVulkan11Properties + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Properties( std::array const& deviceUUID_ = {}, - std::array const& driverUUID_ = {}, - std::array const& deviceLUID_ = {}, - uint32_t deviceNodeMask_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid_ = {}, - uint32_t subgroupSize_ = {}, - VULKAN_HPP_NAMESPACE::ShaderStageFlags subgroupSupportedStages_ = {}, - VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags subgroupSupportedOperations_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 subgroupQuadOperationsInAllStages_ = {}, - VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior_ = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes, - uint32_t maxMultiviewViewCount_ = {}, - uint32_t maxMultiviewInstanceIndex_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault_ = {}, - uint32_t maxPerSetDescriptors_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ = {} ) VULKAN_HPP_NOEXCEPT - : deviceUUID{} - , driverUUID{} - , deviceLUID{} - , deviceNodeMask( deviceNodeMask_ ) - , deviceLUIDValid( deviceLUIDValid_ ) - , subgroupSize( subgroupSize_ ) - , subgroupSupportedStages( subgroupSupportedStages_ ) - , subgroupSupportedOperations( subgroupSupportedOperations_ ) - , subgroupQuadOperationsInAllStages( subgroupQuadOperationsInAllStages_ ) - , pointClippingBehavior( pointClippingBehavior_ ) - , maxMultiviewViewCount( maxMultiviewViewCount_ ) - , maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ ) - , protectedNoFault( protectedNoFault_ ) - , maxPerSetDescriptors( maxPerSetDescriptors_ ) - , maxMemoryAllocationSize( maxMemoryAllocationSize_ ) - { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( deviceUUID, deviceUUID_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( driverUUID, driverUUID_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( deviceLUID, deviceLUID_ ); - } + using Type = DirectFBSurfaceCreateInfoEXT; + }; +#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties ) - offsetof( PhysicalDeviceVulkan11Properties, pNext ) ); - return *this; - } + struct DispatchIndirectCommand + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + DispatchIndirectCommand( uint32_t x_ = {}, uint32_t y_ = {}, uint32_t z_ = {} ) VULKAN_HPP_NOEXCEPT + : x( x_ ) + , y( y_ ) + , z( z_ ) + {} - PhysicalDeviceVulkan11Properties( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR DispatchIndirectCommand( DispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DispatchIndirectCommand( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT + : DispatchIndirectCommand( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DispatchIndirectCommand & + operator=( DispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DispatchIndirectCommand & operator=( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - PhysicalDeviceVulkan11Properties& operator=( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT + DispatchIndirectCommand & setX( uint32_t x_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + x = x_; return *this; } - PhysicalDeviceVulkan11Properties & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + DispatchIndirectCommand & setY( uint32_t y_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + y = y_; return *this; } - PhysicalDeviceVulkan11Properties & setDeviceUUID( std::array deviceUUID_ ) VULKAN_HPP_NOEXCEPT + DispatchIndirectCommand & setZ( uint32_t z_ ) VULKAN_HPP_NOEXCEPT { - memcpy( deviceUUID, deviceUUID_.data(), VK_UUID_SIZE * sizeof( uint8_t ) ); + z = z_; return *this; } - PhysicalDeviceVulkan11Properties & setDriverUUID( std::array driverUUID_ ) VULKAN_HPP_NOEXCEPT + operator VkDispatchIndirectCommand const &() const VULKAN_HPP_NOEXCEPT { - memcpy( driverUUID, driverUUID_.data(), VK_UUID_SIZE * sizeof( uint8_t ) ); - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan11Properties & setDeviceLUID( std::array deviceLUID_ ) VULKAN_HPP_NOEXCEPT + operator VkDispatchIndirectCommand &() VULKAN_HPP_NOEXCEPT { - memcpy( deviceLUID, deviceLUID_.data(), VK_LUID_SIZE * sizeof( uint8_t ) ); - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan11Properties & setDeviceNodeMask( uint32_t deviceNodeMask_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DispatchIndirectCommand const & ) const = default; +#else + bool operator==( DispatchIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT { - deviceNodeMask = deviceNodeMask_; - return *this; + return ( x == rhs.x ) && ( y == rhs.y ) && ( z == rhs.z ); } - PhysicalDeviceVulkan11Properties & setDeviceLUIDValid( VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( DispatchIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT { - deviceLUIDValid = deviceLUIDValid_; - return *this; + return !operator==( rhs ); } +#endif + + public: + uint32_t x = {}; + uint32_t y = {}; + uint32_t z = {}; + }; + static_assert( sizeof( DispatchIndirectCommand ) == sizeof( VkDispatchIndirectCommand ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + struct DisplayNativeHdrSurfaceCapabilitiesAMD + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DisplayNativeHdrSurfaceCapabilitiesAMD( + VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport_ = {} ) VULKAN_HPP_NOEXCEPT + : localDimmingSupport( localDimmingSupport_ ) + {} + + VULKAN_HPP_CONSTEXPR DisplayNativeHdrSurfaceCapabilitiesAMD( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + DisplayNativeHdrSurfaceCapabilitiesAMD( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT + : DisplayNativeHdrSurfaceCapabilitiesAMD( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceVulkan11Properties & setSubgroupSize( uint32_t subgroupSize_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 DisplayNativeHdrSurfaceCapabilitiesAMD & + operator=( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DisplayNativeHdrSurfaceCapabilitiesAMD & + operator=( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT { - subgroupSize = subgroupSize_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceVulkan11Properties & setSubgroupSupportedStages( VULKAN_HPP_NAMESPACE::ShaderStageFlags subgroupSupportedStages_ ) VULKAN_HPP_NOEXCEPT + operator VkDisplayNativeHdrSurfaceCapabilitiesAMD const &() const VULKAN_HPP_NOEXCEPT { - subgroupSupportedStages = subgroupSupportedStages_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan11Properties & setSubgroupSupportedOperations( VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags subgroupSupportedOperations_ ) VULKAN_HPP_NOEXCEPT + operator VkDisplayNativeHdrSurfaceCapabilitiesAMD &() VULKAN_HPP_NOEXCEPT { - subgroupSupportedOperations = subgroupSupportedOperations_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan11Properties & setSubgroupQuadOperationsInAllStages( VULKAN_HPP_NAMESPACE::Bool32 subgroupQuadOperationsInAllStages_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DisplayNativeHdrSurfaceCapabilitiesAMD const & ) const = default; +#else + bool operator==( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT { - subgroupQuadOperationsInAllStages = subgroupQuadOperationsInAllStages_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( localDimmingSupport == rhs.localDimmingSupport ); } - PhysicalDeviceVulkan11Properties & setPointClippingBehavior( VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT { - pointClippingBehavior = pointClippingBehavior_; - return *this; + return !operator==( rhs ); } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport = {}; + }; + static_assert( sizeof( DisplayNativeHdrSurfaceCapabilitiesAMD ) == sizeof( VkDisplayNativeHdrSurfaceCapabilitiesAMD ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = DisplayNativeHdrSurfaceCapabilitiesAMD; + }; + + struct DisplayPresentInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPresentInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DisplayPresentInfoKHR( VULKAN_HPP_NAMESPACE::Rect2D srcRect_ = {}, + VULKAN_HPP_NAMESPACE::Rect2D dstRect_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 persistent_ = {} ) VULKAN_HPP_NOEXCEPT + : srcRect( srcRect_ ) + , dstRect( dstRect_ ) + , persistent( persistent_ ) + {} + + VULKAN_HPP_CONSTEXPR DisplayPresentInfoKHR( DisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DisplayPresentInfoKHR( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : DisplayPresentInfoKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DisplayPresentInfoKHR & + operator=( DisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceVulkan11Properties & setMaxMultiviewViewCount( uint32_t maxMultiviewViewCount_ ) VULKAN_HPP_NOEXCEPT + DisplayPresentInfoKHR & operator=( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - maxMultiviewViewCount = maxMultiviewViewCount_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceVulkan11Properties & setMaxMultiviewInstanceIndex( uint32_t maxMultiviewInstanceIndex_ ) VULKAN_HPP_NOEXCEPT + DisplayPresentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - maxMultiviewInstanceIndex = maxMultiviewInstanceIndex_; + pNext = pNext_; return *this; } - PhysicalDeviceVulkan11Properties & setProtectedNoFault( VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault_ ) VULKAN_HPP_NOEXCEPT + DisplayPresentInfoKHR & setSrcRect( VULKAN_HPP_NAMESPACE::Rect2D const & srcRect_ ) VULKAN_HPP_NOEXCEPT { - protectedNoFault = protectedNoFault_; + srcRect = srcRect_; return *this; } - PhysicalDeviceVulkan11Properties & setMaxPerSetDescriptors( uint32_t maxPerSetDescriptors_ ) VULKAN_HPP_NOEXCEPT + DisplayPresentInfoKHR & setDstRect( VULKAN_HPP_NAMESPACE::Rect2D const & dstRect_ ) VULKAN_HPP_NOEXCEPT { - maxPerSetDescriptors = maxPerSetDescriptors_; + dstRect = dstRect_; return *this; } - PhysicalDeviceVulkan11Properties & setMaxMemoryAllocationSize( VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ ) VULKAN_HPP_NOEXCEPT + DisplayPresentInfoKHR & setPersistent( VULKAN_HPP_NAMESPACE::Bool32 persistent_ ) VULKAN_HPP_NOEXCEPT { - maxMemoryAllocationSize = maxMemoryAllocationSize_; + persistent = persistent_; return *this; } - operator VkPhysicalDeviceVulkan11Properties const&() const VULKAN_HPP_NOEXCEPT + operator VkDisplayPresentInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceVulkan11Properties &() VULKAN_HPP_NOEXCEPT + operator VkDisplayPresentInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceVulkan11Properties const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DisplayPresentInfoKHR const & ) const = default; +#else + bool operator==( DisplayPresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memcmp( deviceUUID, rhs.deviceUUID, VK_UUID_SIZE * sizeof( uint8_t ) ) == 0 ) - && ( memcmp( driverUUID, rhs.driverUUID, VK_UUID_SIZE * sizeof( uint8_t ) ) == 0 ) - && ( memcmp( deviceLUID, rhs.deviceLUID, VK_LUID_SIZE * sizeof( uint8_t ) ) == 0 ) - && ( deviceNodeMask == rhs.deviceNodeMask ) - && ( deviceLUIDValid == rhs.deviceLUIDValid ) - && ( subgroupSize == rhs.subgroupSize ) - && ( subgroupSupportedStages == rhs.subgroupSupportedStages ) - && ( subgroupSupportedOperations == rhs.subgroupSupportedOperations ) - && ( subgroupQuadOperationsInAllStages == rhs.subgroupQuadOperationsInAllStages ) - && ( pointClippingBehavior == rhs.pointClippingBehavior ) - && ( maxMultiviewViewCount == rhs.maxMultiviewViewCount ) - && ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex ) - && ( protectedNoFault == rhs.protectedNoFault ) - && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors ) - && ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcRect == rhs.srcRect ) && + ( dstRect == rhs.dstRect ) && ( persistent == rhs.persistent ); } - bool operator!=( PhysicalDeviceVulkan11Properties const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( DisplayPresentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Properties; - void* pNext = {}; - uint8_t deviceUUID[VK_UUID_SIZE] = {}; - uint8_t driverUUID[VK_UUID_SIZE] = {}; - uint8_t deviceLUID[VK_LUID_SIZE] = {}; - uint32_t deviceNodeMask = {}; - VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {}; - uint32_t subgroupSize = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlags subgroupSupportedStages = {}; - VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags subgroupSupportedOperations = {}; - VULKAN_HPP_NAMESPACE::Bool32 subgroupQuadOperationsInAllStages = {}; - VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes; - uint32_t maxMultiviewViewCount = {}; - uint32_t maxMultiviewInstanceIndex = {}; - VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {}; - uint32_t maxPerSetDescriptors = {}; - VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPresentInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Rect2D srcRect = {}; + VULKAN_HPP_NAMESPACE::Rect2D dstRect = {}; + VULKAN_HPP_NAMESPACE::Bool32 persistent = {}; }; - static_assert( sizeof( PhysicalDeviceVulkan11Properties ) == sizeof( VkPhysicalDeviceVulkan11Properties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( DisplayPresentInfoKHR ) == sizeof( VkDisplayPresentInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceVulkan12Features + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan12Features( VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ = {} ) VULKAN_HPP_NOEXCEPT - : samplerMirrorClampToEdge( samplerMirrorClampToEdge_ ) - , drawIndirectCount( drawIndirectCount_ ) - , storageBuffer8BitAccess( storageBuffer8BitAccess_ ) - , uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ ) - , storagePushConstant8( storagePushConstant8_ ) - , shaderBufferInt64Atomics( shaderBufferInt64Atomics_ ) - , shaderSharedInt64Atomics( shaderSharedInt64Atomics_ ) - , shaderFloat16( shaderFloat16_ ) - , shaderInt8( shaderInt8_ ) - , descriptorIndexing( descriptorIndexing_ ) - , shaderInputAttachmentArrayDynamicIndexing( shaderInputAttachmentArrayDynamicIndexing_ ) - , shaderUniformTexelBufferArrayDynamicIndexing( shaderUniformTexelBufferArrayDynamicIndexing_ ) - , shaderStorageTexelBufferArrayDynamicIndexing( shaderStorageTexelBufferArrayDynamicIndexing_ ) - , shaderUniformBufferArrayNonUniformIndexing( shaderUniformBufferArrayNonUniformIndexing_ ) - , shaderSampledImageArrayNonUniformIndexing( shaderSampledImageArrayNonUniformIndexing_ ) - , shaderStorageBufferArrayNonUniformIndexing( shaderStorageBufferArrayNonUniformIndexing_ ) - , shaderStorageImageArrayNonUniformIndexing( shaderStorageImageArrayNonUniformIndexing_ ) - , shaderInputAttachmentArrayNonUniformIndexing( shaderInputAttachmentArrayNonUniformIndexing_ ) - , shaderUniformTexelBufferArrayNonUniformIndexing( shaderUniformTexelBufferArrayNonUniformIndexing_ ) - , shaderStorageTexelBufferArrayNonUniformIndexing( shaderStorageTexelBufferArrayNonUniformIndexing_ ) - , descriptorBindingUniformBufferUpdateAfterBind( descriptorBindingUniformBufferUpdateAfterBind_ ) - , descriptorBindingSampledImageUpdateAfterBind( descriptorBindingSampledImageUpdateAfterBind_ ) - , descriptorBindingStorageImageUpdateAfterBind( descriptorBindingStorageImageUpdateAfterBind_ ) - , descriptorBindingStorageBufferUpdateAfterBind( descriptorBindingStorageBufferUpdateAfterBind_ ) - , descriptorBindingUniformTexelBufferUpdateAfterBind( descriptorBindingUniformTexelBufferUpdateAfterBind_ ) - , descriptorBindingStorageTexelBufferUpdateAfterBind( descriptorBindingStorageTexelBufferUpdateAfterBind_ ) - , descriptorBindingUpdateUnusedWhilePending( descriptorBindingUpdateUnusedWhilePending_ ) - , descriptorBindingPartiallyBound( descriptorBindingPartiallyBound_ ) - , descriptorBindingVariableDescriptorCount( descriptorBindingVariableDescriptorCount_ ) - , runtimeDescriptorArray( runtimeDescriptorArray_ ) - , samplerFilterMinmax( samplerFilterMinmax_ ) - , scalarBlockLayout( scalarBlockLayout_ ) - , imagelessFramebuffer( imagelessFramebuffer_ ) - , uniformBufferStandardLayout( uniformBufferStandardLayout_ ) - , shaderSubgroupExtendedTypes( shaderSubgroupExtendedTypes_ ) - , separateDepthStencilLayouts( separateDepthStencilLayouts_ ) - , hostQueryReset( hostQueryReset_ ) - , timelineSemaphore( timelineSemaphore_ ) - , bufferDeviceAddress( bufferDeviceAddress_ ) - , bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ) - , bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ ) - , vulkanMemoryModel( vulkanMemoryModel_ ) - , vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ ) - , vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ ) - , shaderOutputViewportIndex( shaderOutputViewportIndex_ ) - , shaderOutputLayer( shaderOutputLayer_ ) - , subgroupBroadcastDynamicId( subgroupBroadcastDynamicId_ ) + using Type = DisplayPresentInfoKHR; + }; + + struct DisplaySurfaceCreateInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplaySurfaceCreateInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + DisplaySurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags_ = {}, + VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ = {}, + uint32_t planeIndex_ = {}, + uint32_t planeStackIndex_ = {}, + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, + float globalAlpha_ = {}, + VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode_ = + VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR::eOpaque, + VULKAN_HPP_NAMESPACE::Extent2D imageExtent_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , displayMode( displayMode_ ) + , planeIndex( planeIndex_ ) + , planeStackIndex( planeStackIndex_ ) + , transform( transform_ ) + , globalAlpha( globalAlpha_ ) + , alphaMode( alphaMode_ ) + , imageExtent( imageExtent_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features ) - offsetof( PhysicalDeviceVulkan12Features, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + DisplaySurfaceCreateInfoKHR( DisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceVulkan12Features( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + DisplaySurfaceCreateInfoKHR( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : DisplaySurfaceCreateInfoKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DisplaySurfaceCreateInfoKHR & + operator=( DisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceVulkan12Features& operator=( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT + DisplaySurfaceCreateInfoKHR & operator=( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceVulkan12Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + DisplaySurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PhysicalDeviceVulkan12Features & setSamplerMirrorClampToEdge( VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge_ ) VULKAN_HPP_NOEXCEPT + DisplaySurfaceCreateInfoKHR & + setFlags( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT { - samplerMirrorClampToEdge = samplerMirrorClampToEdge_; + flags = flags_; return *this; } - PhysicalDeviceVulkan12Features & setDrawIndirectCount( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount_ ) VULKAN_HPP_NOEXCEPT + DisplaySurfaceCreateInfoKHR & + setDisplayMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ ) VULKAN_HPP_NOEXCEPT { - drawIndirectCount = drawIndirectCount_; + displayMode = displayMode_; return *this; } - PhysicalDeviceVulkan12Features & setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT + DisplaySurfaceCreateInfoKHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT { - storageBuffer8BitAccess = storageBuffer8BitAccess_; + planeIndex = planeIndex_; return *this; } - PhysicalDeviceVulkan12Features & setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT + DisplaySurfaceCreateInfoKHR & setPlaneStackIndex( uint32_t planeStackIndex_ ) VULKAN_HPP_NOEXCEPT { - uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_; + planeStackIndex = planeStackIndex_; return *this; } - PhysicalDeviceVulkan12Features & setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT + DisplaySurfaceCreateInfoKHR & + setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT { - storagePushConstant8 = storagePushConstant8_; + transform = transform_; return *this; } - PhysicalDeviceVulkan12Features & setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT + DisplaySurfaceCreateInfoKHR & setGlobalAlpha( float globalAlpha_ ) VULKAN_HPP_NOEXCEPT { - shaderBufferInt64Atomics = shaderBufferInt64Atomics_; + globalAlpha = globalAlpha_; return *this; } - PhysicalDeviceVulkan12Features & setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT + DisplaySurfaceCreateInfoKHR & + setAlphaMode( VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode_ ) VULKAN_HPP_NOEXCEPT { - shaderSharedInt64Atomics = shaderSharedInt64Atomics_; + alphaMode = alphaMode_; return *this; } - PhysicalDeviceVulkan12Features & setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT + DisplaySurfaceCreateInfoKHR & + setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT { - shaderFloat16 = shaderFloat16_; + imageExtent = imageExtent_; return *this; } - PhysicalDeviceVulkan12Features & setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT + operator VkDisplaySurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - shaderInt8 = shaderInt8_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan12Features & setDescriptorIndexing( VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing_ ) VULKAN_HPP_NOEXCEPT + operator VkDisplaySurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT { - descriptorIndexing = descriptorIndexing_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan12Features & setShaderInputAttachmentArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DisplaySurfaceCreateInfoKHR const & ) const = default; +#else + bool operator==( DisplaySurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( displayMode == rhs.displayMode ) && ( planeIndex == rhs.planeIndex ) && + ( planeStackIndex == rhs.planeStackIndex ) && ( transform == rhs.transform ) && + ( globalAlpha == rhs.globalAlpha ) && ( alphaMode == rhs.alphaMode ) && ( imageExtent == rhs.imageExtent ); } - PhysicalDeviceVulkan12Features & setShaderUniformTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( DisplaySurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_; - return *this; + return !operator==( rhs ); } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplaySurfaceCreateInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags = {}; + VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {}; + uint32_t planeIndex = {}; + uint32_t planeStackIndex = {}; + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; + float globalAlpha = {}; + VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode = + VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR::eOpaque; + VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {}; + }; + static_assert( sizeof( DisplaySurfaceCreateInfoKHR ) == sizeof( VkDisplaySurfaceCreateInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = DisplaySurfaceCreateInfoKHR; + }; + + struct DrawIndexedIndirectCommand + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DrawIndexedIndirectCommand( uint32_t indexCount_ = {}, + uint32_t instanceCount_ = {}, + uint32_t firstIndex_ = {}, + int32_t vertexOffset_ = {}, + uint32_t firstInstance_ = {} ) VULKAN_HPP_NOEXCEPT + : indexCount( indexCount_ ) + , instanceCount( instanceCount_ ) + , firstIndex( firstIndex_ ) + , vertexOffset( vertexOffset_ ) + , firstInstance( firstInstance_ ) + {} + + VULKAN_HPP_CONSTEXPR + DrawIndexedIndirectCommand( DrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DrawIndexedIndirectCommand( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT + : DrawIndexedIndirectCommand( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceVulkan12Features & setShaderStorageTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 DrawIndexedIndirectCommand & + operator=( DrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DrawIndexedIndirectCommand & operator=( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT { - shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceVulkan12Features & setShaderUniformBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT + DrawIndexedIndirectCommand & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT { - shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_; + indexCount = indexCount_; return *this; } - PhysicalDeviceVulkan12Features & setShaderSampledImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT + DrawIndexedIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT { - shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_; + instanceCount = instanceCount_; return *this; } - PhysicalDeviceVulkan12Features & setShaderStorageBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT + DrawIndexedIndirectCommand & setFirstIndex( uint32_t firstIndex_ ) VULKAN_HPP_NOEXCEPT { - shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_; + firstIndex = firstIndex_; return *this; } - PhysicalDeviceVulkan12Features & setShaderStorageImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT + DrawIndexedIndirectCommand & setVertexOffset( int32_t vertexOffset_ ) VULKAN_HPP_NOEXCEPT { - shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_; + vertexOffset = vertexOffset_; return *this; } - PhysicalDeviceVulkan12Features & setShaderInputAttachmentArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT + DrawIndexedIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT { - shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_; + firstInstance = firstInstance_; return *this; } - PhysicalDeviceVulkan12Features & setShaderUniformTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT + operator VkDrawIndexedIndirectCommand const &() const VULKAN_HPP_NOEXCEPT { - shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan12Features & setShaderStorageTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT + operator VkDrawIndexedIndirectCommand &() VULKAN_HPP_NOEXCEPT { - shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan12Features & setDescriptorBindingUniformBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DrawIndexedIndirectCommand const & ) const = default; +#else + bool operator==( DrawIndexedIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT { - descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_; - return *this; + return ( indexCount == rhs.indexCount ) && ( instanceCount == rhs.instanceCount ) && + ( firstIndex == rhs.firstIndex ) && ( vertexOffset == rhs.vertexOffset ) && + ( firstInstance == rhs.firstInstance ); } - PhysicalDeviceVulkan12Features & setDescriptorBindingSampledImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( DrawIndexedIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT { - descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_; - return *this; + return !operator==( rhs ); } +#endif + + public: + uint32_t indexCount = {}; + uint32_t instanceCount = {}; + uint32_t firstIndex = {}; + int32_t vertexOffset = {}; + uint32_t firstInstance = {}; + }; + static_assert( sizeof( DrawIndexedIndirectCommand ) == sizeof( VkDrawIndexedIndirectCommand ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - PhysicalDeviceVulkan12Features & setDescriptorBindingStorageImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT + struct DrawIndirectCommand + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DrawIndirectCommand( uint32_t vertexCount_ = {}, + uint32_t instanceCount_ = {}, + uint32_t firstVertex_ = {}, + uint32_t firstInstance_ = {} ) VULKAN_HPP_NOEXCEPT + : vertexCount( vertexCount_ ) + , instanceCount( instanceCount_ ) + , firstVertex( firstVertex_ ) + , firstInstance( firstInstance_ ) + {} + + VULKAN_HPP_CONSTEXPR DrawIndirectCommand( DrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DrawIndirectCommand( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT + : DrawIndirectCommand( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DrawIndirectCommand & + operator=( DrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DrawIndirectCommand & operator=( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT { - descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceVulkan12Features & setDescriptorBindingStorageBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT + DrawIndirectCommand & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT { - descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_; + vertexCount = vertexCount_; return *this; } - PhysicalDeviceVulkan12Features & setDescriptorBindingUniformTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT + DrawIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT { - descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_; + instanceCount = instanceCount_; return *this; } - PhysicalDeviceVulkan12Features & setDescriptorBindingStorageTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT + DrawIndirectCommand & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT { - descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_; + firstVertex = firstVertex_; return *this; } - PhysicalDeviceVulkan12Features & setDescriptorBindingUpdateUnusedWhilePending( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT + DrawIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT { - descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_; + firstInstance = firstInstance_; return *this; } - PhysicalDeviceVulkan12Features & setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT + operator VkDrawIndirectCommand const &() const VULKAN_HPP_NOEXCEPT { - descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan12Features & setDescriptorBindingVariableDescriptorCount( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT + operator VkDrawIndirectCommand &() VULKAN_HPP_NOEXCEPT { - descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan12Features & setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DrawIndirectCommand const & ) const = default; +#else + bool operator==( DrawIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT { - runtimeDescriptorArray = runtimeDescriptorArray_; - return *this; + return ( vertexCount == rhs.vertexCount ) && ( instanceCount == rhs.instanceCount ) && + ( firstVertex == rhs.firstVertex ) && ( firstInstance == rhs.firstInstance ); } - PhysicalDeviceVulkan12Features & setSamplerFilterMinmax( VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( DrawIndirectCommand const & rhs ) const VULKAN_HPP_NOEXCEPT { - samplerFilterMinmax = samplerFilterMinmax_; - return *this; + return !operator==( rhs ); } +#endif + + public: + uint32_t vertexCount = {}; + uint32_t instanceCount = {}; + uint32_t firstVertex = {}; + uint32_t firstInstance = {}; + }; + static_assert( sizeof( DrawIndirectCommand ) == sizeof( VkDrawIndirectCommand ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + struct DrawMeshTasksIndirectCommandNV + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandNV( uint32_t taskCount_ = {}, + uint32_t firstTask_ = {} ) VULKAN_HPP_NOEXCEPT + : taskCount( taskCount_ ) + , firstTask( firstTask_ ) + {} + + VULKAN_HPP_CONSTEXPR + DrawMeshTasksIndirectCommandNV( DrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DrawMeshTasksIndirectCommandNV( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT + : DrawMeshTasksIndirectCommandNV( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceVulkan12Features & setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 DrawMeshTasksIndirectCommandNV & + operator=( DrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DrawMeshTasksIndirectCommandNV & operator=( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT { - scalarBlockLayout = scalarBlockLayout_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceVulkan12Features & setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT + DrawMeshTasksIndirectCommandNV & setTaskCount( uint32_t taskCount_ ) VULKAN_HPP_NOEXCEPT { - imagelessFramebuffer = imagelessFramebuffer_; + taskCount = taskCount_; return *this; } - PhysicalDeviceVulkan12Features & setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT + DrawMeshTasksIndirectCommandNV & setFirstTask( uint32_t firstTask_ ) VULKAN_HPP_NOEXCEPT { - uniformBufferStandardLayout = uniformBufferStandardLayout_; + firstTask = firstTask_; return *this; } - PhysicalDeviceVulkan12Features & setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT + operator VkDrawMeshTasksIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT { - shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan12Features & setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT + operator VkDrawMeshTasksIndirectCommandNV &() VULKAN_HPP_NOEXCEPT { - separateDepthStencilLayouts = separateDepthStencilLayouts_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan12Features & setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DrawMeshTasksIndirectCommandNV const & ) const = default; +#else + bool operator==( DrawMeshTasksIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - hostQueryReset = hostQueryReset_; - return *this; + return ( taskCount == rhs.taskCount ) && ( firstTask == rhs.firstTask ); } - PhysicalDeviceVulkan12Features & setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( DrawMeshTasksIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - timelineSemaphore = timelineSemaphore_; - return *this; + return !operator==( rhs ); } +#endif + + public: + uint32_t taskCount = {}; + uint32_t firstTask = {}; + }; + static_assert( sizeof( DrawMeshTasksIndirectCommandNV ) == sizeof( VkDrawMeshTasksIndirectCommandNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + struct DrmFormatModifierPropertiesEXT + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesEXT( + uint64_t drmFormatModifier_ = {}, + uint32_t drmFormatModifierPlaneCount_ = {}, + VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures_ = {} ) VULKAN_HPP_NOEXCEPT + : drmFormatModifier( drmFormatModifier_ ) + , drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ ) + , drmFormatModifierTilingFeatures( drmFormatModifierTilingFeatures_ ) + {} + + VULKAN_HPP_CONSTEXPR + DrmFormatModifierPropertiesEXT( DrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DrmFormatModifierPropertiesEXT( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : DrmFormatModifierPropertiesEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceVulkan12Features & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 DrmFormatModifierPropertiesEXT & + operator=( DrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DrmFormatModifierPropertiesEXT & operator=( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - bufferDeviceAddress = bufferDeviceAddress_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceVulkan12Features & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT + operator VkDrmFormatModifierPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT { - bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan12Features & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT + operator VkDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT { - bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan12Features & setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DrmFormatModifierPropertiesEXT const & ) const = default; +#else + bool operator==( DrmFormatModifierPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - vulkanMemoryModel = vulkanMemoryModel_; - return *this; + return ( drmFormatModifier == rhs.drmFormatModifier ) && + ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount ) && + ( drmFormatModifierTilingFeatures == rhs.drmFormatModifierTilingFeatures ); } - PhysicalDeviceVulkan12Features & setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( DrmFormatModifierPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_; - return *this; + return !operator==( rhs ); } +#endif + + public: + uint64_t drmFormatModifier = {}; + uint32_t drmFormatModifierPlaneCount = {}; + VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures = {}; + }; + static_assert( sizeof( DrmFormatModifierPropertiesEXT ) == sizeof( VkDrmFormatModifierPropertiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - PhysicalDeviceVulkan12Features & setVulkanMemoryModelAvailabilityVisibilityChains( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT + struct DrmFormatModifierPropertiesListEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eDrmFormatModifierPropertiesListEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesListEXT( + uint32_t drmFormatModifierCount_ = {}, + VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT * pDrmFormatModifierProperties_ = {} ) VULKAN_HPP_NOEXCEPT + : drmFormatModifierCount( drmFormatModifierCount_ ) + , pDrmFormatModifierProperties( pDrmFormatModifierProperties_ ) + {} + + VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesListEXT( DrmFormatModifierPropertiesListEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + DrmFormatModifierPropertiesListEXT( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : DrmFormatModifierPropertiesListEXT( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + DrmFormatModifierPropertiesListEXT( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + drmFormatModifierProperties_ ) + : drmFormatModifierCount( static_cast( drmFormatModifierProperties_.size() ) ) + , pDrmFormatModifierProperties( drmFormatModifierProperties_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 DrmFormatModifierPropertiesListEXT & + operator=( DrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + DrmFormatModifierPropertiesListEXT & + operator=( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceVulkan12Features & setShaderOutputViewportIndex( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex_ ) VULKAN_HPP_NOEXCEPT + operator VkDrmFormatModifierPropertiesListEXT const &() const VULKAN_HPP_NOEXCEPT { - shaderOutputViewportIndex = shaderOutputViewportIndex_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan12Features & setShaderOutputLayer( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer_ ) VULKAN_HPP_NOEXCEPT + operator VkDrmFormatModifierPropertiesListEXT &() VULKAN_HPP_NOEXCEPT { - shaderOutputLayer = shaderOutputLayer_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan12Features & setSubgroupBroadcastDynamicId( VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DrmFormatModifierPropertiesListEXT const & ) const = default; +#else + bool operator==( DrmFormatModifierPropertiesListEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - subgroupBroadcastDynamicId = subgroupBroadcastDynamicId_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( drmFormatModifierCount == rhs.drmFormatModifierCount ) && + ( pDrmFormatModifierProperties == rhs.pDrmFormatModifierProperties ); } - operator VkPhysicalDeviceVulkan12Features const&() const VULKAN_HPP_NOEXCEPT + bool operator!=( DrmFormatModifierPropertiesListEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return !operator==( rhs ); } +#endif - operator VkPhysicalDeviceVulkan12Features &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( PhysicalDeviceVulkan12Features const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( samplerMirrorClampToEdge == rhs.samplerMirrorClampToEdge ) - && ( drawIndirectCount == rhs.drawIndirectCount ) - && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess ) - && ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess ) - && ( storagePushConstant8 == rhs.storagePushConstant8 ) - && ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics ) - && ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics ) - && ( shaderFloat16 == rhs.shaderFloat16 ) - && ( shaderInt8 == rhs.shaderInt8 ) - && ( descriptorIndexing == rhs.descriptorIndexing ) - && ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing ) - && ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing ) - && ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing ) - && ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing ) - && ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing ) - && ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing ) - && ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing ) - && ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing ) - && ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing ) - && ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing ) - && ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind ) - && ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind ) - && ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind ) - && ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind ) - && ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind ) - && ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind ) - && ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending ) - && ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound ) - && ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount ) - && ( runtimeDescriptorArray == rhs.runtimeDescriptorArray ) - && ( samplerFilterMinmax == rhs.samplerFilterMinmax ) - && ( scalarBlockLayout == rhs.scalarBlockLayout ) - && ( imagelessFramebuffer == rhs.imagelessFramebuffer ) - && ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout ) - && ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes ) - && ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts ) - && ( hostQueryReset == rhs.hostQueryReset ) - && ( timelineSemaphore == rhs.timelineSemaphore ) - && ( bufferDeviceAddress == rhs.bufferDeviceAddress ) - && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay ) - && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice ) - && ( vulkanMemoryModel == rhs.vulkanMemoryModel ) - && ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope ) - && ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains ) - && ( shaderOutputViewportIndex == rhs.shaderOutputViewportIndex ) - && ( shaderOutputLayer == rhs.shaderOutputLayer ) - && ( subgroupBroadcastDynamicId == rhs.subgroupBroadcastDynamicId ); - } - - bool operator!=( PhysicalDeviceVulkan12Features const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Features; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge = {}; - VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount = {}; - VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {}; - VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {}; - VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax = {}; - VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {}; - VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {}; - VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {}; - VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {}; - VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {}; - VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {}; - VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {}; - VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {}; - VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer = {}; - VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId = {}; - }; - static_assert( sizeof( PhysicalDeviceVulkan12Features ) == sizeof( VkPhysicalDeviceVulkan12Features ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDrmFormatModifierPropertiesListEXT; + void * pNext = {}; + uint32_t drmFormatModifierCount = {}; + VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT * pDrmFormatModifierProperties = {}; + }; + static_assert( sizeof( DrmFormatModifierPropertiesListEXT ) == sizeof( VkDrmFormatModifierPropertiesListEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceVulkan12Properties + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Properties( VULKAN_HPP_NAMESPACE::DriverId driverID_ = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary, - std::array const& driverName_ = {}, - std::array const& driverInfo_ = {}, - VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion_ = {}, - VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, - VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64_ = {}, - uint32_t maxUpdateAfterBindDescriptorsInAllPools_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod_ = {}, - uint32_t maxPerStageDescriptorUpdateAfterBindSamplers_ = {}, - uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers_ = {}, - uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers_ = {}, - uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages_ = {}, - uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages_ = {}, - uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments_ = {}, - uint32_t maxPerStageUpdateAfterBindResources_ = {}, - uint32_t maxDescriptorSetUpdateAfterBindSamplers_ = {}, - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers_ = {}, - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ = {}, - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers_ = {}, - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ = {}, - uint32_t maxDescriptorSetUpdateAfterBindSampledImages_ = {}, - uint32_t maxDescriptorSetUpdateAfterBindStorageImages_ = {}, - uint32_t maxDescriptorSetUpdateAfterBindInputAttachments_ = {}, - VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes_ = {}, - VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 independentResolve_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping_ = {}, - uint64_t maxTimelineSemaphoreValueDifference_ = {}, - VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferIntegerColorSampleCounts_ = {} ) VULKAN_HPP_NOEXCEPT - : driverID( driverID_ ) - , driverName{} - , driverInfo{} - , conformanceVersion( conformanceVersion_ ) - , denormBehaviorIndependence( denormBehaviorIndependence_ ) - , roundingModeIndependence( roundingModeIndependence_ ) - , shaderSignedZeroInfNanPreserveFloat16( shaderSignedZeroInfNanPreserveFloat16_ ) - , shaderSignedZeroInfNanPreserveFloat32( shaderSignedZeroInfNanPreserveFloat32_ ) - , shaderSignedZeroInfNanPreserveFloat64( shaderSignedZeroInfNanPreserveFloat64_ ) - , shaderDenormPreserveFloat16( shaderDenormPreserveFloat16_ ) - , shaderDenormPreserveFloat32( shaderDenormPreserveFloat32_ ) - , shaderDenormPreserveFloat64( shaderDenormPreserveFloat64_ ) - , shaderDenormFlushToZeroFloat16( shaderDenormFlushToZeroFloat16_ ) - , shaderDenormFlushToZeroFloat32( shaderDenormFlushToZeroFloat32_ ) - , shaderDenormFlushToZeroFloat64( shaderDenormFlushToZeroFloat64_ ) - , shaderRoundingModeRTEFloat16( shaderRoundingModeRTEFloat16_ ) - , shaderRoundingModeRTEFloat32( shaderRoundingModeRTEFloat32_ ) - , shaderRoundingModeRTEFloat64( shaderRoundingModeRTEFloat64_ ) - , shaderRoundingModeRTZFloat16( shaderRoundingModeRTZFloat16_ ) - , shaderRoundingModeRTZFloat32( shaderRoundingModeRTZFloat32_ ) - , shaderRoundingModeRTZFloat64( shaderRoundingModeRTZFloat64_ ) - , maxUpdateAfterBindDescriptorsInAllPools( maxUpdateAfterBindDescriptorsInAllPools_ ) - , shaderUniformBufferArrayNonUniformIndexingNative( shaderUniformBufferArrayNonUniformIndexingNative_ ) - , shaderSampledImageArrayNonUniformIndexingNative( shaderSampledImageArrayNonUniformIndexingNative_ ) - , shaderStorageBufferArrayNonUniformIndexingNative( shaderStorageBufferArrayNonUniformIndexingNative_ ) - , shaderStorageImageArrayNonUniformIndexingNative( shaderStorageImageArrayNonUniformIndexingNative_ ) - , shaderInputAttachmentArrayNonUniformIndexingNative( shaderInputAttachmentArrayNonUniformIndexingNative_ ) - , robustBufferAccessUpdateAfterBind( robustBufferAccessUpdateAfterBind_ ) - , quadDivergentImplicitLod( quadDivergentImplicitLod_ ) - , maxPerStageDescriptorUpdateAfterBindSamplers( maxPerStageDescriptorUpdateAfterBindSamplers_ ) - , maxPerStageDescriptorUpdateAfterBindUniformBuffers( maxPerStageDescriptorUpdateAfterBindUniformBuffers_ ) - , maxPerStageDescriptorUpdateAfterBindStorageBuffers( maxPerStageDescriptorUpdateAfterBindStorageBuffers_ ) - , maxPerStageDescriptorUpdateAfterBindSampledImages( maxPerStageDescriptorUpdateAfterBindSampledImages_ ) - , maxPerStageDescriptorUpdateAfterBindStorageImages( maxPerStageDescriptorUpdateAfterBindStorageImages_ ) - , maxPerStageDescriptorUpdateAfterBindInputAttachments( maxPerStageDescriptorUpdateAfterBindInputAttachments_ ) - , maxPerStageUpdateAfterBindResources( maxPerStageUpdateAfterBindResources_ ) - , maxDescriptorSetUpdateAfterBindSamplers( maxDescriptorSetUpdateAfterBindSamplers_ ) - , maxDescriptorSetUpdateAfterBindUniformBuffers( maxDescriptorSetUpdateAfterBindUniformBuffers_ ) - , maxDescriptorSetUpdateAfterBindUniformBuffersDynamic( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ ) - , maxDescriptorSetUpdateAfterBindStorageBuffers( maxDescriptorSetUpdateAfterBindStorageBuffers_ ) - , maxDescriptorSetUpdateAfterBindStorageBuffersDynamic( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ ) - , maxDescriptorSetUpdateAfterBindSampledImages( maxDescriptorSetUpdateAfterBindSampledImages_ ) - , maxDescriptorSetUpdateAfterBindStorageImages( maxDescriptorSetUpdateAfterBindStorageImages_ ) - , maxDescriptorSetUpdateAfterBindInputAttachments( maxDescriptorSetUpdateAfterBindInputAttachments_ ) - , supportedDepthResolveModes( supportedDepthResolveModes_ ) - , supportedStencilResolveModes( supportedStencilResolveModes_ ) - , independentResolveNone( independentResolveNone_ ) - , independentResolve( independentResolve_ ) - , filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ ) - , filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ ) - , maxTimelineSemaphoreValueDifference( maxTimelineSemaphoreValueDifference_ ) - , framebufferIntegerColorSampleCounts( framebufferIntegerColorSampleCounts_ ) - { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( driverName, driverName_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( driverInfo, driverInfo_ ); - } + using Type = DrmFormatModifierPropertiesListEXT; + }; - VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties ) - offsetof( PhysicalDeviceVulkan12Properties, pNext ) ); - return *this; - } + struct ExportFenceCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportFenceCreateInfo; - PhysicalDeviceVulkan12Properties( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ExportFenceCreateInfo( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ = {} ) VULKAN_HPP_NOEXCEPT + : handleTypes( handleTypes_ ) + {} + + VULKAN_HPP_CONSTEXPR ExportFenceCreateInfo( ExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ExportFenceCreateInfo( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : ExportFenceCreateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceVulkan12Properties& operator=( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 ExportFenceCreateInfo & + operator=( ExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ExportFenceCreateInfo & operator=( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceVulkan12Properties & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + ExportFenceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PhysicalDeviceVulkan12Properties & setDriverID( VULKAN_HPP_NAMESPACE::DriverId driverID_ ) VULKAN_HPP_NOEXCEPT + ExportFenceCreateInfo & + setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT { - driverID = driverID_; + handleTypes = handleTypes_; return *this; } - PhysicalDeviceVulkan12Properties & setDriverName( std::array driverName_ ) VULKAN_HPP_NOEXCEPT + operator VkExportFenceCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - memcpy( driverName, driverName_.data(), VK_MAX_DRIVER_NAME_SIZE * sizeof( char ) ); - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan12Properties & setDriverInfo( std::array driverInfo_ ) VULKAN_HPP_NOEXCEPT + operator VkExportFenceCreateInfo &() VULKAN_HPP_NOEXCEPT { - memcpy( driverInfo, driverInfo_.data(), VK_MAX_DRIVER_INFO_SIZE * sizeof( char ) ); - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan12Properties & setConformanceVersion( VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ExportFenceCreateInfo const & ) const = default; +#else + bool operator==( ExportFenceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - conformanceVersion = conformanceVersion_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleTypes == rhs.handleTypes ); } - PhysicalDeviceVulkan12Properties & setDenormBehaviorIndependence( VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( ExportFenceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - denormBehaviorIndependence = denormBehaviorIndependence_; - return *this; + return !operator==( rhs ); } +#endif - PhysicalDeviceVulkan12Properties & setRoundingModeIndependence( VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence_ ) VULKAN_HPP_NOEXCEPT - { - roundingModeIndependence = roundingModeIndependence_; - return *this; - } + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes = {}; + }; + static_assert( sizeof( ExportFenceCreateInfo ) == sizeof( VkExportFenceCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - PhysicalDeviceVulkan12Properties & setShaderSignedZeroInfNanPreserveFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16_ ) VULKAN_HPP_NOEXCEPT - { - shaderSignedZeroInfNanPreserveFloat16 = shaderSignedZeroInfNanPreserveFloat16_; - return *this; - } + template <> + struct CppType + { + using Type = ExportFenceCreateInfo; + }; + using ExportFenceCreateInfoKHR = ExportFenceCreateInfo; - PhysicalDeviceVulkan12Properties & setShaderSignedZeroInfNanPreserveFloat32( VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32_ ) VULKAN_HPP_NOEXCEPT - { - shaderSignedZeroInfNanPreserveFloat32 = shaderSignedZeroInfNanPreserveFloat32_; - return *this; - } +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + struct ExportFenceWin32HandleInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportFenceWin32HandleInfoKHR; - PhysicalDeviceVulkan12Properties & setShaderSignedZeroInfNanPreserveFloat64( VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64_ ) VULKAN_HPP_NOEXCEPT - { - shaderSignedZeroInfNanPreserveFloat64 = shaderSignedZeroInfNanPreserveFloat64_; - return *this; - } +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ExportFenceWin32HandleInfoKHR( const SECURITY_ATTRIBUTES * pAttributes_ = {}, + DWORD dwAccess_ = {}, + LPCWSTR name_ = {} ) VULKAN_HPP_NOEXCEPT + : pAttributes( pAttributes_ ) + , dwAccess( dwAccess_ ) + , name( name_ ) + {} - PhysicalDeviceVulkan12Properties & setShaderDenormPreserveFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16_ ) VULKAN_HPP_NOEXCEPT - { - shaderDenormPreserveFloat16 = shaderDenormPreserveFloat16_; - return *this; - } + VULKAN_HPP_CONSTEXPR + ExportFenceWin32HandleInfoKHR( ExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceVulkan12Properties & setShaderDenormPreserveFloat32( VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32_ ) VULKAN_HPP_NOEXCEPT - { - shaderDenormPreserveFloat32 = shaderDenormPreserveFloat32_; - return *this; - } + ExportFenceWin32HandleInfoKHR( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : ExportFenceWin32HandleInfoKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceVulkan12Properties & setShaderDenormPreserveFloat64( VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64_ ) VULKAN_HPP_NOEXCEPT - { - shaderDenormPreserveFloat64 = shaderDenormPreserveFloat64_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 ExportFenceWin32HandleInfoKHR & + operator=( ExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceVulkan12Properties & setShaderDenormFlushToZeroFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16_ ) VULKAN_HPP_NOEXCEPT + ExportFenceWin32HandleInfoKHR & operator=( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - shaderDenormFlushToZeroFloat16 = shaderDenormFlushToZeroFloat16_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceVulkan12Properties & setShaderDenormFlushToZeroFloat32( VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32_ ) VULKAN_HPP_NOEXCEPT + ExportFenceWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - shaderDenormFlushToZeroFloat32 = shaderDenormFlushToZeroFloat32_; + pNext = pNext_; return *this; } - PhysicalDeviceVulkan12Properties & setShaderDenormFlushToZeroFloat64( VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64_ ) VULKAN_HPP_NOEXCEPT + ExportFenceWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES * pAttributes_ ) VULKAN_HPP_NOEXCEPT { - shaderDenormFlushToZeroFloat64 = shaderDenormFlushToZeroFloat64_; + pAttributes = pAttributes_; return *this; } - PhysicalDeviceVulkan12Properties & setShaderRoundingModeRTEFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16_ ) VULKAN_HPP_NOEXCEPT + ExportFenceWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT { - shaderRoundingModeRTEFloat16 = shaderRoundingModeRTEFloat16_; + dwAccess = dwAccess_; return *this; } - PhysicalDeviceVulkan12Properties & setShaderRoundingModeRTEFloat32( VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32_ ) VULKAN_HPP_NOEXCEPT + ExportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT { - shaderRoundingModeRTEFloat32 = shaderRoundingModeRTEFloat32_; + name = name_; return *this; } - PhysicalDeviceVulkan12Properties & setShaderRoundingModeRTEFloat64( VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64_ ) VULKAN_HPP_NOEXCEPT + operator VkExportFenceWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - shaderRoundingModeRTEFloat64 = shaderRoundingModeRTEFloat64_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan12Properties & setShaderRoundingModeRTZFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16_ ) VULKAN_HPP_NOEXCEPT + operator VkExportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT { - shaderRoundingModeRTZFloat16 = shaderRoundingModeRTZFloat16_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan12Properties & setShaderRoundingModeRTZFloat32( VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32_ ) VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ExportFenceWin32HandleInfoKHR const & ) const = default; +# else + bool operator==( ExportFenceWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - shaderRoundingModeRTZFloat32 = shaderRoundingModeRTZFloat32_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pAttributes == rhs.pAttributes ) && + ( dwAccess == rhs.dwAccess ) && ( name == rhs.name ); } - PhysicalDeviceVulkan12Properties & setShaderRoundingModeRTZFloat64( VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( ExportFenceWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - shaderRoundingModeRTZFloat64 = shaderRoundingModeRTZFloat64_; - return *this; + return !operator==( rhs ); } +# endif - PhysicalDeviceVulkan12Properties & setMaxUpdateAfterBindDescriptorsInAllPools( uint32_t maxUpdateAfterBindDescriptorsInAllPools_ ) VULKAN_HPP_NOEXCEPT - { - maxUpdateAfterBindDescriptorsInAllPools = maxUpdateAfterBindDescriptorsInAllPools_; - return *this; - } + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceWin32HandleInfoKHR; + const void * pNext = {}; + const SECURITY_ATTRIBUTES * pAttributes = {}; + DWORD dwAccess = {}; + LPCWSTR name = {}; + }; + static_assert( sizeof( ExportFenceWin32HandleInfoKHR ) == sizeof( VkExportFenceWin32HandleInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - PhysicalDeviceVulkan12Properties & setShaderUniformBufferArrayNonUniformIndexingNative( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative_ ) VULKAN_HPP_NOEXCEPT - { - shaderUniformBufferArrayNonUniformIndexingNative = shaderUniformBufferArrayNonUniformIndexingNative_; - return *this; - } + template <> + struct CppType + { + using Type = ExportFenceWin32HandleInfoKHR; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PhysicalDeviceVulkan12Properties & setShaderSampledImageArrayNonUniformIndexingNative( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative_ ) VULKAN_HPP_NOEXCEPT - { - shaderSampledImageArrayNonUniformIndexingNative = shaderSampledImageArrayNonUniformIndexingNative_; - return *this; - } + struct ExportMemoryAllocateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryAllocateInfo; - PhysicalDeviceVulkan12Properties & setShaderStorageBufferArrayNonUniformIndexingNative( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageBufferArrayNonUniformIndexingNative = shaderStorageBufferArrayNonUniformIndexingNative_; - return *this; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfo( + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {} ) VULKAN_HPP_NOEXCEPT + : handleTypes( handleTypes_ ) + {} - PhysicalDeviceVulkan12Properties & setShaderStorageImageArrayNonUniformIndexingNative( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageImageArrayNonUniformIndexingNative = shaderStorageImageArrayNonUniformIndexingNative_; - return *this; - } + VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfo( ExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceVulkan12Properties & setShaderInputAttachmentArrayNonUniformIndexingNative( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative_ ) VULKAN_HPP_NOEXCEPT - { - shaderInputAttachmentArrayNonUniformIndexingNative = shaderInputAttachmentArrayNonUniformIndexingNative_; - return *this; - } + ExportMemoryAllocateInfo( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : ExportMemoryAllocateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceVulkan12Properties & setRobustBufferAccessUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - robustBufferAccessUpdateAfterBind = robustBufferAccessUpdateAfterBind_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 ExportMemoryAllocateInfo & + operator=( ExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceVulkan12Properties & setQuadDivergentImplicitLod( VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod_ ) VULKAN_HPP_NOEXCEPT + ExportMemoryAllocateInfo & operator=( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - quadDivergentImplicitLod = quadDivergentImplicitLod_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceVulkan12Properties & setMaxPerStageDescriptorUpdateAfterBindSamplers( uint32_t maxPerStageDescriptorUpdateAfterBindSamplers_ ) VULKAN_HPP_NOEXCEPT + ExportMemoryAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - maxPerStageDescriptorUpdateAfterBindSamplers = maxPerStageDescriptorUpdateAfterBindSamplers_; + pNext = pNext_; return *this; } - PhysicalDeviceVulkan12Properties & setMaxPerStageDescriptorUpdateAfterBindUniformBuffers( uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers_ ) VULKAN_HPP_NOEXCEPT + ExportMemoryAllocateInfo & + setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT { - maxPerStageDescriptorUpdateAfterBindUniformBuffers = maxPerStageDescriptorUpdateAfterBindUniformBuffers_; + handleTypes = handleTypes_; return *this; } - PhysicalDeviceVulkan12Properties & setMaxPerStageDescriptorUpdateAfterBindStorageBuffers( uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers_ ) VULKAN_HPP_NOEXCEPT + operator VkExportMemoryAllocateInfo const &() const VULKAN_HPP_NOEXCEPT { - maxPerStageDescriptorUpdateAfterBindStorageBuffers = maxPerStageDescriptorUpdateAfterBindStorageBuffers_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan12Properties & setMaxPerStageDescriptorUpdateAfterBindSampledImages( uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages_ ) VULKAN_HPP_NOEXCEPT + operator VkExportMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT { - maxPerStageDescriptorUpdateAfterBindSampledImages = maxPerStageDescriptorUpdateAfterBindSampledImages_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan12Properties & setMaxPerStageDescriptorUpdateAfterBindStorageImages( uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ExportMemoryAllocateInfo const & ) const = default; +#else + bool operator==( ExportMemoryAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - maxPerStageDescriptorUpdateAfterBindStorageImages = maxPerStageDescriptorUpdateAfterBindStorageImages_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleTypes == rhs.handleTypes ); } - PhysicalDeviceVulkan12Properties & setMaxPerStageDescriptorUpdateAfterBindInputAttachments( uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( ExportMemoryAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - maxPerStageDescriptorUpdateAfterBindInputAttachments = maxPerStageDescriptorUpdateAfterBindInputAttachments_; - return *this; + return !operator==( rhs ); } +#endif - PhysicalDeviceVulkan12Properties & setMaxPerStageUpdateAfterBindResources( uint32_t maxPerStageUpdateAfterBindResources_ ) VULKAN_HPP_NOEXCEPT - { - maxPerStageUpdateAfterBindResources = maxPerStageUpdateAfterBindResources_; - return *this; - } + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {}; + }; + static_assert( sizeof( ExportMemoryAllocateInfo ) == sizeof( VkExportMemoryAllocateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - PhysicalDeviceVulkan12Properties & setMaxDescriptorSetUpdateAfterBindSamplers( uint32_t maxDescriptorSetUpdateAfterBindSamplers_ ) VULKAN_HPP_NOEXCEPT - { - maxDescriptorSetUpdateAfterBindSamplers = maxDescriptorSetUpdateAfterBindSamplers_; - return *this; - } + template <> + struct CppType + { + using Type = ExportMemoryAllocateInfo; + }; + using ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo; + + struct ExportMemoryAllocateInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryAllocateInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfoNV( + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {} ) VULKAN_HPP_NOEXCEPT + : handleTypes( handleTypes_ ) + {} + + VULKAN_HPP_CONSTEXPR + ExportMemoryAllocateInfoNV( ExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ExportMemoryAllocateInfoNV( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : ExportMemoryAllocateInfoNV( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceVulkan12Properties & setMaxDescriptorSetUpdateAfterBindUniformBuffers( uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 ExportMemoryAllocateInfoNV & + operator=( ExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ExportMemoryAllocateInfoNV & operator=( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT { - maxDescriptorSetUpdateAfterBindUniformBuffers = maxDescriptorSetUpdateAfterBindUniformBuffers_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceVulkan12Properties & setMaxDescriptorSetUpdateAfterBindUniformBuffersDynamic( uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ ) VULKAN_HPP_NOEXCEPT + ExportMemoryAllocateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_; + pNext = pNext_; return *this; } - PhysicalDeviceVulkan12Properties & setMaxDescriptorSetUpdateAfterBindStorageBuffers( uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers_ ) VULKAN_HPP_NOEXCEPT + ExportMemoryAllocateInfoNV & + setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT { - maxDescriptorSetUpdateAfterBindStorageBuffers = maxDescriptorSetUpdateAfterBindStorageBuffers_; + handleTypes = handleTypes_; return *this; } - PhysicalDeviceVulkan12Properties & setMaxDescriptorSetUpdateAfterBindStorageBuffersDynamic( uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ ) VULKAN_HPP_NOEXCEPT + operator VkExportMemoryAllocateInfoNV const &() const VULKAN_HPP_NOEXCEPT { - maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan12Properties & setMaxDescriptorSetUpdateAfterBindSampledImages( uint32_t maxDescriptorSetUpdateAfterBindSampledImages_ ) VULKAN_HPP_NOEXCEPT + operator VkExportMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT { - maxDescriptorSetUpdateAfterBindSampledImages = maxDescriptorSetUpdateAfterBindSampledImages_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan12Properties & setMaxDescriptorSetUpdateAfterBindStorageImages( uint32_t maxDescriptorSetUpdateAfterBindStorageImages_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ExportMemoryAllocateInfoNV const & ) const = default; +#else + bool operator==( ExportMemoryAllocateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - maxDescriptorSetUpdateAfterBindStorageImages = maxDescriptorSetUpdateAfterBindStorageImages_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleTypes == rhs.handleTypes ); } - PhysicalDeviceVulkan12Properties & setMaxDescriptorSetUpdateAfterBindInputAttachments( uint32_t maxDescriptorSetUpdateAfterBindInputAttachments_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( ExportMemoryAllocateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - maxDescriptorSetUpdateAfterBindInputAttachments = maxDescriptorSetUpdateAfterBindInputAttachments_; - return *this; + return !operator==( rhs ); } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {}; + }; + static_assert( sizeof( ExportMemoryAllocateInfoNV ) == sizeof( VkExportMemoryAllocateInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = ExportMemoryAllocateInfoNV; + }; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + struct ExportMemoryWin32HandleInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryWin32HandleInfoKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoKHR( const SECURITY_ATTRIBUTES * pAttributes_ = {}, + DWORD dwAccess_ = {}, + LPCWSTR name_ = {} ) VULKAN_HPP_NOEXCEPT + : pAttributes( pAttributes_ ) + , dwAccess( dwAccess_ ) + , name( name_ ) + {} + + VULKAN_HPP_CONSTEXPR + ExportMemoryWin32HandleInfoKHR( ExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ExportMemoryWin32HandleInfoKHR( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : ExportMemoryWin32HandleInfoKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoKHR & + operator=( ExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceVulkan12Properties & setSupportedDepthResolveModes( VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes_ ) VULKAN_HPP_NOEXCEPT + ExportMemoryWin32HandleInfoKHR & operator=( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - supportedDepthResolveModes = supportedDepthResolveModes_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceVulkan12Properties & setSupportedStencilResolveModes( VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes_ ) VULKAN_HPP_NOEXCEPT + ExportMemoryWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - supportedStencilResolveModes = supportedStencilResolveModes_; + pNext = pNext_; return *this; } - PhysicalDeviceVulkan12Properties & setIndependentResolveNone( VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone_ ) VULKAN_HPP_NOEXCEPT + ExportMemoryWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES * pAttributes_ ) VULKAN_HPP_NOEXCEPT { - independentResolveNone = independentResolveNone_; + pAttributes = pAttributes_; return *this; } - PhysicalDeviceVulkan12Properties & setIndependentResolve( VULKAN_HPP_NAMESPACE::Bool32 independentResolve_ ) VULKAN_HPP_NOEXCEPT + ExportMemoryWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT { - independentResolve = independentResolve_; + dwAccess = dwAccess_; return *this; } - PhysicalDeviceVulkan12Properties & setFilterMinmaxSingleComponentFormats( VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats_ ) VULKAN_HPP_NOEXCEPT + ExportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT { - filterMinmaxSingleComponentFormats = filterMinmaxSingleComponentFormats_; + name = name_; return *this; } - PhysicalDeviceVulkan12Properties & setFilterMinmaxImageComponentMapping( VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping_ ) VULKAN_HPP_NOEXCEPT + operator VkExportMemoryWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - filterMinmaxImageComponentMapping = filterMinmaxImageComponentMapping_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan12Properties & setMaxTimelineSemaphoreValueDifference( uint64_t maxTimelineSemaphoreValueDifference_ ) VULKAN_HPP_NOEXCEPT + operator VkExportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT { - maxTimelineSemaphoreValueDifference = maxTimelineSemaphoreValueDifference_; - return *this; + return *reinterpret_cast( this ); } - PhysicalDeviceVulkan12Properties & setFramebufferIntegerColorSampleCounts( VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferIntegerColorSampleCounts_ ) VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ExportMemoryWin32HandleInfoKHR const & ) const = default; +# else + bool operator==( ExportMemoryWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - framebufferIntegerColorSampleCounts = framebufferIntegerColorSampleCounts_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pAttributes == rhs.pAttributes ) && + ( dwAccess == rhs.dwAccess ) && ( name == rhs.name ); } - operator VkPhysicalDeviceVulkan12Properties const&() const VULKAN_HPP_NOEXCEPT + bool operator!=( ExportMemoryWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return !operator==( rhs ); } +# endif - operator VkPhysicalDeviceVulkan12Properties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( PhysicalDeviceVulkan12Properties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( driverID == rhs.driverID ) - && ( memcmp( driverName, rhs.driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof( char ) ) == 0 ) - && ( memcmp( driverInfo, rhs.driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof( char ) ) == 0 ) - && ( conformanceVersion == rhs.conformanceVersion ) - && ( denormBehaviorIndependence == rhs.denormBehaviorIndependence ) - && ( roundingModeIndependence == rhs.roundingModeIndependence ) - && ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 ) - && ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 ) - && ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 ) - && ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 ) - && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 ) - && ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 ) - && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 ) - && ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 ) - && ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 ) - && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 ) - && ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 ) - && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 ) - && ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 ) - && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 ) - && ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 ) - && ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools ) - && ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative ) - && ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative ) - && ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative ) - && ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative ) - && ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative ) - && ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind ) - && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod ) - && ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers ) - && ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers ) - && ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers ) - && ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages ) - && ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages ) - && ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments ) - && ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources ) - && ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers ) - && ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers ) - && ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic ) - && ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers ) - && ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic ) - && ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages ) - && ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages ) - && ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments ) - && ( supportedDepthResolveModes == rhs.supportedDepthResolveModes ) - && ( supportedStencilResolveModes == rhs.supportedStencilResolveModes ) - && ( independentResolveNone == rhs.independentResolveNone ) - && ( independentResolve == rhs.independentResolve ) - && ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats ) - && ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping ) - && ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference ) - && ( framebufferIntegerColorSampleCounts == rhs.framebufferIntegerColorSampleCounts ); - } - - bool operator!=( PhysicalDeviceVulkan12Properties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Properties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary; - char driverName[VK_MAX_DRIVER_NAME_SIZE] = {}; - char driverInfo[VK_MAX_DRIVER_INFO_SIZE] = {}; - VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {}; - VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly; - VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly; - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {}; - uint32_t maxUpdateAfterBindDescriptorsInAllPools = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {}; - uint32_t maxPerStageUpdateAfterBindResources = {}; - uint32_t maxDescriptorSetUpdateAfterBindSamplers = {}; - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {}; - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {}; - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {}; - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {}; - uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {}; - uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {}; - uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {}; - VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {}; - VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {}; - VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {}; - VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {}; - VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {}; - VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {}; - uint64_t maxTimelineSemaphoreValueDifference = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferIntegerColorSampleCounts = {}; + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoKHR; + const void * pNext = {}; + const SECURITY_ATTRIBUTES * pAttributes = {}; + DWORD dwAccess = {}; + LPCWSTR name = {}; }; - static_assert( sizeof( PhysicalDeviceVulkan12Properties ) == sizeof( VkPhysicalDeviceVulkan12Properties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ExportMemoryWin32HandleInfoKHR ) == sizeof( VkExportMemoryWin32HandleInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceVulkanMemoryModelFeatures + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkanMemoryModelFeatures( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = {} ) VULKAN_HPP_NOEXCEPT - : vulkanMemoryModel( vulkanMemoryModel_ ) - , vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ ) - , vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ ) + using Type = ExportMemoryWin32HandleInfoKHR; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + struct ExportMemoryWin32HandleInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryWin32HandleInfoNV; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoNV( const SECURITY_ATTRIBUTES * pAttributes_ = {}, + DWORD dwAccess_ = {} ) VULKAN_HPP_NOEXCEPT + : pAttributes( pAttributes_ ) + , dwAccess( dwAccess_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures ) - offsetof( PhysicalDeviceVulkanMemoryModelFeatures, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + ExportMemoryWin32HandleInfoNV( ExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceVulkanMemoryModelFeatures( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ExportMemoryWin32HandleInfoNV( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : ExportMemoryWin32HandleInfoNV( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceVulkanMemoryModelFeatures& operator=( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 ExportMemoryWin32HandleInfoNV & + operator=( ExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceVulkanMemoryModelFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + ExportMemoryWin32HandleInfoNV & operator=( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT + ExportMemoryWin32HandleInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - vulkanMemoryModel = vulkanMemoryModel_; + pNext = pNext_; return *this; } - PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT + ExportMemoryWin32HandleInfoNV & setPAttributes( const SECURITY_ATTRIBUTES * pAttributes_ ) VULKAN_HPP_NOEXCEPT { - vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_; + pAttributes = pAttributes_; return *this; } - PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModelAvailabilityVisibilityChains( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT + ExportMemoryWin32HandleInfoNV & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT { - vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_; + dwAccess = dwAccess_; return *this; } - operator VkPhysicalDeviceVulkanMemoryModelFeatures const&() const VULKAN_HPP_NOEXCEPT + operator VkExportMemoryWin32HandleInfoNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceVulkanMemoryModelFeatures &() VULKAN_HPP_NOEXCEPT + operator VkExportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceVulkanMemoryModelFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ExportMemoryWin32HandleInfoNV const & ) const = default; +# else + bool operator==( ExportMemoryWin32HandleInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( vulkanMemoryModel == rhs.vulkanMemoryModel ) - && ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope ) - && ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pAttributes == rhs.pAttributes ) && + ( dwAccess == rhs.dwAccess ); } - bool operator!=( PhysicalDeviceVulkanMemoryModelFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ExportMemoryWin32HandleInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkanMemoryModelFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {}; - VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {}; - VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoNV; + const void * pNext = {}; + const SECURITY_ATTRIBUTES * pAttributes = {}; + DWORD dwAccess = {}; }; - static_assert( sizeof( PhysicalDeviceVulkanMemoryModelFeatures ) == sizeof( VkPhysicalDeviceVulkanMemoryModelFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ExportMemoryWin32HandleInfoNV ) == sizeof( VkExportMemoryWin32HandleInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PhysicalDeviceYcbcrImageArraysFeaturesEXT + template <> + struct CppType + { + using Type = ExportMemoryWin32HandleInfoNV; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + struct ExportSemaphoreCreateInfo { - VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrImageArraysFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ = {} ) VULKAN_HPP_NOEXCEPT - : ycbcrImageArrays( ycbcrImageArrays_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportSemaphoreCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ExportSemaphoreCreateInfo( + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ = {} ) VULKAN_HPP_NOEXCEPT + : handleTypes( handleTypes_ ) {} - VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT & operator=( VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT ) - offsetof( PhysicalDeviceYcbcrImageArraysFeaturesEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + ExportSemaphoreCreateInfo( ExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceYcbcrImageArraysFeaturesEXT( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ExportSemaphoreCreateInfo( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : ExportSemaphoreCreateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PhysicalDeviceYcbcrImageArraysFeaturesEXT& operator=( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreCreateInfo & + operator=( ExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ExportSemaphoreCreateInfo & operator=( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PhysicalDeviceYcbcrImageArraysFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + ExportSemaphoreCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PhysicalDeviceYcbcrImageArraysFeaturesEXT & setYcbcrImageArrays( VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ ) VULKAN_HPP_NOEXCEPT + ExportSemaphoreCreateInfo & + setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT { - ycbcrImageArrays = ycbcrImageArrays_; + handleTypes = handleTypes_; return *this; } - operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkExportSemaphoreCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT &() VULKAN_HPP_NOEXCEPT + operator VkExportSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ExportSemaphoreCreateInfo const & ) const = default; +#else + bool operator==( ExportSemaphoreCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( ycbcrImageArrays == rhs.ycbcrImageArrays ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleTypes == rhs.handleTypes ); } - bool operator!=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ExportSemaphoreCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes = {}; }; - static_assert( sizeof( PhysicalDeviceYcbcrImageArraysFeaturesEXT ) == sizeof( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ExportSemaphoreCreateInfo ) == sizeof( VkExportSemaphoreCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineCacheCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineCacheCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ = {}, - size_t initialDataSize_ = {}, - const void* pInitialData_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , initialDataSize( initialDataSize_ ) - , pInitialData( pInitialData_ ) + using Type = ExportSemaphoreCreateInfo; + }; + using ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + struct ExportSemaphoreWin32HandleInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eExportSemaphoreWin32HandleInfoKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ExportSemaphoreWin32HandleInfoKHR( const SECURITY_ATTRIBUTES * pAttributes_ = {}, + DWORD dwAccess_ = {}, + LPCWSTR name_ = {} ) VULKAN_HPP_NOEXCEPT + : pAttributes( pAttributes_ ) + , dwAccess( dwAccess_ ) + , name( name_ ) {} - VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo & operator=( VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo ) - offsetof( PipelineCacheCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + ExportSemaphoreWin32HandleInfoKHR( ExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineCacheCreateInfo( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ExportSemaphoreWin32HandleInfoKHR( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : ExportSemaphoreWin32HandleInfoKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PipelineCacheCreateInfo& operator=( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 ExportSemaphoreWin32HandleInfoKHR & + operator=( ExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ExportSemaphoreWin32HandleInfoKHR & operator=( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineCacheCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ExportSemaphoreWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PipelineCacheCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + ExportSemaphoreWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES * pAttributes_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + pAttributes = pAttributes_; return *this; } - PipelineCacheCreateInfo & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT + ExportSemaphoreWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT { - initialDataSize = initialDataSize_; + dwAccess = dwAccess_; return *this; } - PipelineCacheCreateInfo & setPInitialData( const void* pInitialData_ ) VULKAN_HPP_NOEXCEPT + ExportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT { - pInitialData = pInitialData_; + name = name_; return *this; } - operator VkPipelineCacheCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkExportSemaphoreWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineCacheCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkExportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineCacheCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ExportSemaphoreWin32HandleInfoKHR const & ) const = default; +# else + bool operator==( ExportSemaphoreWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( initialDataSize == rhs.initialDataSize ) - && ( pInitialData == rhs.pInitialData ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pAttributes == rhs.pAttributes ) && + ( dwAccess == rhs.dwAccess ) && ( name == rhs.name ); } - bool operator!=( PipelineCacheCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ExportSemaphoreWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCacheCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags = {}; - size_t initialDataSize = {}; - const void* pInitialData = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreWin32HandleInfoKHR; + const void * pNext = {}; + const SECURITY_ATTRIBUTES * pAttributes = {}; + DWORD dwAccess = {}; + LPCWSTR name = {}; }; - static_assert( sizeof( PipelineCacheCreateInfo ) == sizeof( VkPipelineCacheCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ExportSemaphoreWin32HandleInfoKHR ) == sizeof( VkExportSemaphoreWin32HandleInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineColorBlendAdvancedStateCreateInfoEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineColorBlendAdvancedStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ = {}, - VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated ) VULKAN_HPP_NOEXCEPT - : srcPremultiplied( srcPremultiplied_ ) - , dstPremultiplied( dstPremultiplied_ ) - , blendOverlap( blendOverlap_ ) + using Type = ExportSemaphoreWin32HandleInfoKHR; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + struct ExternalFormatANDROID + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFormatANDROID; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ExternalFormatANDROID( uint64_t externalFormat_ = {} ) VULKAN_HPP_NOEXCEPT + : externalFormat( externalFormat_ ) + {} + + VULKAN_HPP_CONSTEXPR ExternalFormatANDROID( ExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ExternalFormatANDROID( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + : ExternalFormatANDROID( *reinterpret_cast( &rhs ) ) {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ExternalFormatANDROID & + operator=( ExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + ExternalFormatANDROID & operator=( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT ) - offsetof( PipelineColorBlendAdvancedStateCreateInfoEXT, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineColorBlendAdvancedStateCreateInfoEXT( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + ExternalFormatANDROID & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - PipelineColorBlendAdvancedStateCreateInfoEXT& operator=( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + ExternalFormatANDROID & setExternalFormat( uint64_t externalFormat_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + externalFormat = externalFormat_; return *this; } - PipelineColorBlendAdvancedStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + operator VkExternalFormatANDROID const &() const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; - return *this; + return *reinterpret_cast( this ); } - PipelineColorBlendAdvancedStateCreateInfoEXT & setSrcPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ ) VULKAN_HPP_NOEXCEPT + operator VkExternalFormatANDROID &() VULKAN_HPP_NOEXCEPT { - srcPremultiplied = srcPremultiplied_; - return *this; + return *reinterpret_cast( this ); } - PipelineColorBlendAdvancedStateCreateInfoEXT & setDstPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ ) VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ExternalFormatANDROID const & ) const = default; +# else + bool operator==( ExternalFormatANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT { - dstPremultiplied = dstPremultiplied_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( externalFormat == rhs.externalFormat ); } - PipelineColorBlendAdvancedStateCreateInfoEXT & setBlendOverlap( VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( ExternalFormatANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT { - blendOverlap = blendOverlap_; + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFormatANDROID; + void * pNext = {}; + uint64_t externalFormat = {}; + }; + static_assert( sizeof( ExternalFormatANDROID ) == sizeof( VkExternalFormatANDROID ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = ExternalFormatANDROID; + }; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + + struct ExternalImageFormatProperties + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalImageFormatProperties; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ExternalImageFormatProperties( + VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {} ) VULKAN_HPP_NOEXCEPT + : externalMemoryProperties( externalMemoryProperties_ ) + {} + + VULKAN_HPP_CONSTEXPR + ExternalImageFormatProperties( ExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ExternalImageFormatProperties( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT + : ExternalImageFormatProperties( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ExternalImageFormatProperties & + operator=( ExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ExternalImageFormatProperties & operator=( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkExternalImageFormatProperties const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineColorBlendAdvancedStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkExternalImageFormatProperties &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineColorBlendAdvancedStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ExternalImageFormatProperties const & ) const = default; +#else + bool operator==( ExternalImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcPremultiplied == rhs.srcPremultiplied ) - && ( dstPremultiplied == rhs.dstPremultiplied ) - && ( blendOverlap == rhs.blendOverlap ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( externalMemoryProperties == rhs.externalMemoryProperties ); } - bool operator!=( PipelineColorBlendAdvancedStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ExternalImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied = {}; - VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied = {}; - VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalImageFormatProperties; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {}; }; - static_assert( sizeof( PipelineColorBlendAdvancedStateCreateInfoEXT ) == sizeof( VkPipelineColorBlendAdvancedStateCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ExternalImageFormatProperties ) == sizeof( VkExternalImageFormatProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineCompilerControlCreateInfoAMD + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineCompilerControlCreateInfoAMD( VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ = {} ) VULKAN_HPP_NOEXCEPT - : compilerControlFlags( compilerControlFlags_ ) + using Type = ExternalImageFormatProperties; + }; + using ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties; + + struct ExternalMemoryBufferCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryBufferCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ExternalMemoryBufferCreateInfo( + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {} ) VULKAN_HPP_NOEXCEPT + : handleTypes( handleTypes_ ) {} - VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD & operator=( VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD ) - offsetof( PipelineCompilerControlCreateInfoAMD, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + ExternalMemoryBufferCreateInfo( ExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineCompilerControlCreateInfoAMD( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ExternalMemoryBufferCreateInfo( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : ExternalMemoryBufferCreateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ExternalMemoryBufferCreateInfo & + operator=( ExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineCompilerControlCreateInfoAMD& operator=( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT + ExternalMemoryBufferCreateInfo & operator=( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineCompilerControlCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ExternalMemoryBufferCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PipelineCompilerControlCreateInfoAMD & setCompilerControlFlags( VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ ) VULKAN_HPP_NOEXCEPT + ExternalMemoryBufferCreateInfo & + setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT { - compilerControlFlags = compilerControlFlags_; + handleTypes = handleTypes_; return *this; } - operator VkPipelineCompilerControlCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT + operator VkExternalMemoryBufferCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineCompilerControlCreateInfoAMD &() VULKAN_HPP_NOEXCEPT + operator VkExternalMemoryBufferCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineCompilerControlCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ExternalMemoryBufferCreateInfo const & ) const = default; +#else + bool operator==( ExternalMemoryBufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( compilerControlFlags == rhs.compilerControlFlags ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleTypes == rhs.handleTypes ); } - bool operator!=( PipelineCompilerControlCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ExternalMemoryBufferCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCompilerControlCreateInfoAMD; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryBufferCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {}; }; - static_assert( sizeof( PipelineCompilerControlCreateInfoAMD ) == sizeof( VkPipelineCompilerControlCreateInfoAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ExternalMemoryBufferCreateInfo ) == sizeof( VkExternalMemoryBufferCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineCoverageModulationStateCreateInfoNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineCoverageModulationStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_ = {}, - VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_ = VULKAN_HPP_NAMESPACE::CoverageModulationModeNV::eNone, - VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_ = {}, - uint32_t coverageModulationTableCount_ = {}, - const float* pCoverageModulationTable_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , coverageModulationMode( coverageModulationMode_ ) - , coverageModulationTableEnable( coverageModulationTableEnable_ ) - , coverageModulationTableCount( coverageModulationTableCount_ ) - , pCoverageModulationTable( pCoverageModulationTable_ ) + using Type = ExternalMemoryBufferCreateInfo; + }; + using ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo; + + struct ExternalMemoryImageCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryImageCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfo( + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {} ) VULKAN_HPP_NOEXCEPT + : handleTypes( handleTypes_ ) + {} + + VULKAN_HPP_CONSTEXPR + ExternalMemoryImageCreateInfo( ExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ExternalMemoryImageCreateInfo( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : ExternalMemoryImageCreateInfo( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV & operator=( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 ExternalMemoryImageCreateInfo & + operator=( ExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ExternalMemoryImageCreateInfo & operator=( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV ) - offsetof( PipelineCoverageModulationStateCreateInfoNV, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineCoverageModulationStateCreateInfoNV( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + ExternalMemoryImageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - PipelineCoverageModulationStateCreateInfoNV& operator=( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + ExternalMemoryImageCreateInfo & + setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + handleTypes = handleTypes_; return *this; } - PipelineCoverageModulationStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + operator VkExternalMemoryImageCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; - return *this; + return *reinterpret_cast( this ); } - PipelineCoverageModulationStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT + operator VkExternalMemoryImageCreateInfo &() VULKAN_HPP_NOEXCEPT { - flags = flags_; - return *this; + return *reinterpret_cast( this ); } - PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationMode( VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ExternalMemoryImageCreateInfo const & ) const = default; +#else + bool operator==( ExternalMemoryImageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - coverageModulationMode = coverageModulationMode_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleTypes == rhs.handleTypes ); } - PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTableEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( ExternalMemoryImageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - coverageModulationTableEnable = coverageModulationTableEnable_; + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {}; + }; + static_assert( sizeof( ExternalMemoryImageCreateInfo ) == sizeof( VkExternalMemoryImageCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = ExternalMemoryImageCreateInfo; + }; + using ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo; + + struct ExternalMemoryImageCreateInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryImageCreateInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfoNV( + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {} ) VULKAN_HPP_NOEXCEPT + : handleTypes( handleTypes_ ) + {} + + VULKAN_HPP_CONSTEXPR + ExternalMemoryImageCreateInfoNV( ExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ExternalMemoryImageCreateInfoNV( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : ExternalMemoryImageCreateInfoNV( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ExternalMemoryImageCreateInfoNV & + operator=( ExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ExternalMemoryImageCreateInfoNV & operator=( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTableCount( uint32_t coverageModulationTableCount_ ) VULKAN_HPP_NOEXCEPT + ExternalMemoryImageCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - coverageModulationTableCount = coverageModulationTableCount_; + pNext = pNext_; return *this; } - PipelineCoverageModulationStateCreateInfoNV & setPCoverageModulationTable( const float* pCoverageModulationTable_ ) VULKAN_HPP_NOEXCEPT + ExternalMemoryImageCreateInfoNV & + setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT { - pCoverageModulationTable = pCoverageModulationTable_; + handleTypes = handleTypes_; return *this; } - operator VkPipelineCoverageModulationStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT + operator VkExternalMemoryImageCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineCoverageModulationStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT + operator VkExternalMemoryImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineCoverageModulationStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ExternalMemoryImageCreateInfoNV const & ) const = default; +#else + bool operator==( ExternalMemoryImageCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( coverageModulationMode == rhs.coverageModulationMode ) - && ( coverageModulationTableEnable == rhs.coverageModulationTableEnable ) - && ( coverageModulationTableCount == rhs.coverageModulationTableCount ) - && ( pCoverageModulationTable == rhs.pCoverageModulationTable ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleTypes == rhs.handleTypes ); } - bool operator!=( PipelineCoverageModulationStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ExternalMemoryImageCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageModulationStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags = {}; - VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode = VULKAN_HPP_NAMESPACE::CoverageModulationModeNV::eNone; - VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable = {}; - uint32_t coverageModulationTableCount = {}; - const float* pCoverageModulationTable = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {}; }; - static_assert( sizeof( PipelineCoverageModulationStateCreateInfoNV ) == sizeof( VkPipelineCoverageModulationStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ExternalMemoryImageCreateInfoNV ) == sizeof( VkExternalMemoryImageCreateInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineCoverageReductionStateCreateInfoNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineCoverageReductionStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ = {}, - VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , coverageReductionMode( coverageReductionMode_ ) + using Type = ExternalMemoryImageCreateInfoNV; + }; + + struct FilterCubicImageViewImageFormatPropertiesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eFilterCubicImageViewImageFormatPropertiesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR FilterCubicImageViewImageFormatPropertiesEXT( + VULKAN_HPP_NAMESPACE::Bool32 filterCubic_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax_ = {} ) VULKAN_HPP_NOEXCEPT + : filterCubic( filterCubic_ ) + , filterCubicMinmax( filterCubicMinmax_ ) + {} + + VULKAN_HPP_CONSTEXPR FilterCubicImageViewImageFormatPropertiesEXT( + FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + FilterCubicImageViewImageFormatPropertiesEXT( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : FilterCubicImageViewImageFormatPropertiesEXT( + *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 FilterCubicImageViewImageFormatPropertiesEXT & + operator=( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV & operator=( VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + FilterCubicImageViewImageFormatPropertiesEXT & + operator=( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV ) - offsetof( PipelineCoverageReductionStateCreateInfoNV, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineCoverageReductionStateCreateInfoNV( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkFilterCubicImageViewImageFormatPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkFilterCubicImageViewImageFormatPropertiesEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( FilterCubicImageViewImageFormatPropertiesEXT const & ) const = default; +#else + bool operator==( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( filterCubic == rhs.filterCubic ) && + ( filterCubicMinmax == rhs.filterCubicMinmax ); + } + + bool operator!=( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - *this = rhs; + return !operator==( rhs ); } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 filterCubic = {}; + VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax = {}; + }; + static_assert( sizeof( FilterCubicImageViewImageFormatPropertiesEXT ) == + sizeof( VkFilterCubicImageViewImageFormatPropertiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = FilterCubicImageViewImageFormatPropertiesEXT; + }; + + struct FragmentShadingRateAttachmentInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eFragmentShadingRateAttachmentInfoKHR; - PipelineCoverageReductionStateCreateInfoNV& operator=( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR FragmentShadingRateAttachmentInfoKHR( + const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pFragmentShadingRateAttachment_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize_ = {} ) VULKAN_HPP_NOEXCEPT + : pFragmentShadingRateAttachment( pFragmentShadingRateAttachment_ ) + , shadingRateAttachmentTexelSize( shadingRateAttachmentTexelSize_ ) + {} + + VULKAN_HPP_CONSTEXPR FragmentShadingRateAttachmentInfoKHR( FragmentShadingRateAttachmentInfoKHR const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + FragmentShadingRateAttachmentInfoKHR( VkFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : FragmentShadingRateAttachmentInfoKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 FragmentShadingRateAttachmentInfoKHR & + operator=( FragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + FragmentShadingRateAttachmentInfoKHR & + operator=( VkFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineCoverageReductionStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + FragmentShadingRateAttachmentInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PipelineCoverageReductionStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT + FragmentShadingRateAttachmentInfoKHR & setPFragmentShadingRateAttachment( + const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pFragmentShadingRateAttachment_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + pFragmentShadingRateAttachment = pFragmentShadingRateAttachment_; return *this; } - PipelineCoverageReductionStateCreateInfoNV & setCoverageReductionMode( VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT + FragmentShadingRateAttachmentInfoKHR & setShadingRateAttachmentTexelSize( + VULKAN_HPP_NAMESPACE::Extent2D const & shadingRateAttachmentTexelSize_ ) VULKAN_HPP_NOEXCEPT { - coverageReductionMode = coverageReductionMode_; + shadingRateAttachmentTexelSize = shadingRateAttachmentTexelSize_; return *this; } - operator VkPipelineCoverageReductionStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT + operator VkFragmentShadingRateAttachmentInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineCoverageReductionStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT + operator VkFragmentShadingRateAttachmentInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineCoverageReductionStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( FragmentShadingRateAttachmentInfoKHR const & ) const = default; +#else + bool operator==( FragmentShadingRateAttachmentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( coverageReductionMode == rhs.coverageReductionMode ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( pFragmentShadingRateAttachment == rhs.pFragmentShadingRateAttachment ) && + ( shadingRateAttachmentTexelSize == rhs.shadingRateAttachmentTexelSize ); } - bool operator!=( PipelineCoverageReductionStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( FragmentShadingRateAttachmentInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageReductionStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags = {}; - VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFragmentShadingRateAttachmentInfoKHR; + const void * pNext = {}; + const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pFragmentShadingRateAttachment = {}; + VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize = {}; }; - static_assert( sizeof( PipelineCoverageReductionStateCreateInfoNV ) == sizeof( VkPipelineCoverageReductionStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( FragmentShadingRateAttachmentInfoKHR ) == sizeof( VkFragmentShadingRateAttachmentInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineCoverageToColorStateCreateInfoNV + template <> + struct CppType + { + using Type = FragmentShadingRateAttachmentInfoKHR; + }; + + struct FramebufferAttachmentImageInfo { - VULKAN_HPP_CONSTEXPR PipelineCoverageToColorStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ = {}, - uint32_t coverageToColorLocation_ = {} ) VULKAN_HPP_NOEXCEPT + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferAttachmentImageInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + FramebufferAttachmentImageInfo( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {}, + VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, + uint32_t width_ = {}, + uint32_t height_ = {}, + uint32_t layerCount_ = {}, + uint32_t viewFormatCount_ = {}, + const VULKAN_HPP_NAMESPACE::Format * pViewFormats_ = {} ) VULKAN_HPP_NOEXCEPT : flags( flags_ ) - , coverageToColorEnable( coverageToColorEnable_ ) - , coverageToColorLocation( coverageToColorLocation_ ) + , usage( usage_ ) + , width( width_ ) + , height( height_ ) + , layerCount( layerCount_ ) + , viewFormatCount( viewFormatCount_ ) + , pViewFormats( pViewFormats_ ) {} - VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV & operator=( VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV ) - offsetof( PipelineCoverageToColorStateCreateInfoNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + FramebufferAttachmentImageInfo( FramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineCoverageToColorStateCreateInfoNV( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + FramebufferAttachmentImageInfo( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : FramebufferAttachmentImageInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + FramebufferAttachmentImageInfo( + VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_, + VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_, + uint32_t width_, + uint32_t height_, + uint32_t layerCount_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewFormats_ ) + : flags( flags_ ) + , usage( usage_ ) + , width( width_ ) + , height( height_ ) + , layerCount( layerCount_ ) + , viewFormatCount( static_cast( viewFormats_.size() ) ) + , pViewFormats( viewFormats_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PipelineCoverageToColorStateCreateInfoNV& operator=( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentImageInfo & + operator=( FramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + FramebufferAttachmentImageInfo & operator=( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineCoverageToColorStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + FramebufferAttachmentImageInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PipelineCoverageToColorStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT + FramebufferAttachmentImageInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { flags = flags_; return *this; } - PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ ) VULKAN_HPP_NOEXCEPT + FramebufferAttachmentImageInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT { - coverageToColorEnable = coverageToColorEnable_; + usage = usage_; return *this; } - PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorLocation( uint32_t coverageToColorLocation_ ) VULKAN_HPP_NOEXCEPT + FramebufferAttachmentImageInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT { - coverageToColorLocation = coverageToColorLocation_; + width = width_; return *this; } - operator VkPipelineCoverageToColorStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineCoverageToColorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT + FramebufferAttachmentImageInfo & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + height = height_; + return *this; } - bool operator==( PipelineCoverageToColorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + FramebufferAttachmentImageInfo & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( coverageToColorEnable == rhs.coverageToColorEnable ) - && ( coverageToColorLocation == rhs.coverageToColorLocation ); + layerCount = layerCount_; + return *this; } - bool operator!=( PipelineCoverageToColorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + FramebufferAttachmentImageInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + viewFormatCount = viewFormatCount_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageToColorStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags = {}; - VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable = {}; - uint32_t coverageToColorLocation = {}; - }; - static_assert( sizeof( PipelineCoverageToColorStateCreateInfoNV ) == sizeof( VkPipelineCoverageToColorStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PipelineCreationFeedbackEXT - { - PipelineCreationFeedbackEXT( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlagsEXT flags_ = {}, - uint64_t duration_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , duration( duration_ ) - {} - - PipelineCreationFeedbackEXT( VkPipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT + FramebufferAttachmentImageInfo & + setPViewFormats( const VULKAN_HPP_NAMESPACE::Format * pViewFormats_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pViewFormats = pViewFormats_; + return *this; } - PipelineCreationFeedbackEXT& operator=( VkPipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + FramebufferAttachmentImageInfo & setViewFormats( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewFormats_ ) + VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + viewFormatCount = static_cast( viewFormats_.size() ); + pViewFormats = viewFormats_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPipelineCreationFeedbackEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkFramebufferAttachmentImageInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineCreationFeedbackEXT &() VULKAN_HPP_NOEXCEPT + operator VkFramebufferAttachmentImageInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineCreationFeedbackEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( FramebufferAttachmentImageInfo const & ) const = default; +#else + bool operator==( FramebufferAttachmentImageInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( flags == rhs.flags ) - && ( duration == rhs.duration ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( usage == rhs.usage ) && + ( width == rhs.width ) && ( height == rhs.height ) && ( layerCount == rhs.layerCount ) && + ( viewFormatCount == rhs.viewFormatCount ) && ( pViewFormats == rhs.pViewFormats ); } - bool operator!=( PipelineCreationFeedbackEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( FramebufferAttachmentImageInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlagsEXT flags = {}; - uint64_t duration = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentImageInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {}; + VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {}; + uint32_t width = {}; + uint32_t height = {}; + uint32_t layerCount = {}; + uint32_t viewFormatCount = {}; + const VULKAN_HPP_NAMESPACE::Format * pViewFormats = {}; }; - static_assert( sizeof( PipelineCreationFeedbackEXT ) == sizeof( VkPipelineCreationFeedbackEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( FramebufferAttachmentImageInfo ) == sizeof( VkFramebufferAttachmentImageInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineCreationFeedbackCreateInfoEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_ = {}, - uint32_t pipelineStageCreationFeedbackCount_ = {}, - VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks_ = {} ) VULKAN_HPP_NOEXCEPT - : pPipelineCreationFeedback( pPipelineCreationFeedback_ ) - , pipelineStageCreationFeedbackCount( pipelineStageCreationFeedbackCount_ ) - , pPipelineStageCreationFeedbacks( pPipelineStageCreationFeedbacks_ ) + using Type = FramebufferAttachmentImageInfo; + }; + using FramebufferAttachmentImageInfoKHR = FramebufferAttachmentImageInfo; + + struct FramebufferAttachmentsCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferAttachmentsCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR FramebufferAttachmentsCreateInfo( + uint32_t attachmentImageInfoCount_ = {}, + const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo * pAttachmentImageInfos_ = {} ) VULKAN_HPP_NOEXCEPT + : attachmentImageInfoCount( attachmentImageInfoCount_ ) + , pAttachmentImageInfos( pAttachmentImageInfos_ ) {} - VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfoEXT ) - offsetof( PipelineCreationFeedbackCreateInfoEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + FramebufferAttachmentsCreateInfo( FramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineCreationFeedbackCreateInfoEXT( VkPipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + FramebufferAttachmentsCreateInfo( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : FramebufferAttachmentsCreateInfo( *reinterpret_cast( &rhs ) ) + {} - PipelineCreationFeedbackCreateInfoEXT& operator=( VkPipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + FramebufferAttachmentsCreateInfo( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + attachmentImageInfos_ ) + : attachmentImageInfoCount( static_cast( attachmentImageInfos_.size() ) ) + , pAttachmentImageInfos( attachmentImageInfos_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 FramebufferAttachmentsCreateInfo & + operator=( FramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + FramebufferAttachmentsCreateInfo & operator=( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineCreationFeedbackCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + FramebufferAttachmentsCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PipelineCreationFeedbackCreateInfoEXT & setPPipelineCreationFeedback( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_ ) VULKAN_HPP_NOEXCEPT + FramebufferAttachmentsCreateInfo & + setAttachmentImageInfoCount( uint32_t attachmentImageInfoCount_ ) VULKAN_HPP_NOEXCEPT { - pPipelineCreationFeedback = pPipelineCreationFeedback_; + attachmentImageInfoCount = attachmentImageInfoCount_; return *this; } - PipelineCreationFeedbackCreateInfoEXT & setPipelineStageCreationFeedbackCount( uint32_t pipelineStageCreationFeedbackCount_ ) VULKAN_HPP_NOEXCEPT + FramebufferAttachmentsCreateInfo & setPAttachmentImageInfos( + const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo * pAttachmentImageInfos_ ) VULKAN_HPP_NOEXCEPT { - pipelineStageCreationFeedbackCount = pipelineStageCreationFeedbackCount_; + pAttachmentImageInfos = pAttachmentImageInfos_; return *this; } - PipelineCreationFeedbackCreateInfoEXT & setPPipelineStageCreationFeedbacks( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + FramebufferAttachmentsCreateInfo & setAttachmentImageInfos( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + attachmentImageInfos_ ) VULKAN_HPP_NOEXCEPT { - pPipelineStageCreationFeedbacks = pPipelineStageCreationFeedbacks_; + attachmentImageInfoCount = static_cast( attachmentImageInfos_.size() ); + pAttachmentImageInfos = attachmentImageInfos_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPipelineCreationFeedbackCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkFramebufferAttachmentsCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineCreationFeedbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkFramebufferAttachmentsCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineCreationFeedbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( FramebufferAttachmentsCreateInfo const & ) const = default; +#else + bool operator==( FramebufferAttachmentsCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pPipelineCreationFeedback == rhs.pPipelineCreationFeedback ) - && ( pipelineStageCreationFeedbackCount == rhs.pipelineStageCreationFeedbackCount ) - && ( pPipelineStageCreationFeedbacks == rhs.pPipelineStageCreationFeedbacks ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( attachmentImageInfoCount == rhs.attachmentImageInfoCount ) && + ( pAttachmentImageInfos == rhs.pAttachmentImageInfos ); } - bool operator!=( PipelineCreationFeedbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( FramebufferAttachmentsCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCreationFeedbackCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback = {}; - uint32_t pipelineStageCreationFeedbackCount = {}; - VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentsCreateInfo; + const void * pNext = {}; + uint32_t attachmentImageInfoCount = {}; + const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo * pAttachmentImageInfos = {}; }; - static_assert( sizeof( PipelineCreationFeedbackCreateInfoEXT ) == sizeof( VkPipelineCreationFeedbackCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( FramebufferAttachmentsCreateInfo ) == sizeof( VkFramebufferAttachmentsCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineDiscardRectangleStateCreateInfoEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineDiscardRectangleStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_ = {}, - VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_ = VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT::eInclusive, - uint32_t discardRectangleCount_ = {}, - const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , discardRectangleMode( discardRectangleMode_ ) - , discardRectangleCount( discardRectangleCount_ ) - , pDiscardRectangles( pDiscardRectangles_ ) + using Type = FramebufferAttachmentsCreateInfo; + }; + using FramebufferAttachmentsCreateInfoKHR = FramebufferAttachmentsCreateInfo; + + struct GraphicsShaderGroupCreateInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsShaderGroupCreateInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR GraphicsShaderGroupCreateInfoNV( + uint32_t stageCount_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ = {} ) VULKAN_HPP_NOEXCEPT + : stageCount( stageCount_ ) + , pStages( pStages_ ) + , pVertexInputState( pVertexInputState_ ) + , pTessellationState( pTessellationState_ ) {} - VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT ) - offsetof( PipelineDiscardRectangleStateCreateInfoEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + GraphicsShaderGroupCreateInfoNV( GraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + GraphicsShaderGroupCreateInfoNV( VkGraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : GraphicsShaderGroupCreateInfoNV( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + GraphicsShaderGroupCreateInfoNV( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + stages_, + const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ = {}, + const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ = {} ) + : stageCount( static_cast( stages_.size() ) ) + , pStages( stages_.data() ) + , pVertexInputState( pVertexInputState_ ) + , pTessellationState( pTessellationState_ ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PipelineDiscardRectangleStateCreateInfoEXT( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 GraphicsShaderGroupCreateInfoNV & + operator=( GraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + GraphicsShaderGroupCreateInfoNV & operator=( VkGraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - PipelineDiscardRectangleStateCreateInfoEXT& operator=( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + GraphicsShaderGroupCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - PipelineDiscardRectangleStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + GraphicsShaderGroupCreateInfoNV & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + stageCount = stageCount_; return *this; } - PipelineDiscardRectangleStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT + GraphicsShaderGroupCreateInfoNV & + setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + pStages = pStages_; return *this; } - PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleMode( VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + GraphicsShaderGroupCreateInfoNV & setStages( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + stages_ ) VULKAN_HPP_NOEXCEPT { - discardRectangleMode = discardRectangleMode_; + stageCount = static_cast( stages_.size() ); + pStages = stages_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleCount( uint32_t discardRectangleCount_ ) VULKAN_HPP_NOEXCEPT + GraphicsShaderGroupCreateInfoNV & setPVertexInputState( + const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ ) VULKAN_HPP_NOEXCEPT { - discardRectangleCount = discardRectangleCount_; + pVertexInputState = pVertexInputState_; return *this; } - PipelineDiscardRectangleStateCreateInfoEXT & setPDiscardRectangles( const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles_ ) VULKAN_HPP_NOEXCEPT + GraphicsShaderGroupCreateInfoNV & setPTessellationState( + const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState_ ) VULKAN_HPP_NOEXCEPT { - pDiscardRectangles = pDiscardRectangles_; + pTessellationState = pTessellationState_; return *this; } - operator VkPipelineDiscardRectangleStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkGraphicsShaderGroupCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineDiscardRectangleStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkGraphicsShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineDiscardRectangleStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( GraphicsShaderGroupCreateInfoNV const & ) const = default; +#else + bool operator==( GraphicsShaderGroupCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( discardRectangleMode == rhs.discardRectangleMode ) - && ( discardRectangleCount == rhs.discardRectangleCount ) - && ( pDiscardRectangles == rhs.pDiscardRectangles ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stageCount == rhs.stageCount ) && + ( pStages == rhs.pStages ) && ( pVertexInputState == rhs.pVertexInputState ) && + ( pTessellationState == rhs.pTessellationState ); } - bool operator!=( PipelineDiscardRectangleStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( GraphicsShaderGroupCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags = {}; - VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode = VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT::eInclusive; - uint32_t discardRectangleCount = {}; - const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsShaderGroupCreateInfoNV; + const void * pNext = {}; + uint32_t stageCount = {}; + const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo * pStages = {}; + const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState = {}; + const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo * pTessellationState = {}; }; - static_assert( sizeof( PipelineDiscardRectangleStateCreateInfoEXT ) == sizeof( VkPipelineDiscardRectangleStateCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( GraphicsShaderGroupCreateInfoNV ) == sizeof( VkGraphicsShaderGroupCreateInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineExecutableInfoKHR + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineExecutableInfoKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, - uint32_t executableIndex_ = {} ) VULKAN_HPP_NOEXCEPT - : pipeline( pipeline_ ) - , executableIndex( executableIndex_ ) + using Type = GraphicsShaderGroupCreateInfoNV; + }; + + struct GraphicsPipelineShaderGroupsCreateInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR GraphicsPipelineShaderGroupsCreateInfoNV( + uint32_t groupCount_ = {}, + const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV * pGroups_ = {}, + uint32_t pipelineCount_ = {}, + const VULKAN_HPP_NAMESPACE::Pipeline * pPipelines_ = {} ) VULKAN_HPP_NOEXCEPT + : groupCount( groupCount_ ) + , pGroups( pGroups_ ) + , pipelineCount( pipelineCount_ ) + , pPipelines( pPipelines_ ) + {} + + VULKAN_HPP_CONSTEXPR GraphicsPipelineShaderGroupsCreateInfoNV( + GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + GraphicsPipelineShaderGroupsCreateInfoNV( VkGraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : GraphicsPipelineShaderGroupsCreateInfoNV( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + GraphicsPipelineShaderGroupsCreateInfoNV( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + groups_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pipelines_ = {} ) + : groupCount( static_cast( groups_.size() ) ) + , pGroups( groups_.data() ) + , pipelineCount( static_cast( pipelines_.size() ) ) + , pPipelines( pipelines_.data() ) {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & operator=( VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineShaderGroupsCreateInfoNV & + operator=( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + GraphicsPipelineShaderGroupsCreateInfoNV & + operator=( VkGraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR ) - offsetof( PipelineExecutableInfoKHR, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineExecutableInfoKHR( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + GraphicsPipelineShaderGroupsCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - PipelineExecutableInfoKHR& operator=( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + GraphicsPipelineShaderGroupsCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + groupCount = groupCount_; return *this; } - PipelineExecutableInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + GraphicsPipelineShaderGroupsCreateInfoNV & + setPGroups( const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV * pGroups_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + pGroups = pGroups_; return *this; } - PipelineExecutableInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + GraphicsPipelineShaderGroupsCreateInfoNV & setGroups( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + groups_ ) VULKAN_HPP_NOEXCEPT { - pipeline = pipeline_; + groupCount = static_cast( groups_.size() ); + pGroups = groups_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PipelineExecutableInfoKHR & setExecutableIndex( uint32_t executableIndex_ ) VULKAN_HPP_NOEXCEPT + GraphicsPipelineShaderGroupsCreateInfoNV & setPipelineCount( uint32_t pipelineCount_ ) VULKAN_HPP_NOEXCEPT { - executableIndex = executableIndex_; + pipelineCount = pipelineCount_; return *this; } - operator VkPipelineExecutableInfoKHR const&() const VULKAN_HPP_NOEXCEPT + GraphicsPipelineShaderGroupsCreateInfoNV & + setPPipelines( const VULKAN_HPP_NAMESPACE::Pipeline * pPipelines_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + pPipelines = pPipelines_; + return *this; } - operator VkPipelineExecutableInfoKHR &() VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + GraphicsPipelineShaderGroupsCreateInfoNV & setPipelines( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pipelines_ ) + VULKAN_HPP_NOEXCEPT + { + pipelineCount = static_cast( pipelines_.size() ); + pPipelines = pipelines_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkGraphicsPipelineShaderGroupsCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkGraphicsPipelineShaderGroupsCreateInfoNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineExecutableInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( GraphicsPipelineShaderGroupsCreateInfoNV const & ) const = default; +#else + bool operator==( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pipeline == rhs.pipeline ) - && ( executableIndex == rhs.executableIndex ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( groupCount == rhs.groupCount ) && + ( pGroups == rhs.pGroups ) && ( pipelineCount == rhs.pipelineCount ) && ( pPipelines == rhs.pPipelines ); } - bool operator!=( PipelineExecutableInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Pipeline pipeline = {}; - uint32_t executableIndex = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV; + const void * pNext = {}; + uint32_t groupCount = {}; + const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV * pGroups = {}; + uint32_t pipelineCount = {}; + const VULKAN_HPP_NAMESPACE::Pipeline * pPipelines = {}; }; - static_assert( sizeof( PipelineExecutableInfoKHR ) == sizeof( VkPipelineExecutableInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( GraphicsPipelineShaderGroupsCreateInfoNV ) == + sizeof( VkGraphicsPipelineShaderGroupsCreateInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineExecutableInternalRepresentationKHR + template <> + struct CppType { - PipelineExecutableInternalRepresentationKHR( std::array const& name_ = {}, - std::array const& description_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 isText_ = {}, - size_t dataSize_ = {}, - void* pData_ = {} ) VULKAN_HPP_NOEXCEPT - : name{} - , description{} - , isText( isText_ ) - , dataSize( dataSize_ ) - , pData( pData_ ) - { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( name, name_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( description, description_ ); - } + using Type = GraphicsPipelineShaderGroupsCreateInfoNV; + }; - VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR & operator=( VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT + struct HeadlessSurfaceCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHeadlessSurfaceCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR HeadlessSurfaceCreateInfoEXT( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ = {} ) + VULKAN_HPP_NOEXCEPT : flags( flags_ ) + {} + + VULKAN_HPP_CONSTEXPR + HeadlessSurfaceCreateInfoEXT( HeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + HeadlessSurfaceCreateInfoEXT( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : HeadlessSurfaceCreateInfoEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 HeadlessSurfaceCreateInfoEXT & + operator=( HeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + HeadlessSurfaceCreateInfoEXT & operator=( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR ) - offsetof( PipelineExecutableInternalRepresentationKHR, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineExecutableInternalRepresentationKHR( VkPipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT + HeadlessSurfaceCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - PipelineExecutableInternalRepresentationKHR& operator=( VkPipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT + HeadlessSurfaceCreateInfoEXT & + setFlags( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + flags = flags_; return *this; } - operator VkPipelineExecutableInternalRepresentationKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkHeadlessSurfaceCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineExecutableInternalRepresentationKHR &() VULKAN_HPP_NOEXCEPT + operator VkHeadlessSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineExecutableInternalRepresentationKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( HeadlessSurfaceCreateInfoEXT const & ) const = default; +#else + bool operator==( HeadlessSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memcmp( name, rhs.name, VK_MAX_DESCRIPTION_SIZE * sizeof( char ) ) == 0 ) - && ( memcmp( description, rhs.description, VK_MAX_DESCRIPTION_SIZE * sizeof( char ) ) == 0 ) - && ( isText == rhs.isText ) - && ( dataSize == rhs.dataSize ) - && ( pData == rhs.pData ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ); } - bool operator!=( PipelineExecutableInternalRepresentationKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( HeadlessSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInternalRepresentationKHR; - void* pNext = {}; - char name[VK_MAX_DESCRIPTION_SIZE] = {}; - char description[VK_MAX_DESCRIPTION_SIZE] = {}; - VULKAN_HPP_NAMESPACE::Bool32 isText = {}; - size_t dataSize = {}; - void* pData = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHeadlessSurfaceCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags = {}; }; - static_assert( sizeof( PipelineExecutableInternalRepresentationKHR ) == sizeof( VkPipelineExecutableInternalRepresentationKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( HeadlessSurfaceCreateInfoEXT ) == sizeof( VkHeadlessSurfaceCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineExecutablePropertiesKHR + template <> + struct CppType { - PipelineExecutablePropertiesKHR( VULKAN_HPP_NAMESPACE::ShaderStageFlags stages_ = {}, - std::array const& name_ = {}, - std::array const& description_ = {}, - uint32_t subgroupSize_ = {} ) VULKAN_HPP_NOEXCEPT - : stages( stages_ ) - , name{} - , description{} - , subgroupSize( subgroupSize_ ) + using Type = HeadlessSurfaceCreateInfoEXT; + }; + +#if defined( VK_USE_PLATFORM_IOS_MVK ) + struct IOSSurfaceCreateInfoMVK + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIosSurfaceCreateInfoMVK; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR IOSSurfaceCreateInfoMVK( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ = {}, + const void * pView_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , pView( pView_ ) + {} + + VULKAN_HPP_CONSTEXPR IOSSurfaceCreateInfoMVK( IOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + IOSSurfaceCreateInfoMVK( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT + : IOSSurfaceCreateInfoMVK( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 IOSSurfaceCreateInfoMVK & + operator=( IOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + IOSSurfaceCreateInfoMVK & operator=( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( name, name_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( description, description_ ); + *this = *reinterpret_cast( &rhs ); + return *this; } - VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR & operator=( VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + IOSSurfaceCreateInfoMVK & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR ) - offsetof( PipelineExecutablePropertiesKHR, pNext ) ); + pNext = pNext_; return *this; } - PipelineExecutablePropertiesKHR( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + IOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + flags = flags_; + return *this; } - PipelineExecutablePropertiesKHR& operator=( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + IOSSurfaceCreateInfoMVK & setPView( const void * pView_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pView = pView_; return *this; } - operator VkPipelineExecutablePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkIOSSurfaceCreateInfoMVK const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineExecutablePropertiesKHR &() VULKAN_HPP_NOEXCEPT + operator VkIOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineExecutablePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( IOSSurfaceCreateInfoMVK const & ) const = default; +# else + bool operator==( IOSSurfaceCreateInfoMVK const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( stages == rhs.stages ) - && ( memcmp( name, rhs.name, VK_MAX_DESCRIPTION_SIZE * sizeof( char ) ) == 0 ) - && ( memcmp( description, rhs.description, VK_MAX_DESCRIPTION_SIZE * sizeof( char ) ) == 0 ) - && ( subgroupSize == rhs.subgroupSize ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( pView == rhs.pView ); } - bool operator!=( PipelineExecutablePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( IOSSurfaceCreateInfoMVK const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutablePropertiesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlags stages = {}; - char name[VK_MAX_DESCRIPTION_SIZE] = {}; - char description[VK_MAX_DESCRIPTION_SIZE] = {}; - uint32_t subgroupSize = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIosSurfaceCreateInfoMVK; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags = {}; + const void * pView = {}; }; - static_assert( sizeof( PipelineExecutablePropertiesKHR ) == sizeof( VkPipelineExecutablePropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( IOSSurfaceCreateInfoMVK ) == sizeof( VkIOSSurfaceCreateInfoMVK ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - union PipelineExecutableStatisticValueKHR + template <> + struct CppType + { + using Type = IOSSurfaceCreateInfoMVK; + }; +#endif /*VK_USE_PLATFORM_IOS_MVK*/ + + struct ImageDrmFormatModifierExplicitCreateInfoEXT { - VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR & operator=( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const & rhs ) VULKAN_HPP_NOEXCEPT + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierExplicitCreateInfoEXT( + uint64_t drmFormatModifier_ = {}, + uint32_t drmFormatModifierPlaneCount_ = {}, + const VULKAN_HPP_NAMESPACE::SubresourceLayout * pPlaneLayouts_ = {} ) VULKAN_HPP_NOEXCEPT + : drmFormatModifier( drmFormatModifier_ ) + , drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ ) + , pPlaneLayouts( pPlaneLayouts_ ) + {} + + VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierExplicitCreateInfoEXT( + ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImageDrmFormatModifierExplicitCreateInfoEXT( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : ImageDrmFormatModifierExplicitCreateInfoEXT( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + ImageDrmFormatModifierExplicitCreateInfoEXT( + uint64_t drmFormatModifier_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + planeLayouts_ ) + : drmFormatModifier( drmFormatModifier_ ) + , drmFormatModifierPlaneCount( static_cast( planeLayouts_.size() ) ) + , pPlaneLayouts( planeLayouts_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierExplicitCreateInfoEXT & + operator=( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImageDrmFormatModifierExplicitCreateInfoEXT & + operator=( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( this, &rhs, sizeof( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPipelineExecutableStatisticValueKHR const&() const + ImageDrmFormatModifierExplicitCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast(this); + pNext = pNext_; + return *this; } - operator VkPipelineExecutableStatisticValueKHR &() + ImageDrmFormatModifierExplicitCreateInfoEXT & + setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast(this); + drmFormatModifier = drmFormatModifier_; + return *this; } -#ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS - VULKAN_HPP_NAMESPACE::Bool32 b32; - int64_t i64; - uint64_t u64; - double f64; -#else - VkBool32 b32; - int64_t i64; - uint64_t u64; - double f64; -#endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/ - }; + ImageDrmFormatModifierExplicitCreateInfoEXT & + setDrmFormatModifierPlaneCount( uint32_t drmFormatModifierPlaneCount_ ) VULKAN_HPP_NOEXCEPT + { + drmFormatModifierPlaneCount = drmFormatModifierPlaneCount_; + return *this; + } - struct PipelineExecutableStatisticKHR - { - PipelineExecutableStatisticKHR( std::array const& name_ = {}, - std::array const& description_ = {}, - VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR format_ = VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR::eBool32, - VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR value_ = {} ) VULKAN_HPP_NOEXCEPT - : name{} - , description{} - , format( format_ ) - , value( value_ ) + ImageDrmFormatModifierExplicitCreateInfoEXT & + setPPlaneLayouts( const VULKAN_HPP_NAMESPACE::SubresourceLayout * pPlaneLayouts_ ) VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( name, name_ ); - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( description, description_ ); + pPlaneLayouts = pPlaneLayouts_; + return *this; } - VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR & operator=( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + ImageDrmFormatModifierExplicitCreateInfoEXT & setPlaneLayouts( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + planeLayouts_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR ) - offsetof( PipelineExecutableStatisticKHR, pNext ) ); + drmFormatModifierPlaneCount = static_cast( planeLayouts_.size() ); + pPlaneLayouts = planeLayouts_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PipelineExecutableStatisticKHR( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkImageDrmFormatModifierExplicitCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - *this = rhs; + return *reinterpret_cast( this ); } - PipelineExecutableStatisticKHR& operator=( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkImageDrmFormatModifierExplicitCreateInfoEXT &() VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return *reinterpret_cast( this ); } - operator VkPipelineExecutableStatisticKHR const&() const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageDrmFormatModifierExplicitCreateInfoEXT const & ) const = default; +#else + bool operator==( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( drmFormatModifier == rhs.drmFormatModifier ) && + ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount ) && + ( pPlaneLayouts == rhs.pPlaneLayouts ); } - operator VkPipelineExecutableStatisticKHR &() VULKAN_HPP_NOEXCEPT + bool operator!=( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableStatisticKHR; - void* pNext = {}; - char name[VK_MAX_DESCRIPTION_SIZE] = {}; - char description[VK_MAX_DESCRIPTION_SIZE] = {}; - VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR format = VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR::eBool32; - VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR value = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT; + const void * pNext = {}; + uint64_t drmFormatModifier = {}; + uint32_t drmFormatModifierPlaneCount = {}; + const VULKAN_HPP_NAMESPACE::SubresourceLayout * pPlaneLayouts = {}; }; - static_assert( sizeof( PipelineExecutableStatisticKHR ) == sizeof( VkPipelineExecutableStatisticKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageDrmFormatModifierExplicitCreateInfoEXT ) == + sizeof( VkImageDrmFormatModifierExplicitCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineInfoKHR + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineInfoKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {} ) VULKAN_HPP_NOEXCEPT - : pipeline( pipeline_ ) + using Type = ImageDrmFormatModifierExplicitCreateInfoEXT; + }; + + struct ImageDrmFormatModifierListCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eImageDrmFormatModifierListCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ImageDrmFormatModifierListCreateInfoEXT( uint32_t drmFormatModifierCount_ = {}, + const uint64_t * pDrmFormatModifiers_ = {} ) VULKAN_HPP_NOEXCEPT + : drmFormatModifierCount( drmFormatModifierCount_ ) + , pDrmFormatModifiers( pDrmFormatModifiers_ ) + {} + + VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierListCreateInfoEXT( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + ImageDrmFormatModifierListCreateInfoEXT( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageDrmFormatModifierListCreateInfoEXT( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + ImageDrmFormatModifierListCreateInfoEXT( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & drmFormatModifiers_ ) + : drmFormatModifierCount( static_cast( drmFormatModifiers_.size() ) ) + , pDrmFormatModifiers( drmFormatModifiers_.data() ) {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ImageDrmFormatModifierListCreateInfoEXT & + operator=( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::PipelineInfoKHR & operator=( VULKAN_HPP_NAMESPACE::PipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + ImageDrmFormatModifierListCreateInfoEXT & + operator=( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineInfoKHR ) - offsetof( PipelineInfoKHR, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineInfoKHR( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + ImageDrmFormatModifierListCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - PipelineInfoKHR& operator=( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + ImageDrmFormatModifierListCreateInfoEXT & + setDrmFormatModifierCount( uint32_t drmFormatModifierCount_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + drmFormatModifierCount = drmFormatModifierCount_; return *this; } - PipelineInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ImageDrmFormatModifierListCreateInfoEXT & + setPDrmFormatModifiers( const uint64_t * pDrmFormatModifiers_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + pDrmFormatModifiers = pDrmFormatModifiers_; return *this; } - PipelineInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + ImageDrmFormatModifierListCreateInfoEXT & setDrmFormatModifiers( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & drmFormatModifiers_ ) VULKAN_HPP_NOEXCEPT { - pipeline = pipeline_; + drmFormatModifierCount = static_cast( drmFormatModifiers_.size() ); + pDrmFormatModifiers = drmFormatModifiers_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPipelineInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkImageDrmFormatModifierListCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkImageDrmFormatModifierListCreateInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageDrmFormatModifierListCreateInfoEXT const & ) const = default; +#else + bool operator==( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pipeline == rhs.pipeline ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( drmFormatModifierCount == rhs.drmFormatModifierCount ) && + ( pDrmFormatModifiers == rhs.pDrmFormatModifiers ); } - bool operator!=( PipelineInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Pipeline pipeline = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierListCreateInfoEXT; + const void * pNext = {}; + uint32_t drmFormatModifierCount = {}; + const uint64_t * pDrmFormatModifiers = {}; }; - static_assert( sizeof( PipelineInfoKHR ) == sizeof( VkPipelineInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageDrmFormatModifierListCreateInfoEXT ) == + sizeof( VkImageDrmFormatModifierListCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PushConstantRange + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PushConstantRange( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {}, - uint32_t offset_ = {}, - uint32_t size_ = {} ) VULKAN_HPP_NOEXCEPT - : stageFlags( stageFlags_ ) - , offset( offset_ ) - , size( size_ ) + using Type = ImageDrmFormatModifierListCreateInfoEXT; + }; + + struct ImageFormatListCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatListCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ImageFormatListCreateInfo( uint32_t viewFormatCount_ = {}, + const VULKAN_HPP_NAMESPACE::Format * pViewFormats_ = {} ) VULKAN_HPP_NOEXCEPT + : viewFormatCount( viewFormatCount_ ) + , pViewFormats( pViewFormats_ ) {} - PushConstantRange( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR + ImageFormatListCreateInfo( ImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImageFormatListCreateInfo( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageFormatListCreateInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + ImageFormatListCreateInfo( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewFormats_ ) + : viewFormatCount( static_cast( viewFormats_.size() ) ), pViewFormats( viewFormats_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ImageFormatListCreateInfo & + operator=( ImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImageFormatListCreateInfo & operator=( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - PushConstantRange& operator=( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT + ImageFormatListCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - PushConstantRange & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT + ImageFormatListCreateInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT { - stageFlags = stageFlags_; + viewFormatCount = viewFormatCount_; return *this; } - PushConstantRange & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT + ImageFormatListCreateInfo & + setPViewFormats( const VULKAN_HPP_NAMESPACE::Format * pViewFormats_ ) VULKAN_HPP_NOEXCEPT { - offset = offset_; + pViewFormats = pViewFormats_; return *this; } - PushConstantRange & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + ImageFormatListCreateInfo & setViewFormats( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewFormats_ ) + VULKAN_HPP_NOEXCEPT { - size = size_; + viewFormatCount = static_cast( viewFormats_.size() ); + pViewFormats = viewFormats_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPushConstantRange const&() const VULKAN_HPP_NOEXCEPT + operator VkImageFormatListCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPushConstantRange &() VULKAN_HPP_NOEXCEPT + operator VkImageFormatListCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PushConstantRange const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageFormatListCreateInfo const & ) const = default; +#else + bool operator==( ImageFormatListCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( stageFlags == rhs.stageFlags ) - && ( offset == rhs.offset ) - && ( size == rhs.size ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( viewFormatCount == rhs.viewFormatCount ) && + ( pViewFormats == rhs.pViewFormats ); } - bool operator!=( PushConstantRange const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageFormatListCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {}; - uint32_t offset = {}; - uint32_t size = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatListCreateInfo; + const void * pNext = {}; + uint32_t viewFormatCount = {}; + const VULKAN_HPP_NAMESPACE::Format * pViewFormats = {}; }; - static_assert( sizeof( PushConstantRange ) == sizeof( VkPushConstantRange ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageFormatListCreateInfo ) == sizeof( VkImageFormatListCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineLayoutCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineLayoutCreateInfo( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_ = {}, - uint32_t setLayoutCount_ = {}, - const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ = {}, - uint32_t pushConstantRangeCount_ = {}, - const VULKAN_HPP_NAMESPACE::PushConstantRange* pPushConstantRanges_ = {} ) VULKAN_HPP_NOEXCEPT + using Type = ImageFormatListCreateInfo; + }; + using ImageFormatListCreateInfoKHR = ImageFormatListCreateInfo; + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + struct ImagePipeSurfaceCreateInfoFUCHSIA + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eImagepipeSurfaceCreateInfoFUCHSIA; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ImagePipeSurfaceCreateInfoFUCHSIA( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ = {}, + zx_handle_t imagePipeHandle_ = {} ) VULKAN_HPP_NOEXCEPT : flags( flags_ ) - , setLayoutCount( setLayoutCount_ ) - , pSetLayouts( pSetLayouts_ ) - , pushConstantRangeCount( pushConstantRangeCount_ ) - , pPushConstantRanges( pPushConstantRanges_ ) + , imagePipeHandle( imagePipeHandle_ ) {} - VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo & operator=( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo ) - offsetof( PipelineLayoutCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + ImagePipeSurfaceCreateInfoFUCHSIA( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineLayoutCreateInfo( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ImagePipeSurfaceCreateInfoFUCHSIA( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT + : ImagePipeSurfaceCreateInfoFUCHSIA( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ImagePipeSurfaceCreateInfoFUCHSIA & + operator=( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineLayoutCreateInfo& operator=( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + ImagePipeSurfaceCreateInfoFUCHSIA & operator=( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineLayoutCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ImagePipeSurfaceCreateInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PipelineLayoutCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + ImagePipeSurfaceCreateInfoFUCHSIA & + setFlags( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ ) VULKAN_HPP_NOEXCEPT { flags = flags_; return *this; } - PipelineLayoutCreateInfo & setSetLayoutCount( uint32_t setLayoutCount_ ) VULKAN_HPP_NOEXCEPT - { - setLayoutCount = setLayoutCount_; - return *this; - } - - PipelineLayoutCreateInfo & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ ) VULKAN_HPP_NOEXCEPT - { - pSetLayouts = pSetLayouts_; - return *this; - } - - PipelineLayoutCreateInfo & setPushConstantRangeCount( uint32_t pushConstantRangeCount_ ) VULKAN_HPP_NOEXCEPT - { - pushConstantRangeCount = pushConstantRangeCount_; - return *this; - } - - PipelineLayoutCreateInfo & setPPushConstantRanges( const VULKAN_HPP_NAMESPACE::PushConstantRange* pPushConstantRanges_ ) VULKAN_HPP_NOEXCEPT + ImagePipeSurfaceCreateInfoFUCHSIA & setImagePipeHandle( zx_handle_t imagePipeHandle_ ) VULKAN_HPP_NOEXCEPT { - pPushConstantRanges = pPushConstantRanges_; + imagePipeHandle = imagePipeHandle_; return *this; } - operator VkPipelineLayoutCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkImagePipeSurfaceCreateInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkImagePipeSurfaceCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImagePipeSurfaceCreateInfoFUCHSIA const & ) const = default; +# else + bool operator==( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( setLayoutCount == rhs.setLayoutCount ) - && ( pSetLayouts == rhs.pSetLayouts ) - && ( pushConstantRangeCount == rhs.pushConstantRangeCount ) - && ( pPushConstantRanges == rhs.pPushConstantRanges ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( memcmp( &imagePipeHandle, &rhs.imagePipeHandle, sizeof( zx_handle_t ) ) == 0 ); } - bool operator!=( PipelineLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineLayoutCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags = {}; - uint32_t setLayoutCount = {}; - const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts = {}; - uint32_t pushConstantRangeCount = {}; - const VULKAN_HPP_NAMESPACE::PushConstantRange* pPushConstantRanges = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags = {}; + zx_handle_t imagePipeHandle = {}; }; - static_assert( sizeof( PipelineLayoutCreateInfo ) == sizeof( VkPipelineLayoutCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImagePipeSurfaceCreateInfoFUCHSIA ) == sizeof( VkImagePipeSurfaceCreateInfoFUCHSIA ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineRasterizationConservativeStateCreateInfoEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineRasterizationConservativeStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ = {}, - VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ = VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled, - float extraPrimitiveOverestimationSize_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , conservativeRasterizationMode( conservativeRasterizationMode_ ) - , extraPrimitiveOverestimationSize( extraPrimitiveOverestimationSize_ ) - {} + using Type = ImagePipeSurfaceCreateInfoFUCHSIA; + }; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ - VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT ) - offsetof( PipelineRasterizationConservativeStateCreateInfoEXT, pNext ) ); - return *this; - } + struct ImagePlaneMemoryRequirementsInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImagePlaneMemoryRequirementsInfo; - PipelineRasterizationConservativeStateCreateInfoEXT( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ImagePlaneMemoryRequirementsInfo( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = + VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor ) VULKAN_HPP_NOEXCEPT + : planeAspect( planeAspect_ ) + {} - PipelineRasterizationConservativeStateCreateInfoEXT& operator=( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR + ImagePlaneMemoryRequirementsInfo( ImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineRasterizationConservativeStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + ImagePlaneMemoryRequirementsInfo( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : ImagePlaneMemoryRequirementsInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ImagePlaneMemoryRequirementsInfo & + operator=( ImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineRasterizationConservativeStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT + ImagePlaneMemoryRequirementsInfo & operator=( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineRasterizationConservativeStateCreateInfoEXT & setConservativeRasterizationMode( VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ ) VULKAN_HPP_NOEXCEPT + ImagePlaneMemoryRequirementsInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - conservativeRasterizationMode = conservativeRasterizationMode_; + pNext = pNext_; return *this; } - PipelineRasterizationConservativeStateCreateInfoEXT & setExtraPrimitiveOverestimationSize( float extraPrimitiveOverestimationSize_ ) VULKAN_HPP_NOEXCEPT + ImagePlaneMemoryRequirementsInfo & + setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT { - extraPrimitiveOverestimationSize = extraPrimitiveOverestimationSize_; + planeAspect = planeAspect_; return *this; } - operator VkPipelineRasterizationConservativeStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkImagePlaneMemoryRequirementsInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineRasterizationConservativeStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkImagePlaneMemoryRequirementsInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineRasterizationConservativeStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImagePlaneMemoryRequirementsInfo const & ) const = default; +#else + bool operator==( ImagePlaneMemoryRequirementsInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( conservativeRasterizationMode == rhs.conservativeRasterizationMode ) - && ( extraPrimitiveOverestimationSize == rhs.extraPrimitiveOverestimationSize ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( planeAspect == rhs.planeAspect ); } - bool operator!=( PipelineRasterizationConservativeStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImagePlaneMemoryRequirementsInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags = {}; - VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode = VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled; - float extraPrimitiveOverestimationSize = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagePlaneMemoryRequirementsInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor; }; - static_assert( sizeof( PipelineRasterizationConservativeStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationConservativeStateCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImagePlaneMemoryRequirementsInfo ) == sizeof( VkImagePlaneMemoryRequirementsInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineRasterizationDepthClipStateCreateInfoEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineRasterizationDepthClipStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , depthClipEnable( depthClipEnable_ ) + using Type = ImagePlaneMemoryRequirementsInfo; + }; + using ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo; + + struct ImageStencilUsageCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageStencilUsageCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ImageStencilUsageCreateInfo( VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ = {} ) VULKAN_HPP_NOEXCEPT + : stencilUsage( stencilUsage_ ) {} - VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT ) - offsetof( PipelineRasterizationDepthClipStateCreateInfoEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + ImageStencilUsageCreateInfo( ImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineRasterizationDepthClipStateCreateInfoEXT( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ImageStencilUsageCreateInfo( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageStencilUsageCreateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PipelineRasterizationDepthClipStateCreateInfoEXT& operator=( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 ImageStencilUsageCreateInfo & + operator=( ImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineRasterizationDepthClipStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ImageStencilUsageCreateInfo & operator=( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineRasterizationDepthClipStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT + ImageStencilUsageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + pNext = pNext_; return *this; } - PipelineRasterizationDepthClipStateCreateInfoEXT & setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT + ImageStencilUsageCreateInfo & + setStencilUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ ) VULKAN_HPP_NOEXCEPT { - depthClipEnable = depthClipEnable_; + stencilUsage = stencilUsage_; return *this; } - operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkImageStencilUsageCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineRasterizationDepthClipStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkImageStencilUsageCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineRasterizationDepthClipStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageStencilUsageCreateInfo const & ) const = default; +#else + bool operator==( ImageStencilUsageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( depthClipEnable == rhs.depthClipEnable ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( stencilUsage == rhs.stencilUsage ); } - bool operator!=( PipelineRasterizationDepthClipStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageStencilUsageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageStencilUsageCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage = {}; }; - static_assert( sizeof( PipelineRasterizationDepthClipStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationDepthClipStateCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageStencilUsageCreateInfo ) == sizeof( VkImageStencilUsageCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineRasterizationLineStateCreateInfoEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineRasterizationLineStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode_ = VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT::eDefault, - VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable_ = {}, - uint32_t lineStippleFactor_ = {}, - uint16_t lineStipplePattern_ = {} ) VULKAN_HPP_NOEXCEPT - : lineRasterizationMode( lineRasterizationMode_ ) - , stippledLineEnable( stippledLineEnable_ ) - , lineStippleFactor( lineStippleFactor_ ) - , lineStipplePattern( lineStipplePattern_ ) - {} + using Type = ImageStencilUsageCreateInfo; + }; + using ImageStencilUsageCreateInfoEXT = ImageStencilUsageCreateInfo; - VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT ) - offsetof( PipelineRasterizationLineStateCreateInfoEXT, pNext ) ); - return *this; - } + struct ImageSwapchainCreateInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSwapchainCreateInfoKHR; - PipelineRasterizationLineStateCreateInfoEXT( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ImageSwapchainCreateInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {} ) VULKAN_HPP_NOEXCEPT + : swapchain( swapchain_ ) + {} - PipelineRasterizationLineStateCreateInfoEXT& operator=( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR + ImageSwapchainCreateInfoKHR( ImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineRasterizationLineStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + ImageSwapchainCreateInfoKHR( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageSwapchainCreateInfoKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PipelineRasterizationLineStateCreateInfoEXT & setLineRasterizationMode( VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode_ ) VULKAN_HPP_NOEXCEPT - { - lineRasterizationMode = lineRasterizationMode_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 ImageSwapchainCreateInfoKHR & + operator=( ImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineRasterizationLineStateCreateInfoEXT & setStippledLineEnable( VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable_ ) VULKAN_HPP_NOEXCEPT + ImageSwapchainCreateInfoKHR & operator=( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - stippledLineEnable = stippledLineEnable_; + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineRasterizationLineStateCreateInfoEXT & setLineStippleFactor( uint32_t lineStippleFactor_ ) VULKAN_HPP_NOEXCEPT + ImageSwapchainCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - lineStippleFactor = lineStippleFactor_; + pNext = pNext_; return *this; } - PipelineRasterizationLineStateCreateInfoEXT & setLineStipplePattern( uint16_t lineStipplePattern_ ) VULKAN_HPP_NOEXCEPT + ImageSwapchainCreateInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT { - lineStipplePattern = lineStipplePattern_; + swapchain = swapchain_; return *this; } - operator VkPipelineRasterizationLineStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkImageSwapchainCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineRasterizationLineStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkImageSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineRasterizationLineStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageSwapchainCreateInfoKHR const & ) const = default; +#else + bool operator==( ImageSwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( lineRasterizationMode == rhs.lineRasterizationMode ) - && ( stippledLineEnable == rhs.stippledLineEnable ) - && ( lineStippleFactor == rhs.lineStippleFactor ) - && ( lineStipplePattern == rhs.lineStipplePattern ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchain == rhs.swapchain ); } - bool operator!=( PipelineRasterizationLineStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageSwapchainCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationLineStateCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode = VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT::eDefault; - VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable = {}; - uint32_t lineStippleFactor = {}; - uint16_t lineStipplePattern = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSwapchainCreateInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {}; }; - static_assert( sizeof( PipelineRasterizationLineStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationLineStateCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageSwapchainCreateInfoKHR ) == sizeof( VkImageSwapchainCreateInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineRasterizationStateRasterizationOrderAMD + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineRasterizationStateRasterizationOrderAMD( VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ = VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict ) VULKAN_HPP_NOEXCEPT - : rasterizationOrder( rasterizationOrder_ ) + using Type = ImageSwapchainCreateInfoKHR; + }; + + struct ImageViewASTCDecodeModeEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewAstcDecodeModeEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ImageViewASTCDecodeModeEXT( + VULKAN_HPP_NAMESPACE::Format decodeMode_ = VULKAN_HPP_NAMESPACE::Format::eUndefined ) VULKAN_HPP_NOEXCEPT + : decodeMode( decodeMode_ ) {} - VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD & operator=( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD ) - offsetof( PipelineRasterizationStateRasterizationOrderAMD, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + ImageViewASTCDecodeModeEXT( ImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineRasterizationStateRasterizationOrderAMD( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ImageViewASTCDecodeModeEXT( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageViewASTCDecodeModeEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ImageViewASTCDecodeModeEXT & + operator=( ImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineRasterizationStateRasterizationOrderAMD& operator=( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT + ImageViewASTCDecodeModeEXT & operator=( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineRasterizationStateRasterizationOrderAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ImageViewASTCDecodeModeEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PipelineRasterizationStateRasterizationOrderAMD & setRasterizationOrder( VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ ) VULKAN_HPP_NOEXCEPT + ImageViewASTCDecodeModeEXT & setDecodeMode( VULKAN_HPP_NAMESPACE::Format decodeMode_ ) VULKAN_HPP_NOEXCEPT { - rasterizationOrder = rasterizationOrder_; + decodeMode = decodeMode_; return *this; } - operator VkPipelineRasterizationStateRasterizationOrderAMD const&() const VULKAN_HPP_NOEXCEPT + operator VkImageViewASTCDecodeModeEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineRasterizationStateRasterizationOrderAMD &() VULKAN_HPP_NOEXCEPT + operator VkImageViewASTCDecodeModeEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineRasterizationStateRasterizationOrderAMD const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageViewASTCDecodeModeEXT const & ) const = default; +#else + bool operator==( ImageViewASTCDecodeModeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( rasterizationOrder == rhs.rasterizationOrder ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( decodeMode == rhs.decodeMode ); } - bool operator!=( PipelineRasterizationStateRasterizationOrderAMD const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageViewASTCDecodeModeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder = VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewAstcDecodeModeEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Format decodeMode = VULKAN_HPP_NAMESPACE::Format::eUndefined; }; - static_assert( sizeof( PipelineRasterizationStateRasterizationOrderAMD ) == sizeof( VkPipelineRasterizationStateRasterizationOrderAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageViewASTCDecodeModeEXT ) == sizeof( VkImageViewASTCDecodeModeEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineRasterizationStateStreamCreateInfoEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineRasterizationStateStreamCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ = {}, - uint32_t rasterizationStream_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , rasterizationStream( rasterizationStream_ ) + using Type = ImageViewASTCDecodeModeEXT; + }; + + struct ImageViewUsageCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewUsageCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ImageViewUsageCreateInfo( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {} ) VULKAN_HPP_NOEXCEPT + : usage( usage_ ) {} - VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT ) - offsetof( PipelineRasterizationStateStreamCreateInfoEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR ImageViewUsageCreateInfo( ImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineRasterizationStateStreamCreateInfoEXT( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ImageViewUsageCreateInfo( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : ImageViewUsageCreateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PipelineRasterizationStateStreamCreateInfoEXT& operator=( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 ImageViewUsageCreateInfo & + operator=( ImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineRasterizationStateStreamCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ImageViewUsageCreateInfo & operator=( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineRasterizationStateStreamCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT + ImageViewUsageCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + pNext = pNext_; return *this; } - PipelineRasterizationStateStreamCreateInfoEXT & setRasterizationStream( uint32_t rasterizationStream_ ) VULKAN_HPP_NOEXCEPT + ImageViewUsageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT { - rasterizationStream = rasterizationStream_; + usage = usage_; return *this; } - operator VkPipelineRasterizationStateStreamCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkImageViewUsageCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineRasterizationStateStreamCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkImageViewUsageCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineRasterizationStateStreamCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImageViewUsageCreateInfo const & ) const = default; +#else + bool operator==( ImageViewUsageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( rasterizationStream == rhs.rasterizationStream ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( usage == rhs.usage ); } - bool operator!=( PipelineRasterizationStateStreamCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImageViewUsageCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags = {}; - uint32_t rasterizationStream = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewUsageCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {}; }; - static_assert( sizeof( PipelineRasterizationStateStreamCreateInfoEXT ) == sizeof( VkPipelineRasterizationStateStreamCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImageViewUsageCreateInfo ) == sizeof( VkImageViewUsageCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PipelineRepresentativeFragmentTestStateCreateInfoNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineRepresentativeFragmentTestStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ = {} ) VULKAN_HPP_NOEXCEPT - : representativeFragmentTestEnable( representativeFragmentTestEnable_ ) + using Type = ImageViewUsageCreateInfo; + }; + using ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo; + +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + struct ImportAndroidHardwareBufferInfoANDROID + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eImportAndroidHardwareBufferInfoANDROID; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ImportAndroidHardwareBufferInfoANDROID( struct AHardwareBuffer * buffer_ = {} ) VULKAN_HPP_NOEXCEPT + : buffer( buffer_ ) {} - VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV & operator=( VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV ) - offsetof( PipelineRepresentativeFragmentTestStateCreateInfoNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR ImportAndroidHardwareBufferInfoANDROID( ImportAndroidHardwareBufferInfoANDROID const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - PipelineRepresentativeFragmentTestStateCreateInfoNV( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ImportAndroidHardwareBufferInfoANDROID( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT + : ImportAndroidHardwareBufferInfoANDROID( + *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PipelineRepresentativeFragmentTestStateCreateInfoNV& operator=( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 ImportAndroidHardwareBufferInfoANDROID & + operator=( ImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImportAndroidHardwareBufferInfoANDROID & + operator=( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineRepresentativeFragmentTestStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ImportAndroidHardwareBufferInfoANDROID & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PipelineRepresentativeFragmentTestStateCreateInfoNV & setRepresentativeFragmentTestEnable( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ ) VULKAN_HPP_NOEXCEPT + ImportAndroidHardwareBufferInfoANDROID & setBuffer( struct AHardwareBuffer * buffer_ ) VULKAN_HPP_NOEXCEPT { - representativeFragmentTestEnable = representativeFragmentTestEnable_; + buffer = buffer_; return *this; } - operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT + operator VkImportAndroidHardwareBufferInfoANDROID const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT + operator VkImportAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineRepresentativeFragmentTestStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImportAndroidHardwareBufferInfoANDROID const & ) const = default; +# else + bool operator==( ImportAndroidHardwareBufferInfoANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( representativeFragmentTestEnable == rhs.representativeFragmentTestEnable ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( buffer == rhs.buffer ); } - bool operator!=( PipelineRepresentativeFragmentTestStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImportAndroidHardwareBufferInfoANDROID const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportAndroidHardwareBufferInfoANDROID; + const void * pNext = {}; + struct AHardwareBuffer * buffer = {}; }; - static_assert( sizeof( PipelineRepresentativeFragmentTestStateCreateInfoNV ) == sizeof( VkPipelineRepresentativeFragmentTestStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImportAndroidHardwareBufferInfoANDROID ) == sizeof( VkImportAndroidHardwareBufferInfoANDROID ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineSampleLocationsStateCreateInfoEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineSampleLocationsStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ = {}, - VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {} ) VULKAN_HPP_NOEXCEPT - : sampleLocationsEnable( sampleLocationsEnable_ ) - , sampleLocationsInfo( sampleLocationsInfo_ ) + using Type = ImportAndroidHardwareBufferInfoANDROID; + }; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + + struct ImportMemoryFdInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryFdInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ImportMemoryFdInfoKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, + int fd_ = {} ) VULKAN_HPP_NOEXCEPT + : handleType( handleType_ ) + , fd( fd_ ) {} - VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT ) - offsetof( PipelineSampleLocationsStateCreateInfoEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR ImportMemoryFdInfoKHR( ImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineSampleLocationsStateCreateInfoEXT( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ImportMemoryFdInfoKHR( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : ImportMemoryFdInfoKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ImportMemoryFdInfoKHR & + operator=( ImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineSampleLocationsStateCreateInfoEXT& operator=( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + ImportMemoryFdInfoKHR & operator=( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineSampleLocationsStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ImportMemoryFdInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PipelineSampleLocationsStateCreateInfoEXT & setSampleLocationsEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ ) VULKAN_HPP_NOEXCEPT + ImportMemoryFdInfoKHR & + setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT { - sampleLocationsEnable = sampleLocationsEnable_; + handleType = handleType_; return *this; } - PipelineSampleLocationsStateCreateInfoEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT + ImportMemoryFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT { - sampleLocationsInfo = sampleLocationsInfo_; + fd = fd_; return *this; } - operator VkPipelineSampleLocationsStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkImportMemoryFdInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineSampleLocationsStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkImportMemoryFdInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineSampleLocationsStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImportMemoryFdInfoKHR const & ) const = default; +#else + bool operator==( ImportMemoryFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( sampleLocationsEnable == rhs.sampleLocationsEnable ) - && ( sampleLocationsInfo == rhs.sampleLocationsInfo ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType ) && ( fd == rhs.fd ); } - bool operator!=( PipelineSampleLocationsStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImportMemoryFdInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable = {}; - VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryFdInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; + int fd = {}; + }; + static_assert( sizeof( ImportMemoryFdInfoKHR ) == sizeof( VkImportMemoryFdInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = ImportMemoryFdInfoKHR; }; - static_assert( sizeof( PipelineSampleLocationsStateCreateInfoEXT ) == sizeof( VkPipelineSampleLocationsStateCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT + struct ImportMemoryHostPointerInfoEXT { - PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( uint32_t requiredSubgroupSize_ = {} ) VULKAN_HPP_NOEXCEPT - : requiredSubgroupSize( requiredSubgroupSize_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryHostPointerInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ImportMemoryHostPointerInfoEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, + void * pHostPointer_ = {} ) VULKAN_HPP_NOEXCEPT + : handleType( handleType_ ) + , pHostPointer( pHostPointer_ ) + {} + + VULKAN_HPP_CONSTEXPR + ImportMemoryHostPointerInfoEXT( ImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImportMemoryHostPointerInfoEXT( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : ImportMemoryHostPointerInfoEXT( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ImportMemoryHostPointerInfoEXT & + operator=( ImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImportMemoryHostPointerInfoEXT & operator=( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + ImportMemoryHostPointerInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ) - offsetof( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT, pNext ) ); + pNext = pNext_; return *this; } - PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + ImportMemoryHostPointerInfoEXT & + setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + handleType = handleType_; + return *this; } - PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT& operator=( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + ImportMemoryHostPointerInfoEXT & setPHostPointer( void * pHostPointer_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pHostPointer = pHostPointer_; return *this; } - operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkImportMemoryHostPointerInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkImportMemoryHostPointerInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImportMemoryHostPointerInfoEXT const & ) const = default; +#else + bool operator==( ImportMemoryHostPointerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( requiredSubgroupSize == rhs.requiredSubgroupSize ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType ) && + ( pHostPointer == rhs.pHostPointer ); } - bool operator!=( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImportMemoryHostPointerInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT; - void* pNext = {}; - uint32_t requiredSubgroupSize = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryHostPointerInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; + void * pHostPointer = {}; }; - static_assert( sizeof( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ) == sizeof( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImportMemoryHostPointerInfoEXT ) == sizeof( VkImportMemoryHostPointerInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineTessellationDomainOriginStateCreateInfo + template <> + struct CppType + { + using Type = ImportMemoryHostPointerInfoEXT; + }; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + struct ImportMemoryWin32HandleInfoKHR { - VULKAN_HPP_CONSTEXPR PipelineTessellationDomainOriginStateCreateInfo( VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ = VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft ) VULKAN_HPP_NOEXCEPT - : domainOrigin( domainOrigin_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryWin32HandleInfoKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ImportMemoryWin32HandleInfoKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, + HANDLE handle_ = {}, + LPCWSTR name_ = {} ) VULKAN_HPP_NOEXCEPT + : handleType( handleType_ ) + , handle( handle_ ) + , name( name_ ) + {} + + VULKAN_HPP_CONSTEXPR + ImportMemoryWin32HandleInfoKHR( ImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImportMemoryWin32HandleInfoKHR( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : ImportMemoryWin32HandleInfoKHR( *reinterpret_cast( &rhs ) ) {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoKHR & + operator=( ImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo & operator=( VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + ImportMemoryWin32HandleInfoKHR & operator=( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo ) - offsetof( PipelineTessellationDomainOriginStateCreateInfo, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineTessellationDomainOriginStateCreateInfo( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + ImportMemoryWin32HandleInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - PipelineTessellationDomainOriginStateCreateInfo& operator=( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + ImportMemoryWin32HandleInfoKHR & + setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + handleType = handleType_; return *this; } - PipelineTessellationDomainOriginStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ImportMemoryWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + handle = handle_; return *this; } - PipelineTessellationDomainOriginStateCreateInfo & setDomainOrigin( VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ ) VULKAN_HPP_NOEXCEPT + ImportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT { - domainOrigin = domainOrigin_; + name = name_; return *this; } - operator VkPipelineTessellationDomainOriginStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkImportMemoryWin32HandleInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineTessellationDomainOriginStateCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkImportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineTessellationDomainOriginStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImportMemoryWin32HandleInfoKHR const & ) const = default; +# else + bool operator==( ImportMemoryWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( domainOrigin == rhs.domainOrigin ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType ) && + ( handle == rhs.handle ) && ( name == rhs.name ); } - bool operator!=( PipelineTessellationDomainOriginStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImportMemoryWin32HandleInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin = VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; + HANDLE handle = {}; + LPCWSTR name = {}; }; - static_assert( sizeof( PipelineTessellationDomainOriginStateCreateInfo ) == sizeof( VkPipelineTessellationDomainOriginStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImportMemoryWin32HandleInfoKHR ) == sizeof( VkImportMemoryWin32HandleInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct VertexInputBindingDivisorDescriptionEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT( uint32_t binding_ = {}, - uint32_t divisor_ = {} ) VULKAN_HPP_NOEXCEPT - : binding( binding_ ) - , divisor( divisor_ ) + using Type = ImportMemoryWin32HandleInfoKHR; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + struct ImportMemoryWin32HandleInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryWin32HandleInfoNV; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ImportMemoryWin32HandleInfoNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ = {}, + HANDLE handle_ = {} ) VULKAN_HPP_NOEXCEPT + : handleType( handleType_ ) + , handle( handle_ ) {} - VertexInputBindingDivisorDescriptionEXT( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR + ImportMemoryWin32HandleInfoNV( ImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImportMemoryWin32HandleInfoNV( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : ImportMemoryWin32HandleInfoNV( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ImportMemoryWin32HandleInfoNV & + operator=( ImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImportMemoryWin32HandleInfoNV & operator=( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - VertexInputBindingDivisorDescriptionEXT& operator=( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT + ImportMemoryWin32HandleInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - VertexInputBindingDivisorDescriptionEXT & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT + ImportMemoryWin32HandleInfoNV & + setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ ) VULKAN_HPP_NOEXCEPT { - binding = binding_; + handleType = handleType_; return *this; } - VertexInputBindingDivisorDescriptionEXT & setDivisor( uint32_t divisor_ ) VULKAN_HPP_NOEXCEPT + ImportMemoryWin32HandleInfoNV & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT { - divisor = divisor_; + handle = handle_; return *this; } - operator VkVertexInputBindingDivisorDescriptionEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkImportMemoryWin32HandleInfoNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkVertexInputBindingDivisorDescriptionEXT &() VULKAN_HPP_NOEXCEPT + operator VkImportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( VertexInputBindingDivisorDescriptionEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImportMemoryWin32HandleInfoNV const & ) const = default; +# else + bool operator==( ImportMemoryWin32HandleInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( binding == rhs.binding ) - && ( divisor == rhs.divisor ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType ) && + ( handle == rhs.handle ); } - bool operator!=( VertexInputBindingDivisorDescriptionEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImportMemoryWin32HandleInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - uint32_t binding = {}; - uint32_t divisor = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType = {}; + HANDLE handle = {}; }; - static_assert( sizeof( VertexInputBindingDivisorDescriptionEXT ) == sizeof( VkVertexInputBindingDivisorDescriptionEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImportMemoryWin32HandleInfoNV ) == sizeof( VkImportMemoryWin32HandleInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineVertexInputDivisorStateCreateInfoEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineVertexInputDivisorStateCreateInfoEXT( uint32_t vertexBindingDivisorCount_ = {}, - const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors_ = {} ) VULKAN_HPP_NOEXCEPT - : vertexBindingDivisorCount( vertexBindingDivisorCount_ ) - , pVertexBindingDivisors( pVertexBindingDivisors_ ) + using Type = ImportMemoryWin32HandleInfoNV; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + struct ImportMemoryZirconHandleInfoFUCHSIA + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eImportMemoryZirconHandleInfoFUCHSIA; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ImportMemoryZirconHandleInfoFUCHSIA( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, + zx_handle_t handle_ = {} ) VULKAN_HPP_NOEXCEPT + : handleType( handleType_ ) + , handle( handle_ ) {} - VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT ) - offsetof( PipelineVertexInputDivisorStateCreateInfoEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR ImportMemoryZirconHandleInfoFUCHSIA( ImportMemoryZirconHandleInfoFUCHSIA const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - PipelineVertexInputDivisorStateCreateInfoEXT( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + ImportMemoryZirconHandleInfoFUCHSIA( VkImportMemoryZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT + : ImportMemoryZirconHandleInfoFUCHSIA( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PipelineVertexInputDivisorStateCreateInfoEXT& operator=( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 ImportMemoryZirconHandleInfoFUCHSIA & + operator=( ImportMemoryZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ImportMemoryZirconHandleInfoFUCHSIA & + operator=( VkImportMemoryZirconHandleInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineVertexInputDivisorStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + ImportMemoryZirconHandleInfoFUCHSIA & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisorCount( uint32_t vertexBindingDivisorCount_ ) VULKAN_HPP_NOEXCEPT + ImportMemoryZirconHandleInfoFUCHSIA & + setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT { - vertexBindingDivisorCount = vertexBindingDivisorCount_; + handleType = handleType_; return *this; } - PipelineVertexInputDivisorStateCreateInfoEXT & setPVertexBindingDivisors( const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors_ ) VULKAN_HPP_NOEXCEPT + ImportMemoryZirconHandleInfoFUCHSIA & setHandle( zx_handle_t handle_ ) VULKAN_HPP_NOEXCEPT { - pVertexBindingDivisors = pVertexBindingDivisors_; + handle = handle_; return *this; } - operator VkPipelineVertexInputDivisorStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkImportMemoryZirconHandleInfoFUCHSIA const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineVertexInputDivisorStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkImportMemoryZirconHandleInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineVertexInputDivisorStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ImportMemoryZirconHandleInfoFUCHSIA const & ) const = default; +# else + bool operator==( ImportMemoryZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( vertexBindingDivisorCount == rhs.vertexBindingDivisorCount ) - && ( pVertexBindingDivisors == rhs.pVertexBindingDivisors ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType ) && + ( memcmp( &handle, &rhs.handle, sizeof( zx_handle_t ) ) == 0 ); } - bool operator!=( PipelineVertexInputDivisorStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( ImportMemoryZirconHandleInfoFUCHSIA const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT; - const void* pNext = {}; - uint32_t vertexBindingDivisorCount = {}; - const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryZirconHandleInfoFUCHSIA; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; + zx_handle_t handle = {}; }; - static_assert( sizeof( PipelineVertexInputDivisorStateCreateInfoEXT ) == sizeof( VkPipelineVertexInputDivisorStateCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( ImportMemoryZirconHandleInfoFUCHSIA ) == sizeof( VkImportMemoryZirconHandleInfoFUCHSIA ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineViewportCoarseSampleOrderStateCreateInfoNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineViewportCoarseSampleOrderStateCreateInfoNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_ = VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV::eDefault, - uint32_t customSampleOrderCount_ = {}, - const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders_ = {} ) VULKAN_HPP_NOEXCEPT - : sampleOrderType( sampleOrderType_ ) - , customSampleOrderCount( customSampleOrderCount_ ) - , pCustomSampleOrders( pCustomSampleOrders_ ) + using Type = ImportMemoryZirconHandleInfoFUCHSIA; + }; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + + struct InputAttachmentAspectReference + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + InputAttachmentAspectReference( uint32_t subpass_ = {}, + uint32_t inputAttachmentIndex_ = {}, + VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {} ) VULKAN_HPP_NOEXCEPT + : subpass( subpass_ ) + , inputAttachmentIndex( inputAttachmentIndex_ ) + , aspectMask( aspectMask_ ) + {} + + VULKAN_HPP_CONSTEXPR + InputAttachmentAspectReference( InputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + InputAttachmentAspectReference( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT + : InputAttachmentAspectReference( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 InputAttachmentAspectReference & + operator=( InputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV & operator=( VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + InputAttachmentAspectReference & operator=( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV ) - offsetof( PipelineViewportCoarseSampleOrderStateCreateInfoNV, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineViewportCoarseSampleOrderStateCreateInfoNV( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + InputAttachmentAspectReference & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + subpass = subpass_; + return *this; } - PipelineViewportCoarseSampleOrderStateCreateInfoNV& operator=( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + InputAttachmentAspectReference & setInputAttachmentIndex( uint32_t inputAttachmentIndex_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + inputAttachmentIndex = inputAttachmentIndex_; return *this; } - PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + InputAttachmentAspectReference & + setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + aspectMask = aspectMask_; return *this; } - PipelineViewportCoarseSampleOrderStateCreateInfoNV & setSampleOrderType( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_ ) VULKAN_HPP_NOEXCEPT + operator VkInputAttachmentAspectReference const &() const VULKAN_HPP_NOEXCEPT { - sampleOrderType = sampleOrderType_; - return *this; + return *reinterpret_cast( this ); } - PipelineViewportCoarseSampleOrderStateCreateInfoNV & setCustomSampleOrderCount( uint32_t customSampleOrderCount_ ) VULKAN_HPP_NOEXCEPT + operator VkInputAttachmentAspectReference &() VULKAN_HPP_NOEXCEPT { - customSampleOrderCount = customSampleOrderCount_; - return *this; + return *reinterpret_cast( this ); } - PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPCustomSampleOrders( const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( InputAttachmentAspectReference const & ) const = default; +#else + bool operator==( InputAttachmentAspectReference const & rhs ) const VULKAN_HPP_NOEXCEPT { - pCustomSampleOrders = pCustomSampleOrders_; - return *this; + return ( subpass == rhs.subpass ) && ( inputAttachmentIndex == rhs.inputAttachmentIndex ) && + ( aspectMask == rhs.aspectMask ); } - operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT + bool operator!=( InputAttachmentAspectReference const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return !operator==( rhs ); } +#endif - operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT + public: + uint32_t subpass = {}; + uint32_t inputAttachmentIndex = {}; + VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; + }; + static_assert( sizeof( InputAttachmentAspectReference ) == sizeof( VkInputAttachmentAspectReference ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + using InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference; + + struct InstanceCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eInstanceCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR InstanceCreateInfo( VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_ = {}, + const VULKAN_HPP_NAMESPACE::ApplicationInfo * pApplicationInfo_ = {}, + uint32_t enabledLayerCount_ = {}, + const char * const * ppEnabledLayerNames_ = {}, + uint32_t enabledExtensionCount_ = {}, + const char * const * ppEnabledExtensionNames_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , pApplicationInfo( pApplicationInfo_ ) + , enabledLayerCount( enabledLayerCount_ ) + , ppEnabledLayerNames( ppEnabledLayerNames_ ) + , enabledExtensionCount( enabledExtensionCount_ ) + , ppEnabledExtensionNames( ppEnabledExtensionNames_ ) + {} + + VULKAN_HPP_CONSTEXPR InstanceCreateInfo( InstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + InstanceCreateInfo( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : InstanceCreateInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + InstanceCreateInfo( + VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_, + const VULKAN_HPP_NAMESPACE::ApplicationInfo * pApplicationInfo_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pEnabledLayerNames_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pEnabledExtensionNames_ = {} ) + : flags( flags_ ) + , pApplicationInfo( pApplicationInfo_ ) + , enabledLayerCount( static_cast( pEnabledLayerNames_.size() ) ) + , ppEnabledLayerNames( pEnabledLayerNames_.data() ) + , enabledExtensionCount( static_cast( pEnabledExtensionNames_.size() ) ) + , ppEnabledExtensionNames( pEnabledExtensionNames_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 InstanceCreateInfo & + operator=( InstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + InstanceCreateInfo & operator=( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + *this = *reinterpret_cast( &rhs ); + return *this; } - bool operator==( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + InstanceCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( sampleOrderType == rhs.sampleOrderType ) - && ( customSampleOrderCount == rhs.customSampleOrderCount ) - && ( pCustomSampleOrders == rhs.pCustomSampleOrders ); + pNext = pNext_; + return *this; } - bool operator!=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + InstanceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + flags = flags_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType = VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV::eDefault; - uint32_t customSampleOrderCount = {}; - const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders = {}; - }; - static_assert( sizeof( PipelineViewportCoarseSampleOrderStateCreateInfoNV ) == sizeof( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PipelineViewportExclusiveScissorStateCreateInfoNV - { - VULKAN_HPP_CONSTEXPR PipelineViewportExclusiveScissorStateCreateInfoNV( uint32_t exclusiveScissorCount_ = {}, - const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors_ = {} ) VULKAN_HPP_NOEXCEPT - : exclusiveScissorCount( exclusiveScissorCount_ ) - , pExclusiveScissors( pExclusiveScissors_ ) - {} + InstanceCreateInfo & + setPApplicationInfo( const VULKAN_HPP_NAMESPACE::ApplicationInfo * pApplicationInfo_ ) VULKAN_HPP_NOEXCEPT + { + pApplicationInfo = pApplicationInfo_; + return *this; + } - VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV & operator=( VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + InstanceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV ) - offsetof( PipelineViewportExclusiveScissorStateCreateInfoNV, pNext ) ); + enabledLayerCount = enabledLayerCount_; return *this; } - PipelineViewportExclusiveScissorStateCreateInfoNV( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + InstanceCreateInfo & setPpEnabledLayerNames( const char * const * ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + ppEnabledLayerNames = ppEnabledLayerNames_; + return *this; } - PipelineViewportExclusiveScissorStateCreateInfoNV& operator=( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + InstanceCreateInfo & setPEnabledLayerNames( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pEnabledLayerNames_ ) + VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + enabledLayerCount = static_cast( pEnabledLayerNames_.size() ); + ppEnabledLayerNames = pEnabledLayerNames_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - PipelineViewportExclusiveScissorStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + InstanceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + enabledExtensionCount = enabledExtensionCount_; return *this; } - PipelineViewportExclusiveScissorStateCreateInfoNV & setExclusiveScissorCount( uint32_t exclusiveScissorCount_ ) VULKAN_HPP_NOEXCEPT + InstanceCreateInfo & setPpEnabledExtensionNames( const char * const * ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT { - exclusiveScissorCount = exclusiveScissorCount_; + ppEnabledExtensionNames = ppEnabledExtensionNames_; return *this; } - PipelineViewportExclusiveScissorStateCreateInfoNV & setPExclusiveScissors( const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + InstanceCreateInfo & setPEnabledExtensionNames( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pEnabledExtensionNames_ ) + VULKAN_HPP_NOEXCEPT { - pExclusiveScissors = pExclusiveScissors_; + enabledExtensionCount = static_cast( pEnabledExtensionNames_.size() ); + ppEnabledExtensionNames = pEnabledExtensionNames_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT + operator VkInstanceCreateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineViewportExclusiveScissorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT + operator VkInstanceCreateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineViewportExclusiveScissorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( InstanceCreateInfo const & ) const = default; +#else + bool operator==( InstanceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( exclusiveScissorCount == rhs.exclusiveScissorCount ) - && ( pExclusiveScissors == rhs.pExclusiveScissors ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( pApplicationInfo == rhs.pApplicationInfo ) && ( enabledLayerCount == rhs.enabledLayerCount ) && + ( ppEnabledLayerNames == rhs.ppEnabledLayerNames ) && + ( enabledExtensionCount == rhs.enabledExtensionCount ) && + ( ppEnabledExtensionNames == rhs.ppEnabledExtensionNames ); } - bool operator!=( PipelineViewportExclusiveScissorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( InstanceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV; - const void* pNext = {}; - uint32_t exclusiveScissorCount = {}; - const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInstanceCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags = {}; + const VULKAN_HPP_NAMESPACE::ApplicationInfo * pApplicationInfo = {}; + uint32_t enabledLayerCount = {}; + const char * const * ppEnabledLayerNames = {}; + uint32_t enabledExtensionCount = {}; + const char * const * ppEnabledExtensionNames = {}; }; - static_assert( sizeof( PipelineViewportExclusiveScissorStateCreateInfoNV ) == sizeof( VkPipelineViewportExclusiveScissorStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( InstanceCreateInfo ) == sizeof( VkInstanceCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ShadingRatePaletteNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ShadingRatePaletteNV( uint32_t shadingRatePaletteEntryCount_ = {}, - const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries_ = {} ) VULKAN_HPP_NOEXCEPT - : shadingRatePaletteEntryCount( shadingRatePaletteEntryCount_ ) - , pShadingRatePaletteEntries( pShadingRatePaletteEntries_ ) + using Type = InstanceCreateInfo; + }; + +#if defined( VK_USE_PLATFORM_MACOS_MVK ) + struct MacOSSurfaceCreateInfoMVK + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMacosSurfaceCreateInfoMVK; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR MacOSSurfaceCreateInfoMVK( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ = {}, + const void * pView_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , pView( pView_ ) {} - ShadingRatePaletteNV( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR + MacOSSurfaceCreateInfoMVK( MacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + MacOSSurfaceCreateInfoMVK( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT + : MacOSSurfaceCreateInfoMVK( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 MacOSSurfaceCreateInfoMVK & + operator=( MacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + MacOSSurfaceCreateInfoMVK & operator=( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - ShadingRatePaletteNV& operator=( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT + MacOSSurfaceCreateInfoMVK & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - ShadingRatePaletteNV & setShadingRatePaletteEntryCount( uint32_t shadingRatePaletteEntryCount_ ) VULKAN_HPP_NOEXCEPT + MacOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT { - shadingRatePaletteEntryCount = shadingRatePaletteEntryCount_; + flags = flags_; return *this; } - ShadingRatePaletteNV & setPShadingRatePaletteEntries( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries_ ) VULKAN_HPP_NOEXCEPT + MacOSSurfaceCreateInfoMVK & setPView( const void * pView_ ) VULKAN_HPP_NOEXCEPT { - pShadingRatePaletteEntries = pShadingRatePaletteEntries_; + pView = pView_; return *this; } - operator VkShadingRatePaletteNV const&() const VULKAN_HPP_NOEXCEPT + operator VkMacOSSurfaceCreateInfoMVK const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkShadingRatePaletteNV &() VULKAN_HPP_NOEXCEPT + operator VkMacOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ShadingRatePaletteNV const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MacOSSurfaceCreateInfoMVK const & ) const = default; +# else + bool operator==( MacOSSurfaceCreateInfoMVK const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( shadingRatePaletteEntryCount == rhs.shadingRatePaletteEntryCount ) - && ( pShadingRatePaletteEntries == rhs.pShadingRatePaletteEntries ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( pView == rhs.pView ); } - bool operator!=( ShadingRatePaletteNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( MacOSSurfaceCreateInfoMVK const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - uint32_t shadingRatePaletteEntryCount = {}; - const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMacosSurfaceCreateInfoMVK; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags = {}; + const void * pView = {}; }; - static_assert( sizeof( ShadingRatePaletteNV ) == sizeof( VkShadingRatePaletteNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( MacOSSurfaceCreateInfoMVK ) == sizeof( VkMacOSSurfaceCreateInfoMVK ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineViewportShadingRateImageStateCreateInfoNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineViewportShadingRateImageStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ = {}, - uint32_t viewportCount_ = {}, - const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes_ = {} ) VULKAN_HPP_NOEXCEPT - : shadingRateImageEnable( shadingRateImageEnable_ ) - , viewportCount( viewportCount_ ) - , pShadingRatePalettes( pShadingRatePalettes_ ) + using Type = MacOSSurfaceCreateInfoMVK; + }; +#endif /*VK_USE_PLATFORM_MACOS_MVK*/ + + struct MemoryAllocateFlagsInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryAllocateFlagsInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR MemoryAllocateFlagsInfo( VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ = {}, + uint32_t deviceMask_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , deviceMask( deviceMask_ ) {} - VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV & operator=( VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV ) - offsetof( PipelineViewportShadingRateImageStateCreateInfoNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR MemoryAllocateFlagsInfo( MemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineViewportShadingRateImageStateCreateInfoNV( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + MemoryAllocateFlagsInfo( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : MemoryAllocateFlagsInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PipelineViewportShadingRateImageStateCreateInfoNV& operator=( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 MemoryAllocateFlagsInfo & + operator=( MemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineViewportShadingRateImageStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + MemoryAllocateFlagsInfo & operator=( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineViewportShadingRateImageStateCreateInfoNV & setShadingRateImageEnable( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ ) VULKAN_HPP_NOEXCEPT + MemoryAllocateFlagsInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - shadingRateImageEnable = shadingRateImageEnable_; + pNext = pNext_; return *this; } - PipelineViewportShadingRateImageStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT + MemoryAllocateFlagsInfo & setFlags( VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ ) VULKAN_HPP_NOEXCEPT { - viewportCount = viewportCount_; + flags = flags_; return *this; } - PipelineViewportShadingRateImageStateCreateInfoNV & setPShadingRatePalettes( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT + MemoryAllocateFlagsInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT { - pShadingRatePalettes = pShadingRatePalettes_; + deviceMask = deviceMask_; return *this; } - operator VkPipelineViewportShadingRateImageStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT + operator VkMemoryAllocateFlagsInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineViewportShadingRateImageStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT + operator VkMemoryAllocateFlagsInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineViewportShadingRateImageStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MemoryAllocateFlagsInfo const & ) const = default; +#else + bool operator==( MemoryAllocateFlagsInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shadingRateImageEnable == rhs.shadingRateImageEnable ) - && ( viewportCount == rhs.viewportCount ) - && ( pShadingRatePalettes == rhs.pShadingRatePalettes ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( deviceMask == rhs.deviceMask ); } - bool operator!=( PipelineViewportShadingRateImageStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( MemoryAllocateFlagsInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable = {}; - uint32_t viewportCount = {}; - const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateFlagsInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags = {}; + uint32_t deviceMask = {}; }; - static_assert( sizeof( PipelineViewportShadingRateImageStateCreateInfoNV ) == sizeof( VkPipelineViewportShadingRateImageStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( MemoryAllocateFlagsInfo ) == sizeof( VkMemoryAllocateFlagsInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct ViewportSwizzleNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ViewportSwizzleNV( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX, - VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX, - VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX, - VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX ) VULKAN_HPP_NOEXCEPT - : x( x_ ) - , y( y_ ) - , z( z_ ) - , w( w_ ) + using Type = MemoryAllocateFlagsInfo; + }; + using MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo; + + struct MemoryDedicatedAllocateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryDedicatedAllocateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfo( VULKAN_HPP_NAMESPACE::Image image_ = {}, + VULKAN_HPP_NAMESPACE::Buffer buffer_ = {} ) VULKAN_HPP_NOEXCEPT + : image( image_ ) + , buffer( buffer_ ) {} - ViewportSwizzleNV( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR + MemoryDedicatedAllocateInfo( MemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ViewportSwizzleNV& operator=( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + MemoryDedicatedAllocateInfo( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : MemoryDedicatedAllocateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ViewportSwizzleNV & setX( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 MemoryDedicatedAllocateInfo & + operator=( MemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + MemoryDedicatedAllocateInfo & operator=( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - x = x_; + *this = *reinterpret_cast( &rhs ); return *this; } - ViewportSwizzleNV & setY( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y_ ) VULKAN_HPP_NOEXCEPT + MemoryDedicatedAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - y = y_; + pNext = pNext_; return *this; } - ViewportSwizzleNV & setZ( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z_ ) VULKAN_HPP_NOEXCEPT + MemoryDedicatedAllocateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT { - z = z_; + image = image_; return *this; } - ViewportSwizzleNV & setW( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w_ ) VULKAN_HPP_NOEXCEPT + MemoryDedicatedAllocateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT { - w = w_; + buffer = buffer_; return *this; } - operator VkViewportSwizzleNV const&() const VULKAN_HPP_NOEXCEPT + operator VkMemoryDedicatedAllocateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkViewportSwizzleNV &() VULKAN_HPP_NOEXCEPT + operator VkMemoryDedicatedAllocateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ViewportSwizzleNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MemoryDedicatedAllocateInfo const & ) const = default; +#else + bool operator==( MemoryDedicatedAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( x == rhs.x ) - && ( y == rhs.y ) - && ( z == rhs.z ) - && ( w == rhs.w ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( image == rhs.image ) && ( buffer == rhs.buffer ); } - bool operator!=( ViewportSwizzleNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( MemoryDedicatedAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX; - VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX; - VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX; - VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedAllocateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Image image = {}; + VULKAN_HPP_NAMESPACE::Buffer buffer = {}; }; - static_assert( sizeof( ViewportSwizzleNV ) == sizeof( VkViewportSwizzleNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( MemoryDedicatedAllocateInfo ) == sizeof( VkMemoryDedicatedAllocateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineViewportSwizzleStateCreateInfoNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineViewportSwizzleStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ = {}, - uint32_t viewportCount_ = {}, - const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , viewportCount( viewportCount_ ) - , pViewportSwizzles( pViewportSwizzles_ ) + using Type = MemoryDedicatedAllocateInfo; + }; + using MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo; + + struct MemoryDedicatedRequirements + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryDedicatedRequirements; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + MemoryDedicatedRequirements( VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation_ = {} ) VULKAN_HPP_NOEXCEPT + : prefersDedicatedAllocation( prefersDedicatedAllocation_ ) + , requiresDedicatedAllocation( requiresDedicatedAllocation_ ) + {} + + VULKAN_HPP_CONSTEXPR + MemoryDedicatedRequirements( MemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + MemoryDedicatedRequirements( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT + : MemoryDedicatedRequirements( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 MemoryDedicatedRequirements & + operator=( MemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV & operator=( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + MemoryDedicatedRequirements & operator=( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV ) - offsetof( PipelineViewportSwizzleStateCreateInfoNV, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineViewportSwizzleStateCreateInfoNV( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkMemoryDedicatedRequirements const &() const VULKAN_HPP_NOEXCEPT { - *this = rhs; + return *reinterpret_cast( this ); } - PipelineViewportSwizzleStateCreateInfoNV& operator=( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkMemoryDedicatedRequirements &() VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return *reinterpret_cast( this ); } - PipelineViewportSwizzleStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MemoryDedicatedRequirements const & ) const = default; +#else + bool operator==( MemoryDedicatedRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( prefersDedicatedAllocation == rhs.prefersDedicatedAllocation ) && + ( requiresDedicatedAllocation == rhs.requiresDedicatedAllocation ); } - PipelineViewportSwizzleStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( MemoryDedicatedRequirements const & rhs ) const VULKAN_HPP_NOEXCEPT { - flags = flags_; + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedRequirements; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation = {}; + VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation = {}; + }; + static_assert( sizeof( MemoryDedicatedRequirements ) == sizeof( VkMemoryDedicatedRequirements ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = MemoryDedicatedRequirements; + }; + using MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements; + + struct MemoryOpaqueCaptureAddressAllocateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eMemoryOpaqueCaptureAddressAllocateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + MemoryOpaqueCaptureAddressAllocateInfo( uint64_t opaqueCaptureAddress_ = {} ) VULKAN_HPP_NOEXCEPT + : opaqueCaptureAddress( opaqueCaptureAddress_ ) + {} + + VULKAN_HPP_CONSTEXPR MemoryOpaqueCaptureAddressAllocateInfo( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + MemoryOpaqueCaptureAddressAllocateInfo( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : MemoryOpaqueCaptureAddressAllocateInfo( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 MemoryOpaqueCaptureAddressAllocateInfo & + operator=( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + MemoryOpaqueCaptureAddressAllocateInfo & + operator=( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineViewportSwizzleStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT + MemoryOpaqueCaptureAddressAllocateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - viewportCount = viewportCount_; + pNext = pNext_; return *this; } - PipelineViewportSwizzleStateCreateInfoNV & setPViewportSwizzles( const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles_ ) VULKAN_HPP_NOEXCEPT + MemoryOpaqueCaptureAddressAllocateInfo & + setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT { - pViewportSwizzles = pViewportSwizzles_; + opaqueCaptureAddress = opaqueCaptureAddress_; return *this; } - operator VkPipelineViewportSwizzleStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT + operator VkMemoryOpaqueCaptureAddressAllocateInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineViewportSwizzleStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT + operator VkMemoryOpaqueCaptureAddressAllocateInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineViewportSwizzleStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MemoryOpaqueCaptureAddressAllocateInfo const & ) const = default; +#else + bool operator==( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( viewportCount == rhs.viewportCount ) - && ( pViewportSwizzles == rhs.pViewportSwizzles ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress ); } - bool operator!=( PipelineViewportSwizzleStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags = {}; - uint32_t viewportCount = {}; - const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryOpaqueCaptureAddressAllocateInfo; + const void * pNext = {}; + uint64_t opaqueCaptureAddress = {}; }; - static_assert( sizeof( PipelineViewportSwizzleStateCreateInfoNV ) == sizeof( VkPipelineViewportSwizzleStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( MemoryOpaqueCaptureAddressAllocateInfo ) == sizeof( VkMemoryOpaqueCaptureAddressAllocateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct ViewportWScalingNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ViewportWScalingNV( float xcoeff_ = {}, - float ycoeff_ = {} ) VULKAN_HPP_NOEXCEPT - : xcoeff( xcoeff_ ) - , ycoeff( ycoeff_ ) + using Type = MemoryOpaqueCaptureAddressAllocateInfo; + }; + using MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo; + + struct MemoryPriorityAllocateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryPriorityAllocateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR MemoryPriorityAllocateInfoEXT( float priority_ = {} ) VULKAN_HPP_NOEXCEPT + : priority( priority_ ) {} - ViewportWScalingNV( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR + MemoryPriorityAllocateInfoEXT( MemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + MemoryPriorityAllocateInfoEXT( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : MemoryPriorityAllocateInfoEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 MemoryPriorityAllocateInfoEXT & + operator=( MemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ViewportWScalingNV& operator=( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT + MemoryPriorityAllocateInfoEXT & operator=( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - ViewportWScalingNV & setXcoeff( float xcoeff_ ) VULKAN_HPP_NOEXCEPT + MemoryPriorityAllocateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - xcoeff = xcoeff_; + pNext = pNext_; return *this; } - ViewportWScalingNV & setYcoeff( float ycoeff_ ) VULKAN_HPP_NOEXCEPT + MemoryPriorityAllocateInfoEXT & setPriority( float priority_ ) VULKAN_HPP_NOEXCEPT { - ycoeff = ycoeff_; + priority = priority_; return *this; } - operator VkViewportWScalingNV const&() const VULKAN_HPP_NOEXCEPT + operator VkMemoryPriorityAllocateInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkViewportWScalingNV &() VULKAN_HPP_NOEXCEPT + operator VkMemoryPriorityAllocateInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ViewportWScalingNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MemoryPriorityAllocateInfoEXT const & ) const = default; +#else + bool operator==( MemoryPriorityAllocateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( xcoeff == rhs.xcoeff ) - && ( ycoeff == rhs.ycoeff ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( priority == rhs.priority ); } - bool operator!=( ViewportWScalingNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( MemoryPriorityAllocateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - float xcoeff = {}; - float ycoeff = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryPriorityAllocateInfoEXT; + const void * pNext = {}; + float priority = {}; }; - static_assert( sizeof( ViewportWScalingNV ) == sizeof( VkViewportWScalingNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( MemoryPriorityAllocateInfoEXT ) == sizeof( VkMemoryPriorityAllocateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PipelineViewportWScalingStateCreateInfoNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PipelineViewportWScalingStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ = {}, - uint32_t viewportCount_ = {}, - const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings_ = {} ) VULKAN_HPP_NOEXCEPT - : viewportWScalingEnable( viewportWScalingEnable_ ) - , viewportCount( viewportCount_ ) - , pViewportWScalings( pViewportWScalings_ ) + using Type = MemoryPriorityAllocateInfoEXT; + }; + +#if defined( VK_USE_PLATFORM_METAL_EXT ) + struct MetalSurfaceCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMetalSurfaceCreateInfoEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR MetalSurfaceCreateInfoEXT( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ = {}, + const CAMetalLayer * pLayer_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , pLayer( pLayer_ ) {} - VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV & operator=( VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV ) - offsetof( PipelineViewportWScalingStateCreateInfoNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + MetalSurfaceCreateInfoEXT( MetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineViewportWScalingStateCreateInfoNV( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + MetalSurfaceCreateInfoEXT( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : MetalSurfaceCreateInfoEXT( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PipelineViewportWScalingStateCreateInfoNV& operator=( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 MetalSurfaceCreateInfoEXT & + operator=( MetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PipelineViewportWScalingStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + MetalSurfaceCreateInfoEXT & operator=( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - PipelineViewportWScalingStateCreateInfoNV & setViewportWScalingEnable( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ ) VULKAN_HPP_NOEXCEPT + MetalSurfaceCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - viewportWScalingEnable = viewportWScalingEnable_; + pNext = pNext_; return *this; } - PipelineViewportWScalingStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT + MetalSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT { - viewportCount = viewportCount_; + flags = flags_; return *this; } - PipelineViewportWScalingStateCreateInfoNV & setPViewportWScalings( const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings_ ) VULKAN_HPP_NOEXCEPT + MetalSurfaceCreateInfoEXT & setPLayer( const CAMetalLayer * pLayer_ ) VULKAN_HPP_NOEXCEPT { - pViewportWScalings = pViewportWScalings_; + pLayer = pLayer_; return *this; } - operator VkPipelineViewportWScalingStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT + operator VkMetalSurfaceCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPipelineViewportWScalingStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT + operator VkMetalSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PipelineViewportWScalingStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MetalSurfaceCreateInfoEXT const & ) const = default; +# else + bool operator==( MetalSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( viewportWScalingEnable == rhs.viewportWScalingEnable ) - && ( viewportCount == rhs.viewportCount ) - && ( pViewportWScalings == rhs.pViewportWScalings ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( pLayer == rhs.pLayer ); } - bool operator!=( PipelineViewportWScalingStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( MetalSurfaceCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportWScalingStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable = {}; - uint32_t viewportCount = {}; - const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMetalSurfaceCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags = {}; + const CAMetalLayer * pLayer = {}; }; - static_assert( sizeof( PipelineViewportWScalingStateCreateInfoNV ) == sizeof( VkPipelineViewportWScalingStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( MetalSurfaceCreateInfoEXT ) == sizeof( VkMetalSurfaceCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_GGP + template <> + struct CppType + { + using Type = MetalSurfaceCreateInfoEXT; + }; +#endif /*VK_USE_PLATFORM_METAL_EXT*/ - struct PresentFrameTokenGGP + struct MutableDescriptorTypeListVALVE { - VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP( GgpFrameToken frameToken_ = {} ) VULKAN_HPP_NOEXCEPT - : frameToken( frameToken_ ) +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR MutableDescriptorTypeListVALVE( + uint32_t descriptorTypeCount_ = {}, + const VULKAN_HPP_NAMESPACE::DescriptorType * pDescriptorTypes_ = {} ) VULKAN_HPP_NOEXCEPT + : descriptorTypeCount( descriptorTypeCount_ ) + , pDescriptorTypes( pDescriptorTypes_ ) {} - VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP & operator=( VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP ) - offsetof( PresentFrameTokenGGP, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + MutableDescriptorTypeListVALVE( MutableDescriptorTypeListVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PresentFrameTokenGGP( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT + MutableDescriptorTypeListVALVE( VkMutableDescriptorTypeListVALVE const & rhs ) VULKAN_HPP_NOEXCEPT + : MutableDescriptorTypeListVALVE( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + MutableDescriptorTypeListVALVE( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + descriptorTypes_ ) + : descriptorTypeCount( static_cast( descriptorTypes_.size() ) ) + , pDescriptorTypes( descriptorTypes_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 MutableDescriptorTypeListVALVE & + operator=( MutableDescriptorTypeListVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + MutableDescriptorTypeListVALVE & operator=( VkMutableDescriptorTypeListVALVE const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - PresentFrameTokenGGP& operator=( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT + MutableDescriptorTypeListVALVE & setDescriptorTypeCount( uint32_t descriptorTypeCount_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + descriptorTypeCount = descriptorTypeCount_; return *this; } - PresentFrameTokenGGP & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + MutableDescriptorTypeListVALVE & + setPDescriptorTypes( const VULKAN_HPP_NAMESPACE::DescriptorType * pDescriptorTypes_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + pDescriptorTypes = pDescriptorTypes_; return *this; } - PresentFrameTokenGGP & setFrameToken( GgpFrameToken frameToken_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + MutableDescriptorTypeListVALVE & setDescriptorTypes( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + descriptorTypes_ ) VULKAN_HPP_NOEXCEPT { - frameToken = frameToken_; + descriptorTypeCount = static_cast( descriptorTypes_.size() ); + pDescriptorTypes = descriptorTypes_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPresentFrameTokenGGP const&() const VULKAN_HPP_NOEXCEPT + operator VkMutableDescriptorTypeListVALVE const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPresentFrameTokenGGP &() VULKAN_HPP_NOEXCEPT + operator VkMutableDescriptorTypeListVALVE &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PresentFrameTokenGGP const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MutableDescriptorTypeListVALVE const & ) const = default; +#else + bool operator==( MutableDescriptorTypeListVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( frameToken == rhs.frameToken ); + return ( descriptorTypeCount == rhs.descriptorTypeCount ) && ( pDescriptorTypes == rhs.pDescriptorTypes ); } - bool operator!=( PresentFrameTokenGGP const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( MutableDescriptorTypeListVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentFrameTokenGGP; - const void* pNext = {}; - GgpFrameToken frameToken = {}; + uint32_t descriptorTypeCount = {}; + const VULKAN_HPP_NAMESPACE::DescriptorType * pDescriptorTypes = {}; }; - static_assert( sizeof( PresentFrameTokenGGP ) == sizeof( VkPresentFrameTokenGGP ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_GGP*/ + static_assert( sizeof( MutableDescriptorTypeListVALVE ) == sizeof( VkMutableDescriptorTypeListVALVE ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PresentInfoKHR + struct MutableDescriptorTypeCreateInfoVALVE { - VULKAN_HPP_CONSTEXPR PresentInfoKHR( uint32_t waitSemaphoreCount_ = {}, - const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ = {}, - uint32_t swapchainCount_ = {}, - const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains_ = {}, - const uint32_t* pImageIndices_ = {}, - VULKAN_HPP_NAMESPACE::Result* pResults_ = {} ) VULKAN_HPP_NOEXCEPT - : waitSemaphoreCount( waitSemaphoreCount_ ) - , pWaitSemaphores( pWaitSemaphores_ ) - , swapchainCount( swapchainCount_ ) - , pSwapchains( pSwapchains_ ) - , pImageIndices( pImageIndices_ ) - , pResults( pResults_ ) - {} + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eMutableDescriptorTypeCreateInfoVALVE; - VULKAN_HPP_NAMESPACE::PresentInfoKHR & operator=( VULKAN_HPP_NAMESPACE::PresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PresentInfoKHR ) - offsetof( PresentInfoKHR, pNext ) ); - return *this; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR MutableDescriptorTypeCreateInfoVALVE( + uint32_t mutableDescriptorTypeListCount_ = {}, + const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE * pMutableDescriptorTypeLists_ = {} ) + VULKAN_HPP_NOEXCEPT + : mutableDescriptorTypeListCount( mutableDescriptorTypeListCount_ ) + , pMutableDescriptorTypeLists( pMutableDescriptorTypeLists_ ) + {} - PresentInfoKHR( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR MutableDescriptorTypeCreateInfoVALVE( MutableDescriptorTypeCreateInfoVALVE const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - PresentInfoKHR& operator=( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + MutableDescriptorTypeCreateInfoVALVE( VkMutableDescriptorTypeCreateInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT + : MutableDescriptorTypeCreateInfoVALVE( *reinterpret_cast( &rhs ) ) + {} - PresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + MutableDescriptorTypeCreateInfoVALVE( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + mutableDescriptorTypeLists_ ) + : mutableDescriptorTypeListCount( static_cast( mutableDescriptorTypeLists_.size() ) ) + , pMutableDescriptorTypeLists( mutableDescriptorTypeLists_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PresentInfoKHR & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreCount = waitSemaphoreCount_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 MutableDescriptorTypeCreateInfoVALVE & + operator=( MutableDescriptorTypeCreateInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PresentInfoKHR & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT + MutableDescriptorTypeCreateInfoVALVE & + operator=( VkMutableDescriptorTypeCreateInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT { - pWaitSemaphores = pWaitSemaphores_; + *this = *reinterpret_cast( &rhs ); return *this; } - PresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT + MutableDescriptorTypeCreateInfoVALVE & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - swapchainCount = swapchainCount_; + pNext = pNext_; return *this; } - PresentInfoKHR & setPSwapchains( const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains_ ) VULKAN_HPP_NOEXCEPT + MutableDescriptorTypeCreateInfoVALVE & + setMutableDescriptorTypeListCount( uint32_t mutableDescriptorTypeListCount_ ) VULKAN_HPP_NOEXCEPT { - pSwapchains = pSwapchains_; + mutableDescriptorTypeListCount = mutableDescriptorTypeListCount_; return *this; } - PresentInfoKHR & setPImageIndices( const uint32_t* pImageIndices_ ) VULKAN_HPP_NOEXCEPT + MutableDescriptorTypeCreateInfoVALVE & setPMutableDescriptorTypeLists( + const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE * pMutableDescriptorTypeLists_ ) VULKAN_HPP_NOEXCEPT { - pImageIndices = pImageIndices_; + pMutableDescriptorTypeLists = pMutableDescriptorTypeLists_; return *this; } - PresentInfoKHR & setPResults( VULKAN_HPP_NAMESPACE::Result* pResults_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + MutableDescriptorTypeCreateInfoVALVE & setMutableDescriptorTypeLists( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + mutableDescriptorTypeLists_ ) VULKAN_HPP_NOEXCEPT { - pResults = pResults_; + mutableDescriptorTypeListCount = static_cast( mutableDescriptorTypeLists_.size() ); + pMutableDescriptorTypeLists = mutableDescriptorTypeLists_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkMutableDescriptorTypeCreateInfoVALVE const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPresentInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkMutableDescriptorTypeCreateInfoVALVE &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( MutableDescriptorTypeCreateInfoVALVE const & ) const = default; +#else + bool operator==( MutableDescriptorTypeCreateInfoVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) - && ( pWaitSemaphores == rhs.pWaitSemaphores ) - && ( swapchainCount == rhs.swapchainCount ) - && ( pSwapchains == rhs.pSwapchains ) - && ( pImageIndices == rhs.pImageIndices ) - && ( pResults == rhs.pResults ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( mutableDescriptorTypeListCount == rhs.mutableDescriptorTypeListCount ) && + ( pMutableDescriptorTypeLists == rhs.pMutableDescriptorTypeLists ); } - bool operator!=( PresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( MutableDescriptorTypeCreateInfoVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentInfoKHR; - const void* pNext = {}; - uint32_t waitSemaphoreCount = {}; - const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {}; - uint32_t swapchainCount = {}; - const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains = {}; - const uint32_t* pImageIndices = {}; - VULKAN_HPP_NAMESPACE::Result* pResults = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMutableDescriptorTypeCreateInfoVALVE; + const void * pNext = {}; + uint32_t mutableDescriptorTypeListCount = {}; + const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE * pMutableDescriptorTypeLists = {}; }; - static_assert( sizeof( PresentInfoKHR ) == sizeof( VkPresentInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( MutableDescriptorTypeCreateInfoVALVE ) == sizeof( VkMutableDescriptorTypeCreateInfoVALVE ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct RectLayerKHR + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR RectLayerKHR( VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, - VULKAN_HPP_NAMESPACE::Extent2D extent_ = {}, - uint32_t layer_ = {} ) VULKAN_HPP_NOEXCEPT - : offset( offset_ ) - , extent( extent_ ) - , layer( layer_ ) - {} + using Type = MutableDescriptorTypeCreateInfoVALVE; + }; - explicit RectLayerKHR( Rect2D const& rect2D, - uint32_t layer_ = {} ) - : offset( rect2D.offset ) - , extent( rect2D.extent ) - , layer( layer_ ) - {} + union PerformanceCounterResultKHR + { + PerformanceCounterResultKHR( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + memcpy( static_cast( this ), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR ) ); + } - RectLayerKHR( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PerformanceCounterResultKHR( int32_t int32_ = {} ) : int32( int32_ ) {} + + PerformanceCounterResultKHR( int64_t int64_ ) : int64( int64_ ) {} + + PerformanceCounterResultKHR( uint32_t uint32_ ) : uint32( uint32_ ) {} + + PerformanceCounterResultKHR( uint64_t uint64_ ) : uint64( uint64_ ) {} + + PerformanceCounterResultKHR( float float32_ ) : float32( float32_ ) {} + + PerformanceCounterResultKHR( double float64_ ) : float64( float64_ ) {} + + PerformanceCounterResultKHR & setInt32( int32_t int32_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + int32 = int32_; + return *this; } - RectLayerKHR& operator=( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PerformanceCounterResultKHR & setInt64( int64_t int64_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + int64 = int64_; return *this; } - RectLayerKHR & setOffset( VULKAN_HPP_NAMESPACE::Offset2D offset_ ) VULKAN_HPP_NOEXCEPT + PerformanceCounterResultKHR & setUint32( uint32_t uint32_ ) VULKAN_HPP_NOEXCEPT { - offset = offset_; + uint32 = uint32_; return *this; } - RectLayerKHR & setExtent( VULKAN_HPP_NAMESPACE::Extent2D extent_ ) VULKAN_HPP_NOEXCEPT + PerformanceCounterResultKHR & setUint64( uint64_t uint64_ ) VULKAN_HPP_NOEXCEPT { - extent = extent_; + uint64 = uint64_; return *this; } - RectLayerKHR & setLayer( uint32_t layer_ ) VULKAN_HPP_NOEXCEPT + PerformanceCounterResultKHR & setFloat32( float float32_ ) VULKAN_HPP_NOEXCEPT { - layer = layer_; + float32 = float32_; return *this; } - operator VkRectLayerKHR const&() const VULKAN_HPP_NOEXCEPT + PerformanceCounterResultKHR & setFloat64( double float64_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + float64 = float64_; + return *this; } - operator VkRectLayerKHR &() VULKAN_HPP_NOEXCEPT + VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR & + operator=( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + memcpy( static_cast( this ), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR ) ); + return *this; } - bool operator==( RectLayerKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkPerformanceCounterResultKHR const &() const { - return ( offset == rhs.offset ) - && ( extent == rhs.extent ) - && ( layer == rhs.layer ); + return *reinterpret_cast( this ); } - bool operator!=( RectLayerKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkPerformanceCounterResultKHR &() { - return !operator==( rhs ); + return *reinterpret_cast( this ); } - public: - VULKAN_HPP_NAMESPACE::Offset2D offset = {}; - VULKAN_HPP_NAMESPACE::Extent2D extent = {}; - uint32_t layer = {}; + int32_t int32; + int64_t int64; + uint32_t uint32; + uint64_t uint64; + float float32; + double float64; }; - static_assert( sizeof( RectLayerKHR ) == sizeof( VkRectLayerKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct PresentRegionKHR + struct PerformanceQuerySubmitInfoKHR { - VULKAN_HPP_CONSTEXPR PresentRegionKHR( uint32_t rectangleCount_ = {}, - const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles_ = {} ) VULKAN_HPP_NOEXCEPT - : rectangleCount( rectangleCount_ ) - , pRectangles( pRectangles_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceQuerySubmitInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PerformanceQuerySubmitInfoKHR( uint32_t counterPassIndex_ = {} ) VULKAN_HPP_NOEXCEPT + : counterPassIndex( counterPassIndex_ ) {} - PresentRegionKHR( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR + PerformanceQuerySubmitInfoKHR( PerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PerformanceQuerySubmitInfoKHR( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PerformanceQuerySubmitInfoKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - PresentRegionKHR& operator=( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PerformanceQuerySubmitInfoKHR & + operator=( PerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PerformanceQuerySubmitInfoKHR & operator=( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - PresentRegionKHR & setRectangleCount( uint32_t rectangleCount_ ) VULKAN_HPP_NOEXCEPT + PerformanceQuerySubmitInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - rectangleCount = rectangleCount_; + pNext = pNext_; return *this; } - PresentRegionKHR & setPRectangles( const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles_ ) VULKAN_HPP_NOEXCEPT + PerformanceQuerySubmitInfoKHR & setCounterPassIndex( uint32_t counterPassIndex_ ) VULKAN_HPP_NOEXCEPT { - pRectangles = pRectangles_; + counterPassIndex = counterPassIndex_; return *this; } - operator VkPresentRegionKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkPerformanceQuerySubmitInfoKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPresentRegionKHR &() VULKAN_HPP_NOEXCEPT + operator VkPerformanceQuerySubmitInfoKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PresentRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PerformanceQuerySubmitInfoKHR const & ) const = default; +#else + bool operator==( PerformanceQuerySubmitInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( rectangleCount == rhs.rectangleCount ) - && ( pRectangles == rhs.pRectangles ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( counterPassIndex == rhs.counterPassIndex ); } - bool operator!=( PresentRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PerformanceQuerySubmitInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint32_t rectangleCount = {}; - const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceQuerySubmitInfoKHR; + const void * pNext = {}; + uint32_t counterPassIndex = {}; }; - static_assert( sizeof( PresentRegionKHR ) == sizeof( VkPresentRegionKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PerformanceQuerySubmitInfoKHR ) == sizeof( VkPerformanceQuerySubmitInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PresentRegionsKHR + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PresentRegionsKHR( uint32_t swapchainCount_ = {}, - const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions_ = {} ) VULKAN_HPP_NOEXCEPT - : swapchainCount( swapchainCount_ ) - , pRegions( pRegions_ ) + using Type = PerformanceQuerySubmitInfoKHR; + }; + + struct PhysicalDevice16BitStorageFeatures + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDevice16BitStorageFeatures; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDevice16BitStorageFeatures( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ = {} ) VULKAN_HPP_NOEXCEPT + : storageBuffer16BitAccess( storageBuffer16BitAccess_ ) + , uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ ) + , storagePushConstant16( storagePushConstant16_ ) + , storageInputOutput16( storageInputOutput16_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDevice16BitStorageFeatures( PhysicalDevice16BitStorageFeatures const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + PhysicalDevice16BitStorageFeatures( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDevice16BitStorageFeatures( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDevice16BitStorageFeatures & + operator=( PhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::PresentRegionsKHR & operator=( VULKAN_HPP_NAMESPACE::PresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDevice16BitStorageFeatures & + operator=( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PresentRegionsKHR ) - offsetof( PresentRegionsKHR, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - PresentRegionsKHR( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDevice16BitStorageFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - PresentRegionsKHR& operator=( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDevice16BitStorageFeatures & + setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + storageBuffer16BitAccess = storageBuffer16BitAccess_; return *this; } - PresentRegionsKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevice16BitStorageFeatures & setUniformAndStorageBuffer16BitAccess( + VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_; return *this; } - PresentRegionsKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevice16BitStorageFeatures & + setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT { - swapchainCount = swapchainCount_; + storagePushConstant16 = storagePushConstant16_; return *this; } - PresentRegionsKHR & setPRegions( const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevice16BitStorageFeatures & + setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT { - pRegions = pRegions_; + storageInputOutput16 = storageInputOutput16_; return *this; } - operator VkPresentRegionsKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevice16BitStorageFeatures const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPresentRegionsKHR &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevice16BitStorageFeatures &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PresentRegionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDevice16BitStorageFeatures const & ) const = default; +#else + bool operator==( PhysicalDevice16BitStorageFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( swapchainCount == rhs.swapchainCount ) - && ( pRegions == rhs.pRegions ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess ) && + ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess ) && + ( storagePushConstant16 == rhs.storagePushConstant16 ) && + ( storageInputOutput16 == rhs.storageInputOutput16 ); } - bool operator!=( PresentRegionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDevice16BitStorageFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentRegionsKHR; - const void* pNext = {}; - uint32_t swapchainCount = {}; - const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice16BitStorageFeatures; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {}; + VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {}; + VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {}; + VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {}; }; - static_assert( sizeof( PresentRegionsKHR ) == sizeof( VkPresentRegionsKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDevice16BitStorageFeatures ) == sizeof( VkPhysicalDevice16BitStorageFeatures ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PresentTimeGOOGLE + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PresentTimeGOOGLE( uint32_t presentID_ = {}, - uint64_t desiredPresentTime_ = {} ) VULKAN_HPP_NOEXCEPT - : presentID( presentID_ ) - , desiredPresentTime( desiredPresentTime_ ) + using Type = PhysicalDevice16BitStorageFeatures; + }; + using PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures; + + struct PhysicalDevice4444FormatsFeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDevice4444FormatsFeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDevice4444FormatsFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4_ = {} ) VULKAN_HPP_NOEXCEPT + : formatA4R4G4B4( formatA4R4G4B4_ ) + , formatA4B4G4R4( formatA4B4G4R4_ ) {} - PresentTimeGOOGLE( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR PhysicalDevice4444FormatsFeaturesEXT( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + PhysicalDevice4444FormatsFeaturesEXT( VkPhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDevice4444FormatsFeaturesEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDevice4444FormatsFeaturesEXT & + operator=( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDevice4444FormatsFeaturesEXT & + operator=( VkPhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - PresentTimeGOOGLE& operator=( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDevice4444FormatsFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - PresentTimeGOOGLE & setPresentID( uint32_t presentID_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevice4444FormatsFeaturesEXT & + setFormatA4R4G4B4( VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4_ ) VULKAN_HPP_NOEXCEPT { - presentID = presentID_; + formatA4R4G4B4 = formatA4R4G4B4_; return *this; } - PresentTimeGOOGLE & setDesiredPresentTime( uint64_t desiredPresentTime_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevice4444FormatsFeaturesEXT & + setFormatA4B4G4R4( VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4_ ) VULKAN_HPP_NOEXCEPT { - desiredPresentTime = desiredPresentTime_; + formatA4B4G4R4 = formatA4B4G4R4_; return *this; } - operator VkPresentTimeGOOGLE const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevice4444FormatsFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPresentTimeGOOGLE &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevice4444FormatsFeaturesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PresentTimeGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDevice4444FormatsFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( presentID == rhs.presentID ) - && ( desiredPresentTime == rhs.desiredPresentTime ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( formatA4R4G4B4 == rhs.formatA4R4G4B4 ) && + ( formatA4B4G4R4 == rhs.formatA4B4G4R4 ); } - bool operator!=( PresentTimeGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint32_t presentID = {}; - uint64_t desiredPresentTime = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice4444FormatsFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4 = {}; + VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4 = {}; }; - static_assert( sizeof( PresentTimeGOOGLE ) == sizeof( VkPresentTimeGOOGLE ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDevice4444FormatsFeaturesEXT ) == sizeof( VkPhysicalDevice4444FormatsFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct PresentTimesInfoGOOGLE + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR PresentTimesInfoGOOGLE( uint32_t swapchainCount_ = {}, - const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes_ = {} ) VULKAN_HPP_NOEXCEPT - : swapchainCount( swapchainCount_ ) - , pTimes( pTimes_ ) + using Type = PhysicalDevice4444FormatsFeaturesEXT; + }; + + struct PhysicalDevice8BitStorageFeatures + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDevice8BitStorageFeatures; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDevice8BitStorageFeatures( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ = {} ) VULKAN_HPP_NOEXCEPT + : storageBuffer8BitAccess( storageBuffer8BitAccess_ ) + , uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ ) + , storagePushConstant8( storagePushConstant8_ ) {} - VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE & operator=( VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE ) - offsetof( PresentTimesInfoGOOGLE, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR + PhysicalDevice8BitStorageFeatures( PhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PresentTimesInfoGOOGLE( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDevice8BitStorageFeatures( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDevice8BitStorageFeatures( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDevice8BitStorageFeatures & + operator=( PhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDevice8BitStorageFeatures & operator=( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - PresentTimesInfoGOOGLE& operator=( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDevice8BitStorageFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - PresentTimesInfoGOOGLE & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevice8BitStorageFeatures & + setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + storageBuffer8BitAccess = storageBuffer8BitAccess_; return *this; } - PresentTimesInfoGOOGLE & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevice8BitStorageFeatures & setUniformAndStorageBuffer8BitAccess( + VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT { - swapchainCount = swapchainCount_; + uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_; return *this; } - PresentTimesInfoGOOGLE & setPTimes( const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevice8BitStorageFeatures & + setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT { - pTimes = pTimes_; + storagePushConstant8 = storagePushConstant8_; return *this; } - operator VkPresentTimesInfoGOOGLE const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevice8BitStorageFeatures const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPresentTimesInfoGOOGLE &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevice8BitStorageFeatures &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( PresentTimesInfoGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDevice8BitStorageFeatures const & ) const = default; +#else + bool operator==( PhysicalDevice8BitStorageFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( swapchainCount == rhs.swapchainCount ) - && ( pTimes == rhs.pTimes ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess ) && + ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess ) && + ( storagePushConstant8 == rhs.storagePushConstant8 ); } - bool operator!=( PresentTimesInfoGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDevice8BitStorageFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentTimesInfoGOOGLE; - const void* pNext = {}; - uint32_t swapchainCount = {}; - const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice8BitStorageFeatures; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {}; + VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {}; + VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {}; }; - static_assert( sizeof( PresentTimesInfoGOOGLE ) == sizeof( VkPresentTimesInfoGOOGLE ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDevice8BitStorageFeatures ) == sizeof( VkPhysicalDevice8BitStorageFeatures ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct ProtectedSubmitInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ProtectedSubmitInfo( VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ = {} ) VULKAN_HPP_NOEXCEPT - : protectedSubmit( protectedSubmit_ ) + using Type = PhysicalDevice8BitStorageFeatures; + }; + using PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures; + + struct PhysicalDeviceASTCDecodeFeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceASTCDecodeFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ = {} ) VULKAN_HPP_NOEXCEPT + : decodeModeSharedExponent( decodeModeSharedExponent_ ) {} - VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo & operator=( VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo ) - offsetof( ProtectedSubmitInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceASTCDecodeFeaturesEXT( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - ProtectedSubmitInfo( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceASTCDecodeFeaturesEXT( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceASTCDecodeFeaturesEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceASTCDecodeFeaturesEXT & + operator=( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ProtectedSubmitInfo& operator=( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceASTCDecodeFeaturesEXT & + operator=( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - ProtectedSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceASTCDecodeFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - ProtectedSubmitInfo & setProtectedSubmit( VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceASTCDecodeFeaturesEXT & + setDecodeModeSharedExponent( VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ ) VULKAN_HPP_NOEXCEPT { - protectedSubmit = protectedSubmit_; + decodeModeSharedExponent = decodeModeSharedExponent_; return *this; } - operator VkProtectedSubmitInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceASTCDecodeFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkProtectedSubmitInfo &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceASTCDecodeFeaturesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ProtectedSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceASTCDecodeFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( protectedSubmit == rhs.protectedSubmit ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( decodeModeSharedExponent == rhs.decodeModeSharedExponent ); } - bool operator!=( ProtectedSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eProtectedSubmitInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent = {}; }; - static_assert( sizeof( ProtectedSubmitInfo ) == sizeof( VkProtectedSubmitInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceASTCDecodeFeaturesEXT ) == sizeof( VkPhysicalDeviceASTCDecodeFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct QueryPoolCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR QueryPoolCreateInfo( VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::QueryType queryType_ = VULKAN_HPP_NAMESPACE::QueryType::eOcclusion, - uint32_t queryCount_ = {}, - VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , queryType( queryType_ ) - , queryCount( queryCount_ ) - , pipelineStatistics( pipelineStatistics_ ) + using Type = PhysicalDeviceASTCDecodeFeaturesEXT; + }; + + struct PhysicalDeviceAccelerationStructureFeaturesKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceAccelerationStructureFeaturesKHR( + VULKAN_HPP_NAMESPACE::Bool32 accelerationStructure_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureCaptureReplay_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureIndirectBuild_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingAccelerationStructureUpdateAfterBind_ = {} ) VULKAN_HPP_NOEXCEPT + : accelerationStructure( accelerationStructure_ ) + , accelerationStructureCaptureReplay( accelerationStructureCaptureReplay_ ) + , accelerationStructureIndirectBuild( accelerationStructureIndirectBuild_ ) + , accelerationStructureHostCommands( accelerationStructureHostCommands_ ) + , descriptorBindingAccelerationStructureUpdateAfterBind( descriptorBindingAccelerationStructureUpdateAfterBind_ ) {} - VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo & operator=( VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo ) - offsetof( QueryPoolCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceAccelerationStructureFeaturesKHR( + PhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - QueryPoolCreateInfo( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceAccelerationStructureFeaturesKHR( VkPhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceAccelerationStructureFeaturesKHR( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructureFeaturesKHR & + operator=( PhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceAccelerationStructureFeaturesKHR & + operator=( VkPhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - QueryPoolCreateInfo& operator=( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceAccelerationStructureFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - QueryPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceAccelerationStructureFeaturesKHR & + setAccelerationStructure( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructure_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + accelerationStructure = accelerationStructure_; return *this; } - QueryPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceAccelerationStructureFeaturesKHR & setAccelerationStructureCaptureReplay( + VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureCaptureReplay_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + accelerationStructureCaptureReplay = accelerationStructureCaptureReplay_; return *this; } - QueryPoolCreateInfo & setQueryType( VULKAN_HPP_NAMESPACE::QueryType queryType_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceAccelerationStructureFeaturesKHR & setAccelerationStructureIndirectBuild( + VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureIndirectBuild_ ) VULKAN_HPP_NOEXCEPT { - queryType = queryType_; + accelerationStructureIndirectBuild = accelerationStructureIndirectBuild_; return *this; } - QueryPoolCreateInfo & setQueryCount( uint32_t queryCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceAccelerationStructureFeaturesKHR & setAccelerationStructureHostCommands( + VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands_ ) VULKAN_HPP_NOEXCEPT { - queryCount = queryCount_; + accelerationStructureHostCommands = accelerationStructureHostCommands_; return *this; } - QueryPoolCreateInfo & setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceAccelerationStructureFeaturesKHR & setDescriptorBindingAccelerationStructureUpdateAfterBind( + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingAccelerationStructureUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT { - pipelineStatistics = pipelineStatistics_; + descriptorBindingAccelerationStructureUpdateAfterBind = descriptorBindingAccelerationStructureUpdateAfterBind_; return *this; } - operator VkQueryPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceAccelerationStructureFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkQueryPoolCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceAccelerationStructureFeaturesKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( QueryPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceAccelerationStructureFeaturesKHR const & ) const = default; +#else + bool operator==( PhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( queryType == rhs.queryType ) - && ( queryCount == rhs.queryCount ) - && ( pipelineStatistics == rhs.pipelineStatistics ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( accelerationStructure == rhs.accelerationStructure ) && + ( accelerationStructureCaptureReplay == rhs.accelerationStructureCaptureReplay ) && + ( accelerationStructureIndirectBuild == rhs.accelerationStructureIndirectBuild ) && + ( accelerationStructureHostCommands == rhs.accelerationStructureHostCommands ) && + ( descriptorBindingAccelerationStructureUpdateAfterBind == + rhs.descriptorBindingAccelerationStructureUpdateAfterBind ); } - bool operator!=( QueryPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::QueryType queryType = VULKAN_HPP_NAMESPACE::QueryType::eOcclusion; - uint32_t queryCount = {}; - VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 accelerationStructure = {}; + VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureCaptureReplay = {}; + VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureIndirectBuild = {}; + VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingAccelerationStructureUpdateAfterBind = {}; }; - static_assert( sizeof( QueryPoolCreateInfo ) == sizeof( VkQueryPoolCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceAccelerationStructureFeaturesKHR ) == + sizeof( VkPhysicalDeviceAccelerationStructureFeaturesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct QueryPoolCreateInfoINTEL + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR QueryPoolCreateInfoINTEL( VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ = VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual ) VULKAN_HPP_NOEXCEPT - : performanceCountersSampling( performanceCountersSampling_ ) - {} + using Type = PhysicalDeviceAccelerationStructureFeaturesKHR; + }; - VULKAN_HPP_NAMESPACE::QueryPoolCreateInfoINTEL & operator=( VULKAN_HPP_NAMESPACE::QueryPoolCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::QueryPoolCreateInfoINTEL ) - offsetof( QueryPoolCreateInfoINTEL, pNext ) ); - return *this; - } + struct PhysicalDeviceAccelerationStructurePropertiesKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR; - QueryPoolCreateInfoINTEL( VkQueryPoolCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceAccelerationStructurePropertiesKHR( + uint64_t maxGeometryCount_ = {}, + uint64_t maxInstanceCount_ = {}, + uint64_t maxPrimitiveCount_ = {}, + uint32_t maxPerStageDescriptorAccelerationStructures_ = {}, + uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures_ = {}, + uint32_t maxDescriptorSetAccelerationStructures_ = {}, + uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures_ = {}, + uint32_t minAccelerationStructureScratchOffsetAlignment_ = {} ) VULKAN_HPP_NOEXCEPT + : maxGeometryCount( maxGeometryCount_ ) + , maxInstanceCount( maxInstanceCount_ ) + , maxPrimitiveCount( maxPrimitiveCount_ ) + , maxPerStageDescriptorAccelerationStructures( maxPerStageDescriptorAccelerationStructures_ ) + , maxPerStageDescriptorUpdateAfterBindAccelerationStructures( + maxPerStageDescriptorUpdateAfterBindAccelerationStructures_ ) + , maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ ) + , maxDescriptorSetUpdateAfterBindAccelerationStructures( maxDescriptorSetUpdateAfterBindAccelerationStructures_ ) + , minAccelerationStructureScratchOffsetAlignment( minAccelerationStructureScratchOffsetAlignment_ ) + {} - QueryPoolCreateInfoINTEL& operator=( VkQueryPoolCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceAccelerationStructurePropertiesKHR( + PhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - QueryPoolCreateInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + PhysicalDeviceAccelerationStructurePropertiesKHR( VkPhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceAccelerationStructurePropertiesKHR( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceAccelerationStructurePropertiesKHR & + operator=( PhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - QueryPoolCreateInfoINTEL & setPerformanceCountersSampling( VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceAccelerationStructurePropertiesKHR & + operator=( VkPhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - performanceCountersSampling = performanceCountersSampling_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkQueryPoolCreateInfoINTEL const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceAccelerationStructurePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkQueryPoolCreateInfoINTEL &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceAccelerationStructurePropertiesKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( QueryPoolCreateInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceAccelerationStructurePropertiesKHR const & ) const = default; +#else + bool operator==( PhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( performanceCountersSampling == rhs.performanceCountersSampling ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxGeometryCount == rhs.maxGeometryCount ) && + ( maxInstanceCount == rhs.maxInstanceCount ) && ( maxPrimitiveCount == rhs.maxPrimitiveCount ) && + ( maxPerStageDescriptorAccelerationStructures == rhs.maxPerStageDescriptorAccelerationStructures ) && + ( maxPerStageDescriptorUpdateAfterBindAccelerationStructures == + rhs.maxPerStageDescriptorUpdateAfterBindAccelerationStructures ) && + ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures ) && + ( maxDescriptorSetUpdateAfterBindAccelerationStructures == + rhs.maxDescriptorSetUpdateAfterBindAccelerationStructures ) && + ( minAccelerationStructureScratchOffsetAlignment == rhs.minAccelerationStructureScratchOffsetAlignment ); } - bool operator!=( QueryPoolCreateInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolCreateInfoINTEL; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling = VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR; + void * pNext = {}; + uint64_t maxGeometryCount = {}; + uint64_t maxInstanceCount = {}; + uint64_t maxPrimitiveCount = {}; + uint32_t maxPerStageDescriptorAccelerationStructures = {}; + uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures = {}; + uint32_t maxDescriptorSetAccelerationStructures = {}; + uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures = {}; + uint32_t minAccelerationStructureScratchOffsetAlignment = {}; }; - static_assert( sizeof( QueryPoolCreateInfoINTEL ) == sizeof( VkQueryPoolCreateInfoINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceAccelerationStructurePropertiesKHR ) == + sizeof( VkPhysicalDeviceAccelerationStructurePropertiesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct QueryPoolPerformanceCreateInfoKHR + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR QueryPoolPerformanceCreateInfoKHR( uint32_t queueFamilyIndex_ = {}, - uint32_t counterIndexCount_ = {}, - const uint32_t* pCounterIndices_ = {} ) VULKAN_HPP_NOEXCEPT - : queueFamilyIndex( queueFamilyIndex_ ) - , counterIndexCount( counterIndexCount_ ) - , pCounterIndices( pCounterIndices_ ) - {} + using Type = PhysicalDeviceAccelerationStructurePropertiesKHR; + }; - VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR & operator=( VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR ) - offsetof( QueryPoolPerformanceCreateInfoKHR, pNext ) ); - return *this; - } + struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT; - QueryPoolPerformanceCreateInfoKHR( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ = {} ) VULKAN_HPP_NOEXCEPT + : advancedBlendCoherentOperations( advancedBlendCoherentOperations_ ) + {} - QueryPoolPerformanceCreateInfoKHR& operator=( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedFeaturesEXT( + PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - QueryPoolPerformanceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + PhysicalDeviceBlendOperationAdvancedFeaturesEXT( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceBlendOperationAdvancedFeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - QueryPoolPerformanceCreateInfoKHR & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBlendOperationAdvancedFeaturesEXT & + operator=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceBlendOperationAdvancedFeaturesEXT & + operator=( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - queueFamilyIndex = queueFamilyIndex_; + *this = *reinterpret_cast( &rhs ); return *this; } - QueryPoolPerformanceCreateInfoKHR & setCounterIndexCount( uint32_t counterIndexCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - counterIndexCount = counterIndexCount_; + pNext = pNext_; return *this; } - QueryPoolPerformanceCreateInfoKHR & setPCounterIndices( const uint32_t* pCounterIndices_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setAdvancedBlendCoherentOperations( + VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ ) VULKAN_HPP_NOEXCEPT { - pCounterIndices = pCounterIndices_; + advancedBlendCoherentOperations = advancedBlendCoherentOperations_; return *this; } - operator VkQueryPoolPerformanceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkQueryPoolPerformanceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( QueryPoolPerformanceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( queueFamilyIndex == rhs.queueFamilyIndex ) - && ( counterIndexCount == rhs.counterIndexCount ) - && ( pCounterIndices == rhs.pCounterIndices ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( advancedBlendCoherentOperations == rhs.advancedBlendCoherentOperations ); } - bool operator!=( QueryPoolPerformanceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolPerformanceCreateInfoKHR; - const void* pNext = {}; - uint32_t queueFamilyIndex = {}; - uint32_t counterIndexCount = {}; - const uint32_t* pCounterIndices = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations = {}; }; - static_assert( sizeof( QueryPoolPerformanceCreateInfoKHR ) == sizeof( VkQueryPoolPerformanceCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedFeaturesEXT ) == + sizeof( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct QueueFamilyCheckpointPropertiesNV + template <> + struct CppType { - QueueFamilyCheckpointPropertiesNV( VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask_ = {} ) VULKAN_HPP_NOEXCEPT - : checkpointExecutionStageMask( checkpointExecutionStageMask_ ) + using Type = PhysicalDeviceBlendOperationAdvancedFeaturesEXT; + }; + + struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedPropertiesEXT( + uint32_t advancedBlendMaxColorAttachments_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 advancedBlendIndependentBlend_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedSrcColor_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedDstColor_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCorrelatedOverlap_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 advancedBlendAllOperations_ = {} ) VULKAN_HPP_NOEXCEPT + : advancedBlendMaxColorAttachments( advancedBlendMaxColorAttachments_ ) + , advancedBlendIndependentBlend( advancedBlendIndependentBlend_ ) + , advancedBlendNonPremultipliedSrcColor( advancedBlendNonPremultipliedSrcColor_ ) + , advancedBlendNonPremultipliedDstColor( advancedBlendNonPremultipliedDstColor_ ) + , advancedBlendCorrelatedOverlap( advancedBlendCorrelatedOverlap_ ) + , advancedBlendAllOperations( advancedBlendAllOperations_ ) {} - VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV & operator=( VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV ) - offsetof( QueueFamilyCheckpointPropertiesNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedPropertiesEXT( + PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - QueueFamilyCheckpointPropertiesNV( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceBlendOperationAdvancedPropertiesEXT( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceBlendOperationAdvancedPropertiesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - QueueFamilyCheckpointPropertiesNV& operator=( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBlendOperationAdvancedPropertiesEXT & + operator=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceBlendOperationAdvancedPropertiesEXT & + operator=( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = + *reinterpret_cast( &rhs ); return *this; } - operator VkQueueFamilyCheckpointPropertiesNV const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkQueueFamilyCheckpointPropertiesNV &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( QueueFamilyCheckpointPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( checkpointExecutionStageMask == rhs.checkpointExecutionStageMask ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( advancedBlendMaxColorAttachments == rhs.advancedBlendMaxColorAttachments ) && + ( advancedBlendIndependentBlend == rhs.advancedBlendIndependentBlend ) && + ( advancedBlendNonPremultipliedSrcColor == rhs.advancedBlendNonPremultipliedSrcColor ) && + ( advancedBlendNonPremultipliedDstColor == rhs.advancedBlendNonPremultipliedDstColor ) && + ( advancedBlendCorrelatedOverlap == rhs.advancedBlendCorrelatedOverlap ) && + ( advancedBlendAllOperations == rhs.advancedBlendAllOperations ); } - bool operator!=( QueueFamilyCheckpointPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyCheckpointPropertiesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT; + void * pNext = {}; + uint32_t advancedBlendMaxColorAttachments = {}; + VULKAN_HPP_NAMESPACE::Bool32 advancedBlendIndependentBlend = {}; + VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedSrcColor = {}; + VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedDstColor = {}; + VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCorrelatedOverlap = {}; + VULKAN_HPP_NAMESPACE::Bool32 advancedBlendAllOperations = {}; }; - static_assert( sizeof( QueueFamilyCheckpointPropertiesNV ) == sizeof( VkQueueFamilyCheckpointPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedPropertiesEXT ) == + sizeof( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct QueueFamilyProperties + template <> + struct CppType { - QueueFamilyProperties( VULKAN_HPP_NAMESPACE::QueueFlags queueFlags_ = {}, - uint32_t queueCount_ = {}, - uint32_t timestampValidBits_ = {}, - VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity_ = {} ) VULKAN_HPP_NOEXCEPT - : queueFlags( queueFlags_ ) - , queueCount( queueCount_ ) - , timestampValidBits( timestampValidBits_ ) - , minImageTransferGranularity( minImageTransferGranularity_ ) - {} + using Type = PhysicalDeviceBlendOperationAdvancedPropertiesEXT; + }; - QueueFamilyProperties( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + struct PhysicalDeviceBufferDeviceAddressFeatures + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceBufferDeviceAddressFeatures; - QueueFamilyProperties& operator=( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeatures( + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {} ) VULKAN_HPP_NOEXCEPT + : bufferDeviceAddress( bufferDeviceAddress_ ) + , bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ) + , bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ ) + {} - operator VkQueueFamilyProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeatures( + PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - operator VkQueueFamilyProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } + PhysicalDeviceBufferDeviceAddressFeatures( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceBufferDeviceAddressFeatures( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - bool operator==( QueueFamilyProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeatures & + operator=( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceBufferDeviceAddressFeatures & + operator=( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT { - return ( queueFlags == rhs.queueFlags ) - && ( queueCount == rhs.queueCount ) - && ( timestampValidBits == rhs.timestampValidBits ) - && ( minImageTransferGranularity == rhs.minImageTransferGranularity ); + *this = *reinterpret_cast( &rhs ); + return *this; } - bool operator!=( QueueFamilyProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + PhysicalDeviceBufferDeviceAddressFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + pNext = pNext_; + return *this; } - public: - VULKAN_HPP_NAMESPACE::QueueFlags queueFlags = {}; - uint32_t queueCount = {}; - uint32_t timestampValidBits = {}; - VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity = {}; - }; - static_assert( sizeof( QueueFamilyProperties ) == sizeof( VkQueueFamilyProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct QueueFamilyProperties2 - { - QueueFamilyProperties2( VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties_ = {} ) VULKAN_HPP_NOEXCEPT - : queueFamilyProperties( queueFamilyProperties_ ) - {} - - VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 & operator=( VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceBufferDeviceAddressFeatures & + setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 ) - offsetof( QueueFamilyProperties2, pNext ) ); + bufferDeviceAddress = bufferDeviceAddress_; return *this; } - QueueFamilyProperties2( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddressCaptureReplay( + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_; + return *this; } - QueueFamilyProperties2& operator=( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddressMultiDevice( + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_; return *this; } - operator VkQueueFamilyProperties2 const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceBufferDeviceAddressFeatures const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkQueueFamilyProperties2 &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceBufferDeviceAddressFeatures &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( QueueFamilyProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceBufferDeviceAddressFeatures const & ) const = default; +#else + bool operator==( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( queueFamilyProperties == rhs.queueFamilyProperties ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( bufferDeviceAddress == rhs.bufferDeviceAddress ) && + ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay ) && + ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice ); } - bool operator!=( QueueFamilyProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyProperties2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeatures; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {}; + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {}; + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {}; }; - static_assert( sizeof( QueueFamilyProperties2 ) == sizeof( VkQueueFamilyProperties2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceBufferDeviceAddressFeatures ) == + sizeof( VkPhysicalDeviceBufferDeviceAddressFeatures ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct RayTracingShaderGroupCreateInfoNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoNV( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeNV type_ = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeNV::eGeneral, - uint32_t generalShader_ = {}, - uint32_t closestHitShader_ = {}, - uint32_t anyHitShader_ = {}, - uint32_t intersectionShader_ = {} ) VULKAN_HPP_NOEXCEPT - : type( type_ ) - , generalShader( generalShader_ ) - , closestHitShader( closestHitShader_ ) - , anyHitShader( anyHitShader_ ) - , intersectionShader( intersectionShader_ ) - {} + using Type = PhysicalDeviceBufferDeviceAddressFeatures; + }; + using PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures; - VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV & operator=( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV ) - offsetof( RayTracingShaderGroupCreateInfoNV, pNext ) ); - return *this; - } + struct PhysicalDeviceBufferDeviceAddressFeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT; - RayTracingShaderGroupCreateInfoNV( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {} ) VULKAN_HPP_NOEXCEPT + : bufferDeviceAddress( bufferDeviceAddress_ ) + , bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ) + , bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ ) + {} - RayTracingShaderGroupCreateInfoNV& operator=( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeaturesEXT( + PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - RayTracingShaderGroupCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + PhysicalDeviceBufferDeviceAddressFeaturesEXT( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceBufferDeviceAddressFeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceBufferDeviceAddressFeaturesEXT & + operator=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - RayTracingShaderGroupCreateInfoNV & setType( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeNV type_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceBufferDeviceAddressFeaturesEXT & + operator=( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - type = type_; + *this = *reinterpret_cast( &rhs ); return *this; } - RayTracingShaderGroupCreateInfoNV & setGeneralShader( uint32_t generalShader_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceBufferDeviceAddressFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - generalShader = generalShader_; + pNext = pNext_; return *this; } - RayTracingShaderGroupCreateInfoNV & setClosestHitShader( uint32_t closestHitShader_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceBufferDeviceAddressFeaturesEXT & + setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT { - closestHitShader = closestHitShader_; + bufferDeviceAddress = bufferDeviceAddress_; return *this; } - RayTracingShaderGroupCreateInfoNV & setAnyHitShader( uint32_t anyHitShader_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressCaptureReplay( + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT { - anyHitShader = anyHitShader_; + bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_; return *this; } - RayTracingShaderGroupCreateInfoNV & setIntersectionShader( uint32_t intersectionShader_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressMultiDevice( + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT { - intersectionShader = intersectionShader_; + bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_; return *this; } - operator VkRayTracingShaderGroupCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkRayTracingShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( RayTracingShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( type == rhs.type ) - && ( generalShader == rhs.generalShader ) - && ( closestHitShader == rhs.closestHitShader ) - && ( anyHitShader == rhs.anyHitShader ) - && ( intersectionShader == rhs.intersectionShader ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( bufferDeviceAddress == rhs.bufferDeviceAddress ) && + ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay ) && + ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice ); } - bool operator!=( RayTracingShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeNV type = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeNV::eGeneral; - uint32_t generalShader = {}; - uint32_t closestHitShader = {}; - uint32_t anyHitShader = {}; - uint32_t intersectionShader = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {}; + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {}; + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {}; }; - static_assert( sizeof( RayTracingShaderGroupCreateInfoNV ) == sizeof( VkRayTracingShaderGroupCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceBufferDeviceAddressFeaturesEXT ) == + sizeof( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct RayTracingPipelineCreateInfoNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, - uint32_t stageCount_ = {}, - const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ = {}, - uint32_t groupCount_ = {}, - const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV* pGroups_ = {}, - uint32_t maxRecursionDepth_ = {}, - VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, - VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, - int32_t basePipelineIndex_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , stageCount( stageCount_ ) - , pStages( pStages_ ) - , groupCount( groupCount_ ) - , pGroups( pGroups_ ) - , maxRecursionDepth( maxRecursionDepth_ ) - , layout( layout_ ) - , basePipelineHandle( basePipelineHandle_ ) - , basePipelineIndex( basePipelineIndex_ ) + using Type = PhysicalDeviceBufferDeviceAddressFeaturesEXT; + }; + using PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT; + + struct PhysicalDeviceCoherentMemoryFeaturesAMD + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceCoherentMemoryFeaturesAMD( + VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ = {} ) VULKAN_HPP_NOEXCEPT + : deviceCoherentMemory( deviceCoherentMemory_ ) {} - VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV & operator=( VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV ) - offsetof( RayTracingPipelineCreateInfoNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceCoherentMemoryFeaturesAMD( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - RayTracingPipelineCreateInfoNV( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceCoherentMemoryFeaturesAMD( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceCoherentMemoryFeaturesAMD( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - RayTracingPipelineCreateInfoNV& operator=( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCoherentMemoryFeaturesAMD & + operator=( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceCoherentMemoryFeaturesAMD & + operator=( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - RayTracingPipelineCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceCoherentMemoryFeaturesAMD & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - RayTracingPipelineCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceCoherentMemoryFeaturesAMD & + setDeviceCoherentMemory( VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + deviceCoherentMemory = deviceCoherentMemory_; return *this; } - RayTracingPipelineCreateInfoNV & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceCoherentMemoryFeaturesAMD const &() const VULKAN_HPP_NOEXCEPT { - stageCount = stageCount_; - return *this; + return *reinterpret_cast( this ); } - RayTracingPipelineCreateInfoNV & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceCoherentMemoryFeaturesAMD &() VULKAN_HPP_NOEXCEPT { - pStages = pStages_; - return *this; + return *reinterpret_cast( this ); } - RayTracingPipelineCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceCoherentMemoryFeaturesAMD const & ) const = default; +#else + bool operator==( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT { - groupCount = groupCount_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceCoherentMemory == rhs.deviceCoherentMemory ); } - RayTracingPipelineCreateInfoNV & setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV* pGroups_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT { - pGroups = pGroups_; - return *this; + return !operator==( rhs ); } +#endif - RayTracingPipelineCreateInfoNV & setMaxRecursionDepth( uint32_t maxRecursionDepth_ ) VULKAN_HPP_NOEXCEPT - { - maxRecursionDepth = maxRecursionDepth_; - return *this; - } + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory = {}; + }; + static_assert( sizeof( PhysicalDeviceCoherentMemoryFeaturesAMD ) == + sizeof( VkPhysicalDeviceCoherentMemoryFeaturesAMD ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - RayTracingPipelineCreateInfoNV & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT + template <> + struct CppType + { + using Type = PhysicalDeviceCoherentMemoryFeaturesAMD; + }; + + struct PhysicalDeviceColorWriteEnableFeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceColorWriteEnableFeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceColorWriteEnableFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 colorWriteEnable_ = {} ) VULKAN_HPP_NOEXCEPT : colorWriteEnable( colorWriteEnable_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceColorWriteEnableFeaturesEXT( + PhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceColorWriteEnableFeaturesEXT( VkPhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceColorWriteEnableFeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceColorWriteEnableFeaturesEXT & + operator=( PhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceColorWriteEnableFeaturesEXT & + operator=( VkPhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - layout = layout_; + *this = *reinterpret_cast( &rhs ); return *this; } - RayTracingPipelineCreateInfoNV & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceColorWriteEnableFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - basePipelineHandle = basePipelineHandle_; + pNext = pNext_; return *this; } - RayTracingPipelineCreateInfoNV & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceColorWriteEnableFeaturesEXT & + setColorWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 colorWriteEnable_ ) VULKAN_HPP_NOEXCEPT { - basePipelineIndex = basePipelineIndex_; + colorWriteEnable = colorWriteEnable_; return *this; } - operator VkRayTracingPipelineCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceColorWriteEnableFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkRayTracingPipelineCreateInfoNV &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceColorWriteEnableFeaturesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( RayTracingPipelineCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceColorWriteEnableFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( stageCount == rhs.stageCount ) - && ( pStages == rhs.pStages ) - && ( groupCount == rhs.groupCount ) - && ( pGroups == rhs.pGroups ) - && ( maxRecursionDepth == rhs.maxRecursionDepth ) - && ( layout == rhs.layout ) - && ( basePipelineHandle == rhs.basePipelineHandle ) - && ( basePipelineIndex == rhs.basePipelineIndex ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( colorWriteEnable == rhs.colorWriteEnable ); } - bool operator!=( RayTracingPipelineCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceColorWriteEnableFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {}; - uint32_t stageCount = {}; - const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {}; - uint32_t groupCount = {}; - const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV* pGroups = {}; - uint32_t maxRecursionDepth = {}; - VULKAN_HPP_NAMESPACE::PipelineLayout layout = {}; - VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {}; - int32_t basePipelineIndex = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceColorWriteEnableFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 colorWriteEnable = {}; }; - static_assert( sizeof( RayTracingPipelineCreateInfoNV ) == sizeof( VkRayTracingPipelineCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceColorWriteEnableFeaturesEXT ) == + sizeof( VkPhysicalDeviceColorWriteEnableFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct RefreshCycleDurationGOOGLE + template <> + struct CppType { - RefreshCycleDurationGOOGLE( uint64_t refreshDuration_ = {} ) VULKAN_HPP_NOEXCEPT - : refreshDuration( refreshDuration_ ) + using Type = PhysicalDeviceColorWriteEnableFeaturesEXT; + }; + + struct PhysicalDeviceComputeShaderDerivativesFeaturesNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceComputeShaderDerivativesFeaturesNV( + VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ = {} ) VULKAN_HPP_NOEXCEPT + : computeDerivativeGroupQuads( computeDerivativeGroupQuads_ ) + , computeDerivativeGroupLinear( computeDerivativeGroupLinear_ ) {} - RefreshCycleDurationGOOGLE( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR PhysicalDeviceComputeShaderDerivativesFeaturesNV( + PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceComputeShaderDerivativesFeaturesNV( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceComputeShaderDerivativesFeaturesNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceComputeShaderDerivativesFeaturesNV & + operator=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceComputeShaderDerivativesFeaturesNV & + operator=( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - RefreshCycleDurationGOOGLE& operator=( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceComputeShaderDerivativesFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - operator VkRefreshCycleDurationGOOGLE const&() const VULKAN_HPP_NOEXCEPT + PhysicalDeviceComputeShaderDerivativesFeaturesNV & + setComputeDerivativeGroupQuads( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + computeDerivativeGroupQuads = computeDerivativeGroupQuads_; + return *this; } - operator VkRefreshCycleDurationGOOGLE &() VULKAN_HPP_NOEXCEPT + PhysicalDeviceComputeShaderDerivativesFeaturesNV & + setComputeDerivativeGroupLinear( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + computeDerivativeGroupLinear = computeDerivativeGroupLinear_; + return *this; } - bool operator==( RefreshCycleDurationGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const &() const VULKAN_HPP_NOEXCEPT { - return ( refreshDuration == rhs.refreshDuration ); + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( computeDerivativeGroupQuads == rhs.computeDerivativeGroupQuads ) && + ( computeDerivativeGroupLinear == rhs.computeDerivativeGroupLinear ); } - bool operator!=( RefreshCycleDurationGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint64_t refreshDuration = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads = {}; + VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear = {}; }; - static_assert( sizeof( RefreshCycleDurationGOOGLE ) == sizeof( VkRefreshCycleDurationGOOGLE ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceComputeShaderDerivativesFeaturesNV ) == + sizeof( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct RenderPassAttachmentBeginInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR RenderPassAttachmentBeginInfo( uint32_t attachmentCount_ = {}, - const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ = {} ) VULKAN_HPP_NOEXCEPT - : attachmentCount( attachmentCount_ ) - , pAttachments( pAttachments_ ) + using Type = PhysicalDeviceComputeShaderDerivativesFeaturesNV; + }; + + struct PhysicalDeviceConditionalRenderingFeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceConditionalRenderingFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ = {} ) VULKAN_HPP_NOEXCEPT + : conditionalRendering( conditionalRendering_ ) + , inheritedConditionalRendering( inheritedConditionalRendering_ ) {} - VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo & operator=( VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo ) - offsetof( RenderPassAttachmentBeginInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceConditionalRenderingFeaturesEXT( + PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - RenderPassAttachmentBeginInfo( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceConditionalRenderingFeaturesEXT( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceConditionalRenderingFeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceConditionalRenderingFeaturesEXT & + operator=( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - RenderPassAttachmentBeginInfo& operator=( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceConditionalRenderingFeaturesEXT & + operator=( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - RenderPassAttachmentBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceConditionalRenderingFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - RenderPassAttachmentBeginInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceConditionalRenderingFeaturesEXT & + setConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ ) VULKAN_HPP_NOEXCEPT { - attachmentCount = attachmentCount_; + conditionalRendering = conditionalRendering_; return *this; } - RenderPassAttachmentBeginInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceConditionalRenderingFeaturesEXT & setInheritedConditionalRendering( + VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ ) VULKAN_HPP_NOEXCEPT { - pAttachments = pAttachments_; + inheritedConditionalRendering = inheritedConditionalRendering_; return *this; } - operator VkRenderPassAttachmentBeginInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkRenderPassAttachmentBeginInfo &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceConditionalRenderingFeaturesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( RenderPassAttachmentBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceConditionalRenderingFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( attachmentCount == rhs.attachmentCount ) - && ( pAttachments == rhs.pAttachments ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( conditionalRendering == rhs.conditionalRendering ) && + ( inheritedConditionalRendering == rhs.inheritedConditionalRendering ); } - bool operator!=( RenderPassAttachmentBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassAttachmentBeginInfo; - const void* pNext = {}; - uint32_t attachmentCount = {}; - const VULKAN_HPP_NAMESPACE::ImageView* pAttachments = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering = {}; + VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering = {}; }; - static_assert( sizeof( RenderPassAttachmentBeginInfo ) == sizeof( VkRenderPassAttachmentBeginInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceConditionalRenderingFeaturesEXT ) == + sizeof( VkPhysicalDeviceConditionalRenderingFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct RenderPassBeginInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR RenderPassBeginInfo( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, - VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ = {}, - VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {}, - uint32_t clearValueCount_ = {}, - const VULKAN_HPP_NAMESPACE::ClearValue* pClearValues_ = {} ) VULKAN_HPP_NOEXCEPT - : renderPass( renderPass_ ) - , framebuffer( framebuffer_ ) - , renderArea( renderArea_ ) - , clearValueCount( clearValueCount_ ) - , pClearValues( pClearValues_ ) + using Type = PhysicalDeviceConditionalRenderingFeaturesEXT; + }; + + struct PhysicalDeviceConservativeRasterizationPropertiesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceConservativeRasterizationPropertiesEXT( + float primitiveOverestimationSize_ = {}, + float maxExtraPrimitiveOverestimationSize_ = {}, + float extraPrimitiveOverestimationSizeGranularity_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 primitiveUnderestimation_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 conservativePointAndLineRasterization_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 degenerateTrianglesRasterized_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 degenerateLinesRasterized_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 fullyCoveredFragmentShaderInputVariable_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 conservativeRasterizationPostDepthCoverage_ = {} ) VULKAN_HPP_NOEXCEPT + : primitiveOverestimationSize( primitiveOverestimationSize_ ) + , maxExtraPrimitiveOverestimationSize( maxExtraPrimitiveOverestimationSize_ ) + , extraPrimitiveOverestimationSizeGranularity( extraPrimitiveOverestimationSizeGranularity_ ) + , primitiveUnderestimation( primitiveUnderestimation_ ) + , conservativePointAndLineRasterization( conservativePointAndLineRasterization_ ) + , degenerateTrianglesRasterized( degenerateTrianglesRasterized_ ) + , degenerateLinesRasterized( degenerateLinesRasterized_ ) + , fullyCoveredFragmentShaderInputVariable( fullyCoveredFragmentShaderInputVariable_ ) + , conservativeRasterizationPostDepthCoverage( conservativeRasterizationPostDepthCoverage_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceConservativeRasterizationPropertiesEXT( + PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceConservativeRasterizationPropertiesEXT( + VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceConservativeRasterizationPropertiesEXT( + *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & operator=( VULKAN_HPP_NAMESPACE::RenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceConservativeRasterizationPropertiesEXT & + operator=( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceConservativeRasterizationPropertiesEXT & + operator=( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::RenderPassBeginInfo ) - offsetof( RenderPassBeginInfo, pNext ) ); + *this = + *reinterpret_cast( &rhs ); return *this; } - RenderPassBeginInfo( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT { - *this = rhs; + return *reinterpret_cast( this ); } - RenderPassBeginInfo& operator=( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return *reinterpret_cast( this ); } - RenderPassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceConservativeRasterizationPropertiesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( primitiveOverestimationSize == rhs.primitiveOverestimationSize ) && + ( maxExtraPrimitiveOverestimationSize == rhs.maxExtraPrimitiveOverestimationSize ) && + ( extraPrimitiveOverestimationSizeGranularity == rhs.extraPrimitiveOverestimationSizeGranularity ) && + ( primitiveUnderestimation == rhs.primitiveUnderestimation ) && + ( conservativePointAndLineRasterization == rhs.conservativePointAndLineRasterization ) && + ( degenerateTrianglesRasterized == rhs.degenerateTrianglesRasterized ) && + ( degenerateLinesRasterized == rhs.degenerateLinesRasterized ) && + ( fullyCoveredFragmentShaderInputVariable == rhs.fullyCoveredFragmentShaderInputVariable ) && + ( conservativeRasterizationPostDepthCoverage == rhs.conservativeRasterizationPostDepthCoverage ); } - RenderPassBeginInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - renderPass = renderPass_; - return *this; + return !operator==( rhs ); } +#endif - RenderPassBeginInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT; + void * pNext = {}; + float primitiveOverestimationSize = {}; + float maxExtraPrimitiveOverestimationSize = {}; + float extraPrimitiveOverestimationSizeGranularity = {}; + VULKAN_HPP_NAMESPACE::Bool32 primitiveUnderestimation = {}; + VULKAN_HPP_NAMESPACE::Bool32 conservativePointAndLineRasterization = {}; + VULKAN_HPP_NAMESPACE::Bool32 degenerateTrianglesRasterized = {}; + VULKAN_HPP_NAMESPACE::Bool32 degenerateLinesRasterized = {}; + VULKAN_HPP_NAMESPACE::Bool32 fullyCoveredFragmentShaderInputVariable = {}; + VULKAN_HPP_NAMESPACE::Bool32 conservativeRasterizationPostDepthCoverage = {}; + }; + static_assert( sizeof( PhysicalDeviceConservativeRasterizationPropertiesEXT ) == + sizeof( VkPhysicalDeviceConservativeRasterizationPropertiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceConservativeRasterizationPropertiesEXT; + }; + + struct PhysicalDeviceCooperativeMatrixFeaturesNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesNV( + VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ = {} ) VULKAN_HPP_NOEXCEPT + : cooperativeMatrix( cooperativeMatrix_ ) + , cooperativeMatrixRobustBufferAccess( cooperativeMatrixRobustBufferAccess_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesNV( + PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceCooperativeMatrixFeaturesNV( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceCooperativeMatrixFeaturesNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixFeaturesNV & + operator=( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceCooperativeMatrixFeaturesNV & + operator=( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT { - framebuffer = framebuffer_; + *this = *reinterpret_cast( &rhs ); return *this; } - RenderPassBeginInfo & setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D renderArea_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceCooperativeMatrixFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - renderArea = renderArea_; + pNext = pNext_; return *this; } - RenderPassBeginInfo & setClearValueCount( uint32_t clearValueCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceCooperativeMatrixFeaturesNV & + setCooperativeMatrix( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ ) VULKAN_HPP_NOEXCEPT { - clearValueCount = clearValueCount_; + cooperativeMatrix = cooperativeMatrix_; return *this; } - RenderPassBeginInfo & setPClearValues( const VULKAN_HPP_NAMESPACE::ClearValue* pClearValues_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceCooperativeMatrixFeaturesNV & setCooperativeMatrixRobustBufferAccess( + VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ ) VULKAN_HPP_NOEXCEPT { - pClearValues = pClearValues_; + cooperativeMatrixRobustBufferAccess = cooperativeMatrixRobustBufferAccess_; return *this; } - operator VkRenderPassBeginInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceCooperativeMatrixFeaturesNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( RenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceCooperativeMatrixFeaturesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( renderPass == rhs.renderPass ) - && ( framebuffer == rhs.framebuffer ) - && ( renderArea == rhs.renderArea ) - && ( clearValueCount == rhs.clearValueCount ) - && ( pClearValues == rhs.pClearValues ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( cooperativeMatrix == rhs.cooperativeMatrix ) && + ( cooperativeMatrixRobustBufferAccess == rhs.cooperativeMatrixRobustBufferAccess ); } - bool operator!=( RenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassBeginInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::RenderPass renderPass = {}; - VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {}; - VULKAN_HPP_NAMESPACE::Rect2D renderArea = {}; - uint32_t clearValueCount = {}; - const VULKAN_HPP_NAMESPACE::ClearValue* pClearValues = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix = {}; + VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess = {}; }; - static_assert( sizeof( RenderPassBeginInfo ) == sizeof( VkRenderPassBeginInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceCooperativeMatrixFeaturesNV ) == + sizeof( VkPhysicalDeviceCooperativeMatrixFeaturesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SubpassDescription + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SubpassDescription( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, - uint32_t inputAttachmentCount_ = {}, - const VULKAN_HPP_NAMESPACE::AttachmentReference* pInputAttachments_ = {}, - uint32_t colorAttachmentCount_ = {}, - const VULKAN_HPP_NAMESPACE::AttachmentReference* pColorAttachments_ = {}, - const VULKAN_HPP_NAMESPACE::AttachmentReference* pResolveAttachments_ = {}, - const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment_ = {}, - uint32_t preserveAttachmentCount_ = {}, - const uint32_t* pPreserveAttachments_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , pipelineBindPoint( pipelineBindPoint_ ) - , inputAttachmentCount( inputAttachmentCount_ ) - , pInputAttachments( pInputAttachments_ ) - , colorAttachmentCount( colorAttachmentCount_ ) - , pColorAttachments( pColorAttachments_ ) - , pResolveAttachments( pResolveAttachments_ ) - , pDepthStencilAttachment( pDepthStencilAttachment_ ) - , preserveAttachmentCount( preserveAttachmentCount_ ) - , pPreserveAttachments( pPreserveAttachments_ ) + using Type = PhysicalDeviceCooperativeMatrixFeaturesNV; + }; + + struct PhysicalDeviceCooperativeMatrixPropertiesNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesNV( + VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages_ = {} ) VULKAN_HPP_NOEXCEPT + : cooperativeMatrixSupportedStages( cooperativeMatrixSupportedStages_ ) {} - SubpassDescription( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesNV( + PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceCooperativeMatrixPropertiesNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCooperativeMatrixPropertiesNV & + operator=( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SubpassDescription& operator=( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceCooperativeMatrixPropertiesNV & + operator=( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - SubpassDescription & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceCooperativeMatrixPropertiesNV const &() const VULKAN_HPP_NOEXCEPT { - flags = flags_; - return *this; + return *reinterpret_cast( this ); } - SubpassDescription & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT { - pipelineBindPoint = pipelineBindPoint_; - return *this; + return *reinterpret_cast( this ); } - SubpassDescription & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceCooperativeMatrixPropertiesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - inputAttachmentCount = inputAttachmentCount_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( cooperativeMatrixSupportedStages == rhs.cooperativeMatrixSupportedStages ); } - SubpassDescription & setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pInputAttachments_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - pInputAttachments = pInputAttachments_; - return *this; + return !operator==( rhs ); } +#endif - SubpassDescription & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT - { - colorAttachmentCount = colorAttachmentCount_; - return *this; - } + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages = {}; + }; + static_assert( sizeof( PhysicalDeviceCooperativeMatrixPropertiesNV ) == + sizeof( VkPhysicalDeviceCooperativeMatrixPropertiesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - SubpassDescription & setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pColorAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pColorAttachments = pColorAttachments_; - return *this; - } + template <> + struct CppType + { + using Type = PhysicalDeviceCooperativeMatrixPropertiesNV; + }; - SubpassDescription & setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pResolveAttachments = pResolveAttachments_; - return *this; - } + struct PhysicalDeviceCornerSampledImageFeaturesNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceCornerSampledImageFeaturesNV( + VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ = {} ) VULKAN_HPP_NOEXCEPT + : cornerSampledImage( cornerSampledImage_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceCornerSampledImageFeaturesNV( + PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceCornerSampledImageFeaturesNV( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceCornerSampledImageFeaturesNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCornerSampledImageFeaturesNV & + operator=( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SubpassDescription & setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceCornerSampledImageFeaturesNV & + operator=( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT { - pDepthStencilAttachment = pDepthStencilAttachment_; + *this = *reinterpret_cast( &rhs ); return *this; } - SubpassDescription & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceCornerSampledImageFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - preserveAttachmentCount = preserveAttachmentCount_; + pNext = pNext_; return *this; } - SubpassDescription & setPPreserveAttachments( const uint32_t* pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceCornerSampledImageFeaturesNV & + setCornerSampledImage( VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ ) VULKAN_HPP_NOEXCEPT { - pPreserveAttachments = pPreserveAttachments_; + cornerSampledImage = cornerSampledImage_; return *this; } - operator VkSubpassDescription const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceCornerSampledImageFeaturesNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSubpassDescription &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceCornerSampledImageFeaturesNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SubpassDescription const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceCornerSampledImageFeaturesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( flags == rhs.flags ) - && ( pipelineBindPoint == rhs.pipelineBindPoint ) - && ( inputAttachmentCount == rhs.inputAttachmentCount ) - && ( pInputAttachments == rhs.pInputAttachments ) - && ( colorAttachmentCount == rhs.colorAttachmentCount ) - && ( pColorAttachments == rhs.pColorAttachments ) - && ( pResolveAttachments == rhs.pResolveAttachments ) - && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment ) - && ( preserveAttachmentCount == rhs.preserveAttachmentCount ) - && ( pPreserveAttachments == rhs.pPreserveAttachments ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( cornerSampledImage == rhs.cornerSampledImage ); } - bool operator!=( SubpassDescription const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {}; - VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics; - uint32_t inputAttachmentCount = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference* pInputAttachments = {}; - uint32_t colorAttachmentCount = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference* pColorAttachments = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference* pResolveAttachments = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment = {}; - uint32_t preserveAttachmentCount = {}; - const uint32_t* pPreserveAttachments = {}; - }; - static_assert( sizeof( SubpassDescription ) == sizeof( VkSubpassDescription ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage = {}; + }; + static_assert( sizeof( PhysicalDeviceCornerSampledImageFeaturesNV ) == + sizeof( VkPhysicalDeviceCornerSampledImageFeaturesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SubpassDependency + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SubpassDependency( uint32_t srcSubpass_ = {}, - uint32_t dstSubpass_ = {}, - VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ = {}, - VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ = {}, - VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, - VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, - VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {} ) VULKAN_HPP_NOEXCEPT - : srcSubpass( srcSubpass_ ) - , dstSubpass( dstSubpass_ ) - , srcStageMask( srcStageMask_ ) - , dstStageMask( dstStageMask_ ) - , srcAccessMask( srcAccessMask_ ) - , dstAccessMask( dstAccessMask_ ) - , dependencyFlags( dependencyFlags_ ) - {} - - SubpassDependency( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + using Type = PhysicalDeviceCornerSampledImageFeaturesNV; + }; - SubpassDependency& operator=( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + struct PhysicalDeviceCoverageReductionModeFeaturesNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV; - SubpassDependency & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT - { - srcSubpass = srcSubpass_; - return *this; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceCoverageReductionModeFeaturesNV( + VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ = {} ) VULKAN_HPP_NOEXCEPT + : coverageReductionMode( coverageReductionMode_ ) + {} - SubpassDependency & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT - { - dstSubpass = dstSubpass_; - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceCoverageReductionModeFeaturesNV( + PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SubpassDependency & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT - { - srcStageMask = srcStageMask_; - return *this; - } + PhysicalDeviceCoverageReductionModeFeaturesNV( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceCoverageReductionModeFeaturesNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - SubpassDependency & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT - { - dstStageMask = dstStageMask_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCoverageReductionModeFeaturesNV & + operator=( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SubpassDependency & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceCoverageReductionModeFeaturesNV & + operator=( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT { - srcAccessMask = srcAccessMask_; + *this = *reinterpret_cast( &rhs ); return *this; } - SubpassDependency & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceCoverageReductionModeFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - dstAccessMask = dstAccessMask_; + pNext = pNext_; return *this; } - SubpassDependency & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceCoverageReductionModeFeaturesNV & + setCoverageReductionMode( VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT { - dependencyFlags = dependencyFlags_; + coverageReductionMode = coverageReductionMode_; return *this; } - operator VkSubpassDependency const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSubpassDependency &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceCoverageReductionModeFeaturesNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SubpassDependency const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceCoverageReductionModeFeaturesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( srcSubpass == rhs.srcSubpass ) - && ( dstSubpass == rhs.dstSubpass ) - && ( srcStageMask == rhs.srcStageMask ) - && ( dstStageMask == rhs.dstStageMask ) - && ( srcAccessMask == rhs.srcAccessMask ) - && ( dstAccessMask == rhs.dstAccessMask ) - && ( dependencyFlags == rhs.dependencyFlags ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( coverageReductionMode == rhs.coverageReductionMode ); } - bool operator!=( SubpassDependency const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint32_t srcSubpass = {}; - uint32_t dstSubpass = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {}; - VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode = {}; }; - static_assert( sizeof( SubpassDependency ) == sizeof( VkSubpassDependency ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceCoverageReductionModeFeaturesNV ) == + sizeof( VkPhysicalDeviceCoverageReductionModeFeaturesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct RenderPassCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR RenderPassCreateInfo( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ = {}, - uint32_t attachmentCount_ = {}, - const VULKAN_HPP_NAMESPACE::AttachmentDescription* pAttachments_ = {}, - uint32_t subpassCount_ = {}, - const VULKAN_HPP_NAMESPACE::SubpassDescription* pSubpasses_ = {}, - uint32_t dependencyCount_ = {}, - const VULKAN_HPP_NAMESPACE::SubpassDependency* pDependencies_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , attachmentCount( attachmentCount_ ) - , pAttachments( pAttachments_ ) - , subpassCount( subpassCount_ ) - , pSubpasses( pSubpasses_ ) - , dependencyCount( dependencyCount_ ) - , pDependencies( pDependencies_ ) + using Type = PhysicalDeviceCoverageReductionModeFeaturesNV; + }; + + struct PhysicalDeviceCustomBorderColorFeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ = {} ) VULKAN_HPP_NOEXCEPT + : customBorderColors( customBorderColors_ ) + , customBorderColorWithoutFormat( customBorderColorWithoutFormat_ ) {} - VULKAN_HPP_NAMESPACE::RenderPassCreateInfo & operator=( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo ) - offsetof( RenderPassCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorFeaturesEXT( + PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - RenderPassCreateInfo( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceCustomBorderColorFeaturesEXT( VkPhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceCustomBorderColorFeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCustomBorderColorFeaturesEXT & + operator=( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - RenderPassCreateInfo& operator=( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceCustomBorderColorFeaturesEXT & + operator=( VkPhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - RenderPassCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceCustomBorderColorFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - RenderPassCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceCustomBorderColorFeaturesEXT & + setCustomBorderColors( VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + customBorderColors = customBorderColors_; return *this; } - RenderPassCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceCustomBorderColorFeaturesEXT & setCustomBorderColorWithoutFormat( + VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ ) VULKAN_HPP_NOEXCEPT { - attachmentCount = attachmentCount_; + customBorderColorWithoutFormat = customBorderColorWithoutFormat_; return *this; } - RenderPassCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription* pAttachments_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceCustomBorderColorFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - pAttachments = pAttachments_; - return *this; + return *reinterpret_cast( this ); } - RenderPassCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceCustomBorderColorFeaturesEXT &() VULKAN_HPP_NOEXCEPT { - subpassCount = subpassCount_; - return *this; + return *reinterpret_cast( this ); } - RenderPassCreateInfo & setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription* pSubpasses_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceCustomBorderColorFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - pSubpasses = pSubpasses_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( customBorderColors == rhs.customBorderColors ) && + ( customBorderColorWithoutFormat == rhs.customBorderColorWithoutFormat ); } - RenderPassCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - dependencyCount = dependencyCount_; - return *this; + return !operator==( rhs ); } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 customBorderColors = {}; + VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat = {}; + }; + static_assert( sizeof( PhysicalDeviceCustomBorderColorFeaturesEXT ) == + sizeof( VkPhysicalDeviceCustomBorderColorFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceCustomBorderColorFeaturesEXT; + }; + + struct PhysicalDeviceCustomBorderColorPropertiesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceCustomBorderColorPropertiesEXT( uint32_t maxCustomBorderColorSamplers_ = {} ) VULKAN_HPP_NOEXCEPT + : maxCustomBorderColorSamplers( maxCustomBorderColorSamplers_ ) + {} - RenderPassCreateInfo & setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency* pDependencies_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorPropertiesEXT( + PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceCustomBorderColorPropertiesEXT( VkPhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceCustomBorderColorPropertiesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCustomBorderColorPropertiesEXT & + operator=( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceCustomBorderColorPropertiesEXT & + operator=( VkPhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - pDependencies = pDependencies_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkRenderPassCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceCustomBorderColorPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkRenderPassCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceCustomBorderColorPropertiesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( RenderPassCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceCustomBorderColorPropertiesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( attachmentCount == rhs.attachmentCount ) - && ( pAttachments == rhs.pAttachments ) - && ( subpassCount == rhs.subpassCount ) - && ( pSubpasses == rhs.pSubpasses ) - && ( dependencyCount == rhs.dependencyCount ) - && ( pDependencies == rhs.pDependencies ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( maxCustomBorderColorSamplers == rhs.maxCustomBorderColorSamplers ); } - bool operator!=( RenderPassCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {}; - uint32_t attachmentCount = {}; - const VULKAN_HPP_NAMESPACE::AttachmentDescription* pAttachments = {}; - uint32_t subpassCount = {}; - const VULKAN_HPP_NAMESPACE::SubpassDescription* pSubpasses = {}; - uint32_t dependencyCount = {}; - const VULKAN_HPP_NAMESPACE::SubpassDependency* pDependencies = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT; + void * pNext = {}; + uint32_t maxCustomBorderColorSamplers = {}; }; - static_assert( sizeof( RenderPassCreateInfo ) == sizeof( VkRenderPassCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceCustomBorderColorPropertiesEXT ) == + sizeof( VkPhysicalDeviceCustomBorderColorPropertiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SubpassDescription2 + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SubpassDescription2( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, - uint32_t viewMask_ = {}, - uint32_t inputAttachmentCount_ = {}, - const VULKAN_HPP_NAMESPACE::AttachmentReference2* pInputAttachments_ = {}, - uint32_t colorAttachmentCount_ = {}, - const VULKAN_HPP_NAMESPACE::AttachmentReference2* pColorAttachments_ = {}, - const VULKAN_HPP_NAMESPACE::AttachmentReference2* pResolveAttachments_ = {}, - const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment_ = {}, - uint32_t preserveAttachmentCount_ = {}, - const uint32_t* pPreserveAttachments_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , pipelineBindPoint( pipelineBindPoint_ ) - , viewMask( viewMask_ ) - , inputAttachmentCount( inputAttachmentCount_ ) - , pInputAttachments( pInputAttachments_ ) - , colorAttachmentCount( colorAttachmentCount_ ) - , pColorAttachments( pColorAttachments_ ) - , pResolveAttachments( pResolveAttachments_ ) - , pDepthStencilAttachment( pDepthStencilAttachment_ ) - , preserveAttachmentCount( preserveAttachmentCount_ ) - , pPreserveAttachments( pPreserveAttachments_ ) + using Type = PhysicalDeviceCustomBorderColorPropertiesEXT; + }; + + struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( + VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ = {} ) VULKAN_HPP_NOEXCEPT + : dedicatedAllocationImageAliasing( dedicatedAllocationImageAliasing_ ) {} - VULKAN_HPP_NAMESPACE::SubpassDescription2 & operator=( VULKAN_HPP_NAMESPACE::SubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( + PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( + VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & + operator=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & + operator=( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SubpassDescription2 ) - offsetof( SubpassDescription2, pNext ) ); + *this = *reinterpret_cast( + &rhs ); return *this; } - SubpassDescription2( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - SubpassDescription2& operator=( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setDedicatedAllocationImageAliasing( + VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + dedicatedAllocationImageAliasing = dedicatedAllocationImageAliasing_; return *this; } - SubpassDescription2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const &() const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; - return *this; + return *reinterpret_cast( this ); } - SubpassDescription2 & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV &() VULKAN_HPP_NOEXCEPT { - flags = flags_; - return *this; + return *reinterpret_cast( this ); } - SubpassDescription2 & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - pipelineBindPoint = pipelineBindPoint_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( dedicatedAllocationImageAliasing == rhs.dedicatedAllocationImageAliasing ); } - SubpassDescription2 & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - viewMask = viewMask_; - return *this; + return !operator==( rhs ); } +#endif - SubpassDescription2 & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT + public: + VULKAN_HPP_NAMESPACE::StructureType sType = + StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing = {}; + }; + static_assert( sizeof( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ) == + sizeof( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV; + }; + + struct PhysicalDeviceDepthClipEnableFeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceDepthClipEnableFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {} ) VULKAN_HPP_NOEXCEPT + : depthClipEnable( depthClipEnable_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipEnableFeaturesEXT( + PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceDepthClipEnableFeaturesEXT( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceDepthClipEnableFeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClipEnableFeaturesEXT & + operator=( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceDepthClipEnableFeaturesEXT & + operator=( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - inputAttachmentCount = inputAttachmentCount_; + *this = *reinterpret_cast( &rhs ); return *this; } - SubpassDescription2 & setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pInputAttachments_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDepthClipEnableFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - pInputAttachments = pInputAttachments_; + pNext = pNext_; return *this; } - SubpassDescription2 & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDepthClipEnableFeaturesEXT & + setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT { - colorAttachmentCount = colorAttachmentCount_; + depthClipEnable = depthClipEnable_; return *this; } - SubpassDescription2 & setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pColorAttachments_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - pColorAttachments = pColorAttachments_; - return *this; + return *reinterpret_cast( this ); } - SubpassDescription2 & setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceDepthClipEnableFeaturesEXT &() VULKAN_HPP_NOEXCEPT { - pResolveAttachments = pResolveAttachments_; - return *this; + return *reinterpret_cast( this ); } - SubpassDescription2 & setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceDepthClipEnableFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - pDepthStencilAttachment = pDepthStencilAttachment_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( depthClipEnable == rhs.depthClipEnable ); } - SubpassDescription2 & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - preserveAttachmentCount = preserveAttachmentCount_; - return *this; + return !operator==( rhs ); } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {}; + }; + static_assert( sizeof( PhysicalDeviceDepthClipEnableFeaturesEXT ) == + sizeof( VkPhysicalDeviceDepthClipEnableFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceDepthClipEnableFeaturesEXT; + }; + + struct PhysicalDeviceDepthStencilResolveProperties + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceDepthStencilResolveProperties; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthStencilResolveProperties( + VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes_ = {}, + VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 independentResolve_ = {} ) VULKAN_HPP_NOEXCEPT + : supportedDepthResolveModes( supportedDepthResolveModes_ ) + , supportedStencilResolveModes( supportedStencilResolveModes_ ) + , independentResolveNone( independentResolveNone_ ) + , independentResolve( independentResolve_ ) + {} - SubpassDescription2 & setPPreserveAttachments( const uint32_t* pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthStencilResolveProperties( + PhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceDepthStencilResolveProperties( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceDepthStencilResolveProperties( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthStencilResolveProperties & + operator=( PhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceDepthStencilResolveProperties & + operator=( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - pPreserveAttachments = pPreserveAttachments_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkSubpassDescription2 const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceDepthStencilResolveProperties const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSubpassDescription2 &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceDepthStencilResolveProperties &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SubpassDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceDepthStencilResolveProperties const & ) const = default; +#else + bool operator==( PhysicalDeviceDepthStencilResolveProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pipelineBindPoint == rhs.pipelineBindPoint ) - && ( viewMask == rhs.viewMask ) - && ( inputAttachmentCount == rhs.inputAttachmentCount ) - && ( pInputAttachments == rhs.pInputAttachments ) - && ( colorAttachmentCount == rhs.colorAttachmentCount ) - && ( pColorAttachments == rhs.pColorAttachments ) - && ( pResolveAttachments == rhs.pResolveAttachments ) - && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment ) - && ( preserveAttachmentCount == rhs.preserveAttachmentCount ) - && ( pPreserveAttachments == rhs.pPreserveAttachments ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( supportedDepthResolveModes == rhs.supportedDepthResolveModes ) && + ( supportedStencilResolveModes == rhs.supportedStencilResolveModes ) && + ( independentResolveNone == rhs.independentResolveNone ) && + ( independentResolve == rhs.independentResolve ); } - bool operator!=( SubpassDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceDepthStencilResolveProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescription2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {}; - VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics; - uint32_t viewMask = {}; - uint32_t inputAttachmentCount = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference2* pInputAttachments = {}; - uint32_t colorAttachmentCount = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference2* pColorAttachments = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference2* pResolveAttachments = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment = {}; - uint32_t preserveAttachmentCount = {}; - const uint32_t* pPreserveAttachments = {}; - }; - static_assert( sizeof( SubpassDescription2 ) == sizeof( VkSubpassDescription2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthStencilResolveProperties; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {}; + VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {}; + VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {}; + VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {}; + }; + static_assert( sizeof( PhysicalDeviceDepthStencilResolveProperties ) == + sizeof( VkPhysicalDeviceDepthStencilResolveProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SubpassDependency2 + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SubpassDependency2( uint32_t srcSubpass_ = {}, - uint32_t dstSubpass_ = {}, - VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ = {}, - VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ = {}, - VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, - VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, - VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {}, - int32_t viewOffset_ = {} ) VULKAN_HPP_NOEXCEPT - : srcSubpass( srcSubpass_ ) - , dstSubpass( dstSubpass_ ) - , srcStageMask( srcStageMask_ ) - , dstStageMask( dstStageMask_ ) - , srcAccessMask( srcAccessMask_ ) - , dstAccessMask( dstAccessMask_ ) - , dependencyFlags( dependencyFlags_ ) - , viewOffset( viewOffset_ ) + using Type = PhysicalDeviceDepthStencilResolveProperties; + }; + using PhysicalDeviceDepthStencilResolvePropertiesKHR = PhysicalDeviceDepthStencilResolveProperties; + + struct PhysicalDeviceDescriptorIndexingFeatures + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceDescriptorIndexingFeatures; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingFeatures( + VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ = {} ) VULKAN_HPP_NOEXCEPT + : shaderInputAttachmentArrayDynamicIndexing( shaderInputAttachmentArrayDynamicIndexing_ ) + , shaderUniformTexelBufferArrayDynamicIndexing( shaderUniformTexelBufferArrayDynamicIndexing_ ) + , shaderStorageTexelBufferArrayDynamicIndexing( shaderStorageTexelBufferArrayDynamicIndexing_ ) + , shaderUniformBufferArrayNonUniformIndexing( shaderUniformBufferArrayNonUniformIndexing_ ) + , shaderSampledImageArrayNonUniformIndexing( shaderSampledImageArrayNonUniformIndexing_ ) + , shaderStorageBufferArrayNonUniformIndexing( shaderStorageBufferArrayNonUniformIndexing_ ) + , shaderStorageImageArrayNonUniformIndexing( shaderStorageImageArrayNonUniformIndexing_ ) + , shaderInputAttachmentArrayNonUniformIndexing( shaderInputAttachmentArrayNonUniformIndexing_ ) + , shaderUniformTexelBufferArrayNonUniformIndexing( shaderUniformTexelBufferArrayNonUniformIndexing_ ) + , shaderStorageTexelBufferArrayNonUniformIndexing( shaderStorageTexelBufferArrayNonUniformIndexing_ ) + , descriptorBindingUniformBufferUpdateAfterBind( descriptorBindingUniformBufferUpdateAfterBind_ ) + , descriptorBindingSampledImageUpdateAfterBind( descriptorBindingSampledImageUpdateAfterBind_ ) + , descriptorBindingStorageImageUpdateAfterBind( descriptorBindingStorageImageUpdateAfterBind_ ) + , descriptorBindingStorageBufferUpdateAfterBind( descriptorBindingStorageBufferUpdateAfterBind_ ) + , descriptorBindingUniformTexelBufferUpdateAfterBind( descriptorBindingUniformTexelBufferUpdateAfterBind_ ) + , descriptorBindingStorageTexelBufferUpdateAfterBind( descriptorBindingStorageTexelBufferUpdateAfterBind_ ) + , descriptorBindingUpdateUnusedWhilePending( descriptorBindingUpdateUnusedWhilePending_ ) + , descriptorBindingPartiallyBound( descriptorBindingPartiallyBound_ ) + , descriptorBindingVariableDescriptorCount( descriptorBindingVariableDescriptorCount_ ) + , runtimeDescriptorArray( runtimeDescriptorArray_ ) {} - VULKAN_HPP_NAMESPACE::SubpassDependency2 & operator=( VULKAN_HPP_NAMESPACE::SubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SubpassDependency2 ) - offsetof( SubpassDependency2, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingFeatures( + PhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SubpassDependency2( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceDescriptorIndexingFeatures( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceDescriptorIndexingFeatures( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - SubpassDependency2& operator=( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingFeatures & + operator=( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceDescriptorIndexingFeatures & + operator=( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - SubpassDependency2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDescriptorIndexingFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - SubpassDependency2 & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDescriptorIndexingFeatures & setShaderInputAttachmentArrayDynamicIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT { - srcSubpass = srcSubpass_; + shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_; return *this; } - SubpassDependency2 & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformTexelBufferArrayDynamicIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT { - dstSubpass = dstSubpass_; + shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_; return *this; } - SubpassDependency2 & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageTexelBufferArrayDynamicIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT { - srcStageMask = srcStageMask_; + shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_; return *this; } - SubpassDependency2 & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformBufferArrayNonUniformIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT { - dstStageMask = dstStageMask_; + shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_; return *this; } - SubpassDependency2 & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDescriptorIndexingFeatures & setShaderSampledImageArrayNonUniformIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT { - srcAccessMask = srcAccessMask_; + shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_; return *this; } - SubpassDependency2 & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageBufferArrayNonUniformIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT { - dstAccessMask = dstAccessMask_; + shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_; return *this; } - SubpassDependency2 & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageImageArrayNonUniformIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT { - dependencyFlags = dependencyFlags_; + shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_; return *this; } - SubpassDependency2 & setViewOffset( int32_t viewOffset_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDescriptorIndexingFeatures & setShaderInputAttachmentArrayNonUniformIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT { - viewOffset = viewOffset_; + shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_; return *this; } - operator VkSubpassDependency2 const&() const VULKAN_HPP_NOEXCEPT + PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformTexelBufferArrayNonUniformIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); - } - - operator VkSubpassDependency2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( SubpassDependency2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcSubpass == rhs.srcSubpass ) - && ( dstSubpass == rhs.dstSubpass ) - && ( srcStageMask == rhs.srcStageMask ) - && ( dstStageMask == rhs.dstStageMask ) - && ( srcAccessMask == rhs.srcAccessMask ) - && ( dstAccessMask == rhs.dstAccessMask ) - && ( dependencyFlags == rhs.dependencyFlags ) - && ( viewOffset == rhs.viewOffset ); + shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_; + return *this; } - bool operator!=( SubpassDependency2 const& rhs ) const VULKAN_HPP_NOEXCEPT + PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageTexelBufferArrayNonUniformIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDependency2; - const void* pNext = {}; - uint32_t srcSubpass = {}; - uint32_t dstSubpass = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {}; - VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {}; - int32_t viewOffset = {}; - }; - static_assert( sizeof( SubpassDependency2 ) == sizeof( VkSubpassDependency2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct RenderPassCreateInfo2 - { - VULKAN_HPP_CONSTEXPR RenderPassCreateInfo2( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ = {}, - uint32_t attachmentCount_ = {}, - const VULKAN_HPP_NAMESPACE::AttachmentDescription2* pAttachments_ = {}, - uint32_t subpassCount_ = {}, - const VULKAN_HPP_NAMESPACE::SubpassDescription2* pSubpasses_ = {}, - uint32_t dependencyCount_ = {}, - const VULKAN_HPP_NAMESPACE::SubpassDependency2* pDependencies_ = {}, - uint32_t correlatedViewMaskCount_ = {}, - const uint32_t* pCorrelatedViewMasks_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , attachmentCount( attachmentCount_ ) - , pAttachments( pAttachments_ ) - , subpassCount( subpassCount_ ) - , pSubpasses( pSubpasses_ ) - , dependencyCount( dependencyCount_ ) - , pDependencies( pDependencies_ ) - , correlatedViewMaskCount( correlatedViewMaskCount_ ) - , pCorrelatedViewMasks( pCorrelatedViewMasks_ ) - {} - - VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 & operator=( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUniformBufferUpdateAfterBind( + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 ) - offsetof( RenderPassCreateInfo2, pNext ) ); + descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_; return *this; } - RenderPassCreateInfo2( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingSampledImageUpdateAfterBind( + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_; + return *this; } - RenderPassCreateInfo2& operator=( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageImageUpdateAfterBind( + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_; return *this; } - RenderPassCreateInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageBufferUpdateAfterBind( + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_; return *this; } - RenderPassCreateInfo2 & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUniformTexelBufferUpdateAfterBind( + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_; return *this; } - RenderPassCreateInfo2 & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageTexelBufferUpdateAfterBind( + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT { - attachmentCount = attachmentCount_; + descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_; return *this; } - RenderPassCreateInfo2 & setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription2* pAttachments_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUpdateUnusedWhilePending( + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT { - pAttachments = pAttachments_; + descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_; return *this; } - RenderPassCreateInfo2 & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingPartiallyBound( + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT { - subpassCount = subpassCount_; + descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_; return *this; } - RenderPassCreateInfo2 & setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription2* pSubpasses_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingVariableDescriptorCount( + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT { - pSubpasses = pSubpasses_; + descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_; return *this; } - RenderPassCreateInfo2 & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDescriptorIndexingFeatures & + setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT { - dependencyCount = dependencyCount_; + runtimeDescriptorArray = runtimeDescriptorArray_; return *this; } - RenderPassCreateInfo2 & setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency2* pDependencies_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceDescriptorIndexingFeatures const &() const VULKAN_HPP_NOEXCEPT { - pDependencies = pDependencies_; - return *this; + return *reinterpret_cast( this ); } - RenderPassCreateInfo2 & setCorrelatedViewMaskCount( uint32_t correlatedViewMaskCount_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceDescriptorIndexingFeatures &() VULKAN_HPP_NOEXCEPT { - correlatedViewMaskCount = correlatedViewMaskCount_; - return *this; + return *reinterpret_cast( this ); } - RenderPassCreateInfo2 & setPCorrelatedViewMasks( const uint32_t* pCorrelatedViewMasks_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceDescriptorIndexingFeatures const & ) const = default; +#else + bool operator==( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing ) && + ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing ) && + ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing ) && + ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing ) && + ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing ) && + ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing ) && + ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing ) && + ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing ) && + ( shaderUniformTexelBufferArrayNonUniformIndexing == + rhs.shaderUniformTexelBufferArrayNonUniformIndexing ) && + ( shaderStorageTexelBufferArrayNonUniformIndexing == + rhs.shaderStorageTexelBufferArrayNonUniformIndexing ) && + ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind ) && + ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind ) && + ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind ) && + ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind ) && + ( descriptorBindingUniformTexelBufferUpdateAfterBind == + rhs.descriptorBindingUniformTexelBufferUpdateAfterBind ) && + ( descriptorBindingStorageTexelBufferUpdateAfterBind == + rhs.descriptorBindingStorageTexelBufferUpdateAfterBind ) && + ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending ) && + ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound ) && + ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount ) && + ( runtimeDescriptorArray == rhs.runtimeDescriptorArray ); + } + + bool operator!=( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT { - pCorrelatedViewMasks = pCorrelatedViewMasks_; - return *this; + return !operator==( rhs ); } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingFeatures; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {}; + VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {}; + }; + static_assert( sizeof( PhysicalDeviceDescriptorIndexingFeatures ) == + sizeof( VkPhysicalDeviceDescriptorIndexingFeatures ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceDescriptorIndexingFeatures; + }; + using PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures; + + struct PhysicalDeviceDescriptorIndexingProperties + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceDescriptorIndexingProperties; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingProperties( + uint32_t maxUpdateAfterBindDescriptorsInAllPools_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod_ = {}, + uint32_t maxPerStageDescriptorUpdateAfterBindSamplers_ = {}, + uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers_ = {}, + uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers_ = {}, + uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages_ = {}, + uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages_ = {}, + uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments_ = {}, + uint32_t maxPerStageUpdateAfterBindResources_ = {}, + uint32_t maxDescriptorSetUpdateAfterBindSamplers_ = {}, + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers_ = {}, + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ = {}, + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers_ = {}, + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ = {}, + uint32_t maxDescriptorSetUpdateAfterBindSampledImages_ = {}, + uint32_t maxDescriptorSetUpdateAfterBindStorageImages_ = {}, + uint32_t maxDescriptorSetUpdateAfterBindInputAttachments_ = {} ) VULKAN_HPP_NOEXCEPT + : maxUpdateAfterBindDescriptorsInAllPools( maxUpdateAfterBindDescriptorsInAllPools_ ) + , shaderUniformBufferArrayNonUniformIndexingNative( shaderUniformBufferArrayNonUniformIndexingNative_ ) + , shaderSampledImageArrayNonUniformIndexingNative( shaderSampledImageArrayNonUniformIndexingNative_ ) + , shaderStorageBufferArrayNonUniformIndexingNative( shaderStorageBufferArrayNonUniformIndexingNative_ ) + , shaderStorageImageArrayNonUniformIndexingNative( shaderStorageImageArrayNonUniformIndexingNative_ ) + , shaderInputAttachmentArrayNonUniformIndexingNative( shaderInputAttachmentArrayNonUniformIndexingNative_ ) + , robustBufferAccessUpdateAfterBind( robustBufferAccessUpdateAfterBind_ ) + , quadDivergentImplicitLod( quadDivergentImplicitLod_ ) + , maxPerStageDescriptorUpdateAfterBindSamplers( maxPerStageDescriptorUpdateAfterBindSamplers_ ) + , maxPerStageDescriptorUpdateAfterBindUniformBuffers( maxPerStageDescriptorUpdateAfterBindUniformBuffers_ ) + , maxPerStageDescriptorUpdateAfterBindStorageBuffers( maxPerStageDescriptorUpdateAfterBindStorageBuffers_ ) + , maxPerStageDescriptorUpdateAfterBindSampledImages( maxPerStageDescriptorUpdateAfterBindSampledImages_ ) + , maxPerStageDescriptorUpdateAfterBindStorageImages( maxPerStageDescriptorUpdateAfterBindStorageImages_ ) + , maxPerStageDescriptorUpdateAfterBindInputAttachments( maxPerStageDescriptorUpdateAfterBindInputAttachments_ ) + , maxPerStageUpdateAfterBindResources( maxPerStageUpdateAfterBindResources_ ) + , maxDescriptorSetUpdateAfterBindSamplers( maxDescriptorSetUpdateAfterBindSamplers_ ) + , maxDescriptorSetUpdateAfterBindUniformBuffers( maxDescriptorSetUpdateAfterBindUniformBuffers_ ) + , maxDescriptorSetUpdateAfterBindUniformBuffersDynamic( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ ) + , maxDescriptorSetUpdateAfterBindStorageBuffers( maxDescriptorSetUpdateAfterBindStorageBuffers_ ) + , maxDescriptorSetUpdateAfterBindStorageBuffersDynamic( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ ) + , maxDescriptorSetUpdateAfterBindSampledImages( maxDescriptorSetUpdateAfterBindSampledImages_ ) + , maxDescriptorSetUpdateAfterBindStorageImages( maxDescriptorSetUpdateAfterBindStorageImages_ ) + , maxDescriptorSetUpdateAfterBindInputAttachments( maxDescriptorSetUpdateAfterBindInputAttachments_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingProperties( + PhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceDescriptorIndexingProperties( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceDescriptorIndexingProperties( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - operator VkRenderPassCreateInfo2 const&() const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDescriptorIndexingProperties & + operator=( PhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceDescriptorIndexingProperties & + operator=( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + *this = *reinterpret_cast( &rhs ); + return *this; } - operator VkRenderPassCreateInfo2 &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceDescriptorIndexingProperties const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( RenderPassCreateInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceDescriptorIndexingProperties &() VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( attachmentCount == rhs.attachmentCount ) - && ( pAttachments == rhs.pAttachments ) - && ( subpassCount == rhs.subpassCount ) - && ( pSubpasses == rhs.pSubpasses ) - && ( dependencyCount == rhs.dependencyCount ) - && ( pDependencies == rhs.pDependencies ) - && ( correlatedViewMaskCount == rhs.correlatedViewMaskCount ) - && ( pCorrelatedViewMasks == rhs.pCorrelatedViewMasks ); + return *reinterpret_cast( this ); } - bool operator!=( RenderPassCreateInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceDescriptorIndexingProperties const & ) const = default; +#else + bool operator==( PhysicalDeviceDescriptorIndexingProperties const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools ) && + ( shaderUniformBufferArrayNonUniformIndexingNative == + rhs.shaderUniformBufferArrayNonUniformIndexingNative ) && + ( shaderSampledImageArrayNonUniformIndexingNative == + rhs.shaderSampledImageArrayNonUniformIndexingNative ) && + ( shaderStorageBufferArrayNonUniformIndexingNative == + rhs.shaderStorageBufferArrayNonUniformIndexingNative ) && + ( shaderStorageImageArrayNonUniformIndexingNative == + rhs.shaderStorageImageArrayNonUniformIndexingNative ) && + ( shaderInputAttachmentArrayNonUniformIndexingNative == + rhs.shaderInputAttachmentArrayNonUniformIndexingNative ) && + ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind ) && + ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod ) && + ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers ) && + ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == + rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers ) && + ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == + rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers ) && + ( maxPerStageDescriptorUpdateAfterBindSampledImages == + rhs.maxPerStageDescriptorUpdateAfterBindSampledImages ) && + ( maxPerStageDescriptorUpdateAfterBindStorageImages == + rhs.maxPerStageDescriptorUpdateAfterBindStorageImages ) && + ( maxPerStageDescriptorUpdateAfterBindInputAttachments == + rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments ) && + ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources ) && + ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers ) && + ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers ) && + ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == + rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic ) && + ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers ) && + ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == + rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic ) && + ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages ) && + ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages ) && + ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments ); + } + + bool operator!=( PhysicalDeviceDescriptorIndexingProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {}; - uint32_t attachmentCount = {}; - const VULKAN_HPP_NAMESPACE::AttachmentDescription2* pAttachments = {}; - uint32_t subpassCount = {}; - const VULKAN_HPP_NAMESPACE::SubpassDescription2* pSubpasses = {}; - uint32_t dependencyCount = {}; - const VULKAN_HPP_NAMESPACE::SubpassDependency2* pDependencies = {}; - uint32_t correlatedViewMaskCount = {}; - const uint32_t* pCorrelatedViewMasks = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingProperties; + void * pNext = {}; + uint32_t maxUpdateAfterBindDescriptorsInAllPools = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {}; + VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {}; + VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {}; + uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {}; + uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {}; + uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {}; + uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {}; + uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {}; + uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {}; + uint32_t maxPerStageUpdateAfterBindResources = {}; + uint32_t maxDescriptorSetUpdateAfterBindSamplers = {}; + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {}; + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {}; + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {}; + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {}; + uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {}; + uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {}; + uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {}; + }; + static_assert( sizeof( PhysicalDeviceDescriptorIndexingProperties ) == + sizeof( VkPhysicalDeviceDescriptorIndexingProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceDescriptorIndexingProperties; }; - static_assert( sizeof( RenderPassCreateInfo2 ) == sizeof( VkRenderPassCreateInfo2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + using PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties; - struct RenderPassFragmentDensityMapCreateInfoEXT + struct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV { - VULKAN_HPP_CONSTEXPR RenderPassFragmentDensityMapCreateInfoEXT( VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment_ = {} ) VULKAN_HPP_NOEXCEPT - : fragmentDensityMapAttachment( fragmentDensityMapAttachment_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( + VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ = {} ) VULKAN_HPP_NOEXCEPT + : deviceGeneratedCommands( deviceGeneratedCommands_ ) {} - VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT ) - offsetof( RenderPassFragmentDensityMapCreateInfoEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( + PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - RenderPassFragmentDensityMapCreateInfoEXT( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - RenderPassFragmentDensityMapCreateInfoEXT& operator=( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & + operator=( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & + operator=( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - RenderPassFragmentDensityMapCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - RenderPassFragmentDensityMapCreateInfoEXT & setFragmentDensityMapAttachment( VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & + setDeviceGeneratedCommands( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ ) VULKAN_HPP_NOEXCEPT { - fragmentDensityMapAttachment = fragmentDensityMapAttachment_; + deviceGeneratedCommands = deviceGeneratedCommands_; return *this; } - operator VkRenderPassFragmentDensityMapCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkRenderPassFragmentDensityMapCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( RenderPassFragmentDensityMapCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fragmentDensityMapAttachment == rhs.fragmentDensityMapAttachment ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( deviceGeneratedCommands == rhs.deviceGeneratedCommands ); } - bool operator!=( RenderPassFragmentDensityMapCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands = {}; }; - static_assert( sizeof( RenderPassFragmentDensityMapCreateInfoEXT ) == sizeof( VkRenderPassFragmentDensityMapCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV ) == + sizeof( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct RenderPassInputAttachmentAspectCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR RenderPassInputAttachmentAspectCreateInfo( uint32_t aspectReferenceCount_ = {}, - const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences_ = {} ) VULKAN_HPP_NOEXCEPT - : aspectReferenceCount( aspectReferenceCount_ ) - , pAspectReferences( pAspectReferences_ ) + using Type = PhysicalDeviceDeviceGeneratedCommandsFeaturesNV; + }; + + struct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( + uint32_t maxGraphicsShaderGroupCount_ = {}, + uint32_t maxIndirectSequenceCount_ = {}, + uint32_t maxIndirectCommandsTokenCount_ = {}, + uint32_t maxIndirectCommandsStreamCount_ = {}, + uint32_t maxIndirectCommandsTokenOffset_ = {}, + uint32_t maxIndirectCommandsStreamStride_ = {}, + uint32_t minSequencesCountBufferOffsetAlignment_ = {}, + uint32_t minSequencesIndexBufferOffsetAlignment_ = {}, + uint32_t minIndirectCommandsBufferOffsetAlignment_ = {} ) VULKAN_HPP_NOEXCEPT + : maxGraphicsShaderGroupCount( maxGraphicsShaderGroupCount_ ) + , maxIndirectSequenceCount( maxIndirectSequenceCount_ ) + , maxIndirectCommandsTokenCount( maxIndirectCommandsTokenCount_ ) + , maxIndirectCommandsStreamCount( maxIndirectCommandsStreamCount_ ) + , maxIndirectCommandsTokenOffset( maxIndirectCommandsTokenOffset_ ) + , maxIndirectCommandsStreamStride( maxIndirectCommandsStreamStride_ ) + , minSequencesCountBufferOffsetAlignment( minSequencesCountBufferOffsetAlignment_ ) + , minSequencesIndexBufferOffsetAlignment( minSequencesIndexBufferOffsetAlignment_ ) + , minIndirectCommandsBufferOffsetAlignment( minIndirectCommandsBufferOffsetAlignment_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( + PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( + *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsPropertiesNV & + operator=( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo & operator=( VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDeviceGeneratedCommandsPropertiesNV & + operator=( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo ) - offsetof( RenderPassInputAttachmentAspectCreateInfo, pNext ) ); + *this = + *reinterpret_cast( &rhs ); return *this; } - RenderPassInputAttachmentAspectCreateInfo( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const &() const VULKAN_HPP_NOEXCEPT { - *this = rhs; + return *reinterpret_cast( this ); } - RenderPassInputAttachmentAspectCreateInfo& operator=( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV &() VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( maxGraphicsShaderGroupCount == rhs.maxGraphicsShaderGroupCount ) && + ( maxIndirectSequenceCount == rhs.maxIndirectSequenceCount ) && + ( maxIndirectCommandsTokenCount == rhs.maxIndirectCommandsTokenCount ) && + ( maxIndirectCommandsStreamCount == rhs.maxIndirectCommandsStreamCount ) && + ( maxIndirectCommandsTokenOffset == rhs.maxIndirectCommandsTokenOffset ) && + ( maxIndirectCommandsStreamStride == rhs.maxIndirectCommandsStreamStride ) && + ( minSequencesCountBufferOffsetAlignment == rhs.minSequencesCountBufferOffsetAlignment ) && + ( minSequencesIndexBufferOffsetAlignment == rhs.minSequencesIndexBufferOffsetAlignment ) && + ( minIndirectCommandsBufferOffsetAlignment == rhs.minIndirectCommandsBufferOffsetAlignment ); } - RenderPassInputAttachmentAspectCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV; + void * pNext = {}; + uint32_t maxGraphicsShaderGroupCount = {}; + uint32_t maxIndirectSequenceCount = {}; + uint32_t maxIndirectCommandsTokenCount = {}; + uint32_t maxIndirectCommandsStreamCount = {}; + uint32_t maxIndirectCommandsTokenOffset = {}; + uint32_t maxIndirectCommandsStreamStride = {}; + uint32_t minSequencesCountBufferOffsetAlignment = {}; + uint32_t minSequencesIndexBufferOffsetAlignment = {}; + uint32_t minIndirectCommandsBufferOffsetAlignment = {}; + }; + static_assert( sizeof( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV ) == + sizeof( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceDeviceGeneratedCommandsPropertiesNV; + }; + + struct PhysicalDeviceDeviceMemoryReportFeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceMemoryReportFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport_ = {} ) VULKAN_HPP_NOEXCEPT + : deviceMemoryReport( deviceMemoryReport_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceMemoryReportFeaturesEXT( + PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceDeviceMemoryReportFeaturesEXT( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceDeviceMemoryReportFeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceMemoryReportFeaturesEXT & + operator=( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceDeviceMemoryReportFeaturesEXT & + operator=( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); return *this; } - RenderPassInputAttachmentAspectCreateInfo & setAspectReferenceCount( uint32_t aspectReferenceCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDeviceMemoryReportFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - aspectReferenceCount = aspectReferenceCount_; + pNext = pNext_; return *this; } - RenderPassInputAttachmentAspectCreateInfo & setPAspectReferences( const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDeviceMemoryReportFeaturesEXT & + setDeviceMemoryReport( VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport_ ) VULKAN_HPP_NOEXCEPT { - pAspectReferences = pAspectReferences_; + deviceMemoryReport = deviceMemoryReport_; return *this; } - operator VkRenderPassInputAttachmentAspectCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkRenderPassInputAttachmentAspectCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( RenderPassInputAttachmentAspectCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( aspectReferenceCount == rhs.aspectReferenceCount ) - && ( pAspectReferences == rhs.pAspectReferences ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceMemoryReport == rhs.deviceMemoryReport ); } - bool operator!=( RenderPassInputAttachmentAspectCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassInputAttachmentAspectCreateInfo; - const void* pNext = {}; - uint32_t aspectReferenceCount = {}; - const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport = {}; }; - static_assert( sizeof( RenderPassInputAttachmentAspectCreateInfo ) == sizeof( VkRenderPassInputAttachmentAspectCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceDeviceMemoryReportFeaturesEXT ) == + sizeof( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct RenderPassMultiviewCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR RenderPassMultiviewCreateInfo( uint32_t subpassCount_ = {}, - const uint32_t* pViewMasks_ = {}, - uint32_t dependencyCount_ = {}, - const int32_t* pViewOffsets_ = {}, - uint32_t correlationMaskCount_ = {}, - const uint32_t* pCorrelationMasks_ = {} ) VULKAN_HPP_NOEXCEPT - : subpassCount( subpassCount_ ) - , pViewMasks( pViewMasks_ ) - , dependencyCount( dependencyCount_ ) - , pViewOffsets( pViewOffsets_ ) - , correlationMaskCount( correlationMaskCount_ ) - , pCorrelationMasks( pCorrelationMasks_ ) + using Type = PhysicalDeviceDeviceMemoryReportFeaturesEXT; + }; + + struct PhysicalDeviceDiagnosticsConfigFeaturesNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceDiagnosticsConfigFeaturesNV( + VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ = {} ) VULKAN_HPP_NOEXCEPT + : diagnosticsConfig( diagnosticsConfig_ ) {} - VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo & operator=( VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo ) - offsetof( RenderPassMultiviewCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceDiagnosticsConfigFeaturesNV( + PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - RenderPassMultiviewCreateInfo( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceDiagnosticsConfigFeaturesNV( VkPhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceDiagnosticsConfigFeaturesNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - RenderPassMultiviewCreateInfo& operator=( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDiagnosticsConfigFeaturesNV & + operator=( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceDiagnosticsConfigFeaturesNV & + operator=( VkPhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - RenderPassMultiviewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDiagnosticsConfigFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - RenderPassMultiviewCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDiagnosticsConfigFeaturesNV & + setDiagnosticsConfig( VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ ) VULKAN_HPP_NOEXCEPT { - subpassCount = subpassCount_; + diagnosticsConfig = diagnosticsConfig_; return *this; } - RenderPassMultiviewCreateInfo & setPViewMasks( const uint32_t* pViewMasks_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV const &() const VULKAN_HPP_NOEXCEPT { - pViewMasks = pViewMasks_; - return *this; + return *reinterpret_cast( this ); } - RenderPassMultiviewCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV &() VULKAN_HPP_NOEXCEPT { - dependencyCount = dependencyCount_; - return *this; + return *reinterpret_cast( this ); } - RenderPassMultiviewCreateInfo & setPViewOffsets( const int32_t* pViewOffsets_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceDiagnosticsConfigFeaturesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - pViewOffsets = pViewOffsets_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( diagnosticsConfig == rhs.diagnosticsConfig ); } - RenderPassMultiviewCreateInfo & setCorrelationMaskCount( uint32_t correlationMaskCount_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - correlationMaskCount = correlationMaskCount_; - return *this; + return !operator==( rhs ); } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig = {}; + }; + static_assert( sizeof( PhysicalDeviceDiagnosticsConfigFeaturesNV ) == + sizeof( VkPhysicalDeviceDiagnosticsConfigFeaturesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceDiagnosticsConfigFeaturesNV; + }; + + struct PhysicalDeviceDiscardRectanglePropertiesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceDiscardRectanglePropertiesEXT( uint32_t maxDiscardRectangles_ = {} ) VULKAN_HPP_NOEXCEPT + : maxDiscardRectangles( maxDiscardRectangles_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceDiscardRectanglePropertiesEXT( + PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceDiscardRectanglePropertiesEXT( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceDiscardRectanglePropertiesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - RenderPassMultiviewCreateInfo & setPCorrelationMasks( const uint32_t* pCorrelationMasks_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDiscardRectanglePropertiesEXT & + operator=( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceDiscardRectanglePropertiesEXT & + operator=( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - pCorrelationMasks = pCorrelationMasks_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkRenderPassMultiviewCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkRenderPassMultiviewCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceDiscardRectanglePropertiesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( RenderPassMultiviewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceDiscardRectanglePropertiesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( subpassCount == rhs.subpassCount ) - && ( pViewMasks == rhs.pViewMasks ) - && ( dependencyCount == rhs.dependencyCount ) - && ( pViewOffsets == rhs.pViewOffsets ) - && ( correlationMaskCount == rhs.correlationMaskCount ) - && ( pCorrelationMasks == rhs.pCorrelationMasks ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxDiscardRectangles == rhs.maxDiscardRectangles ); } - bool operator!=( RenderPassMultiviewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassMultiviewCreateInfo; - const void* pNext = {}; - uint32_t subpassCount = {}; - const uint32_t* pViewMasks = {}; - uint32_t dependencyCount = {}; - const int32_t* pViewOffsets = {}; - uint32_t correlationMaskCount = {}; - const uint32_t* pCorrelationMasks = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT; + void * pNext = {}; + uint32_t maxDiscardRectangles = {}; }; - static_assert( sizeof( RenderPassMultiviewCreateInfo ) == sizeof( VkRenderPassMultiviewCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceDiscardRectanglePropertiesEXT ) == + sizeof( VkPhysicalDeviceDiscardRectanglePropertiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SubpassSampleLocationsEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SubpassSampleLocationsEXT( uint32_t subpassIndex_ = {}, - VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {} ) VULKAN_HPP_NOEXCEPT - : subpassIndex( subpassIndex_ ) - , sampleLocationsInfo( sampleLocationsInfo_ ) + using Type = PhysicalDeviceDiscardRectanglePropertiesEXT; + }; + + struct PhysicalDeviceDriverProperties + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDriverProperties; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDriverProperties( + VULKAN_HPP_NAMESPACE::DriverId driverID_ = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary, + std::array const & driverName_ = {}, + std::array const & driverInfo_ = {}, + VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion_ = {} ) VULKAN_HPP_NOEXCEPT + : driverID( driverID_ ) + , driverName( driverName_ ) + , driverInfo( driverInfo_ ) + , conformanceVersion( conformanceVersion_ ) {} - SubpassSampleLocationsEXT( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR_14 + PhysicalDeviceDriverProperties( PhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SubpassSampleLocationsEXT& operator=( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + PhysicalDeviceDriverProperties( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceDriverProperties( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - SubpassSampleLocationsEXT & setSubpassIndex( uint32_t subpassIndex_ ) VULKAN_HPP_NOEXCEPT - { - subpassIndex = subpassIndex_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDriverProperties & + operator=( PhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SubpassSampleLocationsEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceDriverProperties & operator=( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - sampleLocationsInfo = sampleLocationsInfo_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkSubpassSampleLocationsEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceDriverProperties const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSubpassSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceDriverProperties &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SubpassSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceDriverProperties const & ) const = default; +#else + bool operator==( PhysicalDeviceDriverProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( subpassIndex == rhs.subpassIndex ) - && ( sampleLocationsInfo == rhs.sampleLocationsInfo ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( driverID == rhs.driverID ) && + ( driverName == rhs.driverName ) && ( driverInfo == rhs.driverInfo ) && + ( conformanceVersion == rhs.conformanceVersion ); } - bool operator!=( SubpassSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceDriverProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint32_t subpassIndex = {}; - VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDriverProperties; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D driverName = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D driverInfo = {}; + VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {}; }; - static_assert( sizeof( SubpassSampleLocationsEXT ) == sizeof( VkSubpassSampleLocationsEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceDriverProperties ) == sizeof( VkPhysicalDeviceDriverProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct RenderPassSampleLocationsBeginInfoEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR RenderPassSampleLocationsBeginInfoEXT( uint32_t attachmentInitialSampleLocationsCount_ = {}, - const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations_ = {}, - uint32_t postSubpassSampleLocationsCount_ = {}, - const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT* pPostSubpassSampleLocations_ = {} ) VULKAN_HPP_NOEXCEPT - : attachmentInitialSampleLocationsCount( attachmentInitialSampleLocationsCount_ ) - , pAttachmentInitialSampleLocations( pAttachmentInitialSampleLocations_ ) - , postSubpassSampleLocationsCount( postSubpassSampleLocationsCount_ ) - , pPostSubpassSampleLocations( pPostSubpassSampleLocations_ ) - {} + using Type = PhysicalDeviceDriverProperties; + }; + using PhysicalDeviceDriverPropertiesKHR = PhysicalDeviceDriverProperties; - VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT & operator=( VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT ) - offsetof( RenderPassSampleLocationsBeginInfoEXT, pNext ) ); - return *this; - } + struct PhysicalDeviceExclusiveScissorFeaturesNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV; - RenderPassSampleLocationsBeginInfoEXT( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceExclusiveScissorFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ = {} ) + VULKAN_HPP_NOEXCEPT : exclusiveScissor( exclusiveScissor_ ) + {} - RenderPassSampleLocationsBeginInfoEXT& operator=( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceExclusiveScissorFeaturesNV( + PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - RenderPassSampleLocationsBeginInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + PhysicalDeviceExclusiveScissorFeaturesNV( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceExclusiveScissorFeaturesNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - RenderPassSampleLocationsBeginInfoEXT & setAttachmentInitialSampleLocationsCount( uint32_t attachmentInitialSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT - { - attachmentInitialSampleLocationsCount = attachmentInitialSampleLocationsCount_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExclusiveScissorFeaturesNV & + operator=( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - RenderPassSampleLocationsBeginInfoEXT & setPAttachmentInitialSampleLocations( const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceExclusiveScissorFeaturesNV & + operator=( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT { - pAttachmentInitialSampleLocations = pAttachmentInitialSampleLocations_; + *this = *reinterpret_cast( &rhs ); return *this; } - RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocationsCount( uint32_t postSubpassSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceExclusiveScissorFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - postSubpassSampleLocationsCount = postSubpassSampleLocationsCount_; + pNext = pNext_; return *this; } - RenderPassSampleLocationsBeginInfoEXT & setPPostSubpassSampleLocations( const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT* pPostSubpassSampleLocations_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceExclusiveScissorFeaturesNV & + setExclusiveScissor( VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ ) VULKAN_HPP_NOEXCEPT { - pPostSubpassSampleLocations = pPostSubpassSampleLocations_; + exclusiveScissor = exclusiveScissor_; return *this; } - operator VkRenderPassSampleLocationsBeginInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceExclusiveScissorFeaturesNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkRenderPassSampleLocationsBeginInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceExclusiveScissorFeaturesNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( RenderPassSampleLocationsBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceExclusiveScissorFeaturesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( attachmentInitialSampleLocationsCount == rhs.attachmentInitialSampleLocationsCount ) - && ( pAttachmentInitialSampleLocations == rhs.pAttachmentInitialSampleLocations ) - && ( postSubpassSampleLocationsCount == rhs.postSubpassSampleLocationsCount ) - && ( pPostSubpassSampleLocations == rhs.pPostSubpassSampleLocations ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( exclusiveScissor == rhs.exclusiveScissor ); } - bool operator!=( RenderPassSampleLocationsBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassSampleLocationsBeginInfoEXT; - const void* pNext = {}; - uint32_t attachmentInitialSampleLocationsCount = {}; - const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations = {}; - uint32_t postSubpassSampleLocationsCount = {}; - const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT* pPostSubpassSampleLocations = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor = {}; }; - static_assert( sizeof( RenderPassSampleLocationsBeginInfoEXT ) == sizeof( VkRenderPassSampleLocationsBeginInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceExclusiveScissorFeaturesNV ) == + sizeof( VkPhysicalDeviceExclusiveScissorFeaturesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SamplerCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SamplerCreateInfo( VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags_ = {}, - VULKAN_HPP_NAMESPACE::Filter magFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest, - VULKAN_HPP_NAMESPACE::Filter minFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest, - VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode_ = VULKAN_HPP_NAMESPACE::SamplerMipmapMode::eNearest, - VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat, - VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat, - VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat, - float mipLodBias_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable_ = {}, - float maxAnisotropy_ = {}, - VULKAN_HPP_NAMESPACE::Bool32 compareEnable_ = {}, - VULKAN_HPP_NAMESPACE::CompareOp compareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever, - float minLod_ = {}, - float maxLod_ = {}, - VULKAN_HPP_NAMESPACE::BorderColor borderColor_ = VULKAN_HPP_NAMESPACE::BorderColor::eFloatTransparentBlack, - VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , magFilter( magFilter_ ) - , minFilter( minFilter_ ) - , mipmapMode( mipmapMode_ ) - , addressModeU( addressModeU_ ) - , addressModeV( addressModeV_ ) - , addressModeW( addressModeW_ ) - , mipLodBias( mipLodBias_ ) - , anisotropyEnable( anisotropyEnable_ ) - , maxAnisotropy( maxAnisotropy_ ) - , compareEnable( compareEnable_ ) - , compareOp( compareOp_ ) - , minLod( minLod_ ) - , maxLod( maxLod_ ) - , borderColor( borderColor_ ) - , unnormalizedCoordinates( unnormalizedCoordinates_ ) + using Type = PhysicalDeviceExclusiveScissorFeaturesNV; + }; + + struct PhysicalDeviceExtendedDynamicState2FeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceExtendedDynamicState2FeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicState2FeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2LogicOp_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2PatchControlPoints_ = {} ) VULKAN_HPP_NOEXCEPT + : extendedDynamicState2( extendedDynamicState2_ ) + , extendedDynamicState2LogicOp( extendedDynamicState2LogicOp_ ) + , extendedDynamicState2PatchControlPoints( extendedDynamicState2PatchControlPoints_ ) {} - VULKAN_HPP_NAMESPACE::SamplerCreateInfo & operator=( VULKAN_HPP_NAMESPACE::SamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SamplerCreateInfo ) - offsetof( SamplerCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicState2FeaturesEXT( + PhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SamplerCreateInfo( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceExtendedDynamicState2FeaturesEXT( VkPhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceExtendedDynamicState2FeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - SamplerCreateInfo& operator=( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicState2FeaturesEXT & + operator=( PhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceExtendedDynamicState2FeaturesEXT & + operator=( VkPhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - SamplerCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceExtendedDynamicState2FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - SamplerCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceExtendedDynamicState2FeaturesEXT & + setExtendedDynamicState2( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + extendedDynamicState2 = extendedDynamicState2_; return *this; } - SamplerCreateInfo & setMagFilter( VULKAN_HPP_NAMESPACE::Filter magFilter_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceExtendedDynamicState2FeaturesEXT & + setExtendedDynamicState2LogicOp( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2LogicOp_ ) VULKAN_HPP_NOEXCEPT { - magFilter = magFilter_; + extendedDynamicState2LogicOp = extendedDynamicState2LogicOp_; return *this; } - SamplerCreateInfo & setMinFilter( VULKAN_HPP_NAMESPACE::Filter minFilter_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceExtendedDynamicState2FeaturesEXT & setExtendedDynamicState2PatchControlPoints( + VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2PatchControlPoints_ ) VULKAN_HPP_NOEXCEPT { - minFilter = minFilter_; + extendedDynamicState2PatchControlPoints = extendedDynamicState2PatchControlPoints_; return *this; } - SamplerCreateInfo & setMipmapMode( VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceExtendedDynamicState2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - mipmapMode = mipmapMode_; - return *this; + return *reinterpret_cast( this ); } - SamplerCreateInfo & setAddressModeU( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceExtendedDynamicState2FeaturesEXT &() VULKAN_HPP_NOEXCEPT { - addressModeU = addressModeU_; - return *this; + return *reinterpret_cast( this ); } - SamplerCreateInfo & setAddressModeV( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceExtendedDynamicState2FeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - addressModeV = addressModeV_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( extendedDynamicState2 == rhs.extendedDynamicState2 ) && + ( extendedDynamicState2LogicOp == rhs.extendedDynamicState2LogicOp ) && + ( extendedDynamicState2PatchControlPoints == rhs.extendedDynamicState2PatchControlPoints ); } - SamplerCreateInfo & setAddressModeW( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceExtendedDynamicState2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - addressModeW = addressModeW_; - return *this; + return !operator==( rhs ); } +#endif - SamplerCreateInfo & setMipLodBias( float mipLodBias_ ) VULKAN_HPP_NOEXCEPT - { - mipLodBias = mipLodBias_; - return *this; - } + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedDynamicState2FeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2 = {}; + VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2LogicOp = {}; + VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState2PatchControlPoints = {}; + }; + static_assert( sizeof( PhysicalDeviceExtendedDynamicState2FeaturesEXT ) == + sizeof( VkPhysicalDeviceExtendedDynamicState2FeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - SamplerCreateInfo & setAnisotropyEnable( VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable_ ) VULKAN_HPP_NOEXCEPT - { - anisotropyEnable = anisotropyEnable_; - return *this; - } + template <> + struct CppType + { + using Type = PhysicalDeviceExtendedDynamicState2FeaturesEXT; + }; - SamplerCreateInfo & setMaxAnisotropy( float maxAnisotropy_ ) VULKAN_HPP_NOEXCEPT - { - maxAnisotropy = maxAnisotropy_; - return *this; - } + struct PhysicalDeviceExtendedDynamicStateFeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT; - SamplerCreateInfo & setCompareEnable( VULKAN_HPP_NAMESPACE::Bool32 compareEnable_ ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicStateFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState_ = {} ) VULKAN_HPP_NOEXCEPT + : extendedDynamicState( extendedDynamicState_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicStateFeaturesEXT( + PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceExtendedDynamicStateFeaturesEXT( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceExtendedDynamicStateFeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExtendedDynamicStateFeaturesEXT & + operator=( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceExtendedDynamicStateFeaturesEXT & + operator=( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - compareEnable = compareEnable_; + *this = *reinterpret_cast( &rhs ); return *this; } - SamplerCreateInfo & setCompareOp( VULKAN_HPP_NAMESPACE::CompareOp compareOp_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceExtendedDynamicStateFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - compareOp = compareOp_; + pNext = pNext_; return *this; } - SamplerCreateInfo & setMinLod( float minLod_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceExtendedDynamicStateFeaturesEXT & + setExtendedDynamicState( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState_ ) VULKAN_HPP_NOEXCEPT { - minLod = minLod_; + extendedDynamicState = extendedDynamicState_; return *this; } - SamplerCreateInfo & setMaxLod( float maxLod_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - maxLod = maxLod_; - return *this; + return *reinterpret_cast( this ); } - SamplerCreateInfo & setBorderColor( VULKAN_HPP_NAMESPACE::BorderColor borderColor_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT &() VULKAN_HPP_NOEXCEPT { - borderColor = borderColor_; - return *this; + return *reinterpret_cast( this ); } - SamplerCreateInfo & setUnnormalizedCoordinates( VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - unnormalizedCoordinates = unnormalizedCoordinates_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( extendedDynamicState == rhs.extendedDynamicState ); } - operator VkSamplerCreateInfo const&() const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return !operator==( rhs ); } +#endif - operator VkSamplerCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - bool operator==( SamplerCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( magFilter == rhs.magFilter ) - && ( minFilter == rhs.minFilter ) - && ( mipmapMode == rhs.mipmapMode ) - && ( addressModeU == rhs.addressModeU ) - && ( addressModeV == rhs.addressModeV ) - && ( addressModeW == rhs.addressModeW ) - && ( mipLodBias == rhs.mipLodBias ) - && ( anisotropyEnable == rhs.anisotropyEnable ) - && ( maxAnisotropy == rhs.maxAnisotropy ) - && ( compareEnable == rhs.compareEnable ) - && ( compareOp == rhs.compareOp ) - && ( minLod == rhs.minLod ) - && ( maxLod == rhs.maxLod ) - && ( borderColor == rhs.borderColor ) - && ( unnormalizedCoordinates == rhs.unnormalizedCoordinates ); - } - - bool operator!=( SamplerCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::Filter magFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest; - VULKAN_HPP_NAMESPACE::Filter minFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest; - VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode = VULKAN_HPP_NAMESPACE::SamplerMipmapMode::eNearest; - VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat; - VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat; - VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat; - float mipLodBias = {}; - VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable = {}; - float maxAnisotropy = {}; - VULKAN_HPP_NAMESPACE::Bool32 compareEnable = {}; - VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever; - float minLod = {}; - float maxLod = {}; - VULKAN_HPP_NAMESPACE::BorderColor borderColor = VULKAN_HPP_NAMESPACE::BorderColor::eFloatTransparentBlack; - VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates = {}; - }; - static_assert( sizeof( SamplerCreateInfo ) == sizeof( VkSamplerCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState = {}; + }; + static_assert( sizeof( PhysicalDeviceExtendedDynamicStateFeaturesEXT ) == + sizeof( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SamplerReductionModeCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SamplerReductionModeCreateInfo( VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ = VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage ) VULKAN_HPP_NOEXCEPT - : reductionMode( reductionMode_ ) + using Type = PhysicalDeviceExtendedDynamicStateFeaturesEXT; + }; + + struct PhysicalDeviceExternalImageFormatInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceExternalImageFormatInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalImageFormatInfo( + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT + : handleType( handleType_ ) {} - VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo & operator=( VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo ) - offsetof( SamplerReductionModeCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalImageFormatInfo( PhysicalDeviceExternalImageFormatInfo const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - SamplerReductionModeCreateInfo( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceExternalImageFormatInfo( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceExternalImageFormatInfo( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalImageFormatInfo & + operator=( PhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SamplerReductionModeCreateInfo& operator=( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceExternalImageFormatInfo & + operator=( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - SamplerReductionModeCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceExternalImageFormatInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - SamplerReductionModeCreateInfo & setReductionMode( VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceExternalImageFormatInfo & + setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT { - reductionMode = reductionMode_; + handleType = handleType_; return *this; } - operator VkSamplerReductionModeCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceExternalImageFormatInfo const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSamplerReductionModeCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceExternalImageFormatInfo &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SamplerReductionModeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceExternalImageFormatInfo const & ) const = default; +#else + bool operator==( PhysicalDeviceExternalImageFormatInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( reductionMode == rhs.reductionMode ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( handleType == rhs.handleType ); } - bool operator!=( SamplerReductionModeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceExternalImageFormatInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerReductionModeCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode = VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalImageFormatInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; }; - static_assert( sizeof( SamplerReductionModeCreateInfo ) == sizeof( VkSamplerReductionModeCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceExternalImageFormatInfo ) == sizeof( VkPhysicalDeviceExternalImageFormatInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SamplerYcbcrConversionCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionCreateInfo( VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, - VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity, - VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull, - VULKAN_HPP_NAMESPACE::ComponentMapping components_ = {}, - VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, - VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, - VULKAN_HPP_NAMESPACE::Filter chromaFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest, - VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ = {} ) VULKAN_HPP_NOEXCEPT - : format( format_ ) - , ycbcrModel( ycbcrModel_ ) - , ycbcrRange( ycbcrRange_ ) - , components( components_ ) - , xChromaOffset( xChromaOffset_ ) - , yChromaOffset( yChromaOffset_ ) - , chromaFilter( chromaFilter_ ) - , forceExplicitReconstruction( forceExplicitReconstruction_ ) + using Type = PhysicalDeviceExternalImageFormatInfo; + }; + using PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo; + + struct PhysicalDeviceExternalMemoryHostPropertiesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryHostPropertiesEXT( + VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment_ = {} ) VULKAN_HPP_NOEXCEPT + : minImportedHostPointerAlignment( minImportedHostPointerAlignment_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryHostPropertiesEXT( + PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceExternalMemoryHostPropertiesEXT( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceExternalMemoryHostPropertiesEXT( + *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo & operator=( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceExternalMemoryHostPropertiesEXT & + operator=( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceExternalMemoryHostPropertiesEXT & + operator=( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo ) - offsetof( SamplerYcbcrConversionCreateInfo, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - SamplerYcbcrConversionCreateInfo( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT { - *this = rhs; + return *reinterpret_cast( this ); } - SamplerYcbcrConversionCreateInfo& operator=( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT &() VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return *reinterpret_cast( this ); } - SamplerYcbcrConversionCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceExternalMemoryHostPropertiesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( minImportedHostPointerAlignment == rhs.minImportedHostPointerAlignment ); } - SamplerYcbcrConversionCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - format = format_; - return *this; + return !operator==( rhs ); } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment = {}; + }; + static_assert( sizeof( PhysicalDeviceExternalMemoryHostPropertiesEXT ) == + sizeof( VkPhysicalDeviceExternalMemoryHostPropertiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceExternalMemoryHostPropertiesEXT; + }; + + struct PhysicalDeviceFloatControlsProperties + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceFloatControlsProperties; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceFloatControlsProperties( + VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence_ = + VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, + VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence_ = + VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, + VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64_ = {} ) VULKAN_HPP_NOEXCEPT + : denormBehaviorIndependence( denormBehaviorIndependence_ ) + , roundingModeIndependence( roundingModeIndependence_ ) + , shaderSignedZeroInfNanPreserveFloat16( shaderSignedZeroInfNanPreserveFloat16_ ) + , shaderSignedZeroInfNanPreserveFloat32( shaderSignedZeroInfNanPreserveFloat32_ ) + , shaderSignedZeroInfNanPreserveFloat64( shaderSignedZeroInfNanPreserveFloat64_ ) + , shaderDenormPreserveFloat16( shaderDenormPreserveFloat16_ ) + , shaderDenormPreserveFloat32( shaderDenormPreserveFloat32_ ) + , shaderDenormPreserveFloat64( shaderDenormPreserveFloat64_ ) + , shaderDenormFlushToZeroFloat16( shaderDenormFlushToZeroFloat16_ ) + , shaderDenormFlushToZeroFloat32( shaderDenormFlushToZeroFloat32_ ) + , shaderDenormFlushToZeroFloat64( shaderDenormFlushToZeroFloat64_ ) + , shaderRoundingModeRTEFloat16( shaderRoundingModeRTEFloat16_ ) + , shaderRoundingModeRTEFloat32( shaderRoundingModeRTEFloat32_ ) + , shaderRoundingModeRTEFloat64( shaderRoundingModeRTEFloat64_ ) + , shaderRoundingModeRTZFloat16( shaderRoundingModeRTZFloat16_ ) + , shaderRoundingModeRTZFloat32( shaderRoundingModeRTZFloat32_ ) + , shaderRoundingModeRTZFloat64( shaderRoundingModeRTZFloat64_ ) + {} - SamplerYcbcrConversionCreateInfo & setYcbcrModel( VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR PhysicalDeviceFloatControlsProperties( PhysicalDeviceFloatControlsProperties const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceFloatControlsProperties( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceFloatControlsProperties( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFloatControlsProperties & + operator=( PhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceFloatControlsProperties & + operator=( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - ycbcrModel = ycbcrModel_; + *this = *reinterpret_cast( &rhs ); return *this; } - SamplerYcbcrConversionCreateInfo & setYcbcrRange( VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFloatControlsProperties const &() const VULKAN_HPP_NOEXCEPT { - ycbcrRange = ycbcrRange_; - return *this; + return *reinterpret_cast( this ); } - SamplerYcbcrConversionCreateInfo & setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping components_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFloatControlsProperties &() VULKAN_HPP_NOEXCEPT { - components = components_; - return *this; + return *reinterpret_cast( this ); } - SamplerYcbcrConversionCreateInfo & setXChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceFloatControlsProperties const & ) const = default; +#else + bool operator==( PhysicalDeviceFloatControlsProperties const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( denormBehaviorIndependence == rhs.denormBehaviorIndependence ) && + ( roundingModeIndependence == rhs.roundingModeIndependence ) && + ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 ) && + ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 ) && + ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 ) && + ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 ) && + ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 ) && + ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 ) && + ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 ) && + ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 ) && + ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 ) && + ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 ) && + ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 ) && + ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 ) && + ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 ) && + ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 ) && + ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 ); + } + + bool operator!=( PhysicalDeviceFloatControlsProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - xChromaOffset = xChromaOffset_; - return *this; + return !operator==( rhs ); } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFloatControlsProperties; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = + VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly; + VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = + VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly; + VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {}; + }; + static_assert( sizeof( PhysicalDeviceFloatControlsProperties ) == sizeof( VkPhysicalDeviceFloatControlsProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceFloatControlsProperties; + }; + using PhysicalDeviceFloatControlsPropertiesKHR = PhysicalDeviceFloatControlsProperties; + + struct PhysicalDeviceFragmentDensityMap2FeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2FeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred_ = {} ) VULKAN_HPP_NOEXCEPT + : fragmentDensityMapDeferred( fragmentDensityMapDeferred_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2FeaturesEXT( + PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceFragmentDensityMap2FeaturesEXT( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceFragmentDensityMap2FeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMap2FeaturesEXT & + operator=( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SamplerYcbcrConversionCreateInfo & setYChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentDensityMap2FeaturesEXT & + operator=( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - yChromaOffset = yChromaOffset_; + *this = *reinterpret_cast( &rhs ); return *this; } - SamplerYcbcrConversionCreateInfo & setChromaFilter( VULKAN_HPP_NAMESPACE::Filter chromaFilter_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentDensityMap2FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - chromaFilter = chromaFilter_; + pNext = pNext_; return *this; } - SamplerYcbcrConversionCreateInfo & setForceExplicitReconstruction( VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentDensityMap2FeaturesEXT & + setFragmentDensityMapDeferred( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred_ ) VULKAN_HPP_NOEXCEPT { - forceExplicitReconstruction = forceExplicitReconstruction_; + fragmentDensityMapDeferred = fragmentDensityMapDeferred_; return *this; } - operator VkSamplerYcbcrConversionCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSamplerYcbcrConversionCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SamplerYcbcrConversionCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( format == rhs.format ) - && ( ycbcrModel == rhs.ycbcrModel ) - && ( ycbcrRange == rhs.ycbcrRange ) - && ( components == rhs.components ) - && ( xChromaOffset == rhs.xChromaOffset ) - && ( yChromaOffset == rhs.yChromaOffset ) - && ( chromaFilter == rhs.chromaFilter ) - && ( forceExplicitReconstruction == rhs.forceExplicitReconstruction ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( fragmentDensityMapDeferred == rhs.fragmentDensityMapDeferred ); } - bool operator!=( SamplerYcbcrConversionCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity; - VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull; - VULKAN_HPP_NAMESPACE::ComponentMapping components = {}; - VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven; - VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven; - VULKAN_HPP_NAMESPACE::Filter chromaFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest; - VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred = {}; }; - static_assert( sizeof( SamplerYcbcrConversionCreateInfo ) == sizeof( VkSamplerYcbcrConversionCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceFragmentDensityMap2FeaturesEXT ) == + sizeof( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SamplerYcbcrConversionImageFormatProperties + template <> + struct CppType { - SamplerYcbcrConversionImageFormatProperties( uint32_t combinedImageSamplerDescriptorCount_ = {} ) VULKAN_HPP_NOEXCEPT - : combinedImageSamplerDescriptorCount( combinedImageSamplerDescriptorCount_ ) + using Type = PhysicalDeviceFragmentDensityMap2FeaturesEXT; + }; + + struct PhysicalDeviceFragmentDensityMap2PropertiesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2PropertiesEXT( + VULKAN_HPP_NAMESPACE::Bool32 subsampledLoads_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 subsampledCoarseReconstructionEarlyAccess_ = {}, + uint32_t maxSubsampledArrayLayers_ = {}, + uint32_t maxDescriptorSetSubsampledSamplers_ = {} ) VULKAN_HPP_NOEXCEPT + : subsampledLoads( subsampledLoads_ ) + , subsampledCoarseReconstructionEarlyAccess( subsampledCoarseReconstructionEarlyAccess_ ) + , maxSubsampledArrayLayers( maxSubsampledArrayLayers_ ) + , maxDescriptorSetSubsampledSamplers( maxDescriptorSetSubsampledSamplers_ ) {} - VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties & operator=( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties ) - offsetof( SamplerYcbcrConversionImageFormatProperties, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2PropertiesEXT( + PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SamplerYcbcrConversionImageFormatProperties( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceFragmentDensityMap2PropertiesEXT( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceFragmentDensityMap2PropertiesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMap2PropertiesEXT & + operator=( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SamplerYcbcrConversionImageFormatProperties& operator=( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentDensityMap2PropertiesEXT & + operator=( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkSamplerYcbcrConversionImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSamplerYcbcrConversionImageFormatProperties &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SamplerYcbcrConversionImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( combinedImageSamplerDescriptorCount == rhs.combinedImageSamplerDescriptorCount ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( subsampledLoads == rhs.subsampledLoads ) && + ( subsampledCoarseReconstructionEarlyAccess == rhs.subsampledCoarseReconstructionEarlyAccess ) && + ( maxSubsampledArrayLayers == rhs.maxSubsampledArrayLayers ) && + ( maxDescriptorSetSubsampledSamplers == rhs.maxDescriptorSetSubsampledSamplers ); } - bool operator!=( SamplerYcbcrConversionImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionImageFormatProperties; - void* pNext = {}; - uint32_t combinedImageSamplerDescriptorCount = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 subsampledLoads = {}; + VULKAN_HPP_NAMESPACE::Bool32 subsampledCoarseReconstructionEarlyAccess = {}; + uint32_t maxSubsampledArrayLayers = {}; + uint32_t maxDescriptorSetSubsampledSamplers = {}; }; - static_assert( sizeof( SamplerYcbcrConversionImageFormatProperties ) == sizeof( VkSamplerYcbcrConversionImageFormatProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceFragmentDensityMap2PropertiesEXT ) == + sizeof( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SamplerYcbcrConversionInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionInfo( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ = {} ) VULKAN_HPP_NOEXCEPT - : conversion( conversion_ ) + using Type = PhysicalDeviceFragmentDensityMap2PropertiesEXT; + }; + + struct PhysicalDeviceFragmentDensityMapFeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ = {} ) VULKAN_HPP_NOEXCEPT + : fragmentDensityMap( fragmentDensityMap_ ) + , fragmentDensityMapDynamic( fragmentDensityMapDynamic_ ) + , fragmentDensityMapNonSubsampledImages( fragmentDensityMapNonSubsampledImages_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapFeaturesEXT( + PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceFragmentDensityMapFeaturesEXT( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceFragmentDensityMapFeaturesEXT( + *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapFeaturesEXT & + operator=( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo & operator=( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentDensityMapFeaturesEXT & + operator=( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo ) - offsetof( SamplerYcbcrConversionInfo, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - SamplerYcbcrConversionInfo( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentDensityMapFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - SamplerYcbcrConversionInfo& operator=( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentDensityMapFeaturesEXT & + setFragmentDensityMap( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + fragmentDensityMap = fragmentDensityMap_; return *this; } - SamplerYcbcrConversionInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentDensityMapFeaturesEXT & + setFragmentDensityMapDynamic( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + fragmentDensityMapDynamic = fragmentDensityMapDynamic_; return *this; } - SamplerYcbcrConversionInfo & setConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentDensityMapFeaturesEXT & setFragmentDensityMapNonSubsampledImages( + VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ ) VULKAN_HPP_NOEXCEPT { - conversion = conversion_; + fragmentDensityMapNonSubsampledImages = fragmentDensityMapNonSubsampledImages_; return *this; } - operator VkSamplerYcbcrConversionInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSamplerYcbcrConversionInfo &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SamplerYcbcrConversionInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceFragmentDensityMapFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( conversion == rhs.conversion ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fragmentDensityMap == rhs.fragmentDensityMap ) && + ( fragmentDensityMapDynamic == rhs.fragmentDensityMapDynamic ) && + ( fragmentDensityMapNonSubsampledImages == rhs.fragmentDensityMapNonSubsampledImages ); } - bool operator!=( SamplerYcbcrConversionInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap = {}; + VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic = {}; + VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages = {}; }; - static_assert( sizeof( SamplerYcbcrConversionInfo ) == sizeof( VkSamplerYcbcrConversionInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceFragmentDensityMapFeaturesEXT ) == + sizeof( VkPhysicalDeviceFragmentDensityMapFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SemaphoreCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SemaphoreCreateInfo( VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - {} + using Type = PhysicalDeviceFragmentDensityMapFeaturesEXT; + }; - VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo & operator=( VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo ) - offsetof( SemaphoreCreateInfo, pNext ) ); - return *this; - } + struct PhysicalDeviceFragmentDensityMapPropertiesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT; - SemaphoreCreateInfo( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapPropertiesEXT( + VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations_ = {} ) VULKAN_HPP_NOEXCEPT + : minFragmentDensityTexelSize( minFragmentDensityTexelSize_ ) + , maxFragmentDensityTexelSize( maxFragmentDensityTexelSize_ ) + , fragmentDensityInvocations( fragmentDensityInvocations_ ) + {} - SemaphoreCreateInfo& operator=( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapPropertiesEXT( + PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SemaphoreCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + PhysicalDeviceFragmentDensityMapPropertiesEXT( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceFragmentDensityMapPropertiesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - SemaphoreCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentDensityMapPropertiesEXT & + operator=( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceFragmentDensityMapPropertiesEXT & + operator=( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkSemaphoreCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceFragmentDensityMapPropertiesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( minFragmentDensityTexelSize == rhs.minFragmentDensityTexelSize ) && + ( maxFragmentDensityTexelSize == rhs.maxFragmentDensityTexelSize ) && + ( fragmentDensityInvocations == rhs.fragmentDensityInvocations ); } - bool operator!=( SemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize = {}; + VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize = {}; + VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations = {}; }; - static_assert( sizeof( SemaphoreCreateInfo ) == sizeof( VkSemaphoreCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceFragmentDensityMapPropertiesEXT ) == + sizeof( VkPhysicalDeviceFragmentDensityMapPropertiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SemaphoreGetFdInfoKHR + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SemaphoreGetFdInfoKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT - : semaphore( semaphore_ ) - , handleType( handleType_ ) + using Type = PhysicalDeviceFragmentDensityMapPropertiesEXT; + }; + + struct PhysicalDeviceFragmentShaderBarycentricFeaturesNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderBarycentricFeaturesNV( + VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ = {} ) VULKAN_HPP_NOEXCEPT + : fragmentShaderBarycentric( fragmentShaderBarycentric_ ) {} - VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR & operator=( VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR ) - offsetof( SemaphoreGetFdInfoKHR, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderBarycentricFeaturesNV( + PhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SemaphoreGetFdInfoKHR( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceFragmentShaderBarycentricFeaturesNV( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceFragmentShaderBarycentricFeaturesNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - SemaphoreGetFdInfoKHR& operator=( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderBarycentricFeaturesNV & + operator=( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SemaphoreGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentShaderBarycentricFeaturesNV & + operator=( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = + *reinterpret_cast( &rhs ); return *this; } - SemaphoreGetFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentShaderBarycentricFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - semaphore = semaphore_; + pNext = pNext_; return *this; } - SemaphoreGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentShaderBarycentricFeaturesNV & + setFragmentShaderBarycentric( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ ) VULKAN_HPP_NOEXCEPT { - handleType = handleType_; + fragmentShaderBarycentric = fragmentShaderBarycentric_; return *this; } - operator VkSemaphoreGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSemaphoreGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SemaphoreGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( semaphore == rhs.semaphore ) - && ( handleType == rhs.handleType ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( fragmentShaderBarycentric == rhs.fragmentShaderBarycentric ); } - bool operator!=( SemaphoreGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetFdInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric = {}; }; - static_assert( sizeof( SemaphoreGetFdInfoKHR ) == sizeof( VkSemaphoreGetFdInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceFragmentShaderBarycentricFeaturesNV ) == + sizeof( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_WIN32_KHR + template <> + struct CppType + { + using Type = PhysicalDeviceFragmentShaderBarycentricFeaturesNV; + }; - struct SemaphoreGetWin32HandleInfoKHR + struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT { - VULKAN_HPP_CONSTEXPR SemaphoreGetWin32HandleInfoKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) VULKAN_HPP_NOEXCEPT - : semaphore( semaphore_ ) - , handleType( handleType_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderInterlockFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ = {} ) VULKAN_HPP_NOEXCEPT + : fragmentShaderSampleInterlock( fragmentShaderSampleInterlock_ ) + , fragmentShaderPixelInterlock( fragmentShaderPixelInterlock_ ) + , fragmentShaderShadingRateInterlock( fragmentShaderShadingRateInterlock_ ) {} - VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR & operator=( VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR ) - offsetof( SemaphoreGetWin32HandleInfoKHR, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderInterlockFeaturesEXT( + PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SemaphoreGetWin32HandleInfoKHR( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentShaderInterlockFeaturesEXT( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceFragmentShaderInterlockFeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShaderInterlockFeaturesEXT & + operator=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceFragmentShaderInterlockFeaturesEXT & + operator=( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - SemaphoreGetWin32HandleInfoKHR& operator=( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - SemaphoreGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderSampleInterlock( + VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + fragmentShaderSampleInterlock = fragmentShaderSampleInterlock_; return *this; } - SemaphoreGetWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentShaderInterlockFeaturesEXT & + setFragmentShaderPixelInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ ) VULKAN_HPP_NOEXCEPT { - semaphore = semaphore_; + fragmentShaderPixelInterlock = fragmentShaderPixelInterlock_; return *this; } - SemaphoreGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderShadingRateInterlock( + VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ ) VULKAN_HPP_NOEXCEPT { - handleType = handleType_; + fragmentShaderShadingRateInterlock = fragmentShaderShadingRateInterlock_; return *this; } - operator VkSemaphoreGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSemaphoreGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SemaphoreGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( semaphore == rhs.semaphore ) - && ( handleType == rhs.handleType ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( fragmentShaderSampleInterlock == rhs.fragmentShaderSampleInterlock ) && + ( fragmentShaderPixelInterlock == rhs.fragmentShaderPixelInterlock ) && + ( fragmentShaderShadingRateInterlock == rhs.fragmentShaderShadingRateInterlock ); } - bool operator!=( SemaphoreGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetWin32HandleInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock = {}; + VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock = {}; + VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock = {}; }; - static_assert( sizeof( SemaphoreGetWin32HandleInfoKHR ) == sizeof( VkSemaphoreGetWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + static_assert( sizeof( PhysicalDeviceFragmentShaderInterlockFeaturesEXT ) == + sizeof( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SemaphoreSignalInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SemaphoreSignalInfo( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, - uint64_t value_ = {} ) VULKAN_HPP_NOEXCEPT - : semaphore( semaphore_ ) - , value( value_ ) + using Type = PhysicalDeviceFragmentShaderInterlockFeaturesEXT; + }; + + struct PhysicalDeviceFragmentShadingRateEnumsFeaturesNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( + VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates_ = {} ) VULKAN_HPP_NOEXCEPT + : fragmentShadingRateEnums( fragmentShadingRateEnums_ ) + , supersampleFragmentShadingRates( supersampleFragmentShadingRates_ ) + , noInvocationFragmentShadingRates( noInvocationFragmentShadingRates_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( + PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( + *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo & operator=( VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & + operator=( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & + operator=( VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo ) - offsetof( SemaphoreSignalInfo, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - SemaphoreSignalInfo( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - SemaphoreSignalInfo& operator=( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & + setFragmentShadingRateEnums( VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + fragmentShadingRateEnums = fragmentShadingRateEnums_; return *this; } - SemaphoreSignalInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setSupersampleFragmentShadingRates( + VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + supersampleFragmentShadingRates = supersampleFragmentShadingRates_; return *this; } - SemaphoreSignalInfo & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setNoInvocationFragmentShadingRates( + VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates_ ) VULKAN_HPP_NOEXCEPT { - semaphore = semaphore_; - return *this; - } - - SemaphoreSignalInfo & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT - { - value = value_; + noInvocationFragmentShadingRates = noInvocationFragmentShadingRates_; return *this; } - operator VkSemaphoreSignalInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSemaphoreSignalInfo &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SemaphoreSignalInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( semaphore == rhs.semaphore ) - && ( value == rhs.value ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( fragmentShadingRateEnums == rhs.fragmentShadingRateEnums ) && + ( supersampleFragmentShadingRates == rhs.supersampleFragmentShadingRates ) && + ( noInvocationFragmentShadingRates == rhs.noInvocationFragmentShadingRates ); } - bool operator!=( SemaphoreSignalInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreSignalInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; - uint64_t value = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums = {}; + VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates = {}; + VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates = {}; }; - static_assert( sizeof( SemaphoreSignalInfo ) == sizeof( VkSemaphoreSignalInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV ) == + sizeof( VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SemaphoreTypeCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SemaphoreTypeCreateInfo( VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary, - uint64_t initialValue_ = {} ) VULKAN_HPP_NOEXCEPT - : semaphoreType( semaphoreType_ ) - , initialValue( initialValue_ ) + using Type = PhysicalDeviceFragmentShadingRateEnumsFeaturesNV; + }; + + struct PhysicalDeviceFragmentShadingRateEnumsPropertiesNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsPropertiesNV( + VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount_ = + VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1 ) VULKAN_HPP_NOEXCEPT + : maxFragmentShadingRateInvocationCount( maxFragmentShadingRateInvocationCount_ ) {} - VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo & operator=( VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo ) - offsetof( SemaphoreTypeCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsPropertiesNV( + PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SemaphoreTypeCreateInfo( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceFragmentShadingRateEnumsPropertiesNV( + VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceFragmentShadingRateEnumsPropertiesNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - SemaphoreTypeCreateInfo& operator=( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & + operator=( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SemaphoreTypeCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & + operator=( VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = + *reinterpret_cast( &rhs ); return *this; } - SemaphoreTypeCreateInfo & setSemaphoreType( VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - semaphoreType = semaphoreType_; + pNext = pNext_; return *this; } - SemaphoreTypeCreateInfo & setInitialValue( uint64_t initialValue_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & setMaxFragmentShadingRateInvocationCount( + VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount_ ) VULKAN_HPP_NOEXCEPT { - initialValue = initialValue_; + maxFragmentShadingRateInvocationCount = maxFragmentShadingRateInvocationCount_; return *this; } - operator VkSemaphoreTypeCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSemaphoreTypeCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SemaphoreTypeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( semaphoreType == rhs.semaphoreType ) - && ( initialValue == rhs.initialValue ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( maxFragmentShadingRateInvocationCount == rhs.maxFragmentShadingRateInvocationCount ); } - bool operator!=( SemaphoreTypeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreTypeCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary; - uint64_t initialValue = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount = + VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; }; - static_assert( sizeof( SemaphoreTypeCreateInfo ) == sizeof( VkSemaphoreTypeCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV ) == + sizeof( VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SemaphoreWaitInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SemaphoreWaitInfo( VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_ = {}, - uint32_t semaphoreCount_ = {}, - const VULKAN_HPP_NAMESPACE::Semaphore* pSemaphores_ = {}, - const uint64_t* pValues_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , semaphoreCount( semaphoreCount_ ) - , pSemaphores( pSemaphores_ ) - , pValues( pValues_ ) + using Type = PhysicalDeviceFragmentShadingRateEnumsPropertiesNV; + }; + + struct PhysicalDeviceFragmentShadingRateFeaturesKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateFeaturesKHR( + VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate_ = {} ) VULKAN_HPP_NOEXCEPT + : pipelineFragmentShadingRate( pipelineFragmentShadingRate_ ) + , primitiveFragmentShadingRate( primitiveFragmentShadingRate_ ) + , attachmentFragmentShadingRate( attachmentFragmentShadingRate_ ) {} - VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo & operator=( VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo ) - offsetof( SemaphoreWaitInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateFeaturesKHR( + PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SemaphoreWaitInfo( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceFragmentShadingRateFeaturesKHR( VkPhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceFragmentShadingRateFeaturesKHR( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - SemaphoreWaitInfo& operator=( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRateFeaturesKHR & + operator=( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SemaphoreWaitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentShadingRateFeaturesKHR & + operator=( VkPhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - SemaphoreWaitInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentShadingRateFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + pNext = pNext_; return *this; } - SemaphoreWaitInfo & setSemaphoreCount( uint32_t semaphoreCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentShadingRateFeaturesKHR & + setPipelineFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT { - semaphoreCount = semaphoreCount_; + pipelineFragmentShadingRate = pipelineFragmentShadingRate_; return *this; } - SemaphoreWaitInfo & setPSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSemaphores_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentShadingRateFeaturesKHR & + setPrimitiveFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT { - pSemaphores = pSemaphores_; + primitiveFragmentShadingRate = primitiveFragmentShadingRate_; return *this; } - SemaphoreWaitInfo & setPValues( const uint64_t* pValues_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceFragmentShadingRateFeaturesKHR & setAttachmentFragmentShadingRate( + VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT { - pValues = pValues_; + attachmentFragmentShadingRate = attachmentFragmentShadingRate_; return *this; } - operator VkSemaphoreWaitInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSemaphoreWaitInfo &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SemaphoreWaitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceFragmentShadingRateFeaturesKHR const & ) const = default; +#else + bool operator==( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( semaphoreCount == rhs.semaphoreCount ) - && ( pSemaphores == rhs.pSemaphores ) - && ( pValues == rhs.pValues ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( pipelineFragmentShadingRate == rhs.pipelineFragmentShadingRate ) && + ( primitiveFragmentShadingRate == rhs.primitiveFragmentShadingRate ) && + ( attachmentFragmentShadingRate == rhs.attachmentFragmentShadingRate ); } - bool operator!=( SemaphoreWaitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreWaitInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags = {}; - uint32_t semaphoreCount = {}; - const VULKAN_HPP_NAMESPACE::Semaphore* pSemaphores = {}; - const uint64_t* pValues = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate = {}; + VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate = {}; + VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate = {}; }; - static_assert( sizeof( SemaphoreWaitInfo ) == sizeof( VkSemaphoreWaitInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceFragmentShadingRateFeaturesKHR ) == + sizeof( VkPhysicalDeviceFragmentShadingRateFeaturesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct ShaderModuleCreateInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ShaderModuleCreateInfo( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ = {}, - size_t codeSize_ = {}, - const uint32_t* pCode_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , codeSize( codeSize_ ) - , pCode( pCode_ ) + using Type = PhysicalDeviceFragmentShadingRateFeaturesKHR; + }; + + struct PhysicalDeviceFragmentShadingRatePropertiesKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRatePropertiesKHR( + VULKAN_HPP_NAMESPACE::Extent2D minFragmentShadingRateAttachmentTexelSize_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D maxFragmentShadingRateAttachmentTexelSize_ = {}, + uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateWithMultipleViewports_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 layeredShadingRateAttachments_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateNonTrivialCombinerOps_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D maxFragmentSize_ = {}, + uint32_t maxFragmentSizeAspectRatio_ = {}, + uint32_t maxFragmentShadingRateCoverageSamples_ = {}, + VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateRasterizationSamples_ = + VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, + VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderDepthStencilWrites_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithSampleMask_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderSampleMask_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithConservativeRasterization_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithFragmentShaderInterlock_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithCustomSampleLocations_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateStrictMultiplyCombiner_ = {} ) VULKAN_HPP_NOEXCEPT + : minFragmentShadingRateAttachmentTexelSize( minFragmentShadingRateAttachmentTexelSize_ ) + , maxFragmentShadingRateAttachmentTexelSize( maxFragmentShadingRateAttachmentTexelSize_ ) + , maxFragmentShadingRateAttachmentTexelSizeAspectRatio( maxFragmentShadingRateAttachmentTexelSizeAspectRatio_ ) + , primitiveFragmentShadingRateWithMultipleViewports( primitiveFragmentShadingRateWithMultipleViewports_ ) + , layeredShadingRateAttachments( layeredShadingRateAttachments_ ) + , fragmentShadingRateNonTrivialCombinerOps( fragmentShadingRateNonTrivialCombinerOps_ ) + , maxFragmentSize( maxFragmentSize_ ) + , maxFragmentSizeAspectRatio( maxFragmentSizeAspectRatio_ ) + , maxFragmentShadingRateCoverageSamples( maxFragmentShadingRateCoverageSamples_ ) + , maxFragmentShadingRateRasterizationSamples( maxFragmentShadingRateRasterizationSamples_ ) + , fragmentShadingRateWithShaderDepthStencilWrites( fragmentShadingRateWithShaderDepthStencilWrites_ ) + , fragmentShadingRateWithSampleMask( fragmentShadingRateWithSampleMask_ ) + , fragmentShadingRateWithShaderSampleMask( fragmentShadingRateWithShaderSampleMask_ ) + , fragmentShadingRateWithConservativeRasterization( fragmentShadingRateWithConservativeRasterization_ ) + , fragmentShadingRateWithFragmentShaderInterlock( fragmentShadingRateWithFragmentShaderInterlock_ ) + , fragmentShadingRateWithCustomSampleLocations( fragmentShadingRateWithCustomSampleLocations_ ) + , fragmentShadingRateStrictMultiplyCombiner( fragmentShadingRateStrictMultiplyCombiner_ ) {} - VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo & operator=( VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo ) - offsetof( ShaderModuleCreateInfo, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRatePropertiesKHR( + PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ShaderModuleCreateInfo( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceFragmentShadingRatePropertiesKHR( VkPhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceFragmentShadingRatePropertiesKHR( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ShaderModuleCreateInfo& operator=( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceFragmentShadingRatePropertiesKHR & + operator=( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceFragmentShadingRatePropertiesKHR & + operator=( VkPhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - ShaderModuleCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; - return *this; + return *reinterpret_cast( this ); } - ShaderModuleCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR &() VULKAN_HPP_NOEXCEPT { - flags = flags_; - return *this; + return *reinterpret_cast( this ); } - ShaderModuleCreateInfo & setCodeSize( size_t codeSize_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceFragmentShadingRatePropertiesKHR const & ) const = default; +#else + bool operator==( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( minFragmentShadingRateAttachmentTexelSize == rhs.minFragmentShadingRateAttachmentTexelSize ) && + ( maxFragmentShadingRateAttachmentTexelSize == rhs.maxFragmentShadingRateAttachmentTexelSize ) && + ( maxFragmentShadingRateAttachmentTexelSizeAspectRatio == + rhs.maxFragmentShadingRateAttachmentTexelSizeAspectRatio ) && + ( primitiveFragmentShadingRateWithMultipleViewports == + rhs.primitiveFragmentShadingRateWithMultipleViewports ) && + ( layeredShadingRateAttachments == rhs.layeredShadingRateAttachments ) && + ( fragmentShadingRateNonTrivialCombinerOps == rhs.fragmentShadingRateNonTrivialCombinerOps ) && + ( maxFragmentSize == rhs.maxFragmentSize ) && + ( maxFragmentSizeAspectRatio == rhs.maxFragmentSizeAspectRatio ) && + ( maxFragmentShadingRateCoverageSamples == rhs.maxFragmentShadingRateCoverageSamples ) && + ( maxFragmentShadingRateRasterizationSamples == rhs.maxFragmentShadingRateRasterizationSamples ) && + ( fragmentShadingRateWithShaderDepthStencilWrites == + rhs.fragmentShadingRateWithShaderDepthStencilWrites ) && + ( fragmentShadingRateWithSampleMask == rhs.fragmentShadingRateWithSampleMask ) && + ( fragmentShadingRateWithShaderSampleMask == rhs.fragmentShadingRateWithShaderSampleMask ) && + ( fragmentShadingRateWithConservativeRasterization == + rhs.fragmentShadingRateWithConservativeRasterization ) && + ( fragmentShadingRateWithFragmentShaderInterlock == rhs.fragmentShadingRateWithFragmentShaderInterlock ) && + ( fragmentShadingRateWithCustomSampleLocations == rhs.fragmentShadingRateWithCustomSampleLocations ) && + ( fragmentShadingRateStrictMultiplyCombiner == rhs.fragmentShadingRateStrictMultiplyCombiner ); + } + + bool operator!=( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - codeSize = codeSize_; - return *this; + return !operator==( rhs ); } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Extent2D minFragmentShadingRateAttachmentTexelSize = {}; + VULKAN_HPP_NAMESPACE::Extent2D maxFragmentShadingRateAttachmentTexelSize = {}; + uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio = {}; + VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateWithMultipleViewports = {}; + VULKAN_HPP_NAMESPACE::Bool32 layeredShadingRateAttachments = {}; + VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateNonTrivialCombinerOps = {}; + VULKAN_HPP_NAMESPACE::Extent2D maxFragmentSize = {}; + uint32_t maxFragmentSizeAspectRatio = {}; + uint32_t maxFragmentShadingRateCoverageSamples = {}; + VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateRasterizationSamples = + VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; + VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderDepthStencilWrites = {}; + VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithSampleMask = {}; + VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderSampleMask = {}; + VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithConservativeRasterization = {}; + VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithFragmentShaderInterlock = {}; + VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithCustomSampleLocations = {}; + VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateStrictMultiplyCombiner = {}; + }; + static_assert( sizeof( PhysicalDeviceFragmentShadingRatePropertiesKHR ) == + sizeof( VkPhysicalDeviceFragmentShadingRatePropertiesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceFragmentShadingRatePropertiesKHR; + }; + + struct PhysicalDeviceGroupProperties + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceGroupProperties; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGroupProperties( + uint32_t physicalDeviceCount_ = {}, + std::array const & physicalDevices_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 subsetAllocation_ = {} ) VULKAN_HPP_NOEXCEPT + : physicalDeviceCount( physicalDeviceCount_ ) + , physicalDevices( physicalDevices_ ) + , subsetAllocation( subsetAllocation_ ) + {} + + VULKAN_HPP_CONSTEXPR_14 + PhysicalDeviceGroupProperties( PhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceGroupProperties( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceGroupProperties( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGroupProperties & + operator=( PhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ShaderModuleCreateInfo & setPCode( const uint32_t* pCode_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceGroupProperties & operator=( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - pCode = pCode_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkShaderModuleCreateInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceGroupProperties const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkShaderModuleCreateInfo &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceGroupProperties &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ShaderModuleCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceGroupProperties const & ) const = default; +#else + bool operator==( PhysicalDeviceGroupProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( codeSize == rhs.codeSize ) - && ( pCode == rhs.pCode ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( physicalDeviceCount == rhs.physicalDeviceCount ) && + ( physicalDevices == rhs.physicalDevices ) && ( subsetAllocation == rhs.subsetAllocation ); } - bool operator!=( ShaderModuleCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceGroupProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags = {}; - size_t codeSize = {}; - const uint32_t* pCode = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceGroupProperties; + void * pNext = {}; + uint32_t physicalDeviceCount = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D + physicalDevices = {}; + VULKAN_HPP_NAMESPACE::Bool32 subsetAllocation = {}; }; - static_assert( sizeof( ShaderModuleCreateInfo ) == sizeof( VkShaderModuleCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceGroupProperties ) == sizeof( VkPhysicalDeviceGroupProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct ShaderModuleValidationCacheCreateInfoEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ShaderModuleValidationCacheCreateInfoEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ = {} ) VULKAN_HPP_NOEXCEPT - : validationCache( validationCache_ ) + using Type = PhysicalDeviceGroupProperties; + }; + using PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties; + + struct PhysicalDeviceHostQueryResetFeatures + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceHostQueryResetFeatures; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceHostQueryResetFeatures( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ = {} ) VULKAN_HPP_NOEXCEPT + : hostQueryReset( hostQueryReset_ ) {} - VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT ) - offsetof( ShaderModuleValidationCacheCreateInfoEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceHostQueryResetFeatures( PhysicalDeviceHostQueryResetFeatures const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - ShaderModuleValidationCacheCreateInfoEXT( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceHostQueryResetFeatures( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceHostQueryResetFeatures( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ShaderModuleValidationCacheCreateInfoEXT& operator=( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceHostQueryResetFeatures & + operator=( PhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceHostQueryResetFeatures & + operator=( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - ShaderModuleValidationCacheCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceHostQueryResetFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - ShaderModuleValidationCacheCreateInfoEXT & setValidationCache( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceHostQueryResetFeatures & + setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT { - validationCache = validationCache_; + hostQueryReset = hostQueryReset_; return *this; } - operator VkShaderModuleValidationCacheCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceHostQueryResetFeatures const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkShaderModuleValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceHostQueryResetFeatures &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ShaderModuleValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceHostQueryResetFeatures const & ) const = default; +#else + bool operator==( PhysicalDeviceHostQueryResetFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( validationCache == rhs.validationCache ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( hostQueryReset == rhs.hostQueryReset ); } - bool operator!=( ShaderModuleValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceHostQueryResetFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleValidationCacheCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceHostQueryResetFeatures; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {}; }; - static_assert( sizeof( ShaderModuleValidationCacheCreateInfoEXT ) == sizeof( VkShaderModuleValidationCacheCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceHostQueryResetFeatures ) == sizeof( VkPhysicalDeviceHostQueryResetFeatures ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct ShaderResourceUsageAMD + template <> + struct CppType { - ShaderResourceUsageAMD( uint32_t numUsedVgprs_ = {}, - uint32_t numUsedSgprs_ = {}, - uint32_t ldsSizePerLocalWorkGroup_ = {}, - size_t ldsUsageSizeInBytes_ = {}, - size_t scratchMemUsageInBytes_ = {} ) VULKAN_HPP_NOEXCEPT - : numUsedVgprs( numUsedVgprs_ ) - , numUsedSgprs( numUsedSgprs_ ) - , ldsSizePerLocalWorkGroup( ldsSizePerLocalWorkGroup_ ) - , ldsUsageSizeInBytes( ldsUsageSizeInBytes_ ) - , scratchMemUsageInBytes( scratchMemUsageInBytes_ ) + using Type = PhysicalDeviceHostQueryResetFeatures; + }; + using PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures; + + struct PhysicalDeviceIDProperties + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceIdProperties; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 + PhysicalDeviceIDProperties( std::array const & deviceUUID_ = {}, + std::array const & driverUUID_ = {}, + std::array const & deviceLUID_ = {}, + uint32_t deviceNodeMask_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid_ = {} ) VULKAN_HPP_NOEXCEPT + : deviceUUID( deviceUUID_ ) + , driverUUID( driverUUID_ ) + , deviceLUID( deviceLUID_ ) + , deviceNodeMask( deviceNodeMask_ ) + , deviceLUIDValid( deviceLUIDValid_ ) {} - ShaderResourceUsageAMD( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR_14 + PhysicalDeviceIDProperties( PhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceIDProperties( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceIDProperties( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ShaderResourceUsageAMD& operator=( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIDProperties & + operator=( PhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceIDProperties & operator=( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkShaderResourceUsageAMD const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceIDProperties const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkShaderResourceUsageAMD &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceIDProperties &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ShaderResourceUsageAMD const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceIDProperties const & ) const = default; +#else + bool operator==( PhysicalDeviceIDProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( numUsedVgprs == rhs.numUsedVgprs ) - && ( numUsedSgprs == rhs.numUsedSgprs ) - && ( ldsSizePerLocalWorkGroup == rhs.ldsSizePerLocalWorkGroup ) - && ( ldsUsageSizeInBytes == rhs.ldsUsageSizeInBytes ) - && ( scratchMemUsageInBytes == rhs.scratchMemUsageInBytes ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceUUID == rhs.deviceUUID ) && + ( driverUUID == rhs.driverUUID ) && ( deviceLUID == rhs.deviceLUID ) && + ( deviceNodeMask == rhs.deviceNodeMask ) && ( deviceLUIDValid == rhs.deviceLUIDValid ); } - bool operator!=( ShaderResourceUsageAMD const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceIDProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint32_t numUsedVgprs = {}; - uint32_t numUsedSgprs = {}; - uint32_t ldsSizePerLocalWorkGroup = {}; - size_t ldsUsageSizeInBytes = {}; - size_t scratchMemUsageInBytes = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIdProperties; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D deviceUUID = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D driverUUID = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D deviceLUID = {}; + uint32_t deviceNodeMask = {}; + VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {}; }; - static_assert( sizeof( ShaderResourceUsageAMD ) == sizeof( VkShaderResourceUsageAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceIDProperties ) == sizeof( VkPhysicalDeviceIDProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct ShaderStatisticsInfoAMD + template <> + struct CppType { - ShaderStatisticsInfoAMD( VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStageMask_ = {}, - VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD resourceUsage_ = {}, - uint32_t numPhysicalVgprs_ = {}, - uint32_t numPhysicalSgprs_ = {}, - uint32_t numAvailableVgprs_ = {}, - uint32_t numAvailableSgprs_ = {}, - std::array const& computeWorkGroupSize_ = {} ) VULKAN_HPP_NOEXCEPT - : shaderStageMask( shaderStageMask_ ) - , resourceUsage( resourceUsage_ ) - , numPhysicalVgprs( numPhysicalVgprs_ ) - , numPhysicalSgprs( numPhysicalSgprs_ ) - , numAvailableVgprs( numAvailableVgprs_ ) - , numAvailableSgprs( numAvailableSgprs_ ) - , computeWorkGroupSize{} - { - VULKAN_HPP_NAMESPACE::ConstExpression1DArrayCopy::copy( computeWorkGroupSize, computeWorkGroupSize_ ); - } + using Type = PhysicalDeviceIDProperties; + }; + using PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties; - ShaderStatisticsInfoAMD( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + struct PhysicalDeviceImageDrmFormatModifierInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT; - ShaderStatisticsInfoAMD& operator=( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceImageDrmFormatModifierInfoEXT( + uint64_t drmFormatModifier_ = {}, + VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, + uint32_t queueFamilyIndexCount_ = {}, + const uint32_t * pQueueFamilyIndices_ = {} ) VULKAN_HPP_NOEXCEPT + : drmFormatModifier( drmFormatModifier_ ) + , sharingMode( sharingMode_ ) + , queueFamilyIndexCount( queueFamilyIndexCount_ ) + , pQueueFamilyIndices( pQueueFamilyIndices_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceImageDrmFormatModifierInfoEXT( + PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceImageDrmFormatModifierInfoEXT( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceImageDrmFormatModifierInfoEXT( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PhysicalDeviceImageDrmFormatModifierInfoEXT( + uint64_t drmFormatModifier_, + VULKAN_HPP_NAMESPACE::SharingMode sharingMode_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_ ) + : drmFormatModifier( drmFormatModifier_ ) + , sharingMode( sharingMode_ ) + , queueFamilyIndexCount( static_cast( queueFamilyIndices_.size() ) ) + , pQueueFamilyIndices( queueFamilyIndices_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageDrmFormatModifierInfoEXT & + operator=( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - operator VkShaderStatisticsInfoAMD const&() const VULKAN_HPP_NOEXCEPT + PhysicalDeviceImageDrmFormatModifierInfoEXT & + operator=( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + *this = *reinterpret_cast( &rhs ); + return *this; } - operator VkShaderStatisticsInfoAMD &() VULKAN_HPP_NOEXCEPT + PhysicalDeviceImageDrmFormatModifierInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + pNext = pNext_; + return *this; } - bool operator==( ShaderStatisticsInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT + PhysicalDeviceImageDrmFormatModifierInfoEXT & + setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT { - return ( shaderStageMask == rhs.shaderStageMask ) - && ( resourceUsage == rhs.resourceUsage ) - && ( numPhysicalVgprs == rhs.numPhysicalVgprs ) - && ( numPhysicalSgprs == rhs.numPhysicalSgprs ) - && ( numAvailableVgprs == rhs.numAvailableVgprs ) - && ( numAvailableSgprs == rhs.numAvailableSgprs ) - && ( memcmp( computeWorkGroupSize, rhs.computeWorkGroupSize, 3 * sizeof( uint32_t ) ) == 0 ); + drmFormatModifier = drmFormatModifier_; + return *this; } - bool operator!=( ShaderStatisticsInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT + PhysicalDeviceImageDrmFormatModifierInfoEXT & + setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + sharingMode = sharingMode_; + return *this; } - public: - VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStageMask = {}; - VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD resourceUsage = {}; - uint32_t numPhysicalVgprs = {}; - uint32_t numPhysicalSgprs = {}; - uint32_t numAvailableVgprs = {}; - uint32_t numAvailableSgprs = {}; - uint32_t computeWorkGroupSize[3] = {}; - }; - static_assert( sizeof( ShaderStatisticsInfoAMD ) == sizeof( VkShaderStatisticsInfoAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SharedPresentSurfaceCapabilitiesKHR - { - SharedPresentSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags_ = {} ) VULKAN_HPP_NOEXCEPT - : sharedPresentSupportedUsageFlags( sharedPresentSupportedUsageFlags_ ) - {} - - VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR & operator=( VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceImageDrmFormatModifierInfoEXT & + setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR ) - offsetof( SharedPresentSurfaceCapabilitiesKHR, pNext ) ); + queueFamilyIndexCount = queueFamilyIndexCount_; return *this; } - SharedPresentSurfaceCapabilitiesKHR( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceImageDrmFormatModifierInfoEXT & + setPQueueFamilyIndices( const uint32_t * pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pQueueFamilyIndices = pQueueFamilyIndices_; + return *this; } - SharedPresentSurfaceCapabilitiesKHR& operator=( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PhysicalDeviceImageDrmFormatModifierInfoEXT & setQueueFamilyIndices( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + queueFamilyIndexCount = static_cast( queueFamilyIndices_.size() ); + pQueueFamilyIndices = queueFamilyIndices_.data(); return *this; } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - operator VkSharedPresentSurfaceCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSharedPresentSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SharedPresentSurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceImageDrmFormatModifierInfoEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( sharedPresentSupportedUsageFlags == rhs.sharedPresentSupportedUsageFlags ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( drmFormatModifier == rhs.drmFormatModifier ) && + ( sharingMode == rhs.sharingMode ) && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) && + ( pQueueFamilyIndices == rhs.pQueueFamilyIndices ); } - bool operator!=( SharedPresentSurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSharedPresentSurfaceCapabilitiesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT; + const void * pNext = {}; + uint64_t drmFormatModifier = {}; + VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive; + uint32_t queueFamilyIndexCount = {}; + const uint32_t * pQueueFamilyIndices = {}; }; - static_assert( sizeof( SharedPresentSurfaceCapabilitiesKHR ) == sizeof( VkSharedPresentSurfaceCapabilitiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceImageDrmFormatModifierInfoEXT ) == + sizeof( VkPhysicalDeviceImageDrmFormatModifierInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SparseImageFormatProperties + template <> + struct CppType { - SparseImageFormatProperties( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, - VULKAN_HPP_NAMESPACE::Extent3D imageGranularity_ = {}, - VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags_ = {} ) VULKAN_HPP_NOEXCEPT - : aspectMask( aspectMask_ ) - , imageGranularity( imageGranularity_ ) - , flags( flags_ ) + using Type = PhysicalDeviceImageDrmFormatModifierInfoEXT; + }; + + struct PhysicalDeviceImageRobustnessFeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceImageRobustnessFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ = {} ) VULKAN_HPP_NOEXCEPT + : robustImageAccess( robustImageAccess_ ) {} - SparseImageFormatProperties( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR PhysicalDeviceImageRobustnessFeaturesEXT( + PhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceImageRobustnessFeaturesEXT( VkPhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceImageRobustnessFeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageRobustnessFeaturesEXT & + operator=( PhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceImageRobustnessFeaturesEXT & + operator=( VkPhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - SparseImageFormatProperties& operator=( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceImageRobustnessFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - operator VkSparseImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT + PhysicalDeviceImageRobustnessFeaturesEXT & + setRobustImageAccess( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + robustImageAccess = robustImageAccess_; + return *this; } - operator VkSparseImageFormatProperties &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceImageRobustnessFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SparseImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceImageRobustnessFeaturesEXT &() VULKAN_HPP_NOEXCEPT { - return ( aspectMask == rhs.aspectMask ) - && ( imageGranularity == rhs.imageGranularity ) - && ( flags == rhs.flags ); + return *reinterpret_cast( this ); } - bool operator!=( SparseImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceImageRobustnessFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( robustImageAccess == rhs.robustImageAccess ); + } + + bool operator!=( PhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; - VULKAN_HPP_NAMESPACE::Extent3D imageGranularity = {}; - VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess = {}; }; - static_assert( sizeof( SparseImageFormatProperties ) == sizeof( VkSparseImageFormatProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceImageRobustnessFeaturesEXT ) == + sizeof( VkPhysicalDeviceImageRobustnessFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SparseImageFormatProperties2 + template <> + struct CppType { - SparseImageFormatProperties2( VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties_ = {} ) VULKAN_HPP_NOEXCEPT - : properties( properties_ ) + using Type = PhysicalDeviceImageRobustnessFeaturesEXT; + }; + + struct PhysicalDeviceImageViewImageFormatInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceImageViewImageFormatInfoEXT( VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ = + VULKAN_HPP_NAMESPACE::ImageViewType::e1D ) VULKAN_HPP_NOEXCEPT + : imageViewType( imageViewType_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewImageFormatInfoEXT( + PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceImageViewImageFormatInfoEXT( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceImageViewImageFormatInfoEXT( + *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 & operator=( VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImageViewImageFormatInfoEXT & + operator=( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceImageViewImageFormatInfoEXT & + operator=( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 ) - offsetof( SparseImageFormatProperties2, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - SparseImageFormatProperties2( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceImageViewImageFormatInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - SparseImageFormatProperties2& operator=( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceImageViewImageFormatInfoEXT & + setImageViewType( VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + imageViewType = imageViewType_; return *this; } - operator VkSparseImageFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceImageViewImageFormatInfoEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSparseImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceImageViewImageFormatInfoEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SparseImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceImageViewImageFormatInfoEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( properties == rhs.properties ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageViewType == rhs.imageViewType ); } - bool operator!=( SparseImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageFormatProperties2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::ImageViewType imageViewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D; }; - static_assert( sizeof( SparseImageFormatProperties2 ) == sizeof( VkSparseImageFormatProperties2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceImageViewImageFormatInfoEXT ) == + sizeof( VkPhysicalDeviceImageViewImageFormatInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SparseImageMemoryRequirements + template <> + struct CppType { - SparseImageMemoryRequirements( VULKAN_HPP_NAMESPACE::SparseImageFormatProperties formatProperties_ = {}, - uint32_t imageMipTailFirstLod_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailSize_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailOffset_ = {}, - VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailStride_ = {} ) VULKAN_HPP_NOEXCEPT - : formatProperties( formatProperties_ ) - , imageMipTailFirstLod( imageMipTailFirstLod_ ) - , imageMipTailSize( imageMipTailSize_ ) - , imageMipTailOffset( imageMipTailOffset_ ) - , imageMipTailStride( imageMipTailStride_ ) + using Type = PhysicalDeviceImageViewImageFormatInfoEXT; + }; + + struct PhysicalDeviceImagelessFramebufferFeatures + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceImagelessFramebufferFeatures; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceImagelessFramebufferFeatures( + VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ = {} ) VULKAN_HPP_NOEXCEPT + : imagelessFramebuffer( imagelessFramebuffer_ ) {} - SparseImageMemoryRequirements( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR PhysicalDeviceImagelessFramebufferFeatures( + PhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceImagelessFramebufferFeatures( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceImagelessFramebufferFeatures( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceImagelessFramebufferFeatures & + operator=( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceImagelessFramebufferFeatures & + operator=( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PhysicalDeviceImagelessFramebufferFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - SparseImageMemoryRequirements& operator=( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceImagelessFramebufferFeatures & + setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + imagelessFramebuffer = imagelessFramebuffer_; return *this; } - operator VkSparseImageMemoryRequirements const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceImagelessFramebufferFeatures const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSparseImageMemoryRequirements &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceImagelessFramebufferFeatures &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SparseImageMemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceImagelessFramebufferFeatures const & ) const = default; +#else + bool operator==( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( formatProperties == rhs.formatProperties ) - && ( imageMipTailFirstLod == rhs.imageMipTailFirstLod ) - && ( imageMipTailSize == rhs.imageMipTailSize ) - && ( imageMipTailOffset == rhs.imageMipTailOffset ) - && ( imageMipTailStride == rhs.imageMipTailStride ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imagelessFramebuffer == rhs.imagelessFramebuffer ); } - bool operator!=( SparseImageMemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::SparseImageFormatProperties formatProperties = {}; - uint32_t imageMipTailFirstLod = {}; - VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailSize = {}; - VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailOffset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailStride = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImagelessFramebufferFeatures; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {}; }; - static_assert( sizeof( SparseImageMemoryRequirements ) == sizeof( VkSparseImageMemoryRequirements ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceImagelessFramebufferFeatures ) == + sizeof( VkPhysicalDeviceImagelessFramebufferFeatures ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SparseImageMemoryRequirements2 + template <> + struct CppType { - SparseImageMemoryRequirements2( VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements_ = {} ) VULKAN_HPP_NOEXCEPT - : memoryRequirements( memoryRequirements_ ) + using Type = PhysicalDeviceImagelessFramebufferFeatures; + }; + using PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures; + + struct PhysicalDeviceIndexTypeUint8FeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceIndexTypeUint8FeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ = {} ) VULKAN_HPP_NOEXCEPT + : indexTypeUint8( indexTypeUint8_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceIndexTypeUint8FeaturesEXT( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceIndexTypeUint8FeaturesEXT( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceIndexTypeUint8FeaturesEXT( + *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 & operator=( VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIndexTypeUint8FeaturesEXT & + operator=( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceIndexTypeUint8FeaturesEXT & + operator=( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 ) - offsetof( SparseImageMemoryRequirements2, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - SparseImageMemoryRequirements2( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceIndexTypeUint8FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - SparseImageMemoryRequirements2& operator=( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceIndexTypeUint8FeaturesEXT & + setIndexTypeUint8( VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + indexTypeUint8 = indexTypeUint8_; return *this; } - operator VkSparseImageMemoryRequirements2 const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSparseImageMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SparseImageMemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceIndexTypeUint8FeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memoryRequirements == rhs.memoryRequirements ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( indexTypeUint8 == rhs.indexTypeUint8 ); } - bool operator!=( SparseImageMemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageMemoryRequirements2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8 = {}; }; - static_assert( sizeof( SparseImageMemoryRequirements2 ) == sizeof( VkSparseImageMemoryRequirements2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceIndexTypeUint8FeaturesEXT ) == + sizeof( VkPhysicalDeviceIndexTypeUint8FeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_GGP + template <> + struct CppType + { + using Type = PhysicalDeviceIndexTypeUint8FeaturesEXT; + }; - struct StreamDescriptorSurfaceCreateInfoGGP + struct PhysicalDeviceInheritedViewportScissorFeaturesNV { - VULKAN_HPP_CONSTEXPR StreamDescriptorSurfaceCreateInfoGGP( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ = {}, - GgpStreamDescriptor streamDescriptor_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , streamDescriptor( streamDescriptor_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceInheritedViewportScissorFeaturesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceInheritedViewportScissorFeaturesNV( + VULKAN_HPP_NAMESPACE::Bool32 inheritedViewportScissor2D_ = {} ) VULKAN_HPP_NOEXCEPT + : inheritedViewportScissor2D( inheritedViewportScissor2D_ ) {} - VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP & operator=( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP ) - offsetof( StreamDescriptorSurfaceCreateInfoGGP, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceInheritedViewportScissorFeaturesNV( + PhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - StreamDescriptorSurfaceCreateInfoGGP( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceInheritedViewportScissorFeaturesNV( VkPhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceInheritedViewportScissorFeaturesNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - StreamDescriptorSurfaceCreateInfoGGP& operator=( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInheritedViewportScissorFeaturesNV & + operator=( PhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - StreamDescriptorSurfaceCreateInfoGGP & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceInheritedViewportScissorFeaturesNV & + operator=( VkPhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - StreamDescriptorSurfaceCreateInfoGGP & setFlags( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceInheritedViewportScissorFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + pNext = pNext_; return *this; } - StreamDescriptorSurfaceCreateInfoGGP & setStreamDescriptor( GgpStreamDescriptor streamDescriptor_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceInheritedViewportScissorFeaturesNV & + setInheritedViewportScissor2D( VULKAN_HPP_NAMESPACE::Bool32 inheritedViewportScissor2D_ ) VULKAN_HPP_NOEXCEPT { - streamDescriptor = streamDescriptor_; + inheritedViewportScissor2D = inheritedViewportScissor2D_; return *this; } - operator VkStreamDescriptorSurfaceCreateInfoGGP const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceInheritedViewportScissorFeaturesNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkStreamDescriptorSurfaceCreateInfoGGP &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceInheritedViewportScissorFeaturesNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( StreamDescriptorSurfaceCreateInfoGGP const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceInheritedViewportScissorFeaturesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( streamDescriptor == rhs.streamDescriptor ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( inheritedViewportScissor2D == rhs.inheritedViewportScissor2D ); } - bool operator!=( StreamDescriptorSurfaceCreateInfoGGP const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceInheritedViewportScissorFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags = {}; - GgpStreamDescriptor streamDescriptor = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInheritedViewportScissorFeaturesNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 inheritedViewportScissor2D = {}; }; - static_assert( sizeof( StreamDescriptorSurfaceCreateInfoGGP ) == sizeof( VkStreamDescriptorSurfaceCreateInfoGGP ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_GGP*/ + static_assert( sizeof( PhysicalDeviceInheritedViewportScissorFeaturesNV ) == + sizeof( VkPhysicalDeviceInheritedViewportScissorFeaturesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SubmitInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SubmitInfo( uint32_t waitSemaphoreCount_ = {}, - const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ = {}, - const VULKAN_HPP_NAMESPACE::PipelineStageFlags* pWaitDstStageMask_ = {}, - uint32_t commandBufferCount_ = {}, - const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers_ = {}, - uint32_t signalSemaphoreCount_ = {}, - const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ = {} ) VULKAN_HPP_NOEXCEPT - : waitSemaphoreCount( waitSemaphoreCount_ ) - , pWaitSemaphores( pWaitSemaphores_ ) - , pWaitDstStageMask( pWaitDstStageMask_ ) - , commandBufferCount( commandBufferCount_ ) - , pCommandBuffers( pCommandBuffers_ ) - , signalSemaphoreCount( signalSemaphoreCount_ ) - , pSignalSemaphores( pSignalSemaphores_ ) - {} - - VULKAN_HPP_NAMESPACE::SubmitInfo & operator=( VULKAN_HPP_NAMESPACE::SubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SubmitInfo ) - offsetof( SubmitInfo, pNext ) ); - return *this; - } - - SubmitInfo( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + using Type = PhysicalDeviceInheritedViewportScissorFeaturesNV; + }; - SubmitInfo& operator=( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + struct PhysicalDeviceInlineUniformBlockFeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT; - SubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ = {} ) VULKAN_HPP_NOEXCEPT + : inlineUniformBlock( inlineUniformBlock_ ) + , descriptorBindingInlineUniformBlockUpdateAfterBind( descriptorBindingInlineUniformBlockUpdateAfterBind_ ) + {} - SubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreCount = waitSemaphoreCount_; - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockFeaturesEXT( + PhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SubmitInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT - { - pWaitSemaphores = pWaitSemaphores_; - return *this; - } + PhysicalDeviceInlineUniformBlockFeaturesEXT( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceInlineUniformBlockFeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - SubmitInfo & setPWaitDstStageMask( const VULKAN_HPP_NAMESPACE::PipelineStageFlags* pWaitDstStageMask_ ) VULKAN_HPP_NOEXCEPT - { - pWaitDstStageMask = pWaitDstStageMask_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInlineUniformBlockFeaturesEXT & + operator=( PhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceInlineUniformBlockFeaturesEXT & + operator=( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - commandBufferCount = commandBufferCount_; + *this = *reinterpret_cast( &rhs ); return *this; } - SubmitInfo & setPCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceInlineUniformBlockFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - pCommandBuffers = pCommandBuffers_; + pNext = pNext_; return *this; } - SubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceInlineUniformBlockFeaturesEXT & + setInlineUniformBlock( VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ ) VULKAN_HPP_NOEXCEPT { - signalSemaphoreCount = signalSemaphoreCount_; + inlineUniformBlock = inlineUniformBlock_; return *this; } - SubmitInfo & setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceInlineUniformBlockFeaturesEXT & setDescriptorBindingInlineUniformBlockUpdateAfterBind( + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT { - pSignalSemaphores = pSignalSemaphores_; + descriptorBindingInlineUniformBlockUpdateAfterBind = descriptorBindingInlineUniformBlockUpdateAfterBind_; return *this; } - operator VkSubmitInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSubmitInfo &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceInlineUniformBlockFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) - && ( pWaitSemaphores == rhs.pWaitSemaphores ) - && ( pWaitDstStageMask == rhs.pWaitDstStageMask ) - && ( commandBufferCount == rhs.commandBufferCount ) - && ( pCommandBuffers == rhs.pCommandBuffers ) - && ( signalSemaphoreCount == rhs.signalSemaphoreCount ) - && ( pSignalSemaphores == rhs.pSignalSemaphores ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( inlineUniformBlock == rhs.inlineUniformBlock ) && + ( descriptorBindingInlineUniformBlockUpdateAfterBind == + rhs.descriptorBindingInlineUniformBlockUpdateAfterBind ); } - bool operator!=( SubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubmitInfo; - const void* pNext = {}; - uint32_t waitSemaphoreCount = {}; - const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {}; - const VULKAN_HPP_NAMESPACE::PipelineStageFlags* pWaitDstStageMask = {}; - uint32_t commandBufferCount = {}; - const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers = {}; - uint32_t signalSemaphoreCount = {}; - const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind = {}; }; - static_assert( sizeof( SubmitInfo ) == sizeof( VkSubmitInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceInlineUniformBlockFeaturesEXT ) == + sizeof( VkPhysicalDeviceInlineUniformBlockFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SubpassBeginInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SubpassBeginInfo( VULKAN_HPP_NAMESPACE::SubpassContents contents_ = VULKAN_HPP_NAMESPACE::SubpassContents::eInline ) VULKAN_HPP_NOEXCEPT - : contents( contents_ ) - {} + using Type = PhysicalDeviceInlineUniformBlockFeaturesEXT; + }; - VULKAN_HPP_NAMESPACE::SubpassBeginInfo & operator=( VULKAN_HPP_NAMESPACE::SubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SubpassBeginInfo ) - offsetof( SubpassBeginInfo, pNext ) ); - return *this; - } + struct PhysicalDeviceInlineUniformBlockPropertiesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockPropertiesEXT( + uint32_t maxInlineUniformBlockSize_ = {}, + uint32_t maxPerStageDescriptorInlineUniformBlocks_ = {}, + uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ = {}, + uint32_t maxDescriptorSetInlineUniformBlocks_ = {}, + uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ = {} ) VULKAN_HPP_NOEXCEPT + : maxInlineUniformBlockSize( maxInlineUniformBlockSize_ ) + , maxPerStageDescriptorInlineUniformBlocks( maxPerStageDescriptorInlineUniformBlocks_ ) + , maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks( + maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ ) + , maxDescriptorSetInlineUniformBlocks( maxDescriptorSetInlineUniformBlocks_ ) + , maxDescriptorSetUpdateAfterBindInlineUniformBlocks( maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ ) + {} - SubpassBeginInfo( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockPropertiesEXT( + PhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SubpassBeginInfo& operator=( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + PhysicalDeviceInlineUniformBlockPropertiesEXT( VkPhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceInlineUniformBlockPropertiesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - SubpassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceInlineUniformBlockPropertiesEXT & + operator=( PhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SubpassBeginInfo & setContents( VULKAN_HPP_NAMESPACE::SubpassContents contents_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceInlineUniformBlockPropertiesEXT & + operator=( VkPhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - contents = contents_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkSubpassBeginInfo const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSubpassBeginInfo &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SubpassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceInlineUniformBlockPropertiesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( contents == rhs.contents ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( maxInlineUniformBlockSize == rhs.maxInlineUniformBlockSize ) && + ( maxPerStageDescriptorInlineUniformBlocks == rhs.maxPerStageDescriptorInlineUniformBlocks ) && + ( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks == + rhs.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks ) && + ( maxDescriptorSetInlineUniformBlocks == rhs.maxDescriptorSetInlineUniformBlocks ) && + ( maxDescriptorSetUpdateAfterBindInlineUniformBlocks == + rhs.maxDescriptorSetUpdateAfterBindInlineUniformBlocks ); } - bool operator!=( SubpassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassBeginInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SubpassContents contents = VULKAN_HPP_NAMESPACE::SubpassContents::eInline; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT; + void * pNext = {}; + uint32_t maxInlineUniformBlockSize = {}; + uint32_t maxPerStageDescriptorInlineUniformBlocks = {}; + uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = {}; + uint32_t maxDescriptorSetInlineUniformBlocks = {}; + uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks = {}; }; - static_assert( sizeof( SubpassBeginInfo ) == sizeof( VkSubpassBeginInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceInlineUniformBlockPropertiesEXT ) == + sizeof( VkPhysicalDeviceInlineUniformBlockPropertiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SubpassDescriptionDepthStencilResolve + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SubpassDescriptionDepthStencilResolve( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode_ = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone, - VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone, - const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilResolveAttachment_ = {} ) VULKAN_HPP_NOEXCEPT - : depthResolveMode( depthResolveMode_ ) - , stencilResolveMode( stencilResolveMode_ ) - , pDepthStencilResolveAttachment( pDepthStencilResolveAttachment_ ) + using Type = PhysicalDeviceInlineUniformBlockPropertiesEXT; + }; + + struct PhysicalDeviceLineRasterizationFeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 rectangularLines_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 smoothLines_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ = {} ) VULKAN_HPP_NOEXCEPT + : rectangularLines( rectangularLines_ ) + , bresenhamLines( bresenhamLines_ ) + , smoothLines( smoothLines_ ) + , stippledRectangularLines( stippledRectangularLines_ ) + , stippledBresenhamLines( stippledBresenhamLines_ ) + , stippledSmoothLines( stippledSmoothLines_ ) {} - VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve & operator=( VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationFeaturesEXT( + PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceLineRasterizationFeaturesEXT( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceLineRasterizationFeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationFeaturesEXT & + operator=( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceLineRasterizationFeaturesEXT & + operator=( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve ) - offsetof( SubpassDescriptionDepthStencilResolve, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - SubpassDescriptionDepthStencilResolve( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceLineRasterizationFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PhysicalDeviceLineRasterizationFeaturesEXT & + setRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 rectangularLines_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + rectangularLines = rectangularLines_; + return *this; } - SubpassDescriptionDepthStencilResolve& operator=( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceLineRasterizationFeaturesEXT & + setBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + bresenhamLines = bresenhamLines_; return *this; } - SubpassDescriptionDepthStencilResolve & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceLineRasterizationFeaturesEXT & + setSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 smoothLines_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + smoothLines = smoothLines_; return *this; } - SubpassDescriptionDepthStencilResolve & setDepthResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceLineRasterizationFeaturesEXT & + setStippledRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines_ ) VULKAN_HPP_NOEXCEPT { - depthResolveMode = depthResolveMode_; + stippledRectangularLines = stippledRectangularLines_; return *this; } - SubpassDescriptionDepthStencilResolve & setStencilResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceLineRasterizationFeaturesEXT & + setStippledBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ ) VULKAN_HPP_NOEXCEPT { - stencilResolveMode = stencilResolveMode_; + stippledBresenhamLines = stippledBresenhamLines_; return *this; } - SubpassDescriptionDepthStencilResolve & setPDepthStencilResolveAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilResolveAttachment_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceLineRasterizationFeaturesEXT & + setStippledSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ ) VULKAN_HPP_NOEXCEPT { - pDepthStencilResolveAttachment = pDepthStencilResolveAttachment_; + stippledSmoothLines = stippledSmoothLines_; return *this; } - operator VkSubpassDescriptionDepthStencilResolve const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceLineRasterizationFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSubpassDescriptionDepthStencilResolve &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceLineRasterizationFeaturesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SubpassDescriptionDepthStencilResolve const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceLineRasterizationFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( depthResolveMode == rhs.depthResolveMode ) - && ( stencilResolveMode == rhs.stencilResolveMode ) - && ( pDepthStencilResolveAttachment == rhs.pDepthStencilResolveAttachment ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( rectangularLines == rhs.rectangularLines ) && + ( bresenhamLines == rhs.bresenhamLines ) && ( smoothLines == rhs.smoothLines ) && + ( stippledRectangularLines == rhs.stippledRectangularLines ) && + ( stippledBresenhamLines == rhs.stippledBresenhamLines ) && + ( stippledSmoothLines == rhs.stippledSmoothLines ); } - bool operator!=( SubpassDescriptionDepthStencilResolve const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescriptionDepthStencilResolve; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone; - VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone; - const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilResolveAttachment = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 rectangularLines = {}; + VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines = {}; + VULKAN_HPP_NAMESPACE::Bool32 smoothLines = {}; + VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines = {}; + VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines = {}; + VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines = {}; }; - static_assert( sizeof( SubpassDescriptionDepthStencilResolve ) == sizeof( VkSubpassDescriptionDepthStencilResolve ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceLineRasterizationFeaturesEXT ) == + sizeof( VkPhysicalDeviceLineRasterizationFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SubpassEndInfo + template <> + struct CppType + { + using Type = PhysicalDeviceLineRasterizationFeaturesEXT; + }; + + struct PhysicalDeviceLineRasterizationPropertiesEXT { - VULKAN_HPP_CONSTEXPR SubpassEndInfo() VULKAN_HPP_NOEXCEPT + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceLineRasterizationPropertiesEXT( uint32_t lineSubPixelPrecisionBits_ = {} ) VULKAN_HPP_NOEXCEPT + : lineSubPixelPrecisionBits( lineSubPixelPrecisionBits_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationPropertiesEXT( + PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceLineRasterizationPropertiesEXT( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceLineRasterizationPropertiesEXT( + *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::SubpassEndInfo & operator=( VULKAN_HPP_NAMESPACE::SubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLineRasterizationPropertiesEXT & + operator=( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceLineRasterizationPropertiesEXT & + operator=( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SubpassEndInfo ) - offsetof( SubpassEndInfo, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - SubpassEndInfo( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceLineRasterizationPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT { - *this = rhs; + return *reinterpret_cast( this ); } - SubpassEndInfo& operator=( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } - - SubpassEndInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - operator VkSubpassEndInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSubpassEndInfo &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceLineRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SubpassEndInfo const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceLineRasterizationPropertiesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( lineSubPixelPrecisionBits == rhs.lineSubPixelPrecisionBits ); } - bool operator!=( SubpassEndInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassEndInfo; - const void* pNext = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT; + void * pNext = {}; + uint32_t lineSubPixelPrecisionBits = {}; }; - static_assert( sizeof( SubpassEndInfo ) == sizeof( VkSubpassEndInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceLineRasterizationPropertiesEXT ) == + sizeof( VkPhysicalDeviceLineRasterizationPropertiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SurfaceCapabilities2EXT + template <> + struct CppType { - SurfaceCapabilities2EXT( uint32_t minImageCount_ = {}, - uint32_t maxImageCount_ = {}, - VULKAN_HPP_NAMESPACE::Extent2D currentExtent_ = {}, - VULKAN_HPP_NAMESPACE::Extent2D minImageExtent_ = {}, - VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent_ = {}, - uint32_t maxImageArrayLayers_ = {}, - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {}, - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, - VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha_ = {}, - VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags_ = {}, - VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT supportedSurfaceCounters_ = {} ) VULKAN_HPP_NOEXCEPT - : minImageCount( minImageCount_ ) - , maxImageCount( maxImageCount_ ) - , currentExtent( currentExtent_ ) - , minImageExtent( minImageExtent_ ) - , maxImageExtent( maxImageExtent_ ) - , maxImageArrayLayers( maxImageArrayLayers_ ) - , supportedTransforms( supportedTransforms_ ) - , currentTransform( currentTransform_ ) - , supportedCompositeAlpha( supportedCompositeAlpha_ ) - , supportedUsageFlags( supportedUsageFlags_ ) - , supportedSurfaceCounters( supportedSurfaceCounters_ ) + using Type = PhysicalDeviceLineRasterizationPropertiesEXT; + }; + + struct PhysicalDeviceMaintenance3Properties + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceMaintenance3Properties; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance3Properties( + uint32_t maxPerSetDescriptors_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ = {} ) VULKAN_HPP_NOEXCEPT + : maxPerSetDescriptors( maxPerSetDescriptors_ ) + , maxMemoryAllocationSize( maxMemoryAllocationSize_ ) {} - VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT & operator=( VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT ) - offsetof( SurfaceCapabilities2EXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance3Properties( PhysicalDeviceMaintenance3Properties const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - SurfaceCapabilities2EXT( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceMaintenance3Properties( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceMaintenance3Properties( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - SurfaceCapabilities2EXT& operator=( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMaintenance3Properties & + operator=( PhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceMaintenance3Properties & + operator=( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkSurfaceCapabilities2EXT const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceMaintenance3Properties const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSurfaceCapabilities2EXT &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceMaintenance3Properties &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SurfaceCapabilities2EXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceMaintenance3Properties const & ) const = default; +#else + bool operator==( PhysicalDeviceMaintenance3Properties const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( minImageCount == rhs.minImageCount ) - && ( maxImageCount == rhs.maxImageCount ) - && ( currentExtent == rhs.currentExtent ) - && ( minImageExtent == rhs.minImageExtent ) - && ( maxImageExtent == rhs.maxImageExtent ) - && ( maxImageArrayLayers == rhs.maxImageArrayLayers ) - && ( supportedTransforms == rhs.supportedTransforms ) - && ( currentTransform == rhs.currentTransform ) - && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha ) - && ( supportedUsageFlags == rhs.supportedUsageFlags ) - && ( supportedSurfaceCounters == rhs.supportedSurfaceCounters ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors ) && + ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize ); } - bool operator!=( SurfaceCapabilities2EXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceMaintenance3Properties const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2EXT; - void* pNext = {}; - uint32_t minImageCount = {}; - uint32_t maxImageCount = {}; - VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {}; - VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {}; - uint32_t maxImageArrayLayers = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; - VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {}; - VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {}; - VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT supportedSurfaceCounters = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance3Properties; + void * pNext = {}; + uint32_t maxPerSetDescriptors = {}; + VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {}; }; - static_assert( sizeof( SurfaceCapabilities2EXT ) == sizeof( VkSurfaceCapabilities2EXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceMaintenance3Properties ) == sizeof( VkPhysicalDeviceMaintenance3Properties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SurfaceCapabilitiesKHR + template <> + struct CppType { - SurfaceCapabilitiesKHR( uint32_t minImageCount_ = {}, - uint32_t maxImageCount_ = {}, - VULKAN_HPP_NAMESPACE::Extent2D currentExtent_ = {}, - VULKAN_HPP_NAMESPACE::Extent2D minImageExtent_ = {}, - VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent_ = {}, - uint32_t maxImageArrayLayers_ = {}, - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {}, - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, - VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha_ = {}, - VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags_ = {} ) VULKAN_HPP_NOEXCEPT - : minImageCount( minImageCount_ ) - , maxImageCount( maxImageCount_ ) - , currentExtent( currentExtent_ ) - , minImageExtent( minImageExtent_ ) - , maxImageExtent( maxImageExtent_ ) - , maxImageArrayLayers( maxImageArrayLayers_ ) - , supportedTransforms( supportedTransforms_ ) - , currentTransform( currentTransform_ ) - , supportedCompositeAlpha( supportedCompositeAlpha_ ) - , supportedUsageFlags( supportedUsageFlags_ ) + using Type = PhysicalDeviceMaintenance3Properties; + }; + using PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties; + + struct PhysicalDeviceMemoryBudgetPropertiesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryBudgetPropertiesEXT( + std::array const & heapBudget_ = {}, + std::array const & heapUsage_ = {} ) VULKAN_HPP_NOEXCEPT + : heapBudget( heapBudget_ ) + , heapUsage( heapUsage_ ) {} - SurfaceCapabilitiesKHR( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryBudgetPropertiesEXT( + PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceMemoryBudgetPropertiesEXT( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceMemoryBudgetPropertiesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - SurfaceCapabilitiesKHR& operator=( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryBudgetPropertiesEXT & + operator=( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceMemoryBudgetPropertiesEXT & + operator=( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkSurfaceCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceMemoryBudgetPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceMemoryBudgetPropertiesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceMemoryBudgetPropertiesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( minImageCount == rhs.minImageCount ) - && ( maxImageCount == rhs.maxImageCount ) - && ( currentExtent == rhs.currentExtent ) - && ( minImageExtent == rhs.minImageExtent ) - && ( maxImageExtent == rhs.maxImageExtent ) - && ( maxImageArrayLayers == rhs.maxImageArrayLayers ) - && ( supportedTransforms == rhs.supportedTransforms ) - && ( currentTransform == rhs.currentTransform ) - && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha ) - && ( supportedUsageFlags == rhs.supportedUsageFlags ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( heapBudget == rhs.heapBudget ) && + ( heapUsage == rhs.heapUsage ); } - bool operator!=( SurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - uint32_t minImageCount = {}; - uint32_t maxImageCount = {}; - VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {}; - VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {}; - uint32_t maxImageArrayLayers = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; - VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {}; - VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D heapBudget = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D heapUsage = {}; }; - static_assert( sizeof( SurfaceCapabilitiesKHR ) == sizeof( VkSurfaceCapabilitiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceMemoryBudgetPropertiesEXT ) == + sizeof( VkPhysicalDeviceMemoryBudgetPropertiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SurfaceCapabilities2KHR + template <> + struct CppType { - SurfaceCapabilities2KHR( VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities_ = {} ) VULKAN_HPP_NOEXCEPT - : surfaceCapabilities( surfaceCapabilities_ ) + using Type = PhysicalDeviceMemoryBudgetPropertiesEXT; + }; + + struct PhysicalDeviceMemoryPriorityFeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceMemoryPriorityFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ = {} ) VULKAN_HPP_NOEXCEPT + : memoryPriority( memoryPriority_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryPriorityFeaturesEXT( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceMemoryPriorityFeaturesEXT( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceMemoryPriorityFeaturesEXT( + *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR & operator=( VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryPriorityFeaturesEXT & + operator=( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceMemoryPriorityFeaturesEXT & + operator=( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR ) - offsetof( SurfaceCapabilities2KHR, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - SurfaceCapabilities2KHR( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceMemoryPriorityFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - SurfaceCapabilities2KHR& operator=( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceMemoryPriorityFeaturesEXT & + setMemoryPriority( VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + memoryPriority = memoryPriority_; return *this; } - operator VkSurfaceCapabilities2KHR const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSurfaceCapabilities2KHR &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceMemoryPriorityFeaturesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SurfaceCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceMemoryPriorityFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( surfaceCapabilities == rhs.surfaceCapabilities ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( memoryPriority == rhs.memoryPriority ); } - bool operator!=( SurfaceCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2KHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 memoryPriority = {}; }; - static_assert( sizeof( SurfaceCapabilities2KHR ) == sizeof( VkSurfaceCapabilities2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceMemoryPriorityFeaturesEXT ) == + sizeof( VkPhysicalDeviceMemoryPriorityFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_WIN32_KHR + template <> + struct CppType + { + using Type = PhysicalDeviceMemoryPriorityFeaturesEXT; + }; - struct SurfaceCapabilitiesFullScreenExclusiveEXT + struct PhysicalDeviceMeshShaderFeaturesNV { - VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesFullScreenExclusiveEXT( VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ = {} ) VULKAN_HPP_NOEXCEPT - : fullScreenExclusiveSupported( fullScreenExclusiveSupported_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceMeshShaderFeaturesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceMeshShaderFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 taskShader_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 meshShader_ = {} ) VULKAN_HPP_NOEXCEPT + : taskShader( taskShader_ ) + , meshShader( meshShader_ ) {} - VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT & operator=( VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT ) - offsetof( SurfaceCapabilitiesFullScreenExclusiveEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesNV( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceMeshShaderFeaturesNV( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceMeshShaderFeaturesNV( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - SurfaceCapabilitiesFullScreenExclusiveEXT( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderFeaturesNV & + operator=( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceMeshShaderFeaturesNV & + operator=( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + *this = *reinterpret_cast( &rhs ); + return *this; } - SurfaceCapabilitiesFullScreenExclusiveEXT& operator=( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceMeshShaderFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + pNext = pNext_; return *this; } - SurfaceCapabilitiesFullScreenExclusiveEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceMeshShaderFeaturesNV & setTaskShader( VULKAN_HPP_NAMESPACE::Bool32 taskShader_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + taskShader = taskShader_; return *this; } - SurfaceCapabilitiesFullScreenExclusiveEXT & setFullScreenExclusiveSupported( VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceMeshShaderFeaturesNV & setMeshShader( VULKAN_HPP_NAMESPACE::Bool32 meshShader_ ) VULKAN_HPP_NOEXCEPT { - fullScreenExclusiveSupported = fullScreenExclusiveSupported_; + meshShader = meshShader_; return *this; } - operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceMeshShaderFeaturesNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSurfaceCapabilitiesFullScreenExclusiveEXT &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceMeshShaderFeaturesNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SurfaceCapabilitiesFullScreenExclusiveEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceMeshShaderFeaturesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fullScreenExclusiveSupported == rhs.fullScreenExclusiveSupported ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( taskShader == rhs.taskShader ) && + ( meshShader == rhs.meshShader ); } - bool operator!=( SurfaceCapabilitiesFullScreenExclusiveEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 taskShader = {}; + VULKAN_HPP_NAMESPACE::Bool32 meshShader = {}; }; - static_assert( sizeof( SurfaceCapabilitiesFullScreenExclusiveEXT ) == sizeof( VkSurfaceCapabilitiesFullScreenExclusiveEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + static_assert( sizeof( PhysicalDeviceMeshShaderFeaturesNV ) == sizeof( VkPhysicalDeviceMeshShaderFeaturesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SurfaceFormatKHR + template <> + struct CppType { - SurfaceFormatKHR( VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, - VULKAN_HPP_NAMESPACE::ColorSpaceKHR colorSpace_ = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear ) VULKAN_HPP_NOEXCEPT - : format( format_ ) - , colorSpace( colorSpace_ ) + using Type = PhysicalDeviceMeshShaderFeaturesNV; + }; + + struct PhysicalDeviceMeshShaderPropertiesNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceMeshShaderPropertiesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 + PhysicalDeviceMeshShaderPropertiesNV( uint32_t maxDrawMeshTasksCount_ = {}, + uint32_t maxTaskWorkGroupInvocations_ = {}, + std::array const & maxTaskWorkGroupSize_ = {}, + uint32_t maxTaskTotalMemorySize_ = {}, + uint32_t maxTaskOutputCount_ = {}, + uint32_t maxMeshWorkGroupInvocations_ = {}, + std::array const & maxMeshWorkGroupSize_ = {}, + uint32_t maxMeshTotalMemorySize_ = {}, + uint32_t maxMeshOutputVertices_ = {}, + uint32_t maxMeshOutputPrimitives_ = {}, + uint32_t maxMeshMultiviewViewCount_ = {}, + uint32_t meshOutputPerVertexGranularity_ = {}, + uint32_t meshOutputPerPrimitiveGranularity_ = {} ) VULKAN_HPP_NOEXCEPT + : maxDrawMeshTasksCount( maxDrawMeshTasksCount_ ) + , maxTaskWorkGroupInvocations( maxTaskWorkGroupInvocations_ ) + , maxTaskWorkGroupSize( maxTaskWorkGroupSize_ ) + , maxTaskTotalMemorySize( maxTaskTotalMemorySize_ ) + , maxTaskOutputCount( maxTaskOutputCount_ ) + , maxMeshWorkGroupInvocations( maxMeshWorkGroupInvocations_ ) + , maxMeshWorkGroupSize( maxMeshWorkGroupSize_ ) + , maxMeshTotalMemorySize( maxMeshTotalMemorySize_ ) + , maxMeshOutputVertices( maxMeshOutputVertices_ ) + , maxMeshOutputPrimitives( maxMeshOutputPrimitives_ ) + , maxMeshMultiviewViewCount( maxMeshMultiviewViewCount_ ) + , meshOutputPerVertexGranularity( meshOutputPerVertexGranularity_ ) + , meshOutputPerPrimitiveGranularity( meshOutputPerPrimitiveGranularity_ ) {} - SurfaceFormatKHR( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesNV( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - SurfaceFormatKHR& operator=( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + PhysicalDeviceMeshShaderPropertiesNV( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceMeshShaderPropertiesNV( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesNV & + operator=( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - operator VkSurfaceFormatKHR const&() const VULKAN_HPP_NOEXCEPT + PhysicalDeviceMeshShaderPropertiesNV & + operator=( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + *this = *reinterpret_cast( &rhs ); + return *this; } - operator VkSurfaceFormatKHR &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceMeshShaderPropertiesNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SurfaceFormatKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceMeshShaderPropertiesNV &() VULKAN_HPP_NOEXCEPT { - return ( format == rhs.format ) - && ( colorSpace == rhs.colorSpace ); + return *reinterpret_cast( this ); } - bool operator!=( SurfaceFormatKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceMeshShaderPropertiesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( maxDrawMeshTasksCount == rhs.maxDrawMeshTasksCount ) && + ( maxTaskWorkGroupInvocations == rhs.maxTaskWorkGroupInvocations ) && + ( maxTaskWorkGroupSize == rhs.maxTaskWorkGroupSize ) && + ( maxTaskTotalMemorySize == rhs.maxTaskTotalMemorySize ) && + ( maxTaskOutputCount == rhs.maxTaskOutputCount ) && + ( maxMeshWorkGroupInvocations == rhs.maxMeshWorkGroupInvocations ) && + ( maxMeshWorkGroupSize == rhs.maxMeshWorkGroupSize ) && + ( maxMeshTotalMemorySize == rhs.maxMeshTotalMemorySize ) && + ( maxMeshOutputVertices == rhs.maxMeshOutputVertices ) && + ( maxMeshOutputPrimitives == rhs.maxMeshOutputPrimitives ) && + ( maxMeshMultiviewViewCount == rhs.maxMeshMultiviewViewCount ) && + ( meshOutputPerVertexGranularity == rhs.meshOutputPerVertexGranularity ) && + ( meshOutputPerPrimitiveGranularity == rhs.meshOutputPerPrimitiveGranularity ); + } + + bool operator!=( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::ColorSpaceKHR colorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV; + void * pNext = {}; + uint32_t maxDrawMeshTasksCount = {}; + uint32_t maxTaskWorkGroupInvocations = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D maxTaskWorkGroupSize = {}; + uint32_t maxTaskTotalMemorySize = {}; + uint32_t maxTaskOutputCount = {}; + uint32_t maxMeshWorkGroupInvocations = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D maxMeshWorkGroupSize = {}; + uint32_t maxMeshTotalMemorySize = {}; + uint32_t maxMeshOutputVertices = {}; + uint32_t maxMeshOutputPrimitives = {}; + uint32_t maxMeshMultiviewViewCount = {}; + uint32_t meshOutputPerVertexGranularity = {}; + uint32_t meshOutputPerPrimitiveGranularity = {}; + }; + static_assert( sizeof( PhysicalDeviceMeshShaderPropertiesNV ) == sizeof( VkPhysicalDeviceMeshShaderPropertiesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceMeshShaderPropertiesNV; }; - static_assert( sizeof( SurfaceFormatKHR ) == sizeof( VkSurfaceFormatKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - struct SurfaceFormat2KHR + struct PhysicalDeviceMultiviewFeatures { - SurfaceFormat2KHR( VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat_ = {} ) VULKAN_HPP_NOEXCEPT - : surfaceFormat( surfaceFormat_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewFeatures; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewFeatures( + VULKAN_HPP_NAMESPACE::Bool32 multiview_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ = {} ) VULKAN_HPP_NOEXCEPT + : multiview( multiview_ ) + , multiviewGeometryShader( multiviewGeometryShader_ ) + , multiviewTessellationShader( multiviewTessellationShader_ ) + {} + + VULKAN_HPP_CONSTEXPR + PhysicalDeviceMultiviewFeatures( PhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceMultiviewFeatures( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceMultiviewFeatures( *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewFeatures & + operator=( PhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR & operator=( VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceMultiviewFeatures & operator=( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR ) - offsetof( SurfaceFormat2KHR, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - SurfaceFormat2KHR( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceMultiviewFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PhysicalDeviceMultiviewFeatures & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT + { + multiview = multiview_; + return *this; + } + + PhysicalDeviceMultiviewFeatures & + setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + multiviewGeometryShader = multiviewGeometryShader_; + return *this; } - SurfaceFormat2KHR& operator=( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceMultiviewFeatures & + setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + multiviewTessellationShader = multiviewTessellationShader_; return *this; } - operator VkSurfaceFormat2KHR const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceMultiviewFeatures const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSurfaceFormat2KHR &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceMultiviewFeatures &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SurfaceFormat2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceMultiviewFeatures const & ) const = default; +#else + bool operator==( PhysicalDeviceMultiviewFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( surfaceFormat == rhs.surfaceFormat ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( multiview == rhs.multiview ) && + ( multiviewGeometryShader == rhs.multiviewGeometryShader ) && + ( multiviewTessellationShader == rhs.multiviewTessellationShader ); } - bool operator!=( SurfaceFormat2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceMultiviewFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFormat2KHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewFeatures; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 multiview = {}; + VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {}; + VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {}; }; - static_assert( sizeof( SurfaceFormat2KHR ) == sizeof( VkSurfaceFormat2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceMultiviewFeatures ) == sizeof( VkPhysicalDeviceMultiviewFeatures ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_WIN32_KHR + template <> + struct CppType + { + using Type = PhysicalDeviceMultiviewFeatures; + }; + using PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures; - struct SurfaceFullScreenExclusiveInfoEXT + struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { - VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveInfoEXT( VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ = VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault ) VULKAN_HPP_NOEXCEPT - : fullScreenExclusive( fullScreenExclusive_ ) - {} + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX; - VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT & operator=( VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT ) - offsetof( SurfaceFullScreenExclusiveInfoEXT, pNext ) ); - return *this; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( + VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents_ = {} ) VULKAN_HPP_NOEXCEPT + : perViewPositionAllComponents( perViewPositionAllComponents_ ) + {} - SurfaceFullScreenExclusiveInfoEXT( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( + PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SurfaceFullScreenExclusiveInfoEXT& operator=( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( + VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - SurfaceFullScreenExclusiveInfoEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX & + operator=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SurfaceFullScreenExclusiveInfoEXT & setFullScreenExclusive( VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX & + operator=( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT { - fullScreenExclusive = fullScreenExclusive_; + *this = + *reinterpret_cast( &rhs ); return *this; } - operator VkSurfaceFullScreenExclusiveInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSurfaceFullScreenExclusiveInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SurfaceFullScreenExclusiveInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & ) const = default; +#else + bool operator==( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fullScreenExclusive == rhs.fullScreenExclusive ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( perViewPositionAllComponents == rhs.perViewPositionAllComponents ); } - bool operator!=( SurfaceFullScreenExclusiveInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveInfoEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive = VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents = {}; }; - static_assert( sizeof( SurfaceFullScreenExclusiveInfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + static_assert( sizeof( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ) == + sizeof( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_WIN32_KHR + template <> + struct CppType + { + using Type = PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX; + }; - struct SurfaceFullScreenExclusiveWin32InfoEXT + struct PhysicalDeviceMultiviewProperties { - VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveWin32InfoEXT( HMONITOR hmonitor_ = {} ) VULKAN_HPP_NOEXCEPT - : hmonitor( hmonitor_ ) - {} + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceMultiviewProperties; - VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT & operator=( VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT ) - offsetof( SurfaceFullScreenExclusiveWin32InfoEXT, pNext ) ); - return *this; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceMultiviewProperties( uint32_t maxMultiviewViewCount_ = {}, + uint32_t maxMultiviewInstanceIndex_ = {} ) VULKAN_HPP_NOEXCEPT + : maxMultiviewViewCount( maxMultiviewViewCount_ ) + , maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ ) + {} - SurfaceFullScreenExclusiveWin32InfoEXT( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR + PhysicalDeviceMultiviewProperties( PhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SurfaceFullScreenExclusiveWin32InfoEXT& operator=( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + PhysicalDeviceMultiviewProperties( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceMultiviewProperties( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - SurfaceFullScreenExclusiveWin32InfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMultiviewProperties & + operator=( PhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SurfaceFullScreenExclusiveWin32InfoEXT & setHmonitor( HMONITOR hmonitor_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceMultiviewProperties & operator=( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - hmonitor = hmonitor_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkSurfaceFullScreenExclusiveWin32InfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceMultiviewProperties const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSurfaceFullScreenExclusiveWin32InfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceMultiviewProperties &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SurfaceFullScreenExclusiveWin32InfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceMultiviewProperties const & ) const = default; +#else + bool operator==( PhysicalDeviceMultiviewProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( hmonitor == rhs.hmonitor ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( maxMultiviewViewCount == rhs.maxMultiviewViewCount ) && + ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex ); } - bool operator!=( SurfaceFullScreenExclusiveWin32InfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceMultiviewProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT; - const void* pNext = {}; - HMONITOR hmonitor = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewProperties; + void * pNext = {}; + uint32_t maxMultiviewViewCount = {}; + uint32_t maxMultiviewInstanceIndex = {}; }; - static_assert( sizeof( SurfaceFullScreenExclusiveWin32InfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveWin32InfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + static_assert( sizeof( PhysicalDeviceMultiviewProperties ) == sizeof( VkPhysicalDeviceMultiviewProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SurfaceProtectedCapabilitiesKHR + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SurfaceProtectedCapabilitiesKHR( VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ = {} ) VULKAN_HPP_NOEXCEPT - : supportsProtected( supportsProtected_ ) + using Type = PhysicalDeviceMultiviewProperties; + }; + using PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties; + + struct PhysicalDeviceMutableDescriptorTypeFeaturesVALVE + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceMutableDescriptorTypeFeaturesVALVE( + VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType_ = {} ) VULKAN_HPP_NOEXCEPT + : mutableDescriptorType( mutableDescriptorType_ ) {} - VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR & operator=( VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR ) - offsetof( SurfaceProtectedCapabilitiesKHR, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceMutableDescriptorTypeFeaturesVALVE( + PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SurfaceProtectedCapabilitiesKHR( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceMutableDescriptorTypeFeaturesVALVE( VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceMutableDescriptorTypeFeaturesVALVE( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMutableDescriptorTypeFeaturesVALVE & + operator=( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SurfaceProtectedCapabilitiesKHR& operator=( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceMutableDescriptorTypeFeaturesVALVE & + operator=( VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - SurfaceProtectedCapabilitiesKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceMutableDescriptorTypeFeaturesVALVE & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - SurfaceProtectedCapabilitiesKHR & setSupportsProtected( VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceMutableDescriptorTypeFeaturesVALVE & + setMutableDescriptorType( VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType_ ) VULKAN_HPP_NOEXCEPT { - supportsProtected = supportsProtected_; + mutableDescriptorType = mutableDescriptorType_; return *this; } - operator VkSurfaceProtectedCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSurfaceProtectedCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SurfaceProtectedCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & ) const = default; +#else + bool operator==( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( supportsProtected == rhs.supportsProtected ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( mutableDescriptorType == rhs.mutableDescriptorType ); } - bool operator!=( SurfaceProtectedCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceProtectedCapabilitiesKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 supportsProtected = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType = {}; }; - static_assert( sizeof( SurfaceProtectedCapabilitiesKHR ) == sizeof( VkSurfaceProtectedCapabilitiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE ) == + sizeof( VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SwapchainCounterCreateInfoEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SwapchainCounterCreateInfoEXT( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ = {} ) VULKAN_HPP_NOEXCEPT - : surfaceCounters( surfaceCounters_ ) - {} + using Type = PhysicalDeviceMutableDescriptorTypeFeaturesVALVE; + }; - VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT ) - offsetof( SwapchainCounterCreateInfoEXT, pNext ) ); - return *this; - } + struct PhysicalDevicePCIBusInfoPropertiesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDevicePciBusInfoPropertiesEXT; - SwapchainCounterCreateInfoEXT( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDevicePCIBusInfoPropertiesEXT( uint32_t pciDomain_ = {}, + uint32_t pciBus_ = {}, + uint32_t pciDevice_ = {}, + uint32_t pciFunction_ = {} ) VULKAN_HPP_NOEXCEPT + : pciDomain( pciDomain_ ) + , pciBus( pciBus_ ) + , pciDevice( pciDevice_ ) + , pciFunction( pciFunction_ ) + {} - SwapchainCounterCreateInfoEXT& operator=( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDevicePCIBusInfoPropertiesEXT( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - SwapchainCounterCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + PhysicalDevicePCIBusInfoPropertiesEXT( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDevicePCIBusInfoPropertiesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePCIBusInfoPropertiesEXT & + operator=( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SwapchainCounterCreateInfoEXT & setSurfaceCounters( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePCIBusInfoPropertiesEXT & + operator=( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - surfaceCounters = surfaceCounters_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkSwapchainCounterCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevicePCIBusInfoPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSwapchainCounterCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevicePCIBusInfoPropertiesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SwapchainCounterCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDevicePCIBusInfoPropertiesEXT const & ) const = default; +#else + bool operator==( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( surfaceCounters == rhs.surfaceCounters ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pciDomain == rhs.pciDomain ) && + ( pciBus == rhs.pciBus ) && ( pciDevice == rhs.pciDevice ) && ( pciFunction == rhs.pciFunction ); } - bool operator!=( SwapchainCounterCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCounterCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT; + void * pNext = {}; + uint32_t pciDomain = {}; + uint32_t pciBus = {}; + uint32_t pciDevice = {}; + uint32_t pciFunction = {}; }; - static_assert( sizeof( SwapchainCounterCreateInfoEXT ) == sizeof( VkSwapchainCounterCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDevicePCIBusInfoPropertiesEXT ) == sizeof( VkPhysicalDevicePCIBusInfoPropertiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SwapchainCreateInfoKHR + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SwapchainCreateInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_ = {}, - VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ = {}, - uint32_t minImageCount_ = {}, - VULKAN_HPP_NAMESPACE::Format imageFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, - VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_ = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear, - VULKAN_HPP_NAMESPACE::Extent2D imageExtent_ = {}, - uint32_t imageArrayLayers_ = {}, - VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ = {}, - VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, - uint32_t queueFamilyIndexCount_ = {}, - const uint32_t* pQueueFamilyIndices_ = {}, - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, - VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque, - VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate, - VULKAN_HPP_NAMESPACE::Bool32 clipped_ = {}, - VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , surface( surface_ ) - , minImageCount( minImageCount_ ) - , imageFormat( imageFormat_ ) - , imageColorSpace( imageColorSpace_ ) - , imageExtent( imageExtent_ ) - , imageArrayLayers( imageArrayLayers_ ) - , imageUsage( imageUsage_ ) - , imageSharingMode( imageSharingMode_ ) - , queueFamilyIndexCount( queueFamilyIndexCount_ ) - , pQueueFamilyIndices( pQueueFamilyIndices_ ) - , preTransform( preTransform_ ) - , compositeAlpha( compositeAlpha_ ) - , presentMode( presentMode_ ) - , clipped( clipped_ ) - , oldSwapchain( oldSwapchain_ ) + using Type = PhysicalDevicePCIBusInfoPropertiesEXT; + }; + + struct PhysicalDevicePerformanceQueryFeaturesKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryFeaturesKHR( + VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ = {} ) VULKAN_HPP_NOEXCEPT + : performanceCounterQueryPools( performanceCounterQueryPools_ ) + , performanceCounterMultipleQueryPools( performanceCounterMultipleQueryPools_ ) {} - VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR & operator=( VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR ) - offsetof( SwapchainCreateInfoKHR, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryFeaturesKHR( + PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SwapchainCreateInfoKHR( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDevicePerformanceQueryFeaturesKHR( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDevicePerformanceQueryFeaturesKHR( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - SwapchainCreateInfoKHR& operator=( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePerformanceQueryFeaturesKHR & + operator=( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDevicePerformanceQueryFeaturesKHR & + operator=( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - SwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePerformanceQueryFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - SwapchainCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePerformanceQueryFeaturesKHR & + setPerformanceCounterQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + performanceCounterQueryPools = performanceCounterQueryPools_; return *this; } - SwapchainCreateInfoKHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePerformanceQueryFeaturesKHR & setPerformanceCounterMultipleQueryPools( + VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ ) VULKAN_HPP_NOEXCEPT { - surface = surface_; + performanceCounterMultipleQueryPools = performanceCounterMultipleQueryPools_; return *this; } - SwapchainCreateInfoKHR & setMinImageCount( uint32_t minImageCount_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevicePerformanceQueryFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT { - minImageCount = minImageCount_; - return *this; + return *reinterpret_cast( this ); } - SwapchainCreateInfoKHR & setImageFormat( VULKAN_HPP_NAMESPACE::Format imageFormat_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevicePerformanceQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT { - imageFormat = imageFormat_; - return *this; + return *reinterpret_cast( this ); } - SwapchainCreateInfoKHR & setImageColorSpace( VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDevicePerformanceQueryFeaturesKHR const & ) const = default; +#else + bool operator==( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - imageColorSpace = imageColorSpace_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( performanceCounterQueryPools == rhs.performanceCounterQueryPools ) && + ( performanceCounterMultipleQueryPools == rhs.performanceCounterMultipleQueryPools ); } - SwapchainCreateInfoKHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D imageExtent_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - imageExtent = imageExtent_; - return *this; + return !operator==( rhs ); } +#endif - SwapchainCreateInfoKHR & setImageArrayLayers( uint32_t imageArrayLayers_ ) VULKAN_HPP_NOEXCEPT - { - imageArrayLayers = imageArrayLayers_; - return *this; - } + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools = {}; + VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools = {}; + }; + static_assert( sizeof( PhysicalDevicePerformanceQueryFeaturesKHR ) == + sizeof( VkPhysicalDevicePerformanceQueryFeaturesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - SwapchainCreateInfoKHR & setImageUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ ) VULKAN_HPP_NOEXCEPT - { - imageUsage = imageUsage_; - return *this; - } + template <> + struct CppType + { + using Type = PhysicalDevicePerformanceQueryFeaturesKHR; + }; + + struct PhysicalDevicePerformanceQueryPropertiesKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryPropertiesKHR( + VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies_ = {} ) VULKAN_HPP_NOEXCEPT + : allowCommandBufferQueryCopies( allowCommandBufferQueryCopies_ ) + {} - SwapchainCreateInfoKHR & setImageSharingMode( VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryPropertiesKHR( + PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDevicePerformanceQueryPropertiesKHR( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDevicePerformanceQueryPropertiesKHR( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePerformanceQueryPropertiesKHR & + operator=( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDevicePerformanceQueryPropertiesKHR & + operator=( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - imageSharingMode = imageSharingMode_; + *this = *reinterpret_cast( &rhs ); return *this; } - SwapchainCreateInfoKHR & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevicePerformanceQueryPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT { - queueFamilyIndexCount = queueFamilyIndexCount_; - return *this; + return *reinterpret_cast( this ); } - SwapchainCreateInfoKHR & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevicePerformanceQueryPropertiesKHR &() VULKAN_HPP_NOEXCEPT { - pQueueFamilyIndices = pQueueFamilyIndices_; - return *this; + return *reinterpret_cast( this ); } - SwapchainCreateInfoKHR & setPreTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDevicePerformanceQueryPropertiesKHR const & ) const = default; +#else + bool operator==( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - preTransform = preTransform_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( allowCommandBufferQueryCopies == rhs.allowCommandBufferQueryCopies ); } - SwapchainCreateInfoKHR & setCompositeAlpha( VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - compositeAlpha = compositeAlpha_; - return *this; + return !operator==( rhs ); } +#endif - SwapchainCreateInfoKHR & setPresentMode( VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ ) VULKAN_HPP_NOEXCEPT + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies = {}; + }; + static_assert( sizeof( PhysicalDevicePerformanceQueryPropertiesKHR ) == + sizeof( VkPhysicalDevicePerformanceQueryPropertiesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDevicePerformanceQueryPropertiesKHR; + }; + + struct PhysicalDevicePipelineCreationCacheControlFeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineCreationCacheControlFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ = {} ) VULKAN_HPP_NOEXCEPT + : pipelineCreationCacheControl( pipelineCreationCacheControl_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineCreationCacheControlFeaturesEXT( + PhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDevicePipelineCreationCacheControlFeaturesEXT( + VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDevicePipelineCreationCacheControlFeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineCreationCacheControlFeaturesEXT & + operator=( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDevicePipelineCreationCacheControlFeaturesEXT & + operator=( VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - presentMode = presentMode_; + *this = + *reinterpret_cast( &rhs ); return *this; } - SwapchainCreateInfoKHR & setClipped( VULKAN_HPP_NAMESPACE::Bool32 clipped_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePipelineCreationCacheControlFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - clipped = clipped_; + pNext = pNext_; return *this; } - SwapchainCreateInfoKHR & setOldSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePipelineCreationCacheControlFeaturesEXT & + setPipelineCreationCacheControl( VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ ) VULKAN_HPP_NOEXCEPT { - oldSwapchain = oldSwapchain_; + pipelineCreationCacheControl = pipelineCreationCacheControl_; return *this; } - operator VkSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( surface == rhs.surface ) - && ( minImageCount == rhs.minImageCount ) - && ( imageFormat == rhs.imageFormat ) - && ( imageColorSpace == rhs.imageColorSpace ) - && ( imageExtent == rhs.imageExtent ) - && ( imageArrayLayers == rhs.imageArrayLayers ) - && ( imageUsage == rhs.imageUsage ) - && ( imageSharingMode == rhs.imageSharingMode ) - && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) - && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices ) - && ( preTransform == rhs.preTransform ) - && ( compositeAlpha == rhs.compositeAlpha ) - && ( presentMode == rhs.presentMode ) - && ( clipped == rhs.clipped ) - && ( oldSwapchain == rhs.oldSwapchain ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( pipelineCreationCacheControl == rhs.pipelineCreationCacheControl ); } - bool operator!=( SwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags = {}; - VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {}; - uint32_t minImageCount = {}; - VULKAN_HPP_NAMESPACE::Format imageFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear; - VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {}; - uint32_t imageArrayLayers = {}; - VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage = {}; - VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive; - uint32_t queueFamilyIndexCount = {}; - const uint32_t* pQueueFamilyIndices = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; - VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque; - VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate; - VULKAN_HPP_NAMESPACE::Bool32 clipped = {}; - VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain = {}; - }; - static_assert( sizeof( SwapchainCreateInfoKHR ) == sizeof( VkSwapchainCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl = {}; + }; + static_assert( sizeof( PhysicalDevicePipelineCreationCacheControlFeaturesEXT ) == + sizeof( VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct SwapchainDisplayNativeHdrCreateInfoAMD + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR SwapchainDisplayNativeHdrCreateInfoAMD( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ = {} ) VULKAN_HPP_NOEXCEPT - : localDimmingEnable( localDimmingEnable_ ) + using Type = PhysicalDevicePipelineCreationCacheControlFeaturesEXT; + }; + + struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( + VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ = {} ) VULKAN_HPP_NOEXCEPT + : pipelineExecutableInfo( pipelineExecutableInfo_ ) {} - VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD & operator=( VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD ) - offsetof( SwapchainDisplayNativeHdrCreateInfoAMD, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( + PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SwapchainDisplayNativeHdrCreateInfoAMD( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( + VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & + operator=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - SwapchainDisplayNativeHdrCreateInfoAMD& operator=( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & + operator=( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = + *reinterpret_cast( &rhs ); return *this; } - SwapchainDisplayNativeHdrCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - SwapchainDisplayNativeHdrCreateInfoAMD & setLocalDimmingEnable( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & + setPipelineExecutableInfo( VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ ) VULKAN_HPP_NOEXCEPT { - localDimmingEnable = localDimmingEnable_; + pipelineExecutableInfo = pipelineExecutableInfo_; return *this; } - operator VkSwapchainDisplayNativeHdrCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkSwapchainDisplayNativeHdrCreateInfoAMD &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( SwapchainDisplayNativeHdrCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & ) const = default; +#else + bool operator==( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( localDimmingEnable == rhs.localDimmingEnable ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( pipelineExecutableInfo == rhs.pipelineExecutableInfo ); } - bool operator!=( SwapchainDisplayNativeHdrCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo = {}; }; - static_assert( sizeof( SwapchainDisplayNativeHdrCreateInfoAMD ) == sizeof( VkSwapchainDisplayNativeHdrCreateInfoAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR ) == + sizeof( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct TextureLODGatherFormatPropertiesAMD + template <> + struct CppType { - TextureLODGatherFormatPropertiesAMD( VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD_ = {} ) VULKAN_HPP_NOEXCEPT - : supportsTextureGatherLODBiasAMD( supportsTextureGatherLODBiasAMD_ ) + using Type = PhysicalDevicePipelineExecutablePropertiesFeaturesKHR; + }; + + struct PhysicalDevicePointClippingProperties + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDevicePointClippingProperties; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDevicePointClippingProperties( + VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior_ = + VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes ) VULKAN_HPP_NOEXCEPT + : pointClippingBehavior( pointClippingBehavior_ ) {} - VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD & operator=( VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD ) - offsetof( TextureLODGatherFormatPropertiesAMD, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDevicePointClippingProperties( PhysicalDevicePointClippingProperties const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - TextureLODGatherFormatPropertiesAMD( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDevicePointClippingProperties( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDevicePointClippingProperties( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePointClippingProperties & + operator=( PhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - TextureLODGatherFormatPropertiesAMD& operator=( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePointClippingProperties & + operator=( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkTextureLODGatherFormatPropertiesAMD const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevicePointClippingProperties const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkTextureLODGatherFormatPropertiesAMD &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevicePointClippingProperties &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( TextureLODGatherFormatPropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDevicePointClippingProperties const & ) const = default; +#else + bool operator==( PhysicalDevicePointClippingProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( supportsTextureGatherLODBiasAMD == rhs.supportsTextureGatherLODBiasAMD ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pointClippingBehavior == rhs.pointClippingBehavior ); } - bool operator!=( TextureLODGatherFormatPropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDevicePointClippingProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTextureLodGatherFormatPropertiesAMD; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePointClippingProperties; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = + VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes; }; - static_assert( sizeof( TextureLODGatherFormatPropertiesAMD ) == sizeof( VkTextureLODGatherFormatPropertiesAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDevicePointClippingProperties ) == sizeof( VkPhysicalDevicePointClippingProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct TimelineSemaphoreSubmitInfo + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR TimelineSemaphoreSubmitInfo( uint32_t waitSemaphoreValueCount_ = {}, - const uint64_t* pWaitSemaphoreValues_ = {}, - uint32_t signalSemaphoreValueCount_ = {}, - const uint64_t* pSignalSemaphoreValues_ = {} ) VULKAN_HPP_NOEXCEPT - : waitSemaphoreValueCount( waitSemaphoreValueCount_ ) - , pWaitSemaphoreValues( pWaitSemaphoreValues_ ) - , signalSemaphoreValueCount( signalSemaphoreValueCount_ ) - , pSignalSemaphoreValues( pSignalSemaphoreValues_ ) - {} + using Type = PhysicalDevicePointClippingProperties; + }; + using PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties; - VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo & operator=( VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct PhysicalDevicePortabilitySubsetFeaturesKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetFeaturesKHR( + VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 events_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 pointPolygons_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 triangleFans_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride_ = {} ) VULKAN_HPP_NOEXCEPT + : constantAlphaColorBlendFactors( constantAlphaColorBlendFactors_ ) + , events( events_ ) + , imageViewFormatReinterpretation( imageViewFormatReinterpretation_ ) + , imageViewFormatSwizzle( imageViewFormatSwizzle_ ) + , imageView2DOn3DImage( imageView2DOn3DImage_ ) + , multisampleArrayImage( multisampleArrayImage_ ) + , mutableComparisonSamplers( mutableComparisonSamplers_ ) + , pointPolygons( pointPolygons_ ) + , samplerMipLodBias( samplerMipLodBias_ ) + , separateStencilMaskRef( separateStencilMaskRef_ ) + , shaderSampleRateInterpolationFunctions( shaderSampleRateInterpolationFunctions_ ) + , tessellationIsolines( tessellationIsolines_ ) + , tessellationPointMode( tessellationPointMode_ ) + , triangleFans( triangleFans_ ) + , vertexAttributeAccessBeyondStride( vertexAttributeAccessBeyondStride_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetFeaturesKHR( + PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDevicePortabilitySubsetFeaturesKHR( VkPhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDevicePortabilitySubsetFeaturesKHR( + *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetFeaturesKHR & + operator=( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDevicePortabilitySubsetFeaturesKHR & + operator=( VkPhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PhysicalDevicePortabilitySubsetFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo ) - offsetof( TimelineSemaphoreSubmitInfo, pNext ) ); + pNext = pNext_; return *this; } - TimelineSemaphoreSubmitInfo( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePortabilitySubsetFeaturesKHR & setConstantAlphaColorBlendFactors( + VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + constantAlphaColorBlendFactors = constantAlphaColorBlendFactors_; + return *this; } - TimelineSemaphoreSubmitInfo& operator=( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePortabilitySubsetFeaturesKHR & setEvents( VULKAN_HPP_NAMESPACE::Bool32 events_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + events = events_; return *this; } - TimelineSemaphoreSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePortabilitySubsetFeaturesKHR & setImageViewFormatReinterpretation( + VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + imageViewFormatReinterpretation = imageViewFormatReinterpretation_; return *this; } - TimelineSemaphoreSubmitInfo & setWaitSemaphoreValueCount( uint32_t waitSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePortabilitySubsetFeaturesKHR & + setImageViewFormatSwizzle( VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle_ ) VULKAN_HPP_NOEXCEPT { - waitSemaphoreValueCount = waitSemaphoreValueCount_; + imageViewFormatSwizzle = imageViewFormatSwizzle_; return *this; } - TimelineSemaphoreSubmitInfo & setPWaitSemaphoreValues( const uint64_t* pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePortabilitySubsetFeaturesKHR & + setImageView2DOn3DImage( VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage_ ) VULKAN_HPP_NOEXCEPT { - pWaitSemaphoreValues = pWaitSemaphoreValues_; + imageView2DOn3DImage = imageView2DOn3DImage_; return *this; } - TimelineSemaphoreSubmitInfo & setSignalSemaphoreValueCount( uint32_t signalSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePortabilitySubsetFeaturesKHR & + setMultisampleArrayImage( VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage_ ) VULKAN_HPP_NOEXCEPT { - signalSemaphoreValueCount = signalSemaphoreValueCount_; + multisampleArrayImage = multisampleArrayImage_; return *this; } - TimelineSemaphoreSubmitInfo & setPSignalSemaphoreValues( const uint64_t* pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePortabilitySubsetFeaturesKHR & + setMutableComparisonSamplers( VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers_ ) VULKAN_HPP_NOEXCEPT { - pSignalSemaphoreValues = pSignalSemaphoreValues_; + mutableComparisonSamplers = mutableComparisonSamplers_; return *this; } - operator VkTimelineSemaphoreSubmitInfo const&() const VULKAN_HPP_NOEXCEPT + PhysicalDevicePortabilitySubsetFeaturesKHR & + setPointPolygons( VULKAN_HPP_NAMESPACE::Bool32 pointPolygons_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + pointPolygons = pointPolygons_; + return *this; } - operator VkTimelineSemaphoreSubmitInfo &() VULKAN_HPP_NOEXCEPT + PhysicalDevicePortabilitySubsetFeaturesKHR & + setSamplerMipLodBias( VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + samplerMipLodBias = samplerMipLodBias_; + return *this; } - bool operator==( TimelineSemaphoreSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + PhysicalDevicePortabilitySubsetFeaturesKHR & + setSeparateStencilMaskRef( VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( waitSemaphoreValueCount == rhs.waitSemaphoreValueCount ) - && ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues ) - && ( signalSemaphoreValueCount == rhs.signalSemaphoreValueCount ) - && ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues ); + separateStencilMaskRef = separateStencilMaskRef_; + return *this; } - bool operator!=( TimelineSemaphoreSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT + PhysicalDevicePortabilitySubsetFeaturesKHR & setShaderSampleRateInterpolationFunctions( + VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); - } - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTimelineSemaphoreSubmitInfo; - const void* pNext = {}; - uint32_t waitSemaphoreValueCount = {}; - const uint64_t* pWaitSemaphoreValues = {}; - uint32_t signalSemaphoreValueCount = {}; - const uint64_t* pSignalSemaphoreValues = {}; - }; - static_assert( sizeof( TimelineSemaphoreSubmitInfo ) == sizeof( VkTimelineSemaphoreSubmitInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ValidationCacheCreateInfoEXT - { - VULKAN_HPP_CONSTEXPR ValidationCacheCreateInfoEXT( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ = {}, - size_t initialDataSize_ = {}, - const void* pInitialData_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , initialDataSize( initialDataSize_ ) - , pInitialData( pInitialData_ ) - {} - - VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT & operator=( VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT ) - offsetof( ValidationCacheCreateInfoEXT, pNext ) ); - return *this; - } - - ValidationCacheCreateInfoEXT( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - - ValidationCacheCreateInfoEXT& operator=( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); + shaderSampleRateInterpolationFunctions = shaderSampleRateInterpolationFunctions_; return *this; } - ValidationCacheCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePortabilitySubsetFeaturesKHR & + setTessellationIsolines( VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + tessellationIsolines = tessellationIsolines_; return *this; } - ValidationCacheCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePortabilitySubsetFeaturesKHR & + setTessellationPointMode( VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + tessellationPointMode = tessellationPointMode_; return *this; } - ValidationCacheCreateInfoEXT & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePortabilitySubsetFeaturesKHR & + setTriangleFans( VULKAN_HPP_NAMESPACE::Bool32 triangleFans_ ) VULKAN_HPP_NOEXCEPT { - initialDataSize = initialDataSize_; + triangleFans = triangleFans_; return *this; } - ValidationCacheCreateInfoEXT & setPInitialData( const void* pInitialData_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePortabilitySubsetFeaturesKHR & setVertexAttributeAccessBeyondStride( + VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride_ ) VULKAN_HPP_NOEXCEPT { - pInitialData = pInitialData_; + vertexAttributeAccessBeyondStride = vertexAttributeAccessBeyondStride_; return *this; } - operator VkValidationCacheCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevicePortabilitySubsetFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevicePortabilitySubsetFeaturesKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDevicePortabilitySubsetFeaturesKHR const & ) const = default; +# else + bool operator==( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( initialDataSize == rhs.initialDataSize ) - && ( pInitialData == rhs.pInitialData ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( constantAlphaColorBlendFactors == rhs.constantAlphaColorBlendFactors ) && ( events == rhs.events ) && + ( imageViewFormatReinterpretation == rhs.imageViewFormatReinterpretation ) && + ( imageViewFormatSwizzle == rhs.imageViewFormatSwizzle ) && + ( imageView2DOn3DImage == rhs.imageView2DOn3DImage ) && + ( multisampleArrayImage == rhs.multisampleArrayImage ) && + ( mutableComparisonSamplers == rhs.mutableComparisonSamplers ) && ( pointPolygons == rhs.pointPolygons ) && + ( samplerMipLodBias == rhs.samplerMipLodBias ) && + ( separateStencilMaskRef == rhs.separateStencilMaskRef ) && + ( shaderSampleRateInterpolationFunctions == rhs.shaderSampleRateInterpolationFunctions ) && + ( tessellationIsolines == rhs.tessellationIsolines ) && + ( tessellationPointMode == rhs.tessellationPointMode ) && ( triangleFans == rhs.triangleFans ) && + ( vertexAttributeAccessBeyondStride == rhs.vertexAttributeAccessBeyondStride ); } - bool operator!=( ValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +# endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationCacheCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags = {}; - size_t initialDataSize = {}; - const void* pInitialData = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors = {}; + VULKAN_HPP_NAMESPACE::Bool32 events = {}; + VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation = {}; + VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle = {}; + VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage = {}; + VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage = {}; + VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers = {}; + VULKAN_HPP_NAMESPACE::Bool32 pointPolygons = {}; + VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias = {}; + VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions = {}; + VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines = {}; + VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode = {}; + VULKAN_HPP_NAMESPACE::Bool32 triangleFans = {}; + VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride = {}; + }; + static_assert( sizeof( PhysicalDevicePortabilitySubsetFeaturesKHR ) == + sizeof( VkPhysicalDevicePortabilitySubsetFeaturesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDevicePortabilitySubsetFeaturesKHR; }; - static_assert( sizeof( ValidationCacheCreateInfoEXT ) == sizeof( VkValidationCacheCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - struct ValidationFeaturesEXT +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct PhysicalDevicePortabilitySubsetPropertiesKHR { - VULKAN_HPP_CONSTEXPR ValidationFeaturesEXT( uint32_t enabledValidationFeatureCount_ = {}, - const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT* pEnabledValidationFeatures_ = {}, - uint32_t disabledValidationFeatureCount_ = {}, - const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT* pDisabledValidationFeatures_ = {} ) VULKAN_HPP_NOEXCEPT - : enabledValidationFeatureCount( enabledValidationFeatureCount_ ) - , pEnabledValidationFeatures( pEnabledValidationFeatures_ ) - , disabledValidationFeatureCount( disabledValidationFeatureCount_ ) - , pDisabledValidationFeatures( pDisabledValidationFeatures_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetPropertiesKHR( + uint32_t minVertexInputBindingStrideAlignment_ = {} ) VULKAN_HPP_NOEXCEPT + : minVertexInputBindingStrideAlignment( minVertexInputBindingStrideAlignment_ ) {} - VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT & operator=( VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetPropertiesKHR( + PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDevicePortabilitySubsetPropertiesKHR( VkPhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDevicePortabilitySubsetPropertiesKHR( + *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePortabilitySubsetPropertiesKHR & + operator=( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDevicePortabilitySubsetPropertiesKHR & + operator=( VkPhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT ) - offsetof( ValidationFeaturesEXT, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - ValidationFeaturesEXT( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePortabilitySubsetPropertiesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - ValidationFeaturesEXT& operator=( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePortabilitySubsetPropertiesKHR & + setMinVertexInputBindingStrideAlignment( uint32_t minVertexInputBindingStrideAlignment_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + minVertexInputBindingStrideAlignment = minVertexInputBindingStrideAlignment_; return *this; } - ValidationFeaturesEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevicePortabilitySubsetPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; - return *this; + return *reinterpret_cast( this ); } - ValidationFeaturesEXT & setEnabledValidationFeatureCount( uint32_t enabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevicePortabilitySubsetPropertiesKHR &() VULKAN_HPP_NOEXCEPT { - enabledValidationFeatureCount = enabledValidationFeatureCount_; - return *this; + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDevicePortabilitySubsetPropertiesKHR const & ) const = default; +# else + bool operator==( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( minVertexInputBindingStrideAlignment == rhs.minVertexInputBindingStrideAlignment ); } - ValidationFeaturesEXT & setPEnabledValidationFeatures( const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT* pEnabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - pEnabledValidationFeatures = pEnabledValidationFeatures_; + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR; + void * pNext = {}; + uint32_t minVertexInputBindingStrideAlignment = {}; + }; + static_assert( sizeof( PhysicalDevicePortabilitySubsetPropertiesKHR ) == + sizeof( VkPhysicalDevicePortabilitySubsetPropertiesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDevicePortabilitySubsetPropertiesKHR; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + struct PhysicalDevicePrivateDataFeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDevicePrivateDataFeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDevicePrivateDataFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 privateData_ = {} ) VULKAN_HPP_NOEXCEPT + : privateData( privateData_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDevicePrivateDataFeaturesEXT( PhysicalDevicePrivateDataFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + PhysicalDevicePrivateDataFeaturesEXT( VkPhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDevicePrivateDataFeaturesEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePrivateDataFeaturesEXT & + operator=( PhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDevicePrivateDataFeaturesEXT & + operator=( VkPhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); return *this; } - ValidationFeaturesEXT & setDisabledValidationFeatureCount( uint32_t disabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePrivateDataFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - disabledValidationFeatureCount = disabledValidationFeatureCount_; + pNext = pNext_; return *this; } - ValidationFeaturesEXT & setPDisabledValidationFeatures( const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT* pDisabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT + PhysicalDevicePrivateDataFeaturesEXT & + setPrivateData( VULKAN_HPP_NAMESPACE::Bool32 privateData_ ) VULKAN_HPP_NOEXCEPT { - pDisabledValidationFeatures = pDisabledValidationFeatures_; + privateData = privateData_; return *this; } - operator VkValidationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevicePrivateDataFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkValidationFeaturesEXT &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevicePrivateDataFeaturesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ValidationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDevicePrivateDataFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDevicePrivateDataFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( enabledValidationFeatureCount == rhs.enabledValidationFeatureCount ) - && ( pEnabledValidationFeatures == rhs.pEnabledValidationFeatures ) - && ( disabledValidationFeatureCount == rhs.disabledValidationFeatureCount ) - && ( pDisabledValidationFeatures == rhs.pDisabledValidationFeatures ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( privateData == rhs.privateData ); } - bool operator!=( ValidationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDevicePrivateDataFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFeaturesEXT; - const void* pNext = {}; - uint32_t enabledValidationFeatureCount = {}; - const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT* pEnabledValidationFeatures = {}; - uint32_t disabledValidationFeatureCount = {}; - const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT* pDisabledValidationFeatures = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePrivateDataFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 privateData = {}; }; - static_assert( sizeof( ValidationFeaturesEXT ) == sizeof( VkValidationFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDevicePrivateDataFeaturesEXT ) == sizeof( VkPhysicalDevicePrivateDataFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct ValidationFlagsEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR ValidationFlagsEXT( uint32_t disabledValidationCheckCount_ = {}, - const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks_ = {} ) VULKAN_HPP_NOEXCEPT - : disabledValidationCheckCount( disabledValidationCheckCount_ ) - , pDisabledValidationChecks( pDisabledValidationChecks_ ) + using Type = PhysicalDevicePrivateDataFeaturesEXT; + }; + + struct PhysicalDeviceProtectedMemoryFeatures + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceProtectedMemoryFeatures; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceProtectedMemoryFeatures( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ = {} ) VULKAN_HPP_NOEXCEPT + : protectedMemory( protectedMemory_ ) {} - VULKAN_HPP_NAMESPACE::ValidationFlagsEXT & operator=( VULKAN_HPP_NAMESPACE::ValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ValidationFlagsEXT ) - offsetof( ValidationFlagsEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryFeatures( PhysicalDeviceProtectedMemoryFeatures const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - ValidationFlagsEXT( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceProtectedMemoryFeatures( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceProtectedMemoryFeatures( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - ValidationFlagsEXT& operator=( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProtectedMemoryFeatures & + operator=( PhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ValidationFlagsEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceProtectedMemoryFeatures & + operator=( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - ValidationFlagsEXT & setDisabledValidationCheckCount( uint32_t disabledValidationCheckCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceProtectedMemoryFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - disabledValidationCheckCount = disabledValidationCheckCount_; + pNext = pNext_; return *this; } - ValidationFlagsEXT & setPDisabledValidationChecks( const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceProtectedMemoryFeatures & + setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT { - pDisabledValidationChecks = pDisabledValidationChecks_; + protectedMemory = protectedMemory_; return *this; } - operator VkValidationFlagsEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceProtectedMemoryFeatures const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkValidationFlagsEXT &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceProtectedMemoryFeatures &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ValidationFlagsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceProtectedMemoryFeatures const & ) const = default; +#else + bool operator==( PhysicalDeviceProtectedMemoryFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( disabledValidationCheckCount == rhs.disabledValidationCheckCount ) - && ( pDisabledValidationChecks == rhs.pDisabledValidationChecks ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( protectedMemory == rhs.protectedMemory ); } - bool operator!=( ValidationFlagsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceProtectedMemoryFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFlagsEXT; - const void* pNext = {}; - uint32_t disabledValidationCheckCount = {}; - const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryFeatures; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {}; }; - static_assert( sizeof( ValidationFlagsEXT ) == sizeof( VkValidationFlagsEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceProtectedMemoryFeatures ) == sizeof( VkPhysicalDeviceProtectedMemoryFeatures ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_VI_NN + template <> + struct CppType + { + using Type = PhysicalDeviceProtectedMemoryFeatures; + }; - struct ViSurfaceCreateInfoNN + struct PhysicalDeviceProtectedMemoryProperties { - VULKAN_HPP_CONSTEXPR ViSurfaceCreateInfoNN( VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ = {}, - void* window_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , window( window_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceProtectedMemoryProperties; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceProtectedMemoryProperties( VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault_ = {} ) VULKAN_HPP_NOEXCEPT + : protectedNoFault( protectedNoFault_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryProperties( PhysicalDeviceProtectedMemoryProperties const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceProtectedMemoryProperties( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceProtectedMemoryProperties( + *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProtectedMemoryProperties & + operator=( PhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN & operator=( VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceProtectedMemoryProperties & + operator=( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN ) - offsetof( ViSurfaceCreateInfoNN, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - ViSurfaceCreateInfoNN( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceProtectedMemoryProperties const &() const VULKAN_HPP_NOEXCEPT { - *this = rhs; + return *reinterpret_cast( this ); } - ViSurfaceCreateInfoNN& operator=( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceProtectedMemoryProperties &() VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return *reinterpret_cast( this ); } - ViSurfaceCreateInfoNN & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceProtectedMemoryProperties const & ) const = default; +#else + bool operator==( PhysicalDeviceProtectedMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( protectedNoFault == rhs.protectedNoFault ); } - ViSurfaceCreateInfoNN & setFlags( VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceProtectedMemoryProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - flags = flags_; - return *this; + return !operator==( rhs ); } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryProperties; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {}; + }; + static_assert( sizeof( PhysicalDeviceProtectedMemoryProperties ) == + sizeof( VkPhysicalDeviceProtectedMemoryProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - ViSurfaceCreateInfoNN & setWindow( void* window_ ) VULKAN_HPP_NOEXCEPT + template <> + struct CppType + { + using Type = PhysicalDeviceProtectedMemoryProperties; + }; + + struct PhysicalDevicePushDescriptorPropertiesKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDevicePushDescriptorPropertiesKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDevicePushDescriptorPropertiesKHR( uint32_t maxPushDescriptors_ = {} ) VULKAN_HPP_NOEXCEPT + : maxPushDescriptors( maxPushDescriptors_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDevicePushDescriptorPropertiesKHR( + PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDevicePushDescriptorPropertiesKHR( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDevicePushDescriptorPropertiesKHR( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDevicePushDescriptorPropertiesKHR & + operator=( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDevicePushDescriptorPropertiesKHR & + operator=( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - window = window_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkViSurfaceCreateInfoNN const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevicePushDescriptorPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkViSurfaceCreateInfoNN &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDevicePushDescriptorPropertiesKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( ViSurfaceCreateInfoNN const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDevicePushDescriptorPropertiesKHR const & ) const = default; +#else + bool operator==( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( window == rhs.window ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxPushDescriptors == rhs.maxPushDescriptors ); } - bool operator!=( ViSurfaceCreateInfoNN const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eViSurfaceCreateInfoNN; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags = {}; - void* window = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR; + void * pNext = {}; + uint32_t maxPushDescriptors = {}; }; - static_assert( sizeof( ViSurfaceCreateInfoNN ) == sizeof( VkViSurfaceCreateInfoNN ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_VI_NN*/ + static_assert( sizeof( PhysicalDevicePushDescriptorPropertiesKHR ) == + sizeof( VkPhysicalDevicePushDescriptorPropertiesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_WAYLAND_KHR + template <> + struct CppType + { + using Type = PhysicalDevicePushDescriptorPropertiesKHR; + }; - struct WaylandSurfaceCreateInfoKHR + struct PhysicalDeviceRayQueryFeaturesKHR { - VULKAN_HPP_CONSTEXPR WaylandSurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ = {}, - struct wl_display* display_ = {}, - struct wl_surface* surface_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , display( display_ ) - , surface( surface_ ) - {} + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceRayQueryFeaturesKHR; - VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR & operator=( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR ) - offsetof( WaylandSurfaceCreateInfoKHR, pNext ) ); - return *this; - } +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceRayQueryFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 rayQuery_ = {} ) VULKAN_HPP_NOEXCEPT + : rayQuery( rayQuery_ ) + {} - WaylandSurfaceCreateInfoKHR( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + VULKAN_HPP_CONSTEXPR + PhysicalDeviceRayQueryFeaturesKHR( PhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - WaylandSurfaceCreateInfoKHR& operator=( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + PhysicalDeviceRayQueryFeaturesKHR( VkPhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceRayQueryFeaturesKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - WaylandSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayQueryFeaturesKHR & + operator=( PhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - WaylandSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceRayQueryFeaturesKHR & operator=( VkPhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + *this = *reinterpret_cast( &rhs ); return *this; } - WaylandSurfaceCreateInfoKHR & setDisplay( struct wl_display* display_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceRayQueryFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - display = display_; + pNext = pNext_; return *this; } - WaylandSurfaceCreateInfoKHR & setSurface( struct wl_surface* surface_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceRayQueryFeaturesKHR & setRayQuery( VULKAN_HPP_NAMESPACE::Bool32 rayQuery_ ) VULKAN_HPP_NOEXCEPT { - surface = surface_; + rayQuery = rayQuery_; return *this; } - operator VkWaylandSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceRayQueryFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkWaylandSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceRayQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( WaylandSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceRayQueryFeaturesKHR const & ) const = default; +#else + bool operator==( PhysicalDeviceRayQueryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( display == rhs.display ) - && ( surface == rhs.surface ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( rayQuery == rhs.rayQuery ); } - bool operator!=( WaylandSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceRayQueryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWaylandSurfaceCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags = {}; - struct wl_display* display = {}; - struct wl_surface* surface = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayQueryFeaturesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 rayQuery = {}; }; - static_assert( sizeof( WaylandSurfaceCreateInfoKHR ) == sizeof( VkWaylandSurfaceCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ + static_assert( sizeof( PhysicalDeviceRayQueryFeaturesKHR ) == sizeof( VkPhysicalDeviceRayQueryFeaturesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_WIN32_KHR + template <> + struct CppType + { + using Type = PhysicalDeviceRayQueryFeaturesKHR; + }; - struct Win32KeyedMutexAcquireReleaseInfoKHR + struct PhysicalDeviceRayTracingPipelineFeaturesKHR { - VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoKHR( uint32_t acquireCount_ = {}, - const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ = {}, - const uint64_t* pAcquireKeys_ = {}, - const uint32_t* pAcquireTimeouts_ = {}, - uint32_t releaseCount_ = {}, - const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ = {}, - const uint64_t* pReleaseKeys_ = {} ) VULKAN_HPP_NOEXCEPT - : acquireCount( acquireCount_ ) - , pAcquireSyncs( pAcquireSyncs_ ) - , pAcquireKeys( pAcquireKeys_ ) - , pAcquireTimeouts( pAcquireTimeouts_ ) - , releaseCount( releaseCount_ ) - , pReleaseSyncs( pReleaseSyncs_ ) - , pReleaseKeys( pReleaseKeys_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelineFeaturesKHR( + VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipeline_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplay_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling_ = {} ) VULKAN_HPP_NOEXCEPT + : rayTracingPipeline( rayTracingPipeline_ ) + , rayTracingPipelineShaderGroupHandleCaptureReplay( rayTracingPipelineShaderGroupHandleCaptureReplay_ ) + , rayTracingPipelineShaderGroupHandleCaptureReplayMixed( rayTracingPipelineShaderGroupHandleCaptureReplayMixed_ ) + , rayTracingPipelineTraceRaysIndirect( rayTracingPipelineTraceRaysIndirect_ ) + , rayTraversalPrimitiveCulling( rayTraversalPrimitiveCulling_ ) {} - VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR & operator=( VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelineFeaturesKHR( + PhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceRayTracingPipelineFeaturesKHR( VkPhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceRayTracingPipelineFeaturesKHR( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelineFeaturesKHR & + operator=( PhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceRayTracingPipelineFeaturesKHR & + operator=( VkPhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR ) - offsetof( Win32KeyedMutexAcquireReleaseInfoKHR, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - Win32KeyedMutexAcquireReleaseInfoKHR( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceRayTracingPipelineFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - Win32KeyedMutexAcquireReleaseInfoKHR& operator=( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceRayTracingPipelineFeaturesKHR & + setRayTracingPipeline( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipeline_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + rayTracingPipeline = rayTracingPipeline_; return *this; } - Win32KeyedMutexAcquireReleaseInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTracingPipelineShaderGroupHandleCaptureReplay( + VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplay_ ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + rayTracingPipelineShaderGroupHandleCaptureReplay = rayTracingPipelineShaderGroupHandleCaptureReplay_; return *this; } - Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTracingPipelineShaderGroupHandleCaptureReplayMixed( + VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed_ ) VULKAN_HPP_NOEXCEPT { - acquireCount = acquireCount_; + rayTracingPipelineShaderGroupHandleCaptureReplayMixed = rayTracingPipelineShaderGroupHandleCaptureReplayMixed_; return *this; } - Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTracingPipelineTraceRaysIndirect( + VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect_ ) VULKAN_HPP_NOEXCEPT { - pAcquireSyncs = pAcquireSyncs_; + rayTracingPipelineTraceRaysIndirect = rayTracingPipelineTraceRaysIndirect_; return *this; } - Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireKeys( const uint64_t* pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceRayTracingPipelineFeaturesKHR & + setRayTraversalPrimitiveCulling( VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling_ ) VULKAN_HPP_NOEXCEPT { - pAcquireKeys = pAcquireKeys_; + rayTraversalPrimitiveCulling = rayTraversalPrimitiveCulling_; return *this; } - Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireTimeouts( const uint32_t* pAcquireTimeouts_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceRayTracingPipelineFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT { - pAcquireTimeouts = pAcquireTimeouts_; - return *this; + return *reinterpret_cast( this ); } - Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceRayTracingPipelineFeaturesKHR &() VULKAN_HPP_NOEXCEPT { - releaseCount = releaseCount_; - return *this; + return *reinterpret_cast( this ); } - Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceRayTracingPipelineFeaturesKHR const & ) const = default; +#else + bool operator==( PhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - pReleaseSyncs = pReleaseSyncs_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( rayTracingPipeline == rhs.rayTracingPipeline ) && + ( rayTracingPipelineShaderGroupHandleCaptureReplay == + rhs.rayTracingPipelineShaderGroupHandleCaptureReplay ) && + ( rayTracingPipelineShaderGroupHandleCaptureReplayMixed == + rhs.rayTracingPipelineShaderGroupHandleCaptureReplayMixed ) && + ( rayTracingPipelineTraceRaysIndirect == rhs.rayTracingPipelineTraceRaysIndirect ) && + ( rayTraversalPrimitiveCulling == rhs.rayTraversalPrimitiveCulling ); } - Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseKeys( const uint64_t* pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - pReleaseKeys = pReleaseKeys_; + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipeline = {}; + VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplay = {}; + VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed = {}; + VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect = {}; + VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling = {}; + }; + static_assert( sizeof( PhysicalDeviceRayTracingPipelineFeaturesKHR ) == + sizeof( VkPhysicalDeviceRayTracingPipelineFeaturesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceRayTracingPipelineFeaturesKHR; + }; + + struct PhysicalDeviceRayTracingPipelinePropertiesKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceRayTracingPipelinePropertiesKHR( uint32_t shaderGroupHandleSize_ = {}, + uint32_t maxRayRecursionDepth_ = {}, + uint32_t maxShaderGroupStride_ = {}, + uint32_t shaderGroupBaseAlignment_ = {}, + uint32_t shaderGroupHandleCaptureReplaySize_ = {}, + uint32_t maxRayDispatchInvocationCount_ = {}, + uint32_t shaderGroupHandleAlignment_ = {}, + uint32_t maxRayHitAttributeSize_ = {} ) VULKAN_HPP_NOEXCEPT + : shaderGroupHandleSize( shaderGroupHandleSize_ ) + , maxRayRecursionDepth( maxRayRecursionDepth_ ) + , maxShaderGroupStride( maxShaderGroupStride_ ) + , shaderGroupBaseAlignment( shaderGroupBaseAlignment_ ) + , shaderGroupHandleCaptureReplaySize( shaderGroupHandleCaptureReplaySize_ ) + , maxRayDispatchInvocationCount( maxRayDispatchInvocationCount_ ) + , shaderGroupHandleAlignment( shaderGroupHandleAlignment_ ) + , maxRayHitAttributeSize( maxRayHitAttributeSize_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelinePropertiesKHR( + PhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceRayTracingPipelinePropertiesKHR( VkPhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceRayTracingPipelinePropertiesKHR( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPipelinePropertiesKHR & + operator=( PhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceRayTracingPipelinePropertiesKHR & + operator=( VkPhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkWin32KeyedMutexAcquireReleaseInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceRayTracingPipelinePropertiesKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkWin32KeyedMutexAcquireReleaseInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceRayTracingPipelinePropertiesKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( Win32KeyedMutexAcquireReleaseInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceRayTracingPipelinePropertiesKHR const & ) const = default; +#else + bool operator==( PhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( acquireCount == rhs.acquireCount ) - && ( pAcquireSyncs == rhs.pAcquireSyncs ) - && ( pAcquireKeys == rhs.pAcquireKeys ) - && ( pAcquireTimeouts == rhs.pAcquireTimeouts ) - && ( releaseCount == rhs.releaseCount ) - && ( pReleaseSyncs == rhs.pReleaseSyncs ) - && ( pReleaseKeys == rhs.pReleaseKeys ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( shaderGroupHandleSize == rhs.shaderGroupHandleSize ) && + ( maxRayRecursionDepth == rhs.maxRayRecursionDepth ) && + ( maxShaderGroupStride == rhs.maxShaderGroupStride ) && + ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment ) && + ( shaderGroupHandleCaptureReplaySize == rhs.shaderGroupHandleCaptureReplaySize ) && + ( maxRayDispatchInvocationCount == rhs.maxRayDispatchInvocationCount ) && + ( shaderGroupHandleAlignment == rhs.shaderGroupHandleAlignment ) && + ( maxRayHitAttributeSize == rhs.maxRayHitAttributeSize ); } - bool operator!=( Win32KeyedMutexAcquireReleaseInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR; - const void* pNext = {}; - uint32_t acquireCount = {}; - const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs = {}; - const uint64_t* pAcquireKeys = {}; - const uint32_t* pAcquireTimeouts = {}; - uint32_t releaseCount = {}; - const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs = {}; - const uint64_t* pReleaseKeys = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR; + void * pNext = {}; + uint32_t shaderGroupHandleSize = {}; + uint32_t maxRayRecursionDepth = {}; + uint32_t maxShaderGroupStride = {}; + uint32_t shaderGroupBaseAlignment = {}; + uint32_t shaderGroupHandleCaptureReplaySize = {}; + uint32_t maxRayDispatchInvocationCount = {}; + uint32_t shaderGroupHandleAlignment = {}; + uint32_t maxRayHitAttributeSize = {}; }; - static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoKHR ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + static_assert( sizeof( PhysicalDeviceRayTracingPipelinePropertiesKHR ) == + sizeof( VkPhysicalDeviceRayTracingPipelinePropertiesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_WIN32_KHR + template <> + struct CppType + { + using Type = PhysicalDeviceRayTracingPipelinePropertiesKHR; + }; - struct Win32KeyedMutexAcquireReleaseInfoNV + struct PhysicalDeviceRayTracingPropertiesNV { - VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoNV( uint32_t acquireCount_ = {}, - const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ = {}, - const uint64_t* pAcquireKeys_ = {}, - const uint32_t* pAcquireTimeoutMilliseconds_ = {}, - uint32_t releaseCount_ = {}, - const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ = {}, - const uint64_t* pReleaseKeys_ = {} ) VULKAN_HPP_NOEXCEPT - : acquireCount( acquireCount_ ) - , pAcquireSyncs( pAcquireSyncs_ ) - , pAcquireKeys( pAcquireKeys_ ) - , pAcquireTimeoutMilliseconds( pAcquireTimeoutMilliseconds_ ) - , releaseCount( releaseCount_ ) - , pReleaseSyncs( pReleaseSyncs_ ) - , pReleaseKeys( pReleaseKeys_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceRayTracingPropertiesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceRayTracingPropertiesNV( uint32_t shaderGroupHandleSize_ = {}, + uint32_t maxRecursionDepth_ = {}, + uint32_t maxShaderGroupStride_ = {}, + uint32_t shaderGroupBaseAlignment_ = {}, + uint64_t maxGeometryCount_ = {}, + uint64_t maxInstanceCount_ = {}, + uint64_t maxTriangleCount_ = {}, + uint32_t maxDescriptorSetAccelerationStructures_ = {} ) VULKAN_HPP_NOEXCEPT + : shaderGroupHandleSize( shaderGroupHandleSize_ ) + , maxRecursionDepth( maxRecursionDepth_ ) + , maxShaderGroupStride( maxShaderGroupStride_ ) + , shaderGroupBaseAlignment( shaderGroupBaseAlignment_ ) + , maxGeometryCount( maxGeometryCount_ ) + , maxInstanceCount( maxInstanceCount_ ) + , maxTriangleCount( maxTriangleCount_ ) + , maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ ) {} - VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV & operator=( VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV ) - offsetof( Win32KeyedMutexAcquireReleaseInfoNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPropertiesNV( PhysicalDeviceRayTracingPropertiesNV const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - Win32KeyedMutexAcquireReleaseInfoNV( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceRayTracingPropertiesNV( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceRayTracingPropertiesNV( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - Win32KeyedMutexAcquireReleaseInfoNV& operator=( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRayTracingPropertiesNV & + operator=( PhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - Win32KeyedMutexAcquireReleaseInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceRayTracingPropertiesNV & + operator=( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - Win32KeyedMutexAcquireReleaseInfoNV & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceRayTracingPropertiesNV const &() const VULKAN_HPP_NOEXCEPT { - acquireCount = acquireCount_; - return *this; + return *reinterpret_cast( this ); } - Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceRayTracingPropertiesNV &() VULKAN_HPP_NOEXCEPT { - pAcquireSyncs = pAcquireSyncs_; - return *this; + return *reinterpret_cast( this ); } - Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireKeys( const uint64_t* pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceRayTracingPropertiesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceRayTracingPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - pAcquireKeys = pAcquireKeys_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( shaderGroupHandleSize == rhs.shaderGroupHandleSize ) && ( maxRecursionDepth == rhs.maxRecursionDepth ) && + ( maxShaderGroupStride == rhs.maxShaderGroupStride ) && + ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment ) && + ( maxGeometryCount == rhs.maxGeometryCount ) && ( maxInstanceCount == rhs.maxInstanceCount ) && + ( maxTriangleCount == rhs.maxTriangleCount ) && + ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures ); } - Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireTimeoutMilliseconds( const uint32_t* pAcquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceRayTracingPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - pAcquireTimeoutMilliseconds = pAcquireTimeoutMilliseconds_; - return *this; + return !operator==( rhs ); } +#endif - Win32KeyedMutexAcquireReleaseInfoNV & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPropertiesNV; + void * pNext = {}; + uint32_t shaderGroupHandleSize = {}; + uint32_t maxRecursionDepth = {}; + uint32_t maxShaderGroupStride = {}; + uint32_t shaderGroupBaseAlignment = {}; + uint64_t maxGeometryCount = {}; + uint64_t maxInstanceCount = {}; + uint64_t maxTriangleCount = {}; + uint32_t maxDescriptorSetAccelerationStructures = {}; + }; + static_assert( sizeof( PhysicalDeviceRayTracingPropertiesNV ) == sizeof( VkPhysicalDeviceRayTracingPropertiesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceRayTracingPropertiesNV; + }; + + struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceRepresentativeFragmentTestFeaturesNV( + VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ = {} ) VULKAN_HPP_NOEXCEPT + : representativeFragmentTest( representativeFragmentTest_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceRepresentativeFragmentTestFeaturesNV( + PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceRepresentativeFragmentTestFeaturesNV( + VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceRepresentativeFragmentTestFeaturesNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRepresentativeFragmentTestFeaturesNV & + operator=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceRepresentativeFragmentTestFeaturesNV & + operator=( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT { - releaseCount = releaseCount_; + *this = + *reinterpret_cast( &rhs ); return *this; } - Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - pReleaseSyncs = pReleaseSyncs_; + pNext = pNext_; return *this; } - Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseKeys( const uint64_t* pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceRepresentativeFragmentTestFeaturesNV & + setRepresentativeFragmentTest( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ ) VULKAN_HPP_NOEXCEPT { - pReleaseKeys = pReleaseKeys_; + representativeFragmentTest = representativeFragmentTest_; return *this; } - operator VkWin32KeyedMutexAcquireReleaseInfoNV const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkWin32KeyedMutexAcquireReleaseInfoNV &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( Win32KeyedMutexAcquireReleaseInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( acquireCount == rhs.acquireCount ) - && ( pAcquireSyncs == rhs.pAcquireSyncs ) - && ( pAcquireKeys == rhs.pAcquireKeys ) - && ( pAcquireTimeoutMilliseconds == rhs.pAcquireTimeoutMilliseconds ) - && ( releaseCount == rhs.releaseCount ) - && ( pReleaseSyncs == rhs.pReleaseSyncs ) - && ( pReleaseKeys == rhs.pReleaseKeys ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( representativeFragmentTest == rhs.representativeFragmentTest ); } - bool operator!=( Win32KeyedMutexAcquireReleaseInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV; - const void* pNext = {}; - uint32_t acquireCount = {}; - const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs = {}; - const uint64_t* pAcquireKeys = {}; - const uint32_t* pAcquireTimeoutMilliseconds = {}; - uint32_t releaseCount = {}; - const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs = {}; - const uint64_t* pReleaseKeys = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest = {}; }; - static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoNV ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + static_assert( sizeof( PhysicalDeviceRepresentativeFragmentTestFeaturesNV ) == + sizeof( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_WIN32_KHR + template <> + struct CppType + { + using Type = PhysicalDeviceRepresentativeFragmentTestFeaturesNV; + }; - struct Win32SurfaceCreateInfoKHR + struct PhysicalDeviceRobustness2FeaturesEXT { - VULKAN_HPP_CONSTEXPR Win32SurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ = {}, - HINSTANCE hinstance_ = {}, - HWND hwnd_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , hinstance( hinstance_ ) - , hwnd( hwnd_ ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceRobustness2FeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceRobustness2FeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor_ = {} ) VULKAN_HPP_NOEXCEPT + : robustBufferAccess2( robustBufferAccess2_ ) + , robustImageAccess2( robustImageAccess2_ ) + , nullDescriptor( nullDescriptor_ ) {} - VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR & operator=( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR ) - offsetof( Win32SurfaceCreateInfoKHR, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2FeaturesEXT( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - Win32SurfaceCreateInfoKHR( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceRobustness2FeaturesEXT( VkPhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceRobustness2FeaturesEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRobustness2FeaturesEXT & + operator=( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - Win32SurfaceCreateInfoKHR& operator=( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceRobustness2FeaturesEXT & + operator=( VkPhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + *this = *reinterpret_cast( &rhs ); return *this; } - Win32SurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceRobustness2FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { pNext = pNext_; return *this; } - Win32SurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceRobustness2FeaturesEXT & + setRobustBufferAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + robustBufferAccess2 = robustBufferAccess2_; return *this; } - Win32SurfaceCreateInfoKHR & setHinstance( HINSTANCE hinstance_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceRobustness2FeaturesEXT & + setRobustImageAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2_ ) VULKAN_HPP_NOEXCEPT { - hinstance = hinstance_; + robustImageAccess2 = robustImageAccess2_; return *this; } - Win32SurfaceCreateInfoKHR & setHwnd( HWND hwnd_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceRobustness2FeaturesEXT & + setNullDescriptor( VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor_ ) VULKAN_HPP_NOEXCEPT { - hwnd = hwnd_; + nullDescriptor = nullDescriptor_; return *this; } - operator VkWin32SurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceRobustness2FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkWin32SurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceRobustness2FeaturesEXT &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( Win32SurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceRobustness2FeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( hinstance == rhs.hinstance ) - && ( hwnd == rhs.hwnd ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( robustBufferAccess2 == rhs.robustBufferAccess2 ) && + ( robustImageAccess2 == rhs.robustImageAccess2 ) && ( nullDescriptor == rhs.nullDescriptor ); } - bool operator!=( Win32SurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32SurfaceCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags = {}; - HINSTANCE hinstance = {}; - HWND hwnd = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRobustness2FeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2 = {}; + VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2 = {}; + VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor = {}; }; - static_assert( sizeof( Win32SurfaceCreateInfoKHR ) == sizeof( VkWin32SurfaceCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + static_assert( sizeof( PhysicalDeviceRobustness2FeaturesEXT ) == sizeof( VkPhysicalDeviceRobustness2FeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct WriteDescriptorSet + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR WriteDescriptorSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ = {}, - uint32_t dstBinding_ = {}, - uint32_t dstArrayElement_ = {}, - uint32_t descriptorCount_ = {}, - VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, - const VULKAN_HPP_NAMESPACE::DescriptorImageInfo* pImageInfo_ = {}, - const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo* pBufferInfo_ = {}, - const VULKAN_HPP_NAMESPACE::BufferView* pTexelBufferView_ = {} ) VULKAN_HPP_NOEXCEPT - : dstSet( dstSet_ ) - , dstBinding( dstBinding_ ) - , dstArrayElement( dstArrayElement_ ) - , descriptorCount( descriptorCount_ ) - , descriptorType( descriptorType_ ) - , pImageInfo( pImageInfo_ ) - , pBufferInfo( pBufferInfo_ ) - , pTexelBufferView( pTexelBufferView_ ) + using Type = PhysicalDeviceRobustness2FeaturesEXT; + }; + + struct PhysicalDeviceRobustness2PropertiesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceRobustness2PropertiesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2PropertiesEXT( + VULKAN_HPP_NAMESPACE::DeviceSize robustStorageBufferAccessSizeAlignment_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize robustUniformBufferAccessSizeAlignment_ = {} ) VULKAN_HPP_NOEXCEPT + : robustStorageBufferAccessSizeAlignment( robustStorageBufferAccessSizeAlignment_ ) + , robustUniformBufferAccessSizeAlignment( robustUniformBufferAccessSizeAlignment_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2PropertiesEXT( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceRobustness2PropertiesEXT( VkPhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceRobustness2PropertiesEXT( + *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceRobustness2PropertiesEXT & + operator=( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::WriteDescriptorSet & operator=( VULKAN_HPP_NAMESPACE::WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceRobustness2PropertiesEXT & + operator=( VkPhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::WriteDescriptorSet ) - offsetof( WriteDescriptorSet, pNext ) ); + *this = *reinterpret_cast( &rhs ); return *this; } - WriteDescriptorSet( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceRobustness2PropertiesEXT const &() const VULKAN_HPP_NOEXCEPT { - *this = rhs; + return *reinterpret_cast( this ); } - WriteDescriptorSet& operator=( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceRobustness2PropertiesEXT &() VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); - return *this; + return *reinterpret_cast( this ); } - WriteDescriptorSet & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceRobustness2PropertiesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( robustStorageBufferAccessSizeAlignment == rhs.robustStorageBufferAccessSizeAlignment ) && + ( robustUniformBufferAccessSizeAlignment == rhs.robustUniformBufferAccessSizeAlignment ); } - WriteDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - dstSet = dstSet_; - return *this; + return !operator==( rhs ); } +#endif - WriteDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT - { - dstBinding = dstBinding_; - return *this; - } + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRobustness2PropertiesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceSize robustStorageBufferAccessSizeAlignment = {}; + VULKAN_HPP_NAMESPACE::DeviceSize robustUniformBufferAccessSizeAlignment = {}; + }; + static_assert( sizeof( PhysicalDeviceRobustness2PropertiesEXT ) == sizeof( VkPhysicalDeviceRobustness2PropertiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - WriteDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT + template <> + struct CppType + { + using Type = PhysicalDeviceRobustness2PropertiesEXT; + }; + + struct PhysicalDeviceSampleLocationsPropertiesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSampleLocationsPropertiesEXT( + VULKAN_HPP_NAMESPACE::SampleCountFlags sampleLocationSampleCounts_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize_ = {}, + std::array const & sampleLocationCoordinateRange_ = {}, + uint32_t sampleLocationSubPixelBits_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 variableSampleLocations_ = {} ) VULKAN_HPP_NOEXCEPT + : sampleLocationSampleCounts( sampleLocationSampleCounts_ ) + , maxSampleLocationGridSize( maxSampleLocationGridSize_ ) + , sampleLocationCoordinateRange( sampleLocationCoordinateRange_ ) + , sampleLocationSubPixelBits( sampleLocationSubPixelBits_ ) + , variableSampleLocations( variableSampleLocations_ ) + {} + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSampleLocationsPropertiesEXT( + PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceSampleLocationsPropertiesEXT( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceSampleLocationsPropertiesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSampleLocationsPropertiesEXT & + operator=( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceSampleLocationsPropertiesEXT & + operator=( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - dstArrayElement = dstArrayElement_; + *this = *reinterpret_cast( &rhs ); return *this; } - WriteDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceSampleLocationsPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT { - descriptorCount = descriptorCount_; - return *this; + return *reinterpret_cast( this ); } - WriteDescriptorSet & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceSampleLocationsPropertiesEXT &() VULKAN_HPP_NOEXCEPT { - descriptorType = descriptorType_; - return *this; + return *reinterpret_cast( this ); } - WriteDescriptorSet & setPImageInfo( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo* pImageInfo_ ) VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceSampleLocationsPropertiesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - pImageInfo = pImageInfo_; - return *this; + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( sampleLocationSampleCounts == rhs.sampleLocationSampleCounts ) && + ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize ) && + ( sampleLocationCoordinateRange == rhs.sampleLocationCoordinateRange ) && + ( sampleLocationSubPixelBits == rhs.sampleLocationSubPixelBits ) && + ( variableSampleLocations == rhs.variableSampleLocations ); } - WriteDescriptorSet & setPBufferInfo( const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo* pBufferInfo_ ) VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - pBufferInfo = pBufferInfo_; - return *this; + return !operator==( rhs ); } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::SampleCountFlags sampleLocationSampleCounts = {}; + VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D sampleLocationCoordinateRange = {}; + uint32_t sampleLocationSubPixelBits = {}; + VULKAN_HPP_NAMESPACE::Bool32 variableSampleLocations = {}; + }; + static_assert( sizeof( PhysicalDeviceSampleLocationsPropertiesEXT ) == + sizeof( VkPhysicalDeviceSampleLocationsPropertiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceSampleLocationsPropertiesEXT; + }; + + struct PhysicalDeviceSamplerFilterMinmaxProperties + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerFilterMinmaxProperties( + VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping_ = {} ) VULKAN_HPP_NOEXCEPT + : filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ ) + , filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerFilterMinmaxProperties( + PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceSamplerFilterMinmaxProperties( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceSamplerFilterMinmaxProperties( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - WriteDescriptorSet & setPTexelBufferView( const VULKAN_HPP_NAMESPACE::BufferView* pTexelBufferView_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSamplerFilterMinmaxProperties & + operator=( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceSamplerFilterMinmaxProperties & + operator=( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - pTexelBufferView = pTexelBufferView_; + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkWriteDescriptorSet const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceSamplerFilterMinmaxProperties const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkWriteDescriptorSet &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceSamplerFilterMinmaxProperties &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( WriteDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceSamplerFilterMinmaxProperties const & ) const = default; +#else + bool operator==( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( dstSet == rhs.dstSet ) - && ( dstBinding == rhs.dstBinding ) - && ( dstArrayElement == rhs.dstArrayElement ) - && ( descriptorCount == rhs.descriptorCount ) - && ( descriptorType == rhs.descriptorType ) - && ( pImageInfo == rhs.pImageInfo ) - && ( pBufferInfo == rhs.pBufferInfo ) - && ( pTexelBufferView == rhs.pTexelBufferView ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats ) && + ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping ); } - bool operator!=( WriteDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSet; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {}; - uint32_t dstBinding = {}; - uint32_t dstArrayElement = {}; - uint32_t descriptorCount = {}; - VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler; - const VULKAN_HPP_NAMESPACE::DescriptorImageInfo* pImageInfo = {}; - const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo* pBufferInfo = {}; - const VULKAN_HPP_NAMESPACE::BufferView* pTexelBufferView = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {}; + VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {}; }; - static_assert( sizeof( WriteDescriptorSet ) == sizeof( VkWriteDescriptorSet ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceSamplerFilterMinmaxProperties ) == + sizeof( VkPhysicalDeviceSamplerFilterMinmaxProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct WriteDescriptorSetAccelerationStructureNV + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureNV( uint32_t accelerationStructureCount_ = {}, - const VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructures_ = {} ) VULKAN_HPP_NOEXCEPT - : accelerationStructureCount( accelerationStructureCount_ ) - , pAccelerationStructures( pAccelerationStructures_ ) + using Type = PhysicalDeviceSamplerFilterMinmaxProperties; + }; + using PhysicalDeviceSamplerFilterMinmaxPropertiesEXT = PhysicalDeviceSamplerFilterMinmaxProperties; + + struct PhysicalDeviceSamplerYcbcrConversionFeatures + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerYcbcrConversionFeatures( + VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ = {} ) VULKAN_HPP_NOEXCEPT + : samplerYcbcrConversion( samplerYcbcrConversion_ ) {} - VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV & operator=( VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV ) - offsetof( WriteDescriptorSetAccelerationStructureNV, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerYcbcrConversionFeatures( + PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - WriteDescriptorSetAccelerationStructureNV( VkWriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceSamplerYcbcrConversionFeatures( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceSamplerYcbcrConversionFeatures( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - WriteDescriptorSetAccelerationStructureNV& operator=( VkWriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSamplerYcbcrConversionFeatures & + operator=( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - WriteDescriptorSetAccelerationStructureNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceSamplerYcbcrConversionFeatures & + operator=( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - WriteDescriptorSetAccelerationStructureNV & setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceSamplerYcbcrConversionFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - accelerationStructureCount = accelerationStructureCount_; + pNext = pNext_; return *this; } - WriteDescriptorSetAccelerationStructureNV & setPAccelerationStructures( const VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructures_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceSamplerYcbcrConversionFeatures & + setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT { - pAccelerationStructures = pAccelerationStructures_; + samplerYcbcrConversion = samplerYcbcrConversion_; return *this; } - operator VkWriteDescriptorSetAccelerationStructureNV const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkWriteDescriptorSetAccelerationStructureNV &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceSamplerYcbcrConversionFeatures &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( WriteDescriptorSetAccelerationStructureNV const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceSamplerYcbcrConversionFeatures const & ) const = default; +#else + bool operator==( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( accelerationStructureCount == rhs.accelerationStructureCount ) - && ( pAccelerationStructures == rhs.pAccelerationStructures ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( samplerYcbcrConversion == rhs.samplerYcbcrConversion ); } - bool operator!=( WriteDescriptorSetAccelerationStructureNV const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetAccelerationStructureNV; - const void* pNext = {}; - uint32_t accelerationStructureCount = {}; - const VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructures = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {}; }; - static_assert( sizeof( WriteDescriptorSetAccelerationStructureNV ) == sizeof( VkWriteDescriptorSetAccelerationStructureNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceSamplerYcbcrConversionFeatures ) == + sizeof( VkPhysicalDeviceSamplerYcbcrConversionFeatures ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - struct WriteDescriptorSetInlineUniformBlockEXT + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR WriteDescriptorSetInlineUniformBlockEXT( uint32_t dataSize_ = {}, - const void* pData_ = {} ) VULKAN_HPP_NOEXCEPT - : dataSize( dataSize_ ) - , pData( pData_ ) + using Type = PhysicalDeviceSamplerYcbcrConversionFeatures; + }; + using PhysicalDeviceSamplerYcbcrConversionFeaturesKHR = PhysicalDeviceSamplerYcbcrConversionFeatures; + + struct PhysicalDeviceScalarBlockLayoutFeatures + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceScalarBlockLayoutFeatures; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceScalarBlockLayoutFeatures( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ = {} ) + VULKAN_HPP_NOEXCEPT : scalarBlockLayout( scalarBlockLayout_ ) {} - VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT & operator=( VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlockEXT ) - offsetof( WriteDescriptorSetInlineUniformBlockEXT, pNext ) ); - return *this; - } + VULKAN_HPP_CONSTEXPR PhysicalDeviceScalarBlockLayoutFeatures( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - WriteDescriptorSetInlineUniformBlockEXT( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } + PhysicalDeviceScalarBlockLayoutFeatures( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceScalarBlockLayoutFeatures( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - WriteDescriptorSetInlineUniformBlockEXT& operator=( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast(&rhs); - return *this; - } + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceScalarBlockLayoutFeatures & + operator=( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - WriteDescriptorSetInlineUniformBlockEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceScalarBlockLayoutFeatures & + operator=( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + *this = *reinterpret_cast( &rhs ); return *this; } - WriteDescriptorSetInlineUniformBlockEXT & setDataSize( uint32_t dataSize_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceScalarBlockLayoutFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - dataSize = dataSize_; + pNext = pNext_; return *this; } - WriteDescriptorSetInlineUniformBlockEXT & setPData( const void* pData_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceScalarBlockLayoutFeatures & + setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT { - pData = pData_; + scalarBlockLayout = scalarBlockLayout_; return *this; } - operator VkWriteDescriptorSetInlineUniformBlockEXT const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceScalarBlockLayoutFeatures const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkWriteDescriptorSetInlineUniformBlockEXT &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceScalarBlockLayoutFeatures &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( WriteDescriptorSetInlineUniformBlockEXT const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceScalarBlockLayoutFeatures const & ) const = default; +#else + bool operator==( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( dataSize == rhs.dataSize ) - && ( pData == rhs.pData ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( scalarBlockLayout == rhs.scalarBlockLayout ); } - bool operator!=( WriteDescriptorSetInlineUniformBlockEXT const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetInlineUniformBlockEXT; - const void* pNext = {}; - uint32_t dataSize = {}; - const void* pData = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceScalarBlockLayoutFeatures; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {}; }; - static_assert( sizeof( WriteDescriptorSetInlineUniformBlockEXT ) == sizeof( VkWriteDescriptorSetInlineUniformBlockEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + static_assert( sizeof( PhysicalDeviceScalarBlockLayoutFeatures ) == + sizeof( VkPhysicalDeviceScalarBlockLayoutFeatures ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_XCB_KHR - - struct XcbSurfaceCreateInfoKHR + template <> + struct CppType { - VULKAN_HPP_CONSTEXPR XcbSurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ = {}, - xcb_connection_t* connection_ = {}, - xcb_window_t window_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , connection( connection_ ) - , window( window_ ) + using Type = PhysicalDeviceScalarBlockLayoutFeatures; + }; + using PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures; + + struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceSeparateDepthStencilLayoutsFeatures( + VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ = {} ) VULKAN_HPP_NOEXCEPT + : separateDepthStencilLayouts( separateDepthStencilLayouts_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceSeparateDepthStencilLayoutsFeatures( + PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceSeparateDepthStencilLayoutsFeatures( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceSeparateDepthStencilLayoutsFeatures( + *reinterpret_cast( &rhs ) ) {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSeparateDepthStencilLayoutsFeatures & + operator=( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR & operator=( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceSeparateDepthStencilLayoutsFeatures & + operator=( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR ) - offsetof( XcbSurfaceCreateInfoKHR, pNext ) ); + *this = + *reinterpret_cast( &rhs ); return *this; } - XcbSurfaceCreateInfoKHR( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceSeparateDepthStencilLayoutsFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + pNext = pNext_; + return *this; } - XcbSurfaceCreateInfoKHR& operator=( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceSeparateDepthStencilLayoutsFeatures & + setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + separateDepthStencilLayouts = separateDepthStencilLayouts_; return *this; } - XcbSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const &() const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & ) const = default; +#else + bool operator==( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts ); + } + + bool operator!=( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {}; + }; + static_assert( sizeof( PhysicalDeviceSeparateDepthStencilLayoutsFeatures ) == + sizeof( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceSeparateDepthStencilLayoutsFeatures; + }; + using PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = PhysicalDeviceSeparateDepthStencilLayoutsFeatures; + + struct PhysicalDeviceShaderAtomicFloatFeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloatFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd_ = {} ) VULKAN_HPP_NOEXCEPT + : shaderBufferFloat32Atomics( shaderBufferFloat32Atomics_ ) + , shaderBufferFloat32AtomicAdd( shaderBufferFloat32AtomicAdd_ ) + , shaderBufferFloat64Atomics( shaderBufferFloat64Atomics_ ) + , shaderBufferFloat64AtomicAdd( shaderBufferFloat64AtomicAdd_ ) + , shaderSharedFloat32Atomics( shaderSharedFloat32Atomics_ ) + , shaderSharedFloat32AtomicAdd( shaderSharedFloat32AtomicAdd_ ) + , shaderSharedFloat64Atomics( shaderSharedFloat64Atomics_ ) + , shaderSharedFloat64AtomicAdd( shaderSharedFloat64AtomicAdd_ ) + , shaderImageFloat32Atomics( shaderImageFloat32Atomics_ ) + , shaderImageFloat32AtomicAdd( shaderImageFloat32AtomicAdd_ ) + , sparseImageFloat32Atomics( sparseImageFloat32Atomics_ ) + , sparseImageFloat32AtomicAdd( sparseImageFloat32AtomicAdd_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloatFeaturesEXT( + PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceShaderAtomicFloatFeaturesEXT( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceShaderAtomicFloatFeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicFloatFeaturesEXT & + operator=( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceShaderAtomicFloatFeaturesEXT & + operator=( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); return *this; } - XcbSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceShaderAtomicFloatFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + pNext = pNext_; return *this; } - XcbSurfaceCreateInfoKHR & setConnection( xcb_connection_t* connection_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceShaderAtomicFloatFeaturesEXT & + setShaderBufferFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT { - connection = connection_; + shaderBufferFloat32Atomics = shaderBufferFloat32Atomics_; return *this; } - XcbSurfaceCreateInfoKHR & setWindow( xcb_window_t window_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceShaderAtomicFloatFeaturesEXT & + setShaderBufferFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT { - window = window_; + shaderBufferFloat32AtomicAdd = shaderBufferFloat32AtomicAdd_; return *this; } - operator VkXcbSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT + PhysicalDeviceShaderAtomicFloatFeaturesEXT & + setShaderBufferFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + shaderBufferFloat64Atomics = shaderBufferFloat64Atomics_; + return *this; } - operator VkXcbSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT + PhysicalDeviceShaderAtomicFloatFeaturesEXT & + setShaderBufferFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + shaderBufferFloat64AtomicAdd = shaderBufferFloat64AtomicAdd_; + return *this; } - bool operator==( XcbSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + PhysicalDeviceShaderAtomicFloatFeaturesEXT & + setShaderSharedFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( connection == rhs.connection ) - && ( window == rhs.window ); + shaderSharedFloat32Atomics = shaderSharedFloat32Atomics_; + return *this; } - bool operator!=( XcbSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + PhysicalDeviceShaderAtomicFloatFeaturesEXT & + setShaderSharedFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT { - return !operator==( rhs ); + shaderSharedFloat32AtomicAdd = shaderSharedFloat32AtomicAdd_; + return *this; } - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXcbSurfaceCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags = {}; - xcb_connection_t* connection = {}; - xcb_window_t window = {}; - }; - static_assert( sizeof( XcbSurfaceCreateInfoKHR ) == sizeof( VkXcbSurfaceCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_XCB_KHR*/ + PhysicalDeviceShaderAtomicFloatFeaturesEXT & + setShaderSharedFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT + { + shaderSharedFloat64Atomics = shaderSharedFloat64Atomics_; + return *this; + } -#ifdef VK_USE_PLATFORM_XLIB_KHR + PhysicalDeviceShaderAtomicFloatFeaturesEXT & + setShaderSharedFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT + { + shaderSharedFloat64AtomicAdd = shaderSharedFloat64AtomicAdd_; + return *this; + } - struct XlibSurfaceCreateInfoKHR - { - VULKAN_HPP_CONSTEXPR XlibSurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ = {}, - Display* dpy_ = {}, - Window window_ = {} ) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - , dpy( dpy_ ) - , window( window_ ) - {} + PhysicalDeviceShaderAtomicFloatFeaturesEXT & + setShaderImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT + { + shaderImageFloat32Atomics = shaderImageFloat32Atomics_; + return *this; + } - VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR & operator=( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceShaderAtomicFloatFeaturesEXT & + setShaderImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT { - memcpy( &pNext, &rhs.pNext, sizeof( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR ) - offsetof( XlibSurfaceCreateInfoKHR, pNext ) ); + shaderImageFloat32AtomicAdd = shaderImageFloat32AtomicAdd_; return *this; } - XlibSurfaceCreateInfoKHR( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceShaderAtomicFloatFeaturesEXT & + setSparseImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT { - *this = rhs; + sparseImageFloat32Atomics = sparseImageFloat32Atomics_; + return *this; } - XlibSurfaceCreateInfoKHR& operator=( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceShaderAtomicFloatFeaturesEXT & + setSparseImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast(&rhs); + sparseImageFloat32AtomicAdd = sparseImageFloat32AtomicAdd_; return *this; } - XlibSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - pNext = pNext_; + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( shaderBufferFloat32Atomics == rhs.shaderBufferFloat32Atomics ) && + ( shaderBufferFloat32AtomicAdd == rhs.shaderBufferFloat32AtomicAdd ) && + ( shaderBufferFloat64Atomics == rhs.shaderBufferFloat64Atomics ) && + ( shaderBufferFloat64AtomicAdd == rhs.shaderBufferFloat64AtomicAdd ) && + ( shaderSharedFloat32Atomics == rhs.shaderSharedFloat32Atomics ) && + ( shaderSharedFloat32AtomicAdd == rhs.shaderSharedFloat32AtomicAdd ) && + ( shaderSharedFloat64Atomics == rhs.shaderSharedFloat64Atomics ) && + ( shaderSharedFloat64AtomicAdd == rhs.shaderSharedFloat64AtomicAdd ) && + ( shaderImageFloat32Atomics == rhs.shaderImageFloat32Atomics ) && + ( shaderImageFloat32AtomicAdd == rhs.shaderImageFloat32AtomicAdd ) && + ( sparseImageFloat32Atomics == rhs.sparseImageFloat32Atomics ) && + ( sparseImageFloat32AtomicAdd == rhs.sparseImageFloat32AtomicAdd ); + } + + bool operator!=( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd = {}; + VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics = {}; + VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd = {}; + }; + static_assert( sizeof( PhysicalDeviceShaderAtomicFloatFeaturesEXT ) == + sizeof( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceShaderAtomicFloatFeaturesEXT; + }; + + struct PhysicalDeviceShaderAtomicInt64Features + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceShaderAtomicInt64Features; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicInt64Features( + VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ = {} ) VULKAN_HPP_NOEXCEPT + : shaderBufferInt64Atomics( shaderBufferInt64Atomics_ ) + , shaderSharedInt64Atomics( shaderSharedInt64Atomics_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicInt64Features( PhysicalDeviceShaderAtomicInt64Features const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceShaderAtomicInt64Features( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceShaderAtomicInt64Features( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderAtomicInt64Features & + operator=( PhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceShaderAtomicInt64Features & + operator=( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); return *this; } - XlibSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceShaderAtomicInt64Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - flags = flags_; + pNext = pNext_; return *this; } - XlibSurfaceCreateInfoKHR & setDpy( Display* dpy_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceShaderAtomicInt64Features & + setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT { - dpy = dpy_; + shaderBufferInt64Atomics = shaderBufferInt64Atomics_; return *this; } - XlibSurfaceCreateInfoKHR & setWindow( Window window_ ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceShaderAtomicInt64Features & + setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT { - window = window_; + shaderSharedInt64Atomics = shaderSharedInt64Atomics_; return *this; } - operator VkXlibSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceShaderAtomicInt64Features const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkXlibSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceShaderAtomicInt64Features &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - bool operator==( XlibSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceShaderAtomicInt64Features const & ) const = default; +#else + bool operator==( PhysicalDeviceShaderAtomicInt64Features const & rhs ) const VULKAN_HPP_NOEXCEPT { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( dpy == rhs.dpy ) - && ( window == rhs.window ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics ) && + ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics ); } - bool operator!=( XlibSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceShaderAtomicInt64Features const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } +#endif public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXlibSurfaceCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags = {}; - Display* dpy = {}; - Window window = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicInt64Features; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {}; }; - static_assert( sizeof( XlibSurfaceCreateInfoKHR ) == sizeof( VkXlibSurfaceCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ + static_assert( sizeof( PhysicalDeviceShaderAtomicInt64Features ) == + sizeof( VkPhysicalDeviceShaderAtomicInt64Features ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - VULKAN_HPP_INLINE Result createInstance( const VULKAN_HPP_NAMESPACE::InstanceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Instance* pInstance, Dispatch const &d) VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateInstance( reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pInstance ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type createInstance( const InstanceCreateInfo & createInfo, Optional allocator, Dispatch const &d ) + template <> + struct CppType { - VULKAN_HPP_NAMESPACE::Instance instance; - Result result = static_cast( d.vkCreateInstance( reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &instance ) ) ); - return createResultValue( result, instance, VULKAN_HPP_NAMESPACE_STRING"::createInstance" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type createInstanceUnique( const InstanceCreateInfo & createInfo, Optional allocator, Dispatch const &d ) + using Type = PhysicalDeviceShaderAtomicInt64Features; + }; + using PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features; + + struct PhysicalDeviceShaderClockFeaturesKHR { - VULKAN_HPP_NAMESPACE::Instance instance; - Result result = static_cast( d.vkCreateInstance( reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &instance ) ) ); + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceShaderClockFeaturesKHR; - ObjectDestroy deleter( allocator, d ); - return createResultValue( result, instance, VULKAN_HPP_NAMESPACE_STRING"::createInstanceUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceShaderClockFeaturesKHR( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ = {} ) VULKAN_HPP_NOEXCEPT + : shaderSubgroupClock( shaderSubgroupClock_ ) + , shaderDeviceClock( shaderDeviceClock_ ) + {} - template - VULKAN_HPP_INLINE Result enumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::ExtensionProperties* pProperties, Dispatch const &d) VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, reinterpret_cast( pProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type enumerateInstanceExtensionProperties( Optional layerName, Dispatch const &d ) - { - std::vector properties; - uint32_t propertyCount; - Result result; - do + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderClockFeaturesKHR( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceShaderClockFeaturesKHR( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceShaderClockFeaturesKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderClockFeaturesKHR & + operator=( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceShaderClockFeaturesKHR & + operator=( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - result = static_cast( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PhysicalDeviceShaderClockFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - properties.resize( propertyCount ); + pNext = pNext_; + return *this; } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceExtensionProperties" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type enumerateInstanceExtensionProperties( Optional layerName, Allocator const& vectorAllocator, Dispatch const &d ) - { - std::vector properties( vectorAllocator ); - uint32_t propertyCount; - Result result; - do + + PhysicalDeviceShaderClockFeaturesKHR & + setShaderSubgroupClock( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ ) VULKAN_HPP_NOEXCEPT { - result = static_cast( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + shaderSubgroupClock = shaderSubgroupClock_; + return *this; + } + + PhysicalDeviceShaderClockFeaturesKHR & + setShaderDeviceClock( VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ ) VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - properties.resize( propertyCount ); + shaderDeviceClock = shaderDeviceClock_; + return *this; } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceExtensionProperties" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - template - VULKAN_HPP_INLINE Result enumerateInstanceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const &d) VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEnumerateInstanceLayerProperties( pPropertyCount, reinterpret_cast( pProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type enumerateInstanceLayerProperties(Dispatch const &d ) - { - std::vector properties; - uint32_t propertyCount; - Result result; - do + operator VkPhysicalDeviceShaderClockFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT { - result = static_cast( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceShaderClockFeaturesKHR &() VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - properties.resize( propertyCount ); + return *reinterpret_cast( this ); } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceLayerProperties" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type enumerateInstanceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d ) - { - std::vector properties( vectorAllocator ); - uint32_t propertyCount; - Result result; - do + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceShaderClockFeaturesKHR const & ) const = default; +#else + bool operator==( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - result = static_cast( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderSubgroupClock == rhs.shaderSubgroupClock ) && + ( shaderDeviceClock == rhs.shaderDeviceClock ); + } + + bool operator!=( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - properties.resize( propertyCount ); + return !operator==( rhs ); } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceLayerProperties" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif - template - VULKAN_HPP_INLINE Result enumerateInstanceVersion( uint32_t* pApiVersion, Dispatch const &d) VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEnumerateInstanceVersion( pApiVersion ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type enumerateInstanceVersion(Dispatch const &d ) - { - uint32_t apiVersion; - Result result = static_cast( d.vkEnumerateInstanceVersion( &apiVersion ) ); - return createResultValue( result, apiVersion, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceVersion" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderClockFeaturesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock = {}; + }; + static_assert( sizeof( PhysicalDeviceShaderClockFeaturesKHR ) == sizeof( VkPhysicalDeviceShaderClockFeaturesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - VULKAN_HPP_INLINE Result CommandBuffer::begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo* pBeginInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast( pBeginInfo ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type CommandBuffer::begin( const CommandBufferBeginInfo & beginInfo, Dispatch const &d ) const + template <> + struct CppType { - Result result = static_cast( d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast( &beginInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::begin" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + using Type = PhysicalDeviceShaderClockFeaturesKHR; + }; - template - VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginConditionalRenderingEXT( m_commandBuffer, reinterpret_cast( pConditionalRenderingBegin ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + struct PhysicalDeviceShaderCoreProperties2AMD { - d.vkCmdBeginConditionalRenderingEXT( m_commandBuffer, reinterpret_cast( &conditionalRenderingBegin ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceShaderCoreProperties2AMD; - template - VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast( pLabelInfo ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast( &labelInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreProperties2AMD( + VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures_ = {}, + uint32_t activeComputeUnitCount_ = {} ) VULKAN_HPP_NOEXCEPT + : shaderCoreFeatures( shaderCoreFeatures_ ) + , activeComputeUnitCount( activeComputeUnitCount_ ) + {} -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::beginQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginQuery( m_commandBuffer, static_cast( queryPool ), query, static_cast( flags ) ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::beginQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginQuery( m_commandBuffer, static_cast( queryPool ), query, static_cast( flags ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreProperties2AMD( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) + VULKAN_HPP_NOEXCEPT = default; -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::beginQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags, uint32_t index, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginQueryIndexedEXT( m_commandBuffer, static_cast( queryPool ), query, static_cast( flags ), index ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::beginQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags, uint32_t index, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginQueryIndexedEXT( m_commandBuffer, static_cast( queryPool ), query, static_cast( flags ), index ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderCoreProperties2AMD( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceShaderCoreProperties2AMD( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginRenderPass( m_commandBuffer, reinterpret_cast( pRenderPassBegin ), static_cast( contents ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const RenderPassBeginInfo & renderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginRenderPass( m_commandBuffer, reinterpret_cast( &renderPassBegin ), static_cast( contents ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderCoreProperties2AMD & + operator=( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginRenderPass2( m_commandBuffer, reinterpret_cast( pRenderPassBegin ), reinterpret_cast( pSubpassBeginInfo ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginRenderPass2( m_commandBuffer, reinterpret_cast( &renderPassBegin ), reinterpret_cast( &subpassBeginInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderCoreProperties2AMD & + operator=( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginRenderPass2KHR( m_commandBuffer, reinterpret_cast( pRenderPassBegin ), reinterpret_cast( pSubpassBeginInfo ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginRenderPass2KHR( m_commandBuffer, reinterpret_cast( &renderPassBegin ), reinterpret_cast( &subpassBeginInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceShaderCoreProperties2AMD const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE void CommandBuffer::beginTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBufferCount, reinterpret_cast( pCounterBuffers ), reinterpret_cast( pCounterBufferOffsets ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::beginTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy counterBuffers, ArrayProxy counterBufferOffsets, Dispatch const &d ) const - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( counterBuffers.size() == counterBufferOffsets.size() ); + operator VkPhysicalDeviceShaderCoreProperties2AMD &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceShaderCoreProperties2AMD const & ) const = default; #else - if ( counterBuffers.size() != counterBufferOffsets.size() ) + bool operator==( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) const VULKAN_HPP_NOEXCEPT { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::beginTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderCoreFeatures == rhs.shaderCoreFeatures ) && + ( activeComputeUnitCount == rhs.activeComputeUnitCount ); } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBuffers.size() , reinterpret_cast( counterBuffers.data() ), reinterpret_cast( counterBufferOffsets.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - template - VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindDescriptorSets( m_commandBuffer, static_cast( pipelineBindPoint ), static_cast( layout ), firstSet, descriptorSetCount, reinterpret_cast( pDescriptorSets ), dynamicOffsetCount, pDynamicOffsets ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t firstSet, ArrayProxy descriptorSets, ArrayProxy dynamicOffsets, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindDescriptorSets( m_commandBuffer, static_cast( pipelineBindPoint ), static_cast( layout ), firstSet, descriptorSets.size() , reinterpret_cast( descriptorSets.data() ), dynamicOffsets.size() , dynamicOffsets.data() ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::bindIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::IndexType indexType, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindIndexBuffer( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( indexType ) ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::bindIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::IndexType indexType, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindIndexBuffer( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( indexType ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCoreProperties2AMD; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures = {}; + uint32_t activeComputeUnitCount = {}; + }; + static_assert( sizeof( PhysicalDeviceShaderCoreProperties2AMD ) == sizeof( VkPhysicalDeviceShaderCoreProperties2AMD ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindPipeline( m_commandBuffer, static_cast( pipelineBindPoint ), static_cast( pipeline ) ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + template <> + struct CppType { - d.vkCmdBindPipeline( m_commandBuffer, static_cast( pipelineBindPoint ), static_cast( pipeline ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + using Type = PhysicalDeviceShaderCoreProperties2AMD; + }; -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindShadingRateImageNV( m_commandBuffer, static_cast( imageView ), static_cast( imageLayout ) ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + struct PhysicalDeviceShaderCorePropertiesAMD { - d.vkCmdBindShadingRateImageNV( m_commandBuffer, static_cast( imageView ), static_cast( imageLayout ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceShaderCorePropertiesAMD; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceShaderCorePropertiesAMD( uint32_t shaderEngineCount_ = {}, + uint32_t shaderArraysPerEngineCount_ = {}, + uint32_t computeUnitsPerShaderArray_ = {}, + uint32_t simdPerComputeUnit_ = {}, + uint32_t wavefrontsPerSimd_ = {}, + uint32_t wavefrontSize_ = {}, + uint32_t sgprsPerSimd_ = {}, + uint32_t minSgprAllocation_ = {}, + uint32_t maxSgprAllocation_ = {}, + uint32_t sgprAllocationGranularity_ = {}, + uint32_t vgprsPerSimd_ = {}, + uint32_t minVgprAllocation_ = {}, + uint32_t maxVgprAllocation_ = {}, + uint32_t vgprAllocationGranularity_ = {} ) VULKAN_HPP_NOEXCEPT + : shaderEngineCount( shaderEngineCount_ ) + , shaderArraysPerEngineCount( shaderArraysPerEngineCount_ ) + , computeUnitsPerShaderArray( computeUnitsPerShaderArray_ ) + , simdPerComputeUnit( simdPerComputeUnit_ ) + , wavefrontsPerSimd( wavefrontsPerSimd_ ) + , wavefrontSize( wavefrontSize_ ) + , sgprsPerSimd( sgprsPerSimd_ ) + , minSgprAllocation( minSgprAllocation_ ) + , maxSgprAllocation( maxSgprAllocation_ ) + , sgprAllocationGranularity( sgprAllocationGranularity_ ) + , vgprsPerSimd( vgprsPerSimd_ ) + , minVgprAllocation( minVgprAllocation_ ) + , maxVgprAllocation( maxVgprAllocation_ ) + , vgprAllocationGranularity( vgprAllocationGranularity_ ) + {} - template - VULKAN_HPP_INLINE void CommandBuffer::bindTransformFeedbackBuffersEXT( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, const VULKAN_HPP_NAMESPACE::DeviceSize* pSizes, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindTransformFeedbackBuffersEXT( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast( pBuffers ), reinterpret_cast( pOffsets ), reinterpret_cast( pSizes ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::bindTransformFeedbackBuffersEXT( uint32_t firstBinding, ArrayProxy buffers, ArrayProxy offsets, ArrayProxy sizes, Dispatch const &d ) const - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( buffers.size() == offsets.size() ); -#else - if ( buffers.size() != offsets.size() ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCorePropertiesAMD( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceShaderCorePropertiesAMD( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceShaderCorePropertiesAMD( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderCorePropertiesAMD & + operator=( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceShaderCorePropertiesAMD & + operator=( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != offsets.size()" ); + *this = *reinterpret_cast( &rhs ); + return *this; } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( buffers.size() == sizes.size() ); -#else - if ( buffers.size() != sizes.size() ) + + operator VkPhysicalDeviceShaderCorePropertiesAMD const &() const VULKAN_HPP_NOEXCEPT { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != sizes.size()" ); + return *reinterpret_cast( this ); } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( offsets.size() == sizes.size() ); -#else - if ( offsets.size() != sizes.size() ) + + operator VkPhysicalDeviceShaderCorePropertiesAMD &() VULKAN_HPP_NOEXCEPT { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::bindTransformFeedbackBuffersEXT: offsets.size() != sizes.size()" ); + return *reinterpret_cast( this ); } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - d.vkCmdBindTransformFeedbackBuffersEXT( m_commandBuffer, firstBinding, buffers.size() , reinterpret_cast( buffers.data() ), reinterpret_cast( offsets.data() ), reinterpret_cast( sizes.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - template - VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindVertexBuffers( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast( pBuffers ), reinterpret_cast( pOffsets ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers( uint32_t firstBinding, ArrayProxy buffers, ArrayProxy offsets, Dispatch const &d ) const - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( buffers.size() == offsets.size() ); +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceShaderCorePropertiesAMD const & ) const = default; #else - if ( buffers.size() != offsets.size() ) + bool operator==( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::bindVertexBuffers: buffers.size() != offsets.size()" ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderEngineCount == rhs.shaderEngineCount ) && + ( shaderArraysPerEngineCount == rhs.shaderArraysPerEngineCount ) && + ( computeUnitsPerShaderArray == rhs.computeUnitsPerShaderArray ) && + ( simdPerComputeUnit == rhs.simdPerComputeUnit ) && ( wavefrontsPerSimd == rhs.wavefrontsPerSimd ) && + ( wavefrontSize == rhs.wavefrontSize ) && ( sgprsPerSimd == rhs.sgprsPerSimd ) && + ( minSgprAllocation == rhs.minSgprAllocation ) && ( maxSgprAllocation == rhs.maxSgprAllocation ) && + ( sgprAllocationGranularity == rhs.sgprAllocationGranularity ) && ( vgprsPerSimd == rhs.vgprsPerSimd ) && + ( minVgprAllocation == rhs.minVgprAllocation ) && ( maxVgprAllocation == rhs.maxVgprAllocation ) && + ( vgprAllocationGranularity == rhs.vgprAllocationGranularity ); } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - d.vkCmdBindVertexBuffers( m_commandBuffer, firstBinding, buffers.size() , reinterpret_cast( buffers.data() ), reinterpret_cast( offsets.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - template - 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, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageBlit* pRegions, VULKAN_HPP_NAMESPACE::Filter filter, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBlitImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regionCount, reinterpret_cast( pRegions ), static_cast( filter ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - 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 regions, VULKAN_HPP_NAMESPACE::Filter filter, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBlitImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regions.size() , reinterpret_cast( regions.data() ), static_cast( filter ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV* pInfo, VULKAN_HPP_NAMESPACE::Buffer instanceData, VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, VULKAN_HPP_NAMESPACE::Bool32 update, VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBuildAccelerationStructureNV( m_commandBuffer, reinterpret_cast( pInfo ), static_cast( instanceData ), static_cast( instanceOffset ), static_cast( update ), static_cast( dst ), static_cast( src ), static_cast( scratch ), static_cast( scratchOffset ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureNV( const AccelerationStructureInfoNV & info, VULKAN_HPP_NAMESPACE::Buffer instanceData, VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, VULKAN_HPP_NAMESPACE::Bool32 update, VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBuildAccelerationStructureNV( m_commandBuffer, reinterpret_cast( &info ), static_cast( instanceData ), static_cast( instanceOffset ), static_cast( update ), static_cast( dst ), static_cast( src ), static_cast( scratch ), static_cast( scratchOffset ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD; + void * pNext = {}; + uint32_t shaderEngineCount = {}; + uint32_t shaderArraysPerEngineCount = {}; + uint32_t computeUnitsPerShaderArray = {}; + uint32_t simdPerComputeUnit = {}; + uint32_t wavefrontsPerSimd = {}; + uint32_t wavefrontSize = {}; + uint32_t sgprsPerSimd = {}; + uint32_t minSgprAllocation = {}; + uint32_t maxSgprAllocation = {}; + uint32_t sgprAllocationGranularity = {}; + uint32_t vgprsPerSimd = {}; + uint32_t minVgprAllocation = {}; + uint32_t maxVgprAllocation = {}; + uint32_t vgprAllocationGranularity = {}; + }; + static_assert( sizeof( PhysicalDeviceShaderCorePropertiesAMD ) == sizeof( VkPhysicalDeviceShaderCorePropertiesAMD ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - VULKAN_HPP_INLINE void CommandBuffer::clearAttachments( uint32_t attachmentCount, const VULKAN_HPP_NAMESPACE::ClearAttachment* pAttachments, uint32_t rectCount, const VULKAN_HPP_NAMESPACE::ClearRect* pRects, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdClearAttachments( m_commandBuffer, attachmentCount, reinterpret_cast( pAttachments ), rectCount, reinterpret_cast( pRects ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::clearAttachments( ArrayProxy attachments, ArrayProxy rects, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + template <> + struct CppType { - d.vkCmdClearAttachments( m_commandBuffer, attachments.size() , reinterpret_cast( attachments.data() ), rects.size() , reinterpret_cast( rects.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + using Type = PhysicalDeviceShaderCorePropertiesAMD; + }; - template - VULKAN_HPP_INLINE void CommandBuffer::clearColorImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const VULKAN_HPP_NAMESPACE::ClearColorValue* pColor, uint32_t rangeCount, const VULKAN_HPP_NAMESPACE::ImageSubresourceRange* pRanges, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdClearColorImage( m_commandBuffer, static_cast( image ), static_cast( imageLayout ), reinterpret_cast( pColor ), rangeCount, reinterpret_cast( pRanges ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::clearColorImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const ClearColorValue & color, ArrayProxy ranges, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + struct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT { - d.vkCmdClearColorImage( m_commandBuffer, static_cast( image ), static_cast( imageLayout ), reinterpret_cast( &color ), ranges.size() , reinterpret_cast( ranges.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT; - template - VULKAN_HPP_INLINE void CommandBuffer::clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VULKAN_HPP_NAMESPACE::ImageSubresourceRange* pRanges, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdClearDepthStencilImage( m_commandBuffer, static_cast( image ), static_cast( imageLayout ), reinterpret_cast( pDepthStencil ), rangeCount, reinterpret_cast( pRanges ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const ClearDepthStencilValue & depthStencil, ArrayProxy ranges, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdClearDepthStencilImage( m_commandBuffer, static_cast( image ), static_cast( imageLayout ), reinterpret_cast( &depthStencil ), ranges.size() , reinterpret_cast( ranges.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ = {} ) VULKAN_HPP_NOEXCEPT + : shaderDemoteToHelperInvocation( shaderDemoteToHelperInvocation_ ) + {} -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeNV mode, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyAccelerationStructureNV( m_commandBuffer, static_cast( dst ), static_cast( src ), static_cast( mode ) ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeNV mode, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyAccelerationStructureNV( m_commandBuffer, static_cast( dst ), static_cast( src ), static_cast( mode ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( + PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE void CommandBuffer::copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferCopy* pRegions, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyBuffer( m_commandBuffer, static_cast( srcBuffer ), static_cast( dstBuffer ), regionCount, reinterpret_cast( pRegions ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, ArrayProxy regions, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyBuffer( m_commandBuffer, static_cast( srcBuffer ), static_cast( dstBuffer ), regions.size() , reinterpret_cast( regions.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( + VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferImageCopy* pRegions, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyBufferToImage( m_commandBuffer, static_cast( srcBuffer ), static_cast( dstImage ), static_cast( dstImageLayout ), regionCount, reinterpret_cast( pRegions ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy regions, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyBufferToImage( m_commandBuffer, static_cast( srcBuffer ), static_cast( dstImage ), static_cast( dstImageLayout ), regions.size() , reinterpret_cast( regions.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & + operator=( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - 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, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageCopy* pRegions, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regionCount, reinterpret_cast( pRegions ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - 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 regions, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regions.size() , reinterpret_cast( regions.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & + operator=( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( + &rhs ); + return *this; + } - template - VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferImageCopy* pRegions, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyImageToBuffer( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstBuffer ), regionCount, reinterpret_cast( pRegions ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, ArrayProxy regions, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyImageToBuffer( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstBuffer ), regions.size() , reinterpret_cast( regions.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - 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, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyQueryPoolResults( m_commandBuffer, static_cast( queryPool ), firstQuery, queryCount, static_cast( dstBuffer ), static_cast( dstOffset ), static_cast( stride ), static_cast( flags ) ); - } + PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & setShaderDemoteToHelperInvocation( + VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ ) VULKAN_HPP_NOEXCEPT + { + shaderDemoteToHelperInvocation = shaderDemoteToHelperInvocation_; + return *this; + } + + operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & ) const = default; #else - template - 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, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyQueryPoolResults( m_commandBuffer, static_cast( queryPool ), firstQuery, queryCount, static_cast( dstBuffer ), static_cast( dstOffset ), static_cast( stride ), static_cast( flags ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator==( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( shaderDemoteToHelperInvocation == rhs.shaderDemoteToHelperInvocation ); + } - template - VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation = {}; + }; + static_assert( sizeof( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ) == + sizeof( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType { - d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast( pMarkerInfo ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + using Type = PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT; + }; + + struct PhysicalDeviceShaderDrawParametersFeatures { - d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast( &markerInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceShaderDrawParametersFeatures; -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::debugMarkerEndEXT(Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDebugMarkerEndEXT( m_commandBuffer ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::debugMarkerEndEXT(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDebugMarkerEndEXT( m_commandBuffer ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDrawParametersFeatures( + VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ = {} ) VULKAN_HPP_NOEXCEPT + : shaderDrawParameters( shaderDrawParameters_ ) + {} - template - VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast( pMarkerInfo ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast( &markerInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDrawParametersFeatures( + PhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDispatch( m_commandBuffer, groupCountX, groupCountY, groupCountZ ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDispatch( m_commandBuffer, groupCountX, groupCountY, groupCountZ ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderDrawParametersFeatures( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceShaderDrawParametersFeatures( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::dispatchBase( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDispatchBase( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::dispatchBase( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDispatchBase( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderDrawParametersFeatures & + operator=( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::dispatchBaseKHR( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDispatchBaseKHR( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::dispatchBaseKHR( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDispatchBaseKHR( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderDrawParametersFeatures & + operator=( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDispatchIndirect( m_commandBuffer, static_cast( buffer ), static_cast( offset ) ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDispatchIndirect( m_commandBuffer, static_cast( buffer ), static_cast( offset ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderDrawParametersFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDraw( m_commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDraw( m_commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderDrawParametersFeatures & + setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT + { + shaderDrawParameters = shaderDrawParameters_; + return *this; + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndexed( uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndexed( m_commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndexed( uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndexed( m_commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceShaderDrawParametersFeatures const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndexedIndirect( m_commandBuffer, static_cast( buffer ), static_cast( offset ), drawCount, stride ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndexedIndirect( m_commandBuffer, static_cast( buffer ), static_cast( offset ), drawCount, stride ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceShaderDrawParametersFeatures &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - 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, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndexedIndirectCount( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceShaderDrawParametersFeatures const & ) const = default; #else - template - 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, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndexedIndirectCount( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator==( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderDrawParameters == rhs.shaderDrawParameters ); + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - 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, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndexedIndirectCountAMD( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } -#else - template - 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, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndexedIndirectCountAMD( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - 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, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndexedIndirectCountKHR( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } -#else - template - 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, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndexedIndirectCountKHR( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {}; + }; + static_assert( sizeof( PhysicalDeviceShaderDrawParametersFeatures ) == + sizeof( VkPhysicalDeviceShaderDrawParametersFeatures ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndirect( m_commandBuffer, static_cast( buffer ), static_cast( offset ), drawCount, stride ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + template <> + struct CppType { - d.vkCmdDrawIndirect( m_commandBuffer, static_cast( buffer ), static_cast( offset ), drawCount, stride ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + using Type = PhysicalDeviceShaderDrawParametersFeatures; + }; + using PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures; -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - 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, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndirectByteCountEXT( m_commandBuffer, instanceCount, firstInstance, static_cast( counterBuffer ), static_cast( counterBufferOffset ), counterOffset, vertexStride ); - } -#else - template - 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, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + struct PhysicalDeviceShaderFloat16Int8Features { - d.vkCmdDrawIndirectByteCountEXT( m_commandBuffer, instanceCount, firstInstance, static_cast( counterBuffer ), static_cast( counterBufferOffset ), counterOffset, vertexStride ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceShaderFloat16Int8Features; -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - 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, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndirectCount( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } -#else - template - 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, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndirectCount( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceShaderFloat16Int8Features( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ = {} ) VULKAN_HPP_NOEXCEPT + : shaderFloat16( shaderFloat16_ ) + , shaderInt8( shaderInt8_ ) + {} -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - 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, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndirectCountAMD( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } -#else - template - 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, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndirectCountAMD( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat16Int8Features( PhysicalDeviceShaderFloat16Int8Features const & rhs ) + VULKAN_HPP_NOEXCEPT = default; -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - 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, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndirectCountKHR( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } -#else - template - 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, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndirectCountKHR( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderFloat16Int8Features( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceShaderFloat16Int8Features( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - 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, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawMeshTasksIndirectCountNV( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } -#else - template - 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, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawMeshTasksIndirectCountNV( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderFloat16Int8Features & + operator=( PhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT = default; -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectNV( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawMeshTasksIndirectNV( m_commandBuffer, static_cast( buffer ), static_cast( offset ), drawCount, stride ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectNV( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawMeshTasksIndirectNV( m_commandBuffer, static_cast( buffer ), static_cast( offset ), drawCount, stride ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderFloat16Int8Features & + operator=( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawMeshTasksNV( m_commandBuffer, taskCount, firstTask ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawMeshTasksNV( m_commandBuffer, taskCount, firstTask ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderFloat16Int8Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT(Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndConditionalRenderingEXT( m_commandBuffer ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndConditionalRenderingEXT( m_commandBuffer ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderFloat16Int8Features & + setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT + { + shaderFloat16 = shaderFloat16_; + return *this; + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::endDebugUtilsLabelEXT(Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndDebugUtilsLabelEXT( m_commandBuffer ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::endDebugUtilsLabelEXT(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndDebugUtilsLabelEXT( m_commandBuffer ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderFloat16Int8Features & + setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT + { + shaderInt8 = shaderInt8_; + return *this; + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndQuery( m_commandBuffer, static_cast( queryPool ), query ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndQuery( m_commandBuffer, static_cast( queryPool ), query ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceShaderFloat16Int8Features const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, uint32_t index, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndQueryIndexedEXT( m_commandBuffer, static_cast( queryPool ), query, index ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, uint32_t index, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndQueryIndexedEXT( m_commandBuffer, static_cast( queryPool ), query, index ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceShaderFloat16Int8Features &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::endRenderPass(Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndRenderPass( m_commandBuffer ); - } +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceShaderFloat16Int8Features const & ) const = default; #else - template - VULKAN_HPP_INLINE void CommandBuffer::endRenderPass(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndRenderPass( m_commandBuffer ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator==( PhysicalDeviceShaderFloat16Int8Features const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderFloat16 == rhs.shaderFloat16 ) && + ( shaderInt8 == rhs.shaderInt8 ); + } - template - VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndRenderPass2( m_commandBuffer, reinterpret_cast( pSubpassEndInfo ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const SubpassEndInfo & subpassEndInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndRenderPass2( m_commandBuffer, reinterpret_cast( &subpassEndInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( PhysicalDeviceShaderFloat16Int8Features const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast( pSubpassEndInfo ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const SubpassEndInfo & subpassEndInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast( &subpassEndInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderFloat16Int8Features; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {}; + }; + static_assert( sizeof( PhysicalDeviceShaderFloat16Int8Features ) == + sizeof( VkPhysicalDeviceShaderFloat16Int8Features ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - VULKAN_HPP_INLINE void CommandBuffer::endTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + template <> + struct CppType { - d.vkCmdEndTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBufferCount, reinterpret_cast( pCounterBuffers ), reinterpret_cast( pCounterBufferOffsets ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::endTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy counterBuffers, ArrayProxy counterBufferOffsets, Dispatch const &d ) const + using Type = PhysicalDeviceShaderFloat16Int8Features; + }; + using PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features; + using PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features; + + struct PhysicalDeviceShaderImageAtomicInt64FeaturesEXT { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( counterBuffers.size() == counterBufferOffsets.size() ); -#else - if ( counterBuffers.size() != counterBufferOffsets.size() ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics_ = {} ) VULKAN_HPP_NOEXCEPT + : shaderImageInt64Atomics( shaderImageInt64Atomics_ ) + , sparseImageInt64Atomics( sparseImageInt64Atomics_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( + PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & + operator=( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & + operator=( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::endTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" ); + *this = *reinterpret_cast( &rhs ); + return *this; } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - d.vkCmdEndTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBuffers.size() , reinterpret_cast( counterBuffers.data() ), reinterpret_cast( counterBufferOffsets.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - template - VULKAN_HPP_INLINE void CommandBuffer::executeCommands( uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdExecuteCommands( m_commandBuffer, commandBufferCount, reinterpret_cast( pCommandBuffers ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::executeCommands( ArrayProxy commandBuffers, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdExecuteCommands( m_commandBuffer, commandBuffers.size() , reinterpret_cast( commandBuffers.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::fillBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize size, uint32_t data, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdFillBuffer( m_commandBuffer, static_cast( dstBuffer ), static_cast( dstOffset ), static_cast( size ), data ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::fillBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize size, uint32_t data, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdFillBuffer( m_commandBuffer, static_cast( dstBuffer ), static_cast( dstOffset ), static_cast( size ), data ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & + setShaderImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT + { + shaderImageInt64Atomics = shaderImageInt64Atomics_; + return *this; + } - template - VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast( pLabelInfo ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast( &labelInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & + setSparseImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT + { + sparseImageInt64Atomics = sparseImageInt64Atomics_; + return *this; + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdNextSubpass( m_commandBuffer, static_cast( contents ) ); - } + operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & ) const = default; #else - template - VULKAN_HPP_INLINE void CommandBuffer::nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdNextSubpass( m_commandBuffer, static_cast( contents ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator==( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( shaderImageInt64Atomics == rhs.shaderImageInt64Atomics ) && + ( sparseImageInt64Atomics == rhs.sparseImageInt64Atomics ); + } - template - VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdNextSubpass2( m_commandBuffer, reinterpret_cast( pSubpassBeginInfo ), reinterpret_cast( pSubpassEndInfo ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdNextSubpass2( m_commandBuffer, reinterpret_cast( &subpassBeginInfo ), reinterpret_cast( &subpassEndInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdNextSubpass2KHR( m_commandBuffer, reinterpret_cast( pSubpassBeginInfo ), reinterpret_cast( pSubpassEndInfo ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdNextSubpass2KHR( m_commandBuffer, reinterpret_cast( &subpassBeginInfo ), reinterpret_cast( &subpassEndInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics = {}; + VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics = {}; + }; + static_assert( sizeof( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT ) == + sizeof( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VULKAN_HPP_NAMESPACE::MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPipelineBarrier( m_commandBuffer, static_cast( srcStageMask ), static_cast( dstStageMask ), static_cast( dependencyFlags ), memoryBarrierCount, reinterpret_cast( pMemoryBarriers ), bufferMemoryBarrierCount, reinterpret_cast( pBufferMemoryBarriers ), imageMemoryBarrierCount, reinterpret_cast( pImageMemoryBarriers ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, ArrayProxy memoryBarriers, ArrayProxy bufferMemoryBarriers, ArrayProxy imageMemoryBarriers, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + template <> + struct CppType { - d.vkCmdPipelineBarrier( m_commandBuffer, static_cast( srcStageMask ), static_cast( dstStageMask ), static_cast( dependencyFlags ), memoryBarriers.size() , reinterpret_cast( memoryBarriers.data() ), bufferMemoryBarriers.size() , reinterpret_cast( bufferMemoryBarriers.data() ), imageMemoryBarriers.size() , reinterpret_cast( imageMemoryBarriers.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + using Type = PhysicalDeviceShaderImageAtomicInt64FeaturesEXT; + }; - template - VULKAN_HPP_INLINE void CommandBuffer::processCommandsNVX( const VULKAN_HPP_NAMESPACE::CmdProcessCommandsInfoNVX* pProcessCommandsInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdProcessCommandsNVX( m_commandBuffer, reinterpret_cast( pProcessCommandsInfo ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::processCommandsNVX( const CmdProcessCommandsInfoNVX & processCommandsInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + struct PhysicalDeviceShaderImageFootprintFeaturesNV { - d.vkCmdProcessCommandsNVX( m_commandBuffer, reinterpret_cast( &processCommandsInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV; - template - VULKAN_HPP_INLINE void CommandBuffer::pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPushConstants( m_commandBuffer, static_cast( layout ), static_cast( stageFlags ), offset, size, pValues ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, uint32_t offset, ArrayProxy values, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPushConstants( m_commandBuffer, static_cast( layout ), static_cast( stageFlags ), offset, values.size() * sizeof( T ) , reinterpret_cast( values.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageFootprintFeaturesNV( + VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ = {} ) VULKAN_HPP_NOEXCEPT : imageFootprint( imageFootprint_ ) + {} - template - VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VULKAN_HPP_NAMESPACE::WriteDescriptorSet* pDescriptorWrites, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPushDescriptorSetKHR( m_commandBuffer, static_cast( pipelineBindPoint ), static_cast( layout ), set, descriptorWriteCount, reinterpret_cast( pDescriptorWrites ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, ArrayProxy descriptorWrites, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPushDescriptorSetKHR( m_commandBuffer, static_cast( pipelineBindPoint ), static_cast( layout ), set, descriptorWrites.size() , reinterpret_cast( descriptorWrites.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageFootprintFeaturesNV( + PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, const void* pData, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPushDescriptorSetWithTemplateKHR( m_commandBuffer, static_cast( descriptorUpdateTemplate ), static_cast( layout ), set, pData ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, const void* pData, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPushDescriptorSetWithTemplateKHR( m_commandBuffer, static_cast( descriptorUpdateTemplate ), static_cast( layout ), set, pData ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderImageFootprintFeaturesNV( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceShaderImageFootprintFeaturesNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - VULKAN_HPP_INLINE void CommandBuffer::reserveSpaceForCommandsNVX( const VULKAN_HPP_NAMESPACE::CmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdReserveSpaceForCommandsNVX( m_commandBuffer, reinterpret_cast( pReserveSpaceInfo ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::reserveSpaceForCommandsNVX( const CmdReserveSpaceForCommandsInfoNVX & reserveSpaceInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdReserveSpaceForCommandsNVX( m_commandBuffer, reinterpret_cast( &reserveSpaceInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderImageFootprintFeaturesNV & + operator=( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::resetEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdResetEvent( m_commandBuffer, static_cast( event ), static_cast( stageMask ) ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::resetEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdResetEvent( m_commandBuffer, static_cast( event ), static_cast( stageMask ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderImageFootprintFeaturesNV & + operator=( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdResetQueryPool( m_commandBuffer, static_cast( queryPool ), firstQuery, queryCount ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdResetQueryPool( m_commandBuffer, static_cast( queryPool ), firstQuery, queryCount ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderImageFootprintFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } - template - 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, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageResolve* pRegions, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdResolveImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regionCount, reinterpret_cast( pRegions ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - 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 regions, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdResolveImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regions.size() , reinterpret_cast( regions.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderImageFootprintFeaturesNV & + setImageFootprint( VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ ) VULKAN_HPP_NOEXCEPT + { + imageFootprint = imageFootprint_; + return *this; + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setBlendConstants( const float blendConstants[4], Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetBlendConstants( m_commandBuffer, blendConstants ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::setBlendConstants( const float blendConstants[4], Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetBlendConstants( m_commandBuffer, blendConstants ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( const void* pCheckpointMarker, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetCheckpointNV( m_commandBuffer, pCheckpointMarker ); - } + operator VkPhysicalDeviceShaderImageFootprintFeaturesNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceShaderImageFootprintFeaturesNV const & ) const = default; #else - template - VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( const void* pCheckpointMarker, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetCheckpointNV( m_commandBuffer, pCheckpointMarker ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator==( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( imageFootprint == rhs.imageFootprint ); + } - template - VULKAN_HPP_INLINE void CommandBuffer::setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, static_cast( sampleOrderType ), customSampleOrderCount, reinterpret_cast( pCustomSampleOrders ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, ArrayProxy customSampleOrders, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, static_cast( sampleOrderType ), customSampleOrders.size() , reinterpret_cast( customSampleOrders.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDepthBias( m_commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDepthBias( m_commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 imageFootprint = {}; + }; + static_assert( sizeof( PhysicalDeviceShaderImageFootprintFeaturesNV ) == + sizeof( VkPhysicalDeviceShaderImageFootprintFeaturesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDepthBounds( m_commandBuffer, minDepthBounds, maxDepthBounds ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + template <> + struct CppType { - d.vkCmdSetDepthBounds( m_commandBuffer, minDepthBounds, maxDepthBounds ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + using Type = PhysicalDeviceShaderImageFootprintFeaturesNV; + }; -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setDeviceMask( uint32_t deviceMask, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDeviceMask( m_commandBuffer, deviceMask ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::setDeviceMask( uint32_t deviceMask, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL { - d.vkCmdSetDeviceMask( m_commandBuffer, deviceMask ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL; -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setDeviceMaskKHR( uint32_t deviceMask, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDeviceMaskKHR( m_commandBuffer, deviceMask ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::setDeviceMaskKHR( uint32_t deviceMask, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDeviceMaskKHR( m_commandBuffer, deviceMask ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( + VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ = {} ) VULKAN_HPP_NOEXCEPT + : shaderIntegerFunctions2( shaderIntegerFunctions2_ ) + {} - template - VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEXT( uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDiscardRectangleEXT( m_commandBuffer, firstDiscardRectangle, discardRectangleCount, reinterpret_cast( pDiscardRectangles ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEXT( uint32_t firstDiscardRectangle, ArrayProxy discardRectangles, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDiscardRectangleEXT( m_commandBuffer, firstDiscardRectangle, discardRectangles.size() , reinterpret_cast( discardRectangles.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( + PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetEvent( m_commandBuffer, static_cast( event ), static_cast( stageMask ) ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::setEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetEvent( m_commandBuffer, static_cast( event ), static_cast( stageMask ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( + VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetExclusiveScissorNV( m_commandBuffer, firstExclusiveScissor, exclusiveScissorCount, reinterpret_cast( pExclusiveScissors ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( uint32_t firstExclusiveScissor, ArrayProxy exclusiveScissors, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetExclusiveScissorNV( m_commandBuffer, firstExclusiveScissor, exclusiveScissors.size() , reinterpret_cast( exclusiveScissors.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & + operator=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetLineStippleEXT( m_commandBuffer, lineStippleFactor, lineStipplePattern ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetLineStippleEXT( m_commandBuffer, lineStippleFactor, lineStipplePattern ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & + operator=( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = + *reinterpret_cast( &rhs ); + return *this; + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setLineWidth( float lineWidth, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetLineWidth( m_commandBuffer, lineWidth ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::setLineWidth( float lineWidth, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetLineWidth( m_commandBuffer, lineWidth ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } - template - VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL* pMarkerInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCmdSetPerformanceMarkerINTEL( m_commandBuffer, reinterpret_cast( pMarkerInfo ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type CommandBuffer::setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo, Dispatch const &d ) const - { - Result result = static_cast( d.vkCmdSetPerformanceMarkerINTEL( m_commandBuffer, reinterpret_cast( &markerInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::setPerformanceMarkerINTEL" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & + setShaderIntegerFunctions2( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ ) VULKAN_HPP_NOEXCEPT + { + shaderIntegerFunctions2 = shaderIntegerFunctions2_; + return *this; + } - template - VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceOverrideINTEL( const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL* pOverrideInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCmdSetPerformanceOverrideINTEL( m_commandBuffer, reinterpret_cast( pOverrideInfo ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type CommandBuffer::setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo, Dispatch const &d ) const - { - Result result = static_cast( d.vkCmdSetPerformanceOverrideINTEL( m_commandBuffer, reinterpret_cast( &overrideInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::setPerformanceOverrideINTEL" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceStreamMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL* pMarkerInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCmdSetPerformanceStreamMarkerINTEL( m_commandBuffer, reinterpret_cast( pMarkerInfo ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type CommandBuffer::setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo, Dispatch const &d ) const - { - Result result = static_cast( d.vkCmdSetPerformanceStreamMarkerINTEL( m_commandBuffer, reinterpret_cast( &markerInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::setPerformanceStreamMarkerINTEL" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT* pSampleLocationsInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetSampleLocationsEXT( m_commandBuffer, reinterpret_cast( pSampleLocationsInfo ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetSampleLocationsEXT( m_commandBuffer, reinterpret_cast( &sampleLocationsInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & ) const = default; +#else + bool operator==( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( shaderIntegerFunctions2 == rhs.shaderIntegerFunctions2 ); + } - template - VULKAN_HPP_INLINE void CommandBuffer::setScissor( uint32_t firstScissor, uint32_t scissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetScissor( m_commandBuffer, firstScissor, scissorCount, reinterpret_cast( pScissors ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setScissor( uint32_t firstScissor, ArrayProxy scissors, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetScissor( m_commandBuffer, firstScissor, scissors.size() , reinterpret_cast( scissors.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetStencilCompareMask( m_commandBuffer, static_cast( faceMask ), compareMask ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetStencilCompareMask( m_commandBuffer, static_cast( faceMask ), compareMask ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2 = {}; + }; + static_assert( sizeof( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ) == + sizeof( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetStencilReference( m_commandBuffer, static_cast( faceMask ), reference ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + template <> + struct CppType { - d.vkCmdSetStencilReference( m_commandBuffer, static_cast( faceMask ), reference ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + using Type = PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL; + }; -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetStencilWriteMask( m_commandBuffer, static_cast( faceMask ), writeMask ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + struct PhysicalDeviceShaderSMBuiltinsFeaturesNV { - d.vkCmdSetStencilWriteMask( m_commandBuffer, static_cast( faceMask ), writeMask ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV; - template - VULKAN_HPP_INLINE void CommandBuffer::setViewport( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::Viewport* pViewports, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetViewport( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast( pViewports ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setViewport( uint32_t firstViewport, ArrayProxy viewports, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetViewport( m_commandBuffer, firstViewport, viewports.size() , reinterpret_cast( viewports.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsFeaturesNV( VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ = {} ) + VULKAN_HPP_NOEXCEPT : shaderSMBuiltins( shaderSMBuiltins_ ) + {} - template - VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast( pShadingRatePalettes ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( uint32_t firstViewport, ArrayProxy shadingRatePalettes, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer, firstViewport, shadingRatePalettes.size() , reinterpret_cast( shadingRatePalettes.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsFeaturesNV( + PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingNV( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetViewportWScalingNV( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast( pViewportWScalings ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingNV( uint32_t firstViewport, ArrayProxy viewportWScalings, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetViewportWScalingNV( m_commandBuffer, firstViewport, viewportWScalings.size() , reinterpret_cast( viewportWScalings.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderSMBuiltinsFeaturesNV( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceShaderSMBuiltinsFeaturesNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - 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, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdTraceRaysNV( m_commandBuffer, static_cast( raygenShaderBindingTableBuffer ), static_cast( raygenShaderBindingOffset ), static_cast( missShaderBindingTableBuffer ), static_cast( missShaderBindingOffset ), static_cast( missShaderBindingStride ), static_cast( hitShaderBindingTableBuffer ), static_cast( hitShaderBindingOffset ), static_cast( hitShaderBindingStride ), static_cast( callableShaderBindingTableBuffer ), static_cast( callableShaderBindingOffset ), static_cast( callableShaderBindingStride ), width, height, depth ); - } -#else - template - 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, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdTraceRaysNV( m_commandBuffer, static_cast( raygenShaderBindingTableBuffer ), static_cast( raygenShaderBindingOffset ), static_cast( missShaderBindingTableBuffer ), static_cast( missShaderBindingOffset ), static_cast( missShaderBindingStride ), static_cast( hitShaderBindingTableBuffer ), static_cast( hitShaderBindingOffset ), static_cast( hitShaderBindingStride ), static_cast( callableShaderBindingTableBuffer ), static_cast( callableShaderBindingOffset ), static_cast( callableShaderBindingStride ), width, height, depth ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSMBuiltinsFeaturesNV & + operator=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE void CommandBuffer::updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize dataSize, const void* pData, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdUpdateBuffer( m_commandBuffer, static_cast( dstBuffer ), static_cast( dstOffset ), static_cast( dataSize ), pData ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, ArrayProxy data, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdUpdateBuffer( m_commandBuffer, static_cast( dstBuffer ), static_cast( dstOffset ), data.size() * sizeof( T ) , reinterpret_cast( data.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderSMBuiltinsFeaturesNV & + operator=( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - VULKAN_HPP_INLINE void CommandBuffer::waitEvents( uint32_t eventCount, const VULKAN_HPP_NAMESPACE::Event* pEvents, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VULKAN_HPP_NAMESPACE::MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWaitEvents( m_commandBuffer, eventCount, reinterpret_cast( pEvents ), static_cast( srcStageMask ), static_cast( dstStageMask ), memoryBarrierCount, reinterpret_cast( pMemoryBarriers ), bufferMemoryBarrierCount, reinterpret_cast( pBufferMemoryBarriers ), imageMemoryBarrierCount, reinterpret_cast( pImageMemoryBarriers ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::waitEvents( ArrayProxy events, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, ArrayProxy memoryBarriers, ArrayProxy bufferMemoryBarriers, ArrayProxy imageMemoryBarriers, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWaitEvents( m_commandBuffer, events.size() , reinterpret_cast( events.data() ), static_cast( srcStageMask ), static_cast( dstStageMask ), memoryBarriers.size() , reinterpret_cast( memoryBarriers.data() ), bufferMemoryBarriers.size() , reinterpret_cast( bufferMemoryBarriers.data() ), imageMemoryBarriers.size() , reinterpret_cast( imageMemoryBarriers.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderSMBuiltinsFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } - template - VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWriteAccelerationStructuresPropertiesNV( m_commandBuffer, accelerationStructureCount, reinterpret_cast( pAccelerationStructures ), static_cast( queryType ), static_cast( queryPool ), firstQuery ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV( ArrayProxy accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWriteAccelerationStructuresPropertiesNV( m_commandBuffer, accelerationStructures.size() , reinterpret_cast( accelerationStructures.data() ), static_cast( queryType ), static_cast( queryPool ), firstQuery ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderSMBuiltinsFeaturesNV & + setShaderSMBuiltins( VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ ) VULKAN_HPP_NOEXCEPT + { + shaderSMBuiltins = shaderSMBuiltins_; + return *this; + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::writeBufferMarkerAMD( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, uint32_t marker, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWriteBufferMarkerAMD( m_commandBuffer, static_cast( pipelineStage ), static_cast( dstBuffer ), static_cast( dstOffset ), marker ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::writeBufferMarkerAMD( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, uint32_t marker, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWriteBufferMarkerAMD( m_commandBuffer, static_cast( pipelineStage ), static_cast( dstBuffer ), static_cast( dstOffset ), marker ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWriteTimestamp( m_commandBuffer, static_cast( pipelineStage ), static_cast( queryPool ), query ); - } -#else - template - VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWriteTimestamp( m_commandBuffer, static_cast( pipelineStage ), static_cast( queryPool ), query ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result CommandBuffer::end(Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEndCommandBuffer( m_commandBuffer ) ); - } +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & ) const = default; #else - template - VULKAN_HPP_INLINE typename ResultValueType::type CommandBuffer::end(Dispatch const &d ) const - { - Result result = static_cast( d.vkEndCommandBuffer( m_commandBuffer ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::end" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator==( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderSMBuiltins == rhs.shaderSMBuiltins ); + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkResetCommandBuffer( m_commandBuffer, static_cast( flags ) ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const &d ) const - { - Result result = static_cast( d.vkResetCommandBuffer( m_commandBuffer, static_cast( flags ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::reset" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif -#ifdef VK_USE_PLATFORM_WIN32_KHR -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Device::acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast( swapchain ) ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d ) const - { - Result result = static_cast( d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast( swapchain ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::acquireFullScreenExclusiveModeEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins = {}; + }; + static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsFeaturesNV ) == + sizeof( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - VULKAN_HPP_INLINE Result Device::acquireNextImage2KHR( const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAcquireNextImage2KHR( m_device, reinterpret_cast( pAcquireInfo ), pImageIndex ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE ResultValue Device::acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo, Dispatch const &d ) const + template <> + struct CppType { - uint32_t imageIndex; - Result result = static_cast( d.vkAcquireNextImage2KHR( m_device, reinterpret_cast( &acquireInfo ), &imageIndex ) ); - return createResultValue( result, imageIndex, VULKAN_HPP_NAMESPACE_STRING"::Device::acquireNextImage2KHR", { Result::eSuccess, Result::eTimeout, Result::eNotReady, Result::eSuboptimalKHR } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + using Type = PhysicalDeviceShaderSMBuiltinsFeaturesNV; + }; - template - VULKAN_HPP_INLINE Result Device::acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore, VULKAN_HPP_NAMESPACE::Fence fence, uint32_t* pImageIndex, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAcquireNextImageKHR( m_device, static_cast( swapchain ), timeout, static_cast( semaphore ), static_cast( fence ), pImageIndex ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE ResultValue Device::acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d ) const + struct PhysicalDeviceShaderSMBuiltinsPropertiesNV { - uint32_t imageIndex; - Result result = static_cast( d.vkAcquireNextImageKHR( m_device, static_cast( swapchain ), timeout, static_cast( semaphore ), static_cast( fence ), &imageIndex ) ); - return createResultValue( result, imageIndex, VULKAN_HPP_NAMESPACE_STRING"::Device::acquireNextImageKHR", { Result::eSuccess, Result::eTimeout, Result::eNotReady, Result::eSuboptimalKHR } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV; - template - VULKAN_HPP_INLINE Result Device::acquirePerformanceConfigurationINTEL( const VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL* pConfiguration, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast( pAcquireInfo ), reinterpret_cast( pConfiguration ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::acquirePerformanceConfigurationINTEL( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration; - Result result = static_cast( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast( &acquireInfo ), reinterpret_cast( &configuration ) ) ); - return createResultValue( result, configuration, VULKAN_HPP_NAMESPACE_STRING"::Device::acquirePerformanceConfigurationINTEL" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceShaderSMBuiltinsPropertiesNV( uint32_t shaderSMCount_ = {}, + uint32_t shaderWarpsPerSM_ = {} ) VULKAN_HPP_NOEXCEPT + : shaderSMCount( shaderSMCount_ ) + , shaderWarpsPerSM( shaderWarpsPerSM_ ) + {} - template - VULKAN_HPP_INLINE Result Device::acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAcquireProfilingLockKHR( m_device, reinterpret_cast( pInfo ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info, Dispatch const &d ) const - { - Result result = static_cast( d.vkAcquireProfilingLockKHR( m_device, reinterpret_cast( &info ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::acquireProfilingLockKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsPropertiesNV( + PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE Result Device::allocateCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo* pAllocateInfo, VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAllocateCommandBuffers( m_device, reinterpret_cast( pAllocateInfo ), reinterpret_cast( pCommandBuffers ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d ) const - { - std::vector commandBuffers( allocateInfo.commandBufferCount ); - Result result = static_cast( d.vkAllocateCommandBuffers( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( commandBuffers.data() ) ) ); - return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateCommandBuffers" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const - { - std::vector commandBuffers( allocateInfo.commandBufferCount, vectorAllocator ); - Result result = static_cast( d.vkAllocateCommandBuffers( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( commandBuffers.data() ) ) ); - return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateCommandBuffers" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType,Allocator>>::type Device::allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d ) const - { - static_assert( sizeof( CommandBuffer ) <= sizeof( UniqueHandle ), "CommandBuffer is greater than UniqueHandle!" ); - std::vector, Allocator> commandBuffers; - commandBuffers.reserve( allocateInfo.commandBufferCount ); - CommandBuffer* buffer = reinterpret_cast( reinterpret_cast( commandBuffers.data() ) + allocateInfo.commandBufferCount * ( sizeof( UniqueHandle ) - sizeof( CommandBuffer ) ) ); - Result result = static_cast(d.vkAllocateCommandBuffers( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( buffer ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) + PhysicalDeviceShaderSMBuiltinsPropertiesNV( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceShaderSMBuiltinsPropertiesNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSMBuiltinsPropertiesNV & + operator=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceShaderSMBuiltinsPropertiesNV & + operator=( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT { - PoolFree deleter( *this, allocateInfo.commandPool, d ); - for ( size_t i=0 ; i( buffer[i], deleter ) ); - } + *this = *reinterpret_cast( &rhs ); + return *this; } - return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType,Allocator>>::type Device::allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const - { - static_assert( sizeof( CommandBuffer ) <= sizeof( UniqueHandle ), "CommandBuffer is greater than UniqueHandle!" ); - std::vector, Allocator> commandBuffers( vectorAllocator ); - commandBuffers.reserve( allocateInfo.commandBufferCount ); - CommandBuffer* buffer = reinterpret_cast( reinterpret_cast( commandBuffers.data() ) + allocateInfo.commandBufferCount * ( sizeof( UniqueHandle ) - sizeof( CommandBuffer ) ) ); - Result result = static_cast(d.vkAllocateCommandBuffers( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( buffer ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) + operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const &() const VULKAN_HPP_NOEXCEPT { - PoolFree deleter( *this, allocateInfo.commandPool, d ); - for ( size_t i=0 ; i( buffer[i], deleter ) ); - } + return *reinterpret_cast( this ); } - return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE Result Device::allocateDescriptorSets( const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo* pAllocateInfo, VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAllocateDescriptorSets( m_device, reinterpret_cast( pAllocateInfo ), reinterpret_cast( pDescriptorSets ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d ) const - { - std::vector descriptorSets( allocateInfo.descriptorSetCount ); - Result result = static_cast( d.vkAllocateDescriptorSets( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( descriptorSets.data() ) ) ); - return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateDescriptorSets" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const - { - std::vector descriptorSets( allocateInfo.descriptorSetCount, vectorAllocator ); - Result result = static_cast( d.vkAllocateDescriptorSets( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( descriptorSets.data() ) ) ); - return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateDescriptorSets" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType,Allocator>>::type Device::allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d ) const - { - static_assert( sizeof( DescriptorSet ) <= sizeof( UniqueHandle ), "DescriptorSet is greater than UniqueHandle!" ); - std::vector, Allocator> descriptorSets; - descriptorSets.reserve( allocateInfo.descriptorSetCount ); - DescriptorSet* buffer = reinterpret_cast( reinterpret_cast( descriptorSets.data() ) + allocateInfo.descriptorSetCount * ( sizeof( UniqueHandle ) - sizeof( DescriptorSet ) ) ); - Result result = static_cast(d.vkAllocateDescriptorSets( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( buffer ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - PoolFree deleter( *this, allocateInfo.descriptorPool, d ); - for ( size_t i=0 ; i( buffer[i], deleter ) ); - } + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderSMCount == rhs.shaderSMCount ) && + ( shaderWarpsPerSM == rhs.shaderWarpsPerSM ); } - return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType,Allocator>>::type Device::allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const - { - static_assert( sizeof( DescriptorSet ) <= sizeof( UniqueHandle ), "DescriptorSet is greater than UniqueHandle!" ); - std::vector, Allocator> descriptorSets( vectorAllocator ); - descriptorSets.reserve( allocateInfo.descriptorSetCount ); - DescriptorSet* buffer = reinterpret_cast( reinterpret_cast( descriptorSets.data() ) + allocateInfo.descriptorSetCount * ( sizeof( UniqueHandle ) - sizeof( DescriptorSet ) ) ); - Result result = static_cast(d.vkAllocateDescriptorSets( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( buffer ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) + bool operator!=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - PoolFree deleter( *this, allocateInfo.descriptorPool, d ); - for ( size_t i=0 ; i( buffer[i], deleter ) ); - } + return !operator==( rhs ); } +#endif - return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV; + void * pNext = {}; + uint32_t shaderSMCount = {}; + uint32_t shaderWarpsPerSM = {}; + }; + static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsPropertiesNV ) == + sizeof( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - VULKAN_HPP_INLINE Result Device::allocateMemory( const VULKAN_HPP_NAMESPACE::MemoryAllocateInfo* pAllocateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DeviceMemory* pMemory, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAllocateMemory( m_device, reinterpret_cast( pAllocateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pMemory ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::allocateMemory( const MemoryAllocateInfo & allocateInfo, Optional allocator, Dispatch const &d ) const + template <> + struct CppType { - VULKAN_HPP_NAMESPACE::DeviceMemory memory; - Result result = static_cast( d.vkAllocateMemory( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &memory ) ) ); - return createResultValue( result, memory, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateMemory" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::allocateMemoryUnique( const MemoryAllocateInfo & allocateInfo, Optional allocator, Dispatch const &d ) const + using Type = PhysicalDeviceShaderSMBuiltinsPropertiesNV; + }; + + struct PhysicalDeviceShaderSubgroupExtendedTypesFeatures { - VULKAN_HPP_NAMESPACE::DeviceMemory memory; - Result result = static_cast( d.vkAllocateMemory( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &memory ) ) ); + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures; - ObjectFree deleter( *this, allocator, d ); - return createResultValue( result, memory, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateMemoryUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupExtendedTypesFeatures( + VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ = {} ) VULKAN_HPP_NOEXCEPT + : shaderSubgroupExtendedTypes( shaderSubgroupExtendedTypes_ ) + {} - template - VULKAN_HPP_INLINE Result Device::bindAccelerationStructureMemoryNV( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV* pBindInfos, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBindAccelerationStructureMemoryNV( m_device, bindInfoCount, reinterpret_cast( pBindInfos ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::bindAccelerationStructureMemoryNV( ArrayProxy bindInfos, Dispatch const &d ) const - { - Result result = static_cast( d.vkBindAccelerationStructureMemoryNV( m_device, bindInfos.size() , reinterpret_cast( bindInfos.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindAccelerationStructureMemoryNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupExtendedTypesFeatures( + PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Device::bindBufferMemory( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBindBufferMemory( m_device, static_cast( buffer ), static_cast( memory ), static_cast( memoryOffset ) ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::bindBufferMemory( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const &d ) const - { - Result result = static_cast( d.vkBindBufferMemory( m_device, static_cast( buffer ), static_cast( memory ), static_cast( memoryOffset ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindBufferMemory" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderSubgroupExtendedTypesFeatures( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceShaderSubgroupExtendedTypesFeatures( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - VULKAN_HPP_INLINE Result Device::bindBufferMemory2( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo* pBindInfos, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBindBufferMemory2( m_device, bindInfoCount, reinterpret_cast( pBindInfos ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::bindBufferMemory2( ArrayProxy bindInfos, Dispatch const &d ) const - { - Result result = static_cast( d.vkBindBufferMemory2( m_device, bindInfos.size() , reinterpret_cast( bindInfos.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindBufferMemory2" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderSubgroupExtendedTypesFeatures & + operator=( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE Result Device::bindBufferMemory2KHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo* pBindInfos, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBindBufferMemory2KHR( m_device, bindInfoCount, reinterpret_cast( pBindInfos ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::bindBufferMemory2KHR( ArrayProxy bindInfos, Dispatch const &d ) const - { - Result result = static_cast( d.vkBindBufferMemory2KHR( m_device, bindInfos.size() , reinterpret_cast( bindInfos.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindBufferMemory2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderSubgroupExtendedTypesFeatures & + operator=( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = + *reinterpret_cast( &rhs ); + return *this; + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Device::bindImageMemory( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBindImageMemory( m_device, static_cast( image ), static_cast( memory ), static_cast( memoryOffset ) ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::bindImageMemory( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const &d ) const - { - Result result = static_cast( d.vkBindImageMemory( m_device, static_cast( image ), static_cast( memory ), static_cast( memoryOffset ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindImageMemory" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderSubgroupExtendedTypesFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } - template - VULKAN_HPP_INLINE Result Device::bindImageMemory2( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo* pBindInfos, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBindImageMemory2( m_device, bindInfoCount, reinterpret_cast( pBindInfos ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::bindImageMemory2( ArrayProxy bindInfos, Dispatch const &d ) const - { - Result result = static_cast( d.vkBindImageMemory2( m_device, bindInfos.size() , reinterpret_cast( bindInfos.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindImageMemory2" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderSubgroupExtendedTypesFeatures & + setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT + { + shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_; + return *this; + } - template - VULKAN_HPP_INLINE Result Device::bindImageMemory2KHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo* pBindInfos, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBindImageMemory2KHR( m_device, bindInfoCount, reinterpret_cast( pBindInfos ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::bindImageMemory2KHR( ArrayProxy bindInfos, Dispatch const &d ) const - { - Result result = static_cast( d.vkBindImageMemory2KHR( m_device, bindInfos.size() , reinterpret_cast( bindInfos.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindImageMemory2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Device::compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCompileDeferredNV( m_device, static_cast( pipeline ), shader ) ); - } + operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & ) const = default; #else - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const &d ) const - { - Result result = static_cast( d.vkCompileDeferredNV( m_device, static_cast( pipeline ), shader ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::compileDeferredNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator==( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes ); + } - template - VULKAN_HPP_INLINE Result Device::createAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructure, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pAccelerationStructure ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createAccelerationStructureNV( const AccelerationStructureCreateInfoNV & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure; - Result result = static_cast( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &accelerationStructure ) ) ); - return createResultValue( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING"::Device::createAccelerationStructureNV" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createAccelerationStructureNVUnique( const AccelerationStructureCreateInfoNV & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure; - Result result = static_cast( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &accelerationStructure ) ) ); + bool operator!=( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING"::Device::createAccelerationStructureNVUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {}; + }; + static_assert( sizeof( PhysicalDeviceShaderSubgroupExtendedTypesFeatures ) == + sizeof( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - VULKAN_HPP_INLINE Result Device::createBuffer( const VULKAN_HPP_NAMESPACE::BufferCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Buffer* pBuffer, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateBuffer( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pBuffer ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createBuffer( const BufferCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const + template <> + struct CppType { - VULKAN_HPP_NAMESPACE::Buffer buffer; - Result result = static_cast( d.vkCreateBuffer( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &buffer ) ) ); - return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createBuffer" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createBufferUnique( const BufferCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const + using Type = PhysicalDeviceShaderSubgroupExtendedTypesFeatures; + }; + using PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = PhysicalDeviceShaderSubgroupExtendedTypesFeatures; + + struct PhysicalDeviceShaderTerminateInvocationFeaturesKHR { - VULKAN_HPP_NAMESPACE::Buffer buffer; - Result result = static_cast( d.vkCreateBuffer( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &buffer ) ) ); + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR; - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createBufferUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTerminateInvocationFeaturesKHR( + VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ = {} ) VULKAN_HPP_NOEXCEPT + : shaderTerminateInvocation( shaderTerminateInvocation_ ) + {} - template - VULKAN_HPP_INLINE Result Device::createBufferView( const VULKAN_HPP_NAMESPACE::BufferViewCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::BufferView* pView, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateBufferView( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pView ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createBufferView( const BufferViewCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::BufferView view; - Result result = static_cast( d.vkCreateBufferView( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &view ) ) ); - return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createBufferView" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createBufferViewUnique( const BufferViewCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::BufferView view; - Result result = static_cast( d.vkCreateBufferView( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &view ) ) ); + VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTerminateInvocationFeaturesKHR( + PhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createBufferViewUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderTerminateInvocationFeaturesKHR( + VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceShaderTerminateInvocationFeaturesKHR( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - VULKAN_HPP_INLINE Result Device::createCommandPool( const VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::CommandPool* pCommandPool, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateCommandPool( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pCommandPool ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createCommandPool( const CommandPoolCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::CommandPool commandPool; - Result result = static_cast( d.vkCreateCommandPool( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &commandPool ) ) ); - return createResultValue( result, commandPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createCommandPool" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createCommandPoolUnique( const CommandPoolCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::CommandPool commandPool; - Result result = static_cast( d.vkCreateCommandPool( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &commandPool ) ) ); + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShaderTerminateInvocationFeaturesKHR & + operator=( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, commandPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createCommandPoolUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShaderTerminateInvocationFeaturesKHR & + operator=( VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = + *reinterpret_cast( &rhs ); + return *this; + } - template - VULKAN_HPP_INLINE Result Device::createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateComputePipelines( m_device, static_cast( pipelineCache ), createInfoCount, reinterpret_cast( pCreateInfos ), reinterpret_cast( pAllocator ), reinterpret_cast( pPipelines ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator, Dispatch const &d ) const - { - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateComputePipelines( m_device, static_cast( pipelineCache ), createInfos.size() , reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createComputePipelines" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator, Allocator const& vectorAllocator, Dispatch const &d ) const - { - std::vector pipelines( createInfos.size(), vectorAllocator ); - Result result = static_cast( d.vkCreateComputePipelines( m_device, static_cast( pipelineCache ), createInfos.size() , reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createComputePipelines" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createComputePipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - Pipeline pipeline; - Result result = static_cast( d.vkCreateComputePipelines( m_device, static_cast( pipelineCache ), 1 , reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipeline ) ) ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createComputePipeline" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType,Allocator>>::type Device::createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator, Dispatch const &d ) const - { - static_assert( sizeof( Pipeline ) <= sizeof( UniqueHandle ), "Pipeline is greater than UniqueHandle!" ); - std::vector, Allocator> pipelines; - pipelines.reserve( createInfos.size() ); - Pipeline* buffer = reinterpret_cast( reinterpret_cast( pipelines.data() ) + createInfos.size() * ( sizeof( UniqueHandle ) - sizeof( Pipeline ) ) ); - Result result = static_cast(d.vkCreateComputePipelines( m_device, static_cast( pipelineCache ), createInfos.size() , reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( buffer ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) + PhysicalDeviceShaderTerminateInvocationFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0 ; i( buffer[i], deleter ) ); - } + pNext = pNext_; + return *this; } - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType,Allocator>>::type Device::createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator, Allocator const& vectorAllocator, Dispatch const &d ) const - { - static_assert( sizeof( Pipeline ) <= sizeof( UniqueHandle ), "Pipeline is greater than UniqueHandle!" ); - std::vector, Allocator> pipelines( vectorAllocator ); - pipelines.reserve( createInfos.size() ); - Pipeline* buffer = reinterpret_cast( reinterpret_cast( pipelines.data() ) + createInfos.size() * ( sizeof( UniqueHandle ) - sizeof( Pipeline ) ) ); - Result result = static_cast(d.vkCreateComputePipelines( m_device, static_cast( pipelineCache ), createInfos.size() , reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( buffer ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) + PhysicalDeviceShaderTerminateInvocationFeaturesKHR & + setShaderTerminateInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ ) VULKAN_HPP_NOEXCEPT { - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0 ; i( buffer[i], deleter ) ); - } + shaderTerminateInvocation = shaderTerminateInvocation_; + return *this; } - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createComputePipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - Pipeline pipeline; - Result result = static_cast( d.vkCreateComputePipelines( m_device, static_cast( pipelineCache ), 1 , reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipeline ) ) ); + operator VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createComputePipelineUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE Result Device::createDescriptorPool( const VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorPool* pDescriptorPool, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDescriptorPool( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pDescriptorPool ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createDescriptorPool( const DescriptorPoolCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool; - Result result = static_cast( d.vkCreateDescriptorPool( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &descriptorPool ) ) ); - return createResultValue( result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorPool" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createDescriptorPoolUnique( const DescriptorPoolCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool; - Result result = static_cast( d.vkCreateDescriptorPool( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &descriptorPool ) ) ); +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const & ) const = default; +#else + bool operator==( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( shaderTerminateInvocation == rhs.shaderTerminateInvocation ); + } - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorPoolUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - VULKAN_HPP_INLINE Result Device::createDescriptorSetLayout( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayout, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSetLayout ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createDescriptorSetLayout( const DescriptorSetLayoutCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout; - Result result = static_cast( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &setLayout ) ) ); - return createResultValue( result, setLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorSetLayout" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createDescriptorSetLayoutUnique( const DescriptorSetLayoutCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation = {}; + }; + static_assert( sizeof( PhysicalDeviceShaderTerminateInvocationFeaturesKHR ) == + sizeof( VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType { - VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout; - Result result = static_cast( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &setLayout ) ) ); + using Type = PhysicalDeviceShaderTerminateInvocationFeaturesKHR; + }; - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, setLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorSetLayoutUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result Device::createDescriptorUpdateTemplate( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pDescriptorUpdateTemplate ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createDescriptorUpdateTemplate( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate; - Result result = static_cast( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &descriptorUpdateTemplate ) ) ); - return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplate" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createDescriptorUpdateTemplateUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const + struct PhysicalDeviceShadingRateImageFeaturesNV { - VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate; - Result result = static_cast( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &descriptorUpdateTemplate ) ) ); + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceShadingRateImageFeaturesNV; - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplateUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImageFeaturesNV( + VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ = {} ) VULKAN_HPP_NOEXCEPT + : shadingRateImage( shadingRateImage_ ) + , shadingRateCoarseSampleOrder( shadingRateCoarseSampleOrder_ ) + {} - template - VULKAN_HPP_INLINE Result Device::createDescriptorUpdateTemplateKHR( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pDescriptorUpdateTemplate ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createDescriptorUpdateTemplateKHR( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate; - Result result = static_cast( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &descriptorUpdateTemplate ) ) ); - return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplateKHR" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createDescriptorUpdateTemplateKHRUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate; - Result result = static_cast( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &descriptorUpdateTemplate ) ) ); + VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImageFeaturesNV( + PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplateKHRUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShadingRateImageFeaturesNV( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceShadingRateImageFeaturesNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - VULKAN_HPP_INLINE Result Device::createEvent( const VULKAN_HPP_NAMESPACE::EventCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Event* pEvent, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateEvent( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pEvent ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createEvent( const EventCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::Event event; - Result result = static_cast( d.vkCreateEvent( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &event ) ) ); - return createResultValue( result, event, VULKAN_HPP_NAMESPACE_STRING"::Device::createEvent" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createEventUnique( const EventCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::Event event; - Result result = static_cast( d.vkCreateEvent( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &event ) ) ); + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShadingRateImageFeaturesNV & + operator=( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, event, VULKAN_HPP_NAMESPACE_STRING"::Device::createEventUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShadingRateImageFeaturesNV & + operator=( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - VULKAN_HPP_INLINE Result Device::createFence( const VULKAN_HPP_NAMESPACE::FenceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateFence( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pFence ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createFence( const FenceCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::Fence fence; - Result result = static_cast( d.vkCreateFence( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &fence ) ) ); - return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::createFence" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createFenceUnique( const FenceCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::Fence fence; - Result result = static_cast( d.vkCreateFence( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &fence ) ) ); + PhysicalDeviceShadingRateImageFeaturesNV & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::createFenceUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShadingRateImageFeaturesNV & + setShadingRateImage( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ ) VULKAN_HPP_NOEXCEPT + { + shadingRateImage = shadingRateImage_; + return *this; + } - template - VULKAN_HPP_INLINE Result Device::createFramebuffer( const VULKAN_HPP_NAMESPACE::FramebufferCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Framebuffer* pFramebuffer, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateFramebuffer( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pFramebuffer ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createFramebuffer( const FramebufferCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::Framebuffer framebuffer; - Result result = static_cast( d.vkCreateFramebuffer( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &framebuffer ) ) ); - return createResultValue( result, framebuffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createFramebuffer" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createFramebufferUnique( const FramebufferCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::Framebuffer framebuffer; - Result result = static_cast( d.vkCreateFramebuffer( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &framebuffer ) ) ); + PhysicalDeviceShadingRateImageFeaturesNV & + setShadingRateCoarseSampleOrder( VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ ) VULKAN_HPP_NOEXCEPT + { + shadingRateCoarseSampleOrder = shadingRateCoarseSampleOrder_; + return *this; + } - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, framebuffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createFramebufferUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceShadingRateImageFeaturesNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE Result Device::createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateGraphicsPipelines( m_device, static_cast( pipelineCache ), createInfoCount, reinterpret_cast( pCreateInfos ), reinterpret_cast( pAllocator ), reinterpret_cast( pPipelines ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator, Dispatch const &d ) const - { - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateGraphicsPipelines( m_device, static_cast( pipelineCache ), createInfos.size() , reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createGraphicsPipelines" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator, Allocator const& vectorAllocator, Dispatch const &d ) const - { - std::vector pipelines( createInfos.size(), vectorAllocator ); - Result result = static_cast( d.vkCreateGraphicsPipelines( m_device, static_cast( pipelineCache ), createInfos.size() , reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createGraphicsPipelines" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createGraphicsPipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - Pipeline pipeline; - Result result = static_cast( d.vkCreateGraphicsPipelines( m_device, static_cast( pipelineCache ), 1 , reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipeline ) ) ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createGraphicsPipeline" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType,Allocator>>::type Device::createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator, Dispatch const &d ) const - { - static_assert( sizeof( Pipeline ) <= sizeof( UniqueHandle ), "Pipeline is greater than UniqueHandle!" ); - std::vector, Allocator> pipelines; - pipelines.reserve( createInfos.size() ); - Pipeline* buffer = reinterpret_cast( reinterpret_cast( pipelines.data() ) + createInfos.size() * ( sizeof( UniqueHandle ) - sizeof( Pipeline ) ) ); - Result result = static_cast(d.vkCreateGraphicsPipelines( m_device, static_cast( pipelineCache ), createInfos.size() , reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( buffer ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) + operator VkPhysicalDeviceShadingRateImageFeaturesNV &() VULKAN_HPP_NOEXCEPT { - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0 ; i( buffer[i], deleter ) ); - } + return *reinterpret_cast( this ); } - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType,Allocator>>::type Device::createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator, Allocator const& vectorAllocator, Dispatch const &d ) const - { - static_assert( sizeof( Pipeline ) <= sizeof( UniqueHandle ), "Pipeline is greater than UniqueHandle!" ); - std::vector, Allocator> pipelines( vectorAllocator ); - pipelines.reserve( createInfos.size() ); - Pipeline* buffer = reinterpret_cast( reinterpret_cast( pipelines.data() ) + createInfos.size() * ( sizeof( UniqueHandle ) - sizeof( Pipeline ) ) ); - Result result = static_cast(d.vkCreateGraphicsPipelines( m_device, static_cast( pipelineCache ), createInfos.size() , reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( buffer ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceShadingRateImageFeaturesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT { - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0 ; i( buffer[i], deleter ) ); - } + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shadingRateImage == rhs.shadingRateImage ) && + ( shadingRateCoarseSampleOrder == rhs.shadingRateCoarseSampleOrder ); } - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createGraphicsPipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - Pipeline pipeline; - Result result = static_cast( d.vkCreateGraphicsPipelines( m_device, static_cast( pipelineCache ), 1 , reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipeline ) ) ); + bool operator!=( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createGraphicsPipelineUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage = {}; + VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder = {}; + }; + static_assert( sizeof( PhysicalDeviceShadingRateImageFeaturesNV ) == + sizeof( VkPhysicalDeviceShadingRateImageFeaturesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - VULKAN_HPP_INLINE Result Device::createImage( const VULKAN_HPP_NAMESPACE::ImageCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Image* pImage, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateImage( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pImage ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createImage( const ImageCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const + template <> + struct CppType { - VULKAN_HPP_NAMESPACE::Image image; - Result result = static_cast( d.vkCreateImage( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &image ) ) ); - return createResultValue( result, image, VULKAN_HPP_NAMESPACE_STRING"::Device::createImage" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createImageUnique( const ImageCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const + using Type = PhysicalDeviceShadingRateImageFeaturesNV; + }; + + struct PhysicalDeviceShadingRateImagePropertiesNV { - VULKAN_HPP_NAMESPACE::Image image; - Result result = static_cast( d.vkCreateImage( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &image ) ) ); + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceShadingRateImagePropertiesNV; - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, image, VULKAN_HPP_NAMESPACE_STRING"::Device::createImageUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceShadingRateImagePropertiesNV( VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize_ = {}, + uint32_t shadingRatePaletteSize_ = {}, + uint32_t shadingRateMaxCoarseSamples_ = {} ) VULKAN_HPP_NOEXCEPT + : shadingRateTexelSize( shadingRateTexelSize_ ) + , shadingRatePaletteSize( shadingRatePaletteSize_ ) + , shadingRateMaxCoarseSamples( shadingRateMaxCoarseSamples_ ) + {} - template - VULKAN_HPP_INLINE Result Device::createImageView( const VULKAN_HPP_NAMESPACE::ImageViewCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ImageView* pView, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateImageView( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pView ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createImageView( const ImageViewCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::ImageView view; - Result result = static_cast( d.vkCreateImageView( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &view ) ) ); - return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createImageView" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createImageViewUnique( const ImageViewCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::ImageView view; - Result result = static_cast( d.vkCreateImageView( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &view ) ) ); + VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImagePropertiesNV( + PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createImageViewUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShadingRateImagePropertiesNV( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceShadingRateImagePropertiesNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - VULKAN_HPP_INLINE Result Device::createIndirectCommandsLayoutNVX( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNVX* pIndirectCommandsLayout, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateIndirectCommandsLayoutNVX( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pIndirectCommandsLayout ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createIndirectCommandsLayoutNVX( const IndirectCommandsLayoutCreateInfoNVX & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNVX indirectCommandsLayout; - Result result = static_cast( d.vkCreateIndirectCommandsLayoutNVX( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &indirectCommandsLayout ) ) ); - return createResultValue( result, indirectCommandsLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createIndirectCommandsLayoutNVX" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createIndirectCommandsLayoutNVXUnique( const IndirectCommandsLayoutCreateInfoNVX & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNVX indirectCommandsLayout; - Result result = static_cast( d.vkCreateIndirectCommandsLayoutNVX( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &indirectCommandsLayout ) ) ); + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceShadingRateImagePropertiesNV & + operator=( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, indirectCommandsLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createIndirectCommandsLayoutNVXUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceShadingRateImagePropertiesNV & + operator=( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - VULKAN_HPP_INLINE Result Device::createObjectTableNVX( const VULKAN_HPP_NAMESPACE::ObjectTableCreateInfoNVX* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ObjectTableNVX* pObjectTable, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateObjectTableNVX( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pObjectTable ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createObjectTableNVX( const ObjectTableCreateInfoNVX & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable; - Result result = static_cast( d.vkCreateObjectTableNVX( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &objectTable ) ) ); - return createResultValue( result, objectTable, VULKAN_HPP_NAMESPACE_STRING"::Device::createObjectTableNVX" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createObjectTableNVXUnique( const ObjectTableCreateInfoNVX & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable; - Result result = static_cast( d.vkCreateObjectTableNVX( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &objectTable ) ) ); + operator VkPhysicalDeviceShadingRateImagePropertiesNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, objectTable, VULKAN_HPP_NAMESPACE_STRING"::Device::createObjectTableNVXUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceShadingRateImagePropertiesNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE Result Device::createPipelineCache( const VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PipelineCache* pPipelineCache, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreatePipelineCache( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pPipelineCache ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createPipelineCache( const PipelineCacheCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache; - Result result = static_cast( d.vkCreatePipelineCache( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipelineCache ) ) ); - return createResultValue( result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineCache" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createPipelineCacheUnique( const PipelineCacheCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache; - Result result = static_cast( d.vkCreatePipelineCache( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipelineCache ) ) ); +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceShadingRateImagePropertiesNV const & ) const = default; +#else + bool operator==( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shadingRateTexelSize == rhs.shadingRateTexelSize ) && + ( shadingRatePaletteSize == rhs.shadingRatePaletteSize ) && + ( shadingRateMaxCoarseSamples == rhs.shadingRateMaxCoarseSamples ); + } - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineCacheUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - VULKAN_HPP_INLINE Result Device::createPipelineLayout( const VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PipelineLayout* pPipelineLayout, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreatePipelineLayout( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pPipelineLayout ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createPipelineLayout( const PipelineLayoutCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize = {}; + uint32_t shadingRatePaletteSize = {}; + uint32_t shadingRateMaxCoarseSamples = {}; + }; + static_assert( sizeof( PhysicalDeviceShadingRateImagePropertiesNV ) == + sizeof( VkPhysicalDeviceShadingRateImagePropertiesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType { - VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout; - Result result = static_cast( d.vkCreatePipelineLayout( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipelineLayout ) ) ); - return createResultValue( result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineLayout" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createPipelineLayoutUnique( const PipelineLayoutCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const + using Type = PhysicalDeviceShadingRateImagePropertiesNV; + }; + + struct PhysicalDeviceSubgroupProperties { - VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout; - Result result = static_cast( d.vkCreatePipelineLayout( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipelineLayout ) ) ); + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupProperties; - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineLayoutUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupProperties( + uint32_t subgroupSize_ = {}, + VULKAN_HPP_NAMESPACE::ShaderStageFlags supportedStages_ = {}, + VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags supportedOperations_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 quadOperationsInAllStages_ = {} ) VULKAN_HPP_NOEXCEPT + : subgroupSize( subgroupSize_ ) + , supportedStages( supportedStages_ ) + , supportedOperations( supportedOperations_ ) + , quadOperationsInAllStages( quadOperationsInAllStages_ ) + {} - template - VULKAN_HPP_INLINE Result Device::createQueryPool( const VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::QueryPool* pQueryPool, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateQueryPool( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pQueryPool ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createQueryPool( const QueryPoolCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::QueryPool queryPool; - Result result = static_cast( d.vkCreateQueryPool( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &queryPool ) ) ); - return createResultValue( result, queryPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createQueryPool" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createQueryPoolUnique( const QueryPoolCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::QueryPool queryPool; - Result result = static_cast( d.vkCreateQueryPool( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &queryPool ) ) ); + VULKAN_HPP_CONSTEXPR + PhysicalDeviceSubgroupProperties( PhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, queryPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createQueryPoolUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceSubgroupProperties( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceSubgroupProperties( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - VULKAN_HPP_INLINE Result Device::createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateRayTracingPipelinesNV( m_device, static_cast( pipelineCache ), createInfoCount, reinterpret_cast( pCreateInfos ), reinterpret_cast( pAllocator ), reinterpret_cast( pPipelines ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator, Dispatch const &d ) const - { - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateRayTracingPipelinesNV( m_device, static_cast( pipelineCache ), createInfos.size() , reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelinesNV" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator, Allocator const& vectorAllocator, Dispatch const &d ) const - { - std::vector pipelines( createInfos.size(), vectorAllocator ); - Result result = static_cast( d.vkCreateRayTracingPipelinesNV( m_device, static_cast( pipelineCache ), createInfos.size() , reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelinesNV" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createRayTracingPipelineNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional allocator, Dispatch const &d ) const - { - Pipeline pipeline; - Result result = static_cast( d.vkCreateRayTracingPipelinesNV( m_device, static_cast( pipelineCache ), 1 , reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipeline ) ) ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelineNV" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType,Allocator>>::type Device::createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator, Dispatch const &d ) const - { - static_assert( sizeof( Pipeline ) <= sizeof( UniqueHandle ), "Pipeline is greater than UniqueHandle!" ); - std::vector, Allocator> pipelines; - pipelines.reserve( createInfos.size() ); - Pipeline* buffer = reinterpret_cast( reinterpret_cast( pipelines.data() ) + createInfos.size() * ( sizeof( UniqueHandle ) - sizeof( Pipeline ) ) ); - Result result = static_cast(d.vkCreateRayTracingPipelinesNV( m_device, static_cast( pipelineCache ), createInfos.size() , reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( buffer ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubgroupProperties & + operator=( PhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceSubgroupProperties & operator=( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT { - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0 ; i( buffer[i], deleter ) ); - } + *this = *reinterpret_cast( &rhs ); + return *this; } - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType,Allocator>>::type Device::createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy createInfos, Optional allocator, Allocator const& vectorAllocator, Dispatch const &d ) const - { - static_assert( sizeof( Pipeline ) <= sizeof( UniqueHandle ), "Pipeline is greater than UniqueHandle!" ); - std::vector, Allocator> pipelines( vectorAllocator ); - pipelines.reserve( createInfos.size() ); - Pipeline* buffer = reinterpret_cast( reinterpret_cast( pipelines.data() ) + createInfos.size() * ( sizeof( UniqueHandle ) - sizeof( Pipeline ) ) ); - Result result = static_cast(d.vkCreateRayTracingPipelinesNV( m_device, static_cast( pipelineCache ), createInfos.size() , reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( buffer ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) + operator VkPhysicalDeviceSubgroupProperties const &() const VULKAN_HPP_NOEXCEPT { - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0 ; i( buffer[i], deleter ) ); - } + return *reinterpret_cast( this ); } - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createRayTracingPipelineNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional allocator, Dispatch const &d ) const - { - Pipeline pipeline; - Result result = static_cast( d.vkCreateRayTracingPipelinesNV( m_device, static_cast( pipelineCache ), 1 , reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipeline ) ) ); + operator VkPhysicalDeviceSubgroupProperties &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelineNVUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceSubgroupProperties const & ) const = default; +#else + bool operator==( PhysicalDeviceSubgroupProperties const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( subgroupSize == rhs.subgroupSize ) && + ( supportedStages == rhs.supportedStages ) && ( supportedOperations == rhs.supportedOperations ) && + ( quadOperationsInAllStages == rhs.quadOperationsInAllStages ); + } - template - VULKAN_HPP_INLINE Result Device::createRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateRenderPass( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pRenderPass ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createRenderPass( const RenderPassCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::RenderPass renderPass; - Result result = static_cast( d.vkCreateRenderPass( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &renderPass ) ) ); - return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPass" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createRenderPassUnique( const RenderPassCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::RenderPass renderPass; - Result result = static_cast( d.vkCreateRenderPass( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &renderPass ) ) ); + bool operator!=( PhysicalDeviceSubgroupProperties const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPassUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupProperties; + void * pNext = {}; + uint32_t subgroupSize = {}; + VULKAN_HPP_NAMESPACE::ShaderStageFlags supportedStages = {}; + VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags supportedOperations = {}; + VULKAN_HPP_NAMESPACE::Bool32 quadOperationsInAllStages = {}; + }; + static_assert( sizeof( PhysicalDeviceSubgroupProperties ) == sizeof( VkPhysicalDeviceSubgroupProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - VULKAN_HPP_INLINE Result Device::createRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateRenderPass2( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pRenderPass ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createRenderPass2( const RenderPassCreateInfo2 & createInfo, Optional allocator, Dispatch const &d ) const + template <> + struct CppType { - VULKAN_HPP_NAMESPACE::RenderPass renderPass; - Result result = static_cast( d.vkCreateRenderPass2( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &renderPass ) ) ); - return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPass2" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createRenderPass2Unique( const RenderPassCreateInfo2 & createInfo, Optional allocator, Dispatch const &d ) const + using Type = PhysicalDeviceSubgroupProperties; + }; + + struct PhysicalDeviceSubgroupSizeControlFeaturesEXT { - VULKAN_HPP_NAMESPACE::RenderPass renderPass; - Result result = static_cast( d.vkCreateRenderPass2( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &renderPass ) ) ); + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT; - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPass2Unique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ = {} ) VULKAN_HPP_NOEXCEPT + : subgroupSizeControl( subgroupSizeControl_ ) + , computeFullSubgroups( computeFullSubgroups_ ) + {} - template - VULKAN_HPP_INLINE Result Device::createRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pRenderPass ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createRenderPass2KHR( const RenderPassCreateInfo2 & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::RenderPass renderPass; - Result result = static_cast( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &renderPass ) ) ); - return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPass2KHR" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createRenderPass2KHRUnique( const RenderPassCreateInfo2 & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::RenderPass renderPass; - Result result = static_cast( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &renderPass ) ) ); + VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlFeaturesEXT( + PhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPass2KHRUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceSubgroupSizeControlFeaturesEXT( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceSubgroupSizeControlFeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - VULKAN_HPP_INLINE Result Device::createSampler( const VULKAN_HPP_NAMESPACE::SamplerCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Sampler* pSampler, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateSampler( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSampler ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createSampler( const SamplerCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::Sampler sampler; - Result result = static_cast( d.vkCreateSampler( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &sampler ) ) ); - return createResultValue( result, sampler, VULKAN_HPP_NAMESPACE_STRING"::Device::createSampler" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSamplerUnique( const SamplerCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::Sampler sampler; - Result result = static_cast( d.vkCreateSampler( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &sampler ) ) ); + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubgroupSizeControlFeaturesEXT & + operator=( PhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, sampler, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceSubgroupSizeControlFeaturesEXT & + operator=( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - VULKAN_HPP_INLINE Result Device::createSamplerYcbcrConversion( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion* pYcbcrConversion, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pYcbcrConversion ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createSamplerYcbcrConversion( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion; - Result result = static_cast( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &ycbcrConversion ) ) ); - return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversion" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSamplerYcbcrConversionUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion; - Result result = static_cast( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &ycbcrConversion ) ) ); + PhysicalDeviceSubgroupSizeControlFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversionUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceSubgroupSizeControlFeaturesEXT & + setSubgroupSizeControl( VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ ) VULKAN_HPP_NOEXCEPT + { + subgroupSizeControl = subgroupSizeControl_; + return *this; + } - template - VULKAN_HPP_INLINE Result Device::createSamplerYcbcrConversionKHR( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion* pYcbcrConversion, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pYcbcrConversion ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createSamplerYcbcrConversionKHR( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion; - Result result = static_cast( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &ycbcrConversion ) ) ); - return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversionKHR" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSamplerYcbcrConversionKHRUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion; - Result result = static_cast( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &ycbcrConversion ) ) ); + PhysicalDeviceSubgroupSizeControlFeaturesEXT & + setComputeFullSubgroups( VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ ) VULKAN_HPP_NOEXCEPT + { + computeFullSubgroups = computeFullSubgroups_; + return *this; + } - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversionKHRUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE Result Device::createSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Semaphore* pSemaphore, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateSemaphore( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSemaphore ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createSemaphore( const SemaphoreCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::Semaphore semaphore; - Result result = static_cast( d.vkCreateSemaphore( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &semaphore ) ) ); - return createResultValue( result, semaphore, VULKAN_HPP_NAMESPACE_STRING"::Device::createSemaphore" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSemaphoreUnique( const SemaphoreCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::Semaphore semaphore; - Result result = static_cast( d.vkCreateSemaphore( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &semaphore ) ) ); + operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, semaphore, VULKAN_HPP_NAMESPACE_STRING"::Device::createSemaphoreUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceSubgroupSizeControlFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( subgroupSizeControl == rhs.subgroupSizeControl ) && + ( computeFullSubgroups == rhs.computeFullSubgroups ); + } - template - VULKAN_HPP_INLINE Result Device::createShaderModule( const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ShaderModule* pShaderModule, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateShaderModule( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pShaderModule ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createShaderModule( const ShaderModuleCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::ShaderModule shaderModule; - Result result = static_cast( d.vkCreateShaderModule( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &shaderModule ) ) ); - return createResultValue( result, shaderModule, VULKAN_HPP_NAMESPACE_STRING"::Device::createShaderModule" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createShaderModuleUnique( const ShaderModuleCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::ShaderModule shaderModule; - Result result = static_cast( d.vkCreateShaderModule( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &shaderModule ) ) ); + bool operator!=( PhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, shaderModule, VULKAN_HPP_NAMESPACE_STRING"::Device::createShaderModuleUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl = {}; + VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups = {}; + }; + static_assert( sizeof( PhysicalDeviceSubgroupSizeControlFeaturesEXT ) == + sizeof( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - VULKAN_HPP_INLINE Result Device::createSharedSwapchainsKHR( uint32_t swapchainCount, const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateSharedSwapchainsKHR( m_device, swapchainCount, reinterpret_cast( pCreateInfos ), reinterpret_cast( pAllocator ), reinterpret_cast( pSwapchains ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSharedSwapchainsKHR( ArrayProxy createInfos, Optional allocator, Dispatch const &d ) const - { - std::vector swapchains( createInfos.size() ); - Result result = static_cast( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size() , reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( swapchains.data() ) ) ); - return createResultValue( result, swapchains, VULKAN_HPP_NAMESPACE_STRING"::Device::createSharedSwapchainsKHR" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSharedSwapchainsKHR( ArrayProxy createInfos, Optional allocator, Allocator const& vectorAllocator, Dispatch const &d ) const + template <> + struct CppType { - std::vector swapchains( createInfos.size(), vectorAllocator ); - Result result = static_cast( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size() , reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( swapchains.data() ) ) ); - return createResultValue( result, swapchains, VULKAN_HPP_NAMESPACE_STRING"::Device::createSharedSwapchainsKHR" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createSharedSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional allocator, Dispatch const &d ) const + using Type = PhysicalDeviceSubgroupSizeControlFeaturesEXT; + }; + + struct PhysicalDeviceSubgroupSizeControlPropertiesEXT { - SwapchainKHR swapchain; - Result result = static_cast( d.vkCreateSharedSwapchainsKHR( m_device, 1 , reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &swapchain ) ) ); - return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSharedSwapchainKHR" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType,Allocator>>::type Device::createSharedSwapchainsKHRUnique( ArrayProxy createInfos, Optional allocator, Dispatch const &d ) const - { - static_assert( sizeof( SwapchainKHR ) <= sizeof( UniqueHandle ), "SwapchainKHR is greater than UniqueHandle!" ); - std::vector, Allocator> swapchainKHRs; - swapchainKHRs.reserve( createInfos.size() ); - SwapchainKHR* buffer = reinterpret_cast( reinterpret_cast( swapchainKHRs.data() ) + createInfos.size() * ( sizeof( UniqueHandle ) - sizeof( SwapchainKHR ) ) ); - Result result = static_cast(d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size() , reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( buffer ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlPropertiesEXT( + uint32_t minSubgroupSize_ = {}, + uint32_t maxSubgroupSize_ = {}, + uint32_t maxComputeWorkgroupSubgroups_ = {}, + VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages_ = {} ) VULKAN_HPP_NOEXCEPT + : minSubgroupSize( minSubgroupSize_ ) + , maxSubgroupSize( maxSubgroupSize_ ) + , maxComputeWorkgroupSubgroups( maxComputeWorkgroupSubgroups_ ) + , requiredSubgroupSizeStages( requiredSubgroupSizeStages_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlPropertiesEXT( + PhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceSubgroupSizeControlPropertiesEXT( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceSubgroupSizeControlPropertiesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSubgroupSizeControlPropertiesEXT & + operator=( PhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceSubgroupSizeControlPropertiesEXT & + operator=( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0 ; i( buffer[i], deleter ) ); - } + *this = *reinterpret_cast( &rhs ); + return *this; } - return createResultValue( result, swapchainKHRs, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType,Allocator>>::type Device::createSharedSwapchainsKHRUnique( ArrayProxy createInfos, Optional allocator, Allocator const& vectorAllocator, Dispatch const &d ) const - { - static_assert( sizeof( SwapchainKHR ) <= sizeof( UniqueHandle ), "SwapchainKHR is greater than UniqueHandle!" ); - std::vector, Allocator> swapchainKHRs( vectorAllocator ); - swapchainKHRs.reserve( createInfos.size() ); - SwapchainKHR* buffer = reinterpret_cast( reinterpret_cast( swapchainKHRs.data() ) + createInfos.size() * ( sizeof( UniqueHandle ) - sizeof( SwapchainKHR ) ) ); - Result result = static_cast(d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size() , reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( buffer ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) + operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT { - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0 ; i( buffer[i], deleter ) ); - } + return *reinterpret_cast( this ); } - return createResultValue( result, swapchainKHRs, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSharedSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional allocator, Dispatch const &d ) const - { - SwapchainKHR swapchain; - Result result = static_cast( d.vkCreateSharedSwapchainsKHR( m_device, 1 , reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &swapchain ) ) ); + operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSharedSwapchainKHRUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceSubgroupSizeControlPropertiesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( minSubgroupSize == rhs.minSubgroupSize ) && + ( maxSubgroupSize == rhs.maxSubgroupSize ) && + ( maxComputeWorkgroupSubgroups == rhs.maxComputeWorkgroupSubgroups ) && + ( requiredSubgroupSizeStages == rhs.requiredSubgroupSizeStages ); + } - template - VULKAN_HPP_INLINE Result Device::createSwapchainKHR( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchain, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateSwapchainKHR( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSwapchain ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain; - Result result = static_cast( d.vkCreateSwapchainKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &swapchain ) ) ); - return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSwapchainKHR" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain; - Result result = static_cast( d.vkCreateSwapchainKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &swapchain ) ) ); + bool operator!=( PhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSwapchainKHRUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT; + void * pNext = {}; + uint32_t minSubgroupSize = {}; + uint32_t maxSubgroupSize = {}; + uint32_t maxComputeWorkgroupSubgroups = {}; + VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages = {}; + }; + static_assert( sizeof( PhysicalDeviceSubgroupSizeControlPropertiesEXT ) == + sizeof( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - VULKAN_HPP_INLINE Result Device::createValidationCacheEXT( const VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ValidationCacheEXT* pValidationCache, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pValidationCache ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createValidationCacheEXT( const ValidationCacheCreateInfoEXT & createInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache; - Result result = static_cast( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &validationCache ) ) ); - return createResultValue( result, validationCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createValidationCacheEXT" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createValidationCacheEXTUnique( const ValidationCacheCreateInfoEXT & createInfo, Optional allocator, Dispatch const &d ) const + template <> + struct CppType { - VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache; - Result result = static_cast( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &validationCache ) ) ); - - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, validationCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createValidationCacheEXTUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + using Type = PhysicalDeviceSubgroupSizeControlPropertiesEXT; + }; - template - VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT* pNameInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + struct PhysicalDeviceSynchronization2FeaturesKHR { - return static_cast( d.vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast( pNameInfo ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo, Dispatch const &d ) const - { - Result result = static_cast( d.vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast( &nameInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::debugMarkerSetObjectNameEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceSynchronization2FeaturesKHR; - template - VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT* pTagInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast( pTagInfo ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo, Dispatch const &d ) const - { - Result result = static_cast( d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast( &tagInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::debugMarkerSetObjectTagEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceSynchronization2FeaturesKHR( + VULKAN_HPP_NAMESPACE::Bool32 synchronization2_ = {} ) VULKAN_HPP_NOEXCEPT : synchronization2( synchronization2_ ) + {} - template - VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyAccelerationStructureNV( m_device, static_cast( accelerationStructure ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyAccelerationStructureNV( m_device, static_cast( accelerationStructure ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR PhysicalDeviceSynchronization2FeaturesKHR( + PhysicalDeviceSynchronization2FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyAccelerationStructureNV( m_device, static_cast( accelerationStructure ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyAccelerationStructureNV( m_device, static_cast( accelerationStructure ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceSynchronization2FeaturesKHR( VkPhysicalDeviceSynchronization2FeaturesKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceSynchronization2FeaturesKHR( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - VULKAN_HPP_INLINE void Device::destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBuffer( m_device, static_cast( buffer ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBuffer( m_device, static_cast( buffer ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSynchronization2FeaturesKHR & + operator=( PhysicalDeviceSynchronization2FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBuffer( m_device, static_cast( buffer ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBuffer( m_device, static_cast( buffer ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceSynchronization2FeaturesKHR & + operator=( VkPhysicalDeviceSynchronization2FeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - VULKAN_HPP_INLINE void Device::destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBufferView( m_device, static_cast( bufferView ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBufferView( m_device, static_cast( bufferView ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceSynchronization2FeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBufferView( m_device, static_cast( bufferView ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBufferView( m_device, static_cast( bufferView ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceSynchronization2FeaturesKHR & + setSynchronization2( VULKAN_HPP_NAMESPACE::Bool32 synchronization2_ ) VULKAN_HPP_NOEXCEPT + { + synchronization2 = synchronization2_; + return *this; + } - template - VULKAN_HPP_INLINE void Device::destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyCommandPool( m_device, static_cast( commandPool ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyCommandPool( m_device, static_cast( commandPool ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceSynchronization2FeaturesKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyCommandPool( m_device, static_cast( commandPool ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyCommandPool( m_device, static_cast( commandPool ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceSynchronization2FeaturesKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE void Device::destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorPool( m_device, static_cast( descriptorPool ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorPool( m_device, static_cast( descriptorPool ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceSynchronization2FeaturesKHR const & ) const = default; +#else + bool operator==( PhysicalDeviceSynchronization2FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( synchronization2 == rhs.synchronization2 ); + } - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorPool( m_device, static_cast( descriptorPool ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorPool( m_device, static_cast( descriptorPool ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( PhysicalDeviceSynchronization2FeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - VULKAN_HPP_INLINE void Device::destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorSetLayout( m_device, static_cast( descriptorSetLayout ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorSetLayout( m_device, static_cast( descriptorSetLayout ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSynchronization2FeaturesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 synchronization2 = {}; + }; + static_assert( sizeof( PhysicalDeviceSynchronization2FeaturesKHR ) == + sizeof( VkPhysicalDeviceSynchronization2FeaturesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorSetLayout( m_device, static_cast( descriptorSetLayout ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + template <> + struct CppType { - d.vkDestroyDescriptorSetLayout( m_device, static_cast( descriptorSetLayout ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + using Type = PhysicalDeviceSynchronization2FeaturesKHR; + }; - template - VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast( descriptorUpdateTemplate ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT { - d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast( descriptorUpdateTemplate ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT; - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast( descriptorUpdateTemplate ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast( descriptorUpdateTemplate ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ = {} ) VULKAN_HPP_NOEXCEPT + : texelBufferAlignment( texelBufferAlignment_ ) + {} - template - VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorUpdateTemplateKHR( m_device, static_cast( descriptorUpdateTemplate ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorUpdateTemplateKHR( m_device, static_cast( descriptorUpdateTemplate ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentFeaturesEXT( + PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE void Device::destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDevice( m_device, reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDevice( m_device, reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceTexelBufferAlignmentFeaturesEXT( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceTexelBufferAlignmentFeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - VULKAN_HPP_INLINE void Device::destroyEvent( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyEvent( m_device, static_cast( event ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyEvent( VULKAN_HPP_NAMESPACE::Event event, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyEvent( m_device, static_cast( event ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTexelBufferAlignmentFeaturesEXT & + operator=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyEvent( m_device, static_cast( event ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Event event, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyEvent( m_device, static_cast( event ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceTexelBufferAlignmentFeaturesEXT & + operator=( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - VULKAN_HPP_INLINE void Device::destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFence( m_device, static_cast( fence ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFence( m_device, static_cast( fence ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFence( m_device, static_cast( fence ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Fence fence, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFence( m_device, static_cast( fence ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceTexelBufferAlignmentFeaturesEXT & + setTexelBufferAlignment( VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ ) VULKAN_HPP_NOEXCEPT + { + texelBufferAlignment = texelBufferAlignment_; + return *this; + } - template - VULKAN_HPP_INLINE void Device::destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFramebuffer( m_device, static_cast( framebuffer ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFramebuffer( m_device, static_cast( framebuffer ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFramebuffer( m_device, static_cast( framebuffer ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFramebuffer( m_device, static_cast( framebuffer ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE void Device::destroyImage( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyImage( m_device, static_cast( image ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyImage( VULKAN_HPP_NAMESPACE::Image image, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyImage( m_device, static_cast( image ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( texelBufferAlignment == rhs.texelBufferAlignment ); + } - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyImage( m_device, static_cast( image ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Image image, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyImage( m_device, static_cast( image ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - VULKAN_HPP_INLINE void Device::destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyImageView( m_device, static_cast( imageView ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyImageView( m_device, static_cast( imageView ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment = {}; + }; + static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentFeaturesEXT ) == + sizeof( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyImageView( m_device, static_cast( imageView ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + template <> + struct CppType { - d.vkDestroyImageView( m_device, static_cast( imageView ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + using Type = PhysicalDeviceTexelBufferAlignmentFeaturesEXT; + }; - template - VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutNVX( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNVX indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyIndirectCommandsLayoutNVX( m_device, static_cast( indirectCommandsLayout ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutNVX( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNVX indirectCommandsLayout, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + struct PhysicalDeviceTexelBufferAlignmentPropertiesEXT { - d.vkDestroyIndirectCommandsLayoutNVX( m_device, static_cast( indirectCommandsLayout ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT; - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNVX indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyIndirectCommandsLayoutNVX( m_device, static_cast( indirectCommandsLayout ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNVX indirectCommandsLayout, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyIndirectCommandsLayoutNVX( m_device, static_cast( indirectCommandsLayout ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentPropertiesEXT( + VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment_ = {} ) VULKAN_HPP_NOEXCEPT + : storageTexelBufferOffsetAlignmentBytes( storageTexelBufferOffsetAlignmentBytes_ ) + , storageTexelBufferOffsetSingleTexelAlignment( storageTexelBufferOffsetSingleTexelAlignment_ ) + , uniformTexelBufferOffsetAlignmentBytes( uniformTexelBufferOffsetAlignmentBytes_ ) + , uniformTexelBufferOffsetSingleTexelAlignment( uniformTexelBufferOffsetSingleTexelAlignment_ ) + {} - template - VULKAN_HPP_INLINE void Device::destroyObjectTableNVX( VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyObjectTableNVX( m_device, static_cast( objectTable ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyObjectTableNVX( VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyObjectTableNVX( m_device, static_cast( objectTable ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentPropertiesEXT( + PhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyObjectTableNVX( m_device, static_cast( objectTable ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyObjectTableNVX( m_device, static_cast( objectTable ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceTexelBufferAlignmentPropertiesEXT( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceTexelBufferAlignmentPropertiesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - VULKAN_HPP_INLINE void Device::destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipeline( m_device, static_cast( pipeline ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipeline( m_device, static_cast( pipeline ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTexelBufferAlignmentPropertiesEXT & + operator=( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipeline( m_device, static_cast( pipeline ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipeline( m_device, static_cast( pipeline ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceTexelBufferAlignmentPropertiesEXT & + operator=( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - VULKAN_HPP_INLINE void Device::destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineCache( m_device, static_cast( pipelineCache ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineCache( m_device, static_cast( pipelineCache ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineCache( m_device, static_cast( pipelineCache ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineCache( m_device, static_cast( pipelineCache ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE void Device::destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineLayout( m_device, static_cast( pipelineLayout ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineLayout( m_device, static_cast( pipelineLayout ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( storageTexelBufferOffsetAlignmentBytes == rhs.storageTexelBufferOffsetAlignmentBytes ) && + ( storageTexelBufferOffsetSingleTexelAlignment == rhs.storageTexelBufferOffsetSingleTexelAlignment ) && + ( uniformTexelBufferOffsetAlignmentBytes == rhs.uniformTexelBufferOffsetAlignmentBytes ) && + ( uniformTexelBufferOffsetSingleTexelAlignment == rhs.uniformTexelBufferOffsetSingleTexelAlignment ); + } - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineLayout( m_device, static_cast( pipelineLayout ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineLayout( m_device, static_cast( pipelineLayout ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - VULKAN_HPP_INLINE void Device::destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyQueryPool( m_device, static_cast( queryPool ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyQueryPool( m_device, static_cast( queryPool ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes = {}; + VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment = {}; + VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes = {}; + VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment = {}; + }; + static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentPropertiesEXT ) == + sizeof( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyQueryPool( m_device, static_cast( queryPool ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + template <> + struct CppType { - d.vkDestroyQueryPool( m_device, static_cast( queryPool ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + using Type = PhysicalDeviceTexelBufferAlignmentPropertiesEXT; + }; - template - VULKAN_HPP_INLINE void Device::destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyRenderPass( m_device, static_cast( renderPass ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + struct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT { - d.vkDestroyRenderPass( m_device, static_cast( renderPass ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT; - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyRenderPass( m_device, static_cast( renderPass ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyRenderPass( m_device, static_cast( renderPass ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ = {} ) VULKAN_HPP_NOEXCEPT + : textureCompressionASTC_HDR( textureCompressionASTC_HDR_ ) + {} - template - VULKAN_HPP_INLINE void Device::destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySampler( m_device, static_cast( sampler ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySampler( m_device, static_cast( sampler ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( + PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySampler( m_device, static_cast( sampler ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySampler( m_device, static_cast( sampler ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( + VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySamplerYcbcrConversion( m_device, static_cast( ycbcrConversion ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySamplerYcbcrConversion( m_device, static_cast( ycbcrConversion ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & + operator=( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySamplerYcbcrConversion( m_device, static_cast( ycbcrConversion ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySamplerYcbcrConversion( m_device, static_cast( ycbcrConversion ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & + operator=( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = + *reinterpret_cast( &rhs ); + return *this; + } - template - VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySamplerYcbcrConversionKHR( m_device, static_cast( ycbcrConversion ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySamplerYcbcrConversionKHR( m_device, static_cast( ycbcrConversion ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } - template - VULKAN_HPP_INLINE void Device::destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySemaphore( m_device, static_cast( semaphore ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySemaphore( m_device, static_cast( semaphore ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & + setTextureCompressionASTC_HDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ ) VULKAN_HPP_NOEXCEPT + { + textureCompressionASTC_HDR = textureCompressionASTC_HDR_; + return *this; + } - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySemaphore( m_device, static_cast( semaphore ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySemaphore( m_device, static_cast( semaphore ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE void Device::destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyShaderModule( m_device, static_cast( shaderModule ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyShaderModule( m_device, static_cast( shaderModule ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyShaderModule( m_device, static_cast( shaderModule ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyShaderModule( m_device, static_cast( shaderModule ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( textureCompressionASTC_HDR == rhs.textureCompressionASTC_HDR ); + } - template - VULKAN_HPP_INLINE void Device::destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySwapchainKHR( m_device, static_cast( swapchain ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySwapchainKHR( m_device, static_cast( swapchain ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySwapchainKHR( m_device, static_cast( swapchain ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySwapchainKHR( m_device, static_cast( swapchain ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR = {}; + }; + static_assert( sizeof( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ) == + sizeof( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - VULKAN_HPP_INLINE void Device::destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyValidationCacheEXT( m_device, static_cast( validationCache ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + template <> + struct CppType { - d.vkDestroyValidationCacheEXT( m_device, static_cast( validationCache ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + using Type = PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT; + }; - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyValidationCacheEXT( m_device, static_cast( validationCache ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + struct PhysicalDeviceTimelineSemaphoreFeatures { - d.vkDestroyValidationCacheEXT( m_device, static_cast( validationCache ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceTimelineSemaphoreFeatures; -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Device::waitIdle(Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkDeviceWaitIdle( m_device ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::waitIdle(Dispatch const &d ) const - { - Result result = static_cast( d.vkDeviceWaitIdle( m_device ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::waitIdle" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreFeatures( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ = {} ) + VULKAN_HPP_NOEXCEPT : timelineSemaphore( timelineSemaphore_ ) + {} - template - VULKAN_HPP_INLINE Result Device::displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT* pDisplayPowerInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkDisplayPowerControlEXT( m_device, static_cast( display ), reinterpret_cast( pDisplayPowerInfo ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo, Dispatch const &d ) const - { - Result result = static_cast( d.vkDisplayPowerControlEXT( m_device, static_cast( display ), reinterpret_cast( &displayPowerInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::displayPowerControlEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreFeatures( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) + VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE Result Device::flushMappedMemoryRanges( uint32_t memoryRangeCount, const VULKAN_HPP_NAMESPACE::MappedMemoryRange* pMemoryRanges, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkFlushMappedMemoryRanges( m_device, memoryRangeCount, reinterpret_cast( pMemoryRanges ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::flushMappedMemoryRanges( ArrayProxy memoryRanges, Dispatch const &d ) const - { - Result result = static_cast( d.vkFlushMappedMemoryRanges( m_device, memoryRanges.size() , reinterpret_cast( memoryRanges.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::flushMappedMemoryRanges" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceTimelineSemaphoreFeatures( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceTimelineSemaphoreFeatures( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - VULKAN_HPP_INLINE void Device::freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool commandPool, uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeCommandBuffers( m_device, static_cast( commandPool ), commandBufferCount, reinterpret_cast( pCommandBuffers ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool commandPool, ArrayProxy commandBuffers, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeCommandBuffers( m_device, static_cast( commandPool ), commandBuffers.size() , reinterpret_cast( commandBuffers.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTimelineSemaphoreFeatures & + operator=( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::CommandPool commandPool, uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeCommandBuffers( m_device, static_cast( commandPool ), commandBufferCount, reinterpret_cast( pCommandBuffers ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::CommandPool commandPool, ArrayProxy commandBuffers, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeCommandBuffers( m_device, static_cast( commandPool ), commandBuffers.size() , reinterpret_cast( commandBuffers.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceTimelineSemaphoreFeatures & + operator=( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - VULKAN_HPP_INLINE Result Device::freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkFreeDescriptorSets( m_device, static_cast( descriptorPool ), descriptorSetCount, reinterpret_cast( pDescriptorSets ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, ArrayProxy descriptorSets, Dispatch const &d ) const - { - Result result = static_cast( d.vkFreeDescriptorSets( m_device, static_cast( descriptorPool ), descriptorSets.size() , reinterpret_cast( descriptorSets.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::freeDescriptorSets" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceTimelineSemaphoreFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } - template - VULKAN_HPP_INLINE Result Device::free( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkFreeDescriptorSets( m_device, static_cast( descriptorPool ), descriptorSetCount, reinterpret_cast( pDescriptorSets ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::free( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, ArrayProxy descriptorSets, Dispatch const &d ) const - { - Result result = static_cast( d.vkFreeDescriptorSets( m_device, static_cast( descriptorPool ), descriptorSets.size() , reinterpret_cast( descriptorSets.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::free" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceTimelineSemaphoreFeatures & + setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT + { + timelineSemaphore = timelineSemaphore_; + return *this; + } - template - VULKAN_HPP_INLINE void Device::freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeMemory( m_device, static_cast( memory ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeMemory( m_device, static_cast( memory ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceTimelineSemaphoreFeatures const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeMemory( m_device, static_cast( memory ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeMemory( m_device, static_cast( memory ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceTimelineSemaphoreFeatures &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE Result Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, size_t dataSize, void* pData, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetAccelerationStructureHandleNV( m_device, static_cast( accelerationStructure ), dataSize, pData ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, ArrayProxy data, Dispatch const &d ) const - { - Result result = static_cast( d.vkGetAccelerationStructureHandleNV( m_device, static_cast( accelerationStructure ), data.size() * sizeof( T ) , reinterpret_cast( data.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getAccelerationStructureHandleNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceTimelineSemaphoreFeatures const & ) const = default; +#else + bool operator==( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( timelineSemaphore == rhs.timelineSemaphore ); + } - template - VULKAN_HPP_INLINE void Device::getAccelerationStructureMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast( pInfo ), reinterpret_cast( pMemoryRequirements ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR memoryRequirements; - d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return memoryRequirements; - } - template - VULKAN_HPP_INLINE StructureChain Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreFeatures; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {}; + }; + static_assert( sizeof( PhysicalDeviceTimelineSemaphoreFeatures ) == + sizeof( VkPhysicalDeviceTimelineSemaphoreFeatures ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR& memoryRequirements = structureChain.template get(); - d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + using Type = PhysicalDeviceTimelineSemaphoreFeatures; + }; + using PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures; -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template - VULKAN_HPP_INLINE Result Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer* buffer, VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + struct PhysicalDeviceTimelineSemaphoreProperties { - return static_cast( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast( pProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID properties; - Result result = static_cast( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast( &properties ) ) ); - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getAndroidHardwareBufferPropertiesANDROID" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d ) const - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID& properties = structureChain.template get(); - Result result = static_cast( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast( &properties ) ) ); - return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::Device::getAndroidHardwareBufferPropertiesANDROID" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - template - VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetBufferDeviceAddress( m_device, reinterpret_cast( pInfo ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddress( const BufferDeviceAddressInfo & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetBufferDeviceAddress( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceTimelineSemaphoreProperties; - template - VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast( pInfo ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( const BufferDeviceAddressInfo & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreProperties( uint64_t maxTimelineSemaphoreValueDifference_ = {} ) + VULKAN_HPP_NOEXCEPT : maxTimelineSemaphoreValueDifference( maxTimelineSemaphoreValueDifference_ ) + {} - template - VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetBufferDeviceAddressKHR( m_device, reinterpret_cast( pInfo ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetBufferDeviceAddressKHR( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreProperties( + PhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkGetBufferMemoryRequirements( m_device, static_cast( buffer ), reinterpret_cast( pMemoryRequirements ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Device::getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements; - d.vkGetBufferMemoryRequirements( m_device, static_cast( buffer ), reinterpret_cast( &memoryRequirements ) ); - return memoryRequirements; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceTimelineSemaphoreProperties( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceTimelineSemaphoreProperties( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast( pInfo ), reinterpret_cast( pMemoryRequirements ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; - d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return memoryRequirements; - } - template - VULKAN_HPP_INLINE StructureChain Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::MemoryRequirements2& memoryRequirements = structureChain.template get(); - d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTimelineSemaphoreProperties & + operator=( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast( pInfo ), reinterpret_cast( pMemoryRequirements ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; - d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return memoryRequirements; - } - template - VULKAN_HPP_INLINE StructureChain Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::MemoryRequirements2& memoryRequirements = structureChain.template get(); - d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceTimelineSemaphoreProperties & + operator=( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetBufferOpaqueCaptureAddress( m_device, reinterpret_cast( pInfo ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress( const BufferDeviceAddressInfo & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetBufferOpaqueCaptureAddress( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceTimelineSemaphoreProperties const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetBufferOpaqueCaptureAddressKHR( m_device, reinterpret_cast( pInfo ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetBufferOpaqueCaptureAddressKHR( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceTimelineSemaphoreProperties &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE Result Device::getCalibratedTimestampsEXT( uint32_t timestampCount, const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetCalibratedTimestampsEXT( m_device, timestampCount, reinterpret_cast( pTimestampInfos ), pTimestamps, pMaxDeviation ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getCalibratedTimestampsEXT( ArrayProxy timestampInfos, ArrayProxy timestamps, Dispatch const &d ) const - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( timestampInfos.size() == timestamps.size() ); +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceTimelineSemaphoreProperties const & ) const = default; #else - if ( timestampInfos.size() != timestamps.size() ) + bool operator==( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) const VULKAN_HPP_NOEXCEPT { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkDevice::getCalibratedTimestampsEXT: timestampInfos.size() != timestamps.size()" ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference ); } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - uint64_t maxDeviation; - Result result = static_cast( d.vkGetCalibratedTimestampsEXT( m_device, timestampInfos.size() , reinterpret_cast( timestampInfos.data() ), timestamps.data(), &maxDeviation ) ); - return createResultValue( result, maxDeviation, VULKAN_HPP_NAMESPACE_STRING"::Device::getCalibratedTimestampsEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - template - VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pSupport ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support; - d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( &support ) ); - return support; - } - template - VULKAN_HPP_INLINE StructureChain Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport& support = structureChain.template get(); - d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( &support ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pSupport ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support; - d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( &support ) ); - return support; - } - template - VULKAN_HPP_INLINE StructureChain Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport& support = structureChain.template get(); - d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( &support ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreProperties; + void * pNext = {}; + uint64_t maxTimelineSemaphoreValueDifference = {}; + }; + static_assert( sizeof( PhysicalDeviceTimelineSemaphoreProperties ) == + sizeof( VkPhysicalDeviceTimelineSemaphoreProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - VULKAN_HPP_INLINE void Device::getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkGetDeviceGroupPeerMemoryFeatures( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast( pPeerMemoryFeatures ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags Device::getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + template <> + struct CppType { - VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures; - d.vkGetDeviceGroupPeerMemoryFeatures( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast( &peerMemoryFeatures ) ); - return peerMemoryFeatures; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + using Type = PhysicalDeviceTimelineSemaphoreProperties; + }; + using PhysicalDeviceTimelineSemaphorePropertiesKHR = PhysicalDeviceTimelineSemaphoreProperties; - template - VULKAN_HPP_INLINE void Device::getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast( pPeerMemoryFeatures ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags Device::getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + struct PhysicalDeviceTransformFeedbackFeaturesEXT { - VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures; - d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast( &peerMemoryFeatures ) ); - return peerMemoryFeatures; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT; - template - VULKAN_HPP_INLINE Result Device::getGroupPresentCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetDeviceGroupPresentCapabilitiesKHR( m_device, reinterpret_cast( pDeviceGroupPresentCapabilities ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getGroupPresentCapabilitiesKHR(Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR deviceGroupPresentCapabilities; - Result result = static_cast( d.vkGetDeviceGroupPresentCapabilitiesKHR( m_device, reinterpret_cast( &deviceGroupPresentCapabilities ) ) ); - return createResultValue( result, deviceGroupPresentCapabilities, VULKAN_HPP_NAMESPACE_STRING"::Device::getGroupPresentCapabilitiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ = {} ) VULKAN_HPP_NOEXCEPT + : transformFeedback( transformFeedback_ ) + , geometryStreams( geometryStreams_ ) + {} -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_INLINE Result Device::getGroupSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetDeviceGroupSurfacePresentModes2EXT( m_device, reinterpret_cast( pSurfaceInfo ), reinterpret_cast( pModes ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes; - Result result = static_cast( d.vkGetDeviceGroupSurfacePresentModes2EXT( m_device, reinterpret_cast( &surfaceInfo ), reinterpret_cast( &modes ) ) ); - return createResultValue( result, modes, VULKAN_HPP_NAMESPACE_STRING"::Device::getGroupSurfacePresentModes2EXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackFeaturesEXT( + PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE Result Device::getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetDeviceGroupSurfacePresentModesKHR( m_device, static_cast( surface ), reinterpret_cast( pModes ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes; - Result result = static_cast( d.vkGetDeviceGroupSurfacePresentModesKHR( m_device, static_cast( surface ), reinterpret_cast( &modes ) ) ); - return createResultValue( result, modes, VULKAN_HPP_NAMESPACE_STRING"::Device::getGroupSurfacePresentModesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceTransformFeedbackFeaturesEXT( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceTransformFeedbackFeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - VULKAN_HPP_INLINE void Device::getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize* pCommittedMemoryInBytes, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkGetDeviceMemoryCommitment( m_device, static_cast( memory ), reinterpret_cast( pCommittedMemoryInBytes ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize Device::getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::DeviceSize committedMemoryInBytes; - d.vkGetDeviceMemoryCommitment( m_device, static_cast( memory ), reinterpret_cast( &committedMemoryInBytes ) ); - return committedMemoryInBytes; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTransformFeedbackFeaturesEXT & + operator=( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetDeviceMemoryOpaqueCaptureAddress( m_device, reinterpret_cast( pInfo ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddress( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetDeviceMemoryOpaqueCaptureAddress( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceTransformFeedbackFeaturesEXT & + operator=( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetDeviceMemoryOpaqueCaptureAddressKHR( m_device, reinterpret_cast( pInfo ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddressKHR( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetDeviceMemoryOpaqueCaptureAddressKHR( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceTransformFeedbackFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } - template - VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const char* pName, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetDeviceProcAddr( m_device, pName ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const std::string & name, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetDeviceProcAddr( m_device, name.c_str() ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceTransformFeedbackFeaturesEXT & + setTransformFeedback( VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ ) VULKAN_HPP_NOEXCEPT + { + transformFeedback = transformFeedback_; + return *this; + } - template - VULKAN_HPP_INLINE void Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast( pQueue ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Queue Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::Queue queue; - d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast( &queue ) ); - return queue; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceTransformFeedbackFeaturesEXT & + setGeometryStreams( VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ ) VULKAN_HPP_NOEXCEPT + { + geometryStreams = geometryStreams_; + return *this; + } - template - VULKAN_HPP_INLINE void Device::getQueue2( const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2* pQueueInfo, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkGetDeviceQueue2( m_device, reinterpret_cast( pQueueInfo ), reinterpret_cast( pQueue ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Queue Device::getQueue2( const DeviceQueueInfo2 & queueInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::Queue queue; - d.vkGetDeviceQueue2( m_device, reinterpret_cast( &queueInfo ), reinterpret_cast( &queue ) ); - return queue; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Device::getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetEventStatus( m_device, static_cast( event ) ) ); - } + operator VkPhysicalDeviceTransformFeedbackFeaturesEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceTransformFeedbackFeaturesEXT const & ) const = default; #else - template - VULKAN_HPP_INLINE Result Device::getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d ) const - { - Result result = static_cast( d.vkGetEventStatus( m_device, static_cast( event ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getEventStatus", { Result::eEventSet, Result::eEventReset } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator==( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( transformFeedback == rhs.transformFeedback ) && + ( geometryStreams == rhs.geometryStreams ); + } - template - VULKAN_HPP_INLINE Result Device::getFenceFdKHR( const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetFenceFdKHR( m_device, reinterpret_cast( pGetFdInfo ), pFd ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo, Dispatch const &d ) const - { - int fd; - Result result = static_cast( d.vkGetFenceFdKHR( m_device, reinterpret_cast( &getFdInfo ), &fd ) ); - return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING"::Device::getFenceFdKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Device::getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetFenceStatus( m_device, static_cast( fence ) ) ); - } -#else - template - VULKAN_HPP_INLINE Result Device::getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d ) const - { - Result result = static_cast( d.vkGetFenceStatus( m_device, static_cast( fence ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getFenceStatus", { Result::eSuccess, Result::eNotReady } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 transformFeedback = {}; + VULKAN_HPP_NAMESPACE::Bool32 geometryStreams = {}; + }; + static_assert( sizeof( PhysicalDeviceTransformFeedbackFeaturesEXT ) == + sizeof( VkPhysicalDeviceTransformFeedbackFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_INLINE Result Device::getFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetFenceWin32HandleKHR( m_device, reinterpret_cast( pGetWin32HandleInfo ), pHandle ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d ) const + template <> + struct CppType { - HANDLE handle; - Result result = static_cast( d.vkGetFenceWin32HandleKHR( m_device, reinterpret_cast( &getWin32HandleInfo ), &handle ) ); - return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING"::Device::getFenceWin32HandleKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + using Type = PhysicalDeviceTransformFeedbackFeaturesEXT; + }; - template - VULKAN_HPP_INLINE Result Device::getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetImageDrmFormatModifierPropertiesEXT( m_device, static_cast( image ), reinterpret_cast( pProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, Dispatch const &d ) const + struct PhysicalDeviceTransformFeedbackPropertiesEXT { - VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT properties; - Result result = static_cast( d.vkGetImageDrmFormatModifierPropertiesEXT( m_device, static_cast( image ), reinterpret_cast( &properties ) ) ); - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getImageDrmFormatModifierPropertiesEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackPropertiesEXT( + uint32_t maxTransformFeedbackStreams_ = {}, + uint32_t maxTransformFeedbackBuffers_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize maxTransformFeedbackBufferSize_ = {}, + uint32_t maxTransformFeedbackStreamDataSize_ = {}, + uint32_t maxTransformFeedbackBufferDataSize_ = {}, + uint32_t maxTransformFeedbackBufferDataStride_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackQueries_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackStreamsLinesTriangles_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackRasterizationStreamSelect_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackDraw_ = {} ) VULKAN_HPP_NOEXCEPT + : maxTransformFeedbackStreams( maxTransformFeedbackStreams_ ) + , maxTransformFeedbackBuffers( maxTransformFeedbackBuffers_ ) + , maxTransformFeedbackBufferSize( maxTransformFeedbackBufferSize_ ) + , maxTransformFeedbackStreamDataSize( maxTransformFeedbackStreamDataSize_ ) + , maxTransformFeedbackBufferDataSize( maxTransformFeedbackBufferDataSize_ ) + , maxTransformFeedbackBufferDataStride( maxTransformFeedbackBufferDataStride_ ) + , transformFeedbackQueries( transformFeedbackQueries_ ) + , transformFeedbackStreamsLinesTriangles( transformFeedbackStreamsLinesTriangles_ ) + , transformFeedbackRasterizationStreamSelect( transformFeedbackRasterizationStreamSelect_ ) + , transformFeedbackDraw( transformFeedbackDraw_ ) + {} - template - VULKAN_HPP_INLINE void Device::getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkGetImageMemoryRequirements( m_device, static_cast( image ), reinterpret_cast( pMemoryRequirements ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Device::getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements; - d.vkGetImageMemoryRequirements( m_device, static_cast( image ), reinterpret_cast( &memoryRequirements ) ); - return memoryRequirements; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackPropertiesEXT( + PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE void Device::getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast( pInfo ), reinterpret_cast( pMemoryRequirements ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; - d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return memoryRequirements; - } - template - VULKAN_HPP_INLINE StructureChain Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::MemoryRequirements2& memoryRequirements = structureChain.template get(); - d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceTransformFeedbackPropertiesEXT( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceTransformFeedbackPropertiesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - VULKAN_HPP_INLINE void Device::getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast( pInfo ), reinterpret_cast( pMemoryRequirements ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; - d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return memoryRequirements; - } - template - VULKAN_HPP_INLINE StructureChain Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::MemoryRequirements2& memoryRequirements = structureChain.template get(); - d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceTransformFeedbackPropertiesEXT & + operator=( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements* pSparseMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkGetImageSparseMemoryRequirements( m_device, static_cast( image ), pSparseMemoryRequirementCount, reinterpret_cast( pSparseMemoryRequirements ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE std::vector Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const &d ) const - { - std::vector sparseMemoryRequirements; - uint32_t sparseMemoryRequirementCount; - d.vkGetImageSparseMemoryRequirements( m_device, static_cast( image ), &sparseMemoryRequirementCount, nullptr ); - sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); - d.vkGetImageSparseMemoryRequirements( m_device, static_cast( image ), &sparseMemoryRequirementCount, reinterpret_cast( sparseMemoryRequirements.data() ) ); - return sparseMemoryRequirements; - } - template - VULKAN_HPP_INLINE std::vector Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Allocator const& vectorAllocator, Dispatch const &d ) const - { - std::vector sparseMemoryRequirements( vectorAllocator ); - uint32_t sparseMemoryRequirementCount; - d.vkGetImageSparseMemoryRequirements( m_device, static_cast( image ), &sparseMemoryRequirementCount, nullptr ); - sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); - d.vkGetImageSparseMemoryRequirements( m_device, static_cast( image ), &sparseMemoryRequirementCount, reinterpret_cast( sparseMemoryRequirements.data() ) ); - return sparseMemoryRequirements; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceTransformFeedbackPropertiesEXT & + operator=( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast( pInfo ), pSparseMemoryRequirementCount, reinterpret_cast( pSparseMemoryRequirements ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE std::vector Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const &d ) const - { - std::vector sparseMemoryRequirements; - uint32_t sparseMemoryRequirementCount; - d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, nullptr ); - sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); - d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, reinterpret_cast( sparseMemoryRequirements.data() ) ); - return sparseMemoryRequirements; - } - template - VULKAN_HPP_INLINE std::vector Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Allocator const& vectorAllocator, Dispatch const &d ) const - { - std::vector sparseMemoryRequirements( vectorAllocator ); - uint32_t sparseMemoryRequirementCount; - d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, nullptr ); - sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); - d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, reinterpret_cast( sparseMemoryRequirements.data() ) ); - return sparseMemoryRequirements; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceTransformFeedbackPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast( pInfo ), pSparseMemoryRequirementCount, reinterpret_cast( pSparseMemoryRequirements ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE std::vector Device::getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const &d ) const - { - std::vector sparseMemoryRequirements; - uint32_t sparseMemoryRequirementCount; - d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, nullptr ); - sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); - d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, reinterpret_cast( sparseMemoryRequirements.data() ) ); - return sparseMemoryRequirements; - } - template - VULKAN_HPP_INLINE std::vector Device::getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Allocator const& vectorAllocator, Dispatch const &d ) const - { - std::vector sparseMemoryRequirements( vectorAllocator ); - uint32_t sparseMemoryRequirementCount; - d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, nullptr ); - sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); - d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, reinterpret_cast( sparseMemoryRequirements.data() ) ); - return sparseMemoryRequirements; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceTransformFeedbackPropertiesEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE void Device::getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::ImageSubresource* pSubresource, VULKAN_HPP_NAMESPACE::SubresourceLayout* pLayout, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkGetImageSubresourceLayout( m_device, static_cast( image ), reinterpret_cast( pSubresource ), reinterpret_cast( pLayout ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout Device::getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, const ImageSubresource & subresource, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::SubresourceLayout layout; - d.vkGetImageSubresourceLayout( m_device, static_cast( image ), reinterpret_cast( &subresource ), reinterpret_cast( &layout ) ); - return layout; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceTransformFeedbackPropertiesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( maxTransformFeedbackStreams == rhs.maxTransformFeedbackStreams ) && + ( maxTransformFeedbackBuffers == rhs.maxTransformFeedbackBuffers ) && + ( maxTransformFeedbackBufferSize == rhs.maxTransformFeedbackBufferSize ) && + ( maxTransformFeedbackStreamDataSize == rhs.maxTransformFeedbackStreamDataSize ) && + ( maxTransformFeedbackBufferDataSize == rhs.maxTransformFeedbackBufferDataSize ) && + ( maxTransformFeedbackBufferDataStride == rhs.maxTransformFeedbackBufferDataStride ) && + ( transformFeedbackQueries == rhs.transformFeedbackQueries ) && + ( transformFeedbackStreamsLinesTriangles == rhs.transformFeedbackStreamsLinesTriangles ) && + ( transformFeedbackRasterizationStreamSelect == rhs.transformFeedbackRasterizationStreamSelect ) && + ( transformFeedbackDraw == rhs.transformFeedbackDraw ); + } - template - VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast( pInfo ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const ImageViewHandleInfoNVX & info, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template - VULKAN_HPP_INLINE Result Device::getMemoryAndroidHardwareBufferANDROID( const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast( pInfo ), pBuffer ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, Dispatch const &d ) const - { - struct AHardwareBuffer* buffer; - Result result = static_cast( d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast( &info ), &buffer ) ); - return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryAndroidHardwareBufferANDROID" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT; + void * pNext = {}; + uint32_t maxTransformFeedbackStreams = {}; + uint32_t maxTransformFeedbackBuffers = {}; + VULKAN_HPP_NAMESPACE::DeviceSize maxTransformFeedbackBufferSize = {}; + uint32_t maxTransformFeedbackStreamDataSize = {}; + uint32_t maxTransformFeedbackBufferDataSize = {}; + uint32_t maxTransformFeedbackBufferDataStride = {}; + VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackQueries = {}; + VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackStreamsLinesTriangles = {}; + VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackRasterizationStreamSelect = {}; + VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackDraw = {}; + }; + static_assert( sizeof( PhysicalDeviceTransformFeedbackPropertiesEXT ) == + sizeof( VkPhysicalDeviceTransformFeedbackPropertiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - VULKAN_HPP_INLINE Result Device::getMemoryFdKHR( const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetMemoryFdKHR( m_device, reinterpret_cast( pGetFdInfo ), pFd ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo, Dispatch const &d ) const + template <> + struct CppType { - int fd; - Result result = static_cast( d.vkGetMemoryFdKHR( m_device, reinterpret_cast( &getFdInfo ), &fd ) ); - return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryFdKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + using Type = PhysicalDeviceTransformFeedbackPropertiesEXT; + }; - template - VULKAN_HPP_INLINE Result Device::getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd, VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR* pMemoryFdProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetMemoryFdPropertiesKHR( m_device, static_cast( handleType ), fd, reinterpret_cast( pMemoryFdProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd, Dispatch const &d ) const + struct PhysicalDeviceUniformBufferStandardLayoutFeatures { - VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR memoryFdProperties; - Result result = static_cast( d.vkGetMemoryFdPropertiesKHR( m_device, static_cast( handleType ), fd, reinterpret_cast( &memoryFdProperties ) ) ); - return createResultValue( result, memoryFdProperties, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryFdPropertiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures; - template - VULKAN_HPP_INLINE Result Device::getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetMemoryHostPointerPropertiesEXT( m_device, static_cast( handleType ), pHostPointer, reinterpret_cast( pMemoryHostPointerProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT memoryHostPointerProperties; - Result result = static_cast( d.vkGetMemoryHostPointerPropertiesEXT( m_device, static_cast( handleType ), pHostPointer, reinterpret_cast( &memoryHostPointerProperties ) ) ); - return createResultValue( result, memoryHostPointerProperties, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryHostPointerPropertiesEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceUniformBufferStandardLayoutFeatures( + VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ = {} ) VULKAN_HPP_NOEXCEPT + : uniformBufferStandardLayout( uniformBufferStandardLayout_ ) + {} -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_INLINE Result Device::getMemoryWin32HandleKHR( const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetMemoryWin32HandleKHR( m_device, reinterpret_cast( pGetWin32HandleInfo ), pHandle ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d ) const - { - HANDLE handle; - Result result = static_cast( d.vkGetMemoryWin32HandleKHR( m_device, reinterpret_cast( &getWin32HandleInfo ), &handle ) ); - return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryWin32HandleKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + VULKAN_HPP_CONSTEXPR PhysicalDeviceUniformBufferStandardLayoutFeatures( + PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_INLINE Result Device::getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetMemoryWin32HandleNV( m_device, static_cast( memory ), static_cast( handleType ), pHandle ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, Dispatch const &d ) const - { - HANDLE handle; - Result result = static_cast( d.vkGetMemoryWin32HandleNV( m_device, static_cast( memory ), static_cast( handleType ), &handle ) ); - return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryWin32HandleNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + PhysicalDeviceUniformBufferStandardLayoutFeatures( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceUniformBufferStandardLayoutFeatures( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_INLINE Result Device::getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetMemoryWin32HandlePropertiesKHR( m_device, static_cast( handleType ), handle, reinterpret_cast( pMemoryWin32HandleProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR memoryWin32HandleProperties; - Result result = static_cast( d.vkGetMemoryWin32HandlePropertiesKHR( m_device, static_cast( handleType ), handle, reinterpret_cast( &memoryWin32HandleProperties ) ) ); - return createResultValue( result, memoryWin32HandleProperties, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryWin32HandlePropertiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceUniformBufferStandardLayoutFeatures & + operator=( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE Result Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE* pPresentationTimings, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast( swapchain ), pPresentationTimingCount, reinterpret_cast( pPresentationTimings ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d ) const - { - std::vector presentationTimings; - uint32_t presentationTimingCount; - Result result; - do - { - result = static_cast( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast( swapchain ), &presentationTimingCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && presentationTimingCount ) - { - presentationTimings.resize( presentationTimingCount ); - result = static_cast( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast( swapchain ), &presentationTimingCount, reinterpret_cast( presentationTimings.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + PhysicalDeviceUniformBufferStandardLayoutFeatures & + operator=( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() ); - presentationTimings.resize( presentationTimingCount ); + *this = + *reinterpret_cast( &rhs ); + return *this; } - return createResultValue( result, presentationTimings, VULKAN_HPP_NAMESPACE_STRING"::Device::getPastPresentationTimingGOOGLE" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d ) const - { - std::vector presentationTimings( vectorAllocator ); - uint32_t presentationTimingCount; - Result result; - do + + PhysicalDeviceUniformBufferStandardLayoutFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - result = static_cast( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast( swapchain ), &presentationTimingCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && presentationTimingCount ) - { - presentationTimings.resize( presentationTimingCount ); - result = static_cast( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast( swapchain ), &presentationTimingCount, reinterpret_cast( presentationTimings.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + pNext = pNext_; + return *this; + } + + PhysicalDeviceUniformBufferStandardLayoutFeatures & + setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() ); - presentationTimings.resize( presentationTimingCount ); + uniformBufferStandardLayout = uniformBufferStandardLayout_; + return *this; } - return createResultValue( result, presentationTimings, VULKAN_HPP_NAMESPACE_STRING"::Device::getPastPresentationTimingGOOGLE" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - template - VULKAN_HPP_INLINE Result Device::getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, VULKAN_HPP_NAMESPACE::PerformanceValueINTEL* pValue, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPerformanceParameterINTEL( m_device, static_cast( parameter ), reinterpret_cast( pValue ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::PerformanceValueINTEL value; - Result result = static_cast( d.vkGetPerformanceParameterINTEL( m_device, static_cast( parameter ), reinterpret_cast( &value ) ) ); - return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING"::Device::getPerformanceParameterINTEL" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE Result Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, size_t* pDataSize, void* pData, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPipelineCacheData( m_device, static_cast( pipelineCache ), pDataSize, pData ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Dispatch const &d ) const - { - std::vector data; - size_t dataSize; - Result result; - do + operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures &() VULKAN_HPP_NOEXCEPT { - result = static_cast( d.vkGetPipelineCacheData( m_device, static_cast( pipelineCache ), &dataSize, nullptr ) ); - if ( ( result == Result::eSuccess ) && dataSize ) - { - data.resize( dataSize ); - result = static_cast( d.vkGetPipelineCacheData( m_device, static_cast( pipelineCache ), &dataSize, reinterpret_cast( data.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceUniformBufferStandardLayoutFeatures const & ) const = default; +#else + bool operator==( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT( dataSize <= data.size() ); - data.resize( dataSize ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout ); } - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineCacheData" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Allocator const& vectorAllocator, Dispatch const &d ) const - { - std::vector data( vectorAllocator ); - size_t dataSize; - Result result; - do + + bool operator!=( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT { - result = static_cast( d.vkGetPipelineCacheData( m_device, static_cast( pipelineCache ), &dataSize, nullptr ) ); - if ( ( result == Result::eSuccess ) && dataSize ) - { - data.resize( dataSize ); - result = static_cast( d.vkGetPipelineCacheData( m_device, static_cast( pipelineCache ), &dataSize, reinterpret_cast( data.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) - { - VULKAN_HPP_ASSERT( dataSize <= data.size() ); - data.resize( dataSize ); + return !operator==( rhs ); } - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineCacheData" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {}; + }; + static_assert( sizeof( PhysicalDeviceUniformBufferStandardLayoutFeatures ) == + sizeof( VkPhysicalDeviceUniformBufferStandardLayoutFeatures ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - VULKAN_HPP_INLINE Result Device::getPipelineExecutableInternalRepresentationsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR* pInternalRepresentations, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + template <> + struct CppType { - return static_cast( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast( pExecutableInfo ), pInternalRepresentationCount, reinterpret_cast( pInternalRepresentations ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const &d ) const + using Type = PhysicalDeviceUniformBufferStandardLayoutFeatures; + }; + using PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = PhysicalDeviceUniformBufferStandardLayoutFeatures; + + struct PhysicalDeviceVariablePointersFeatures { - std::vector internalRepresentations; - uint32_t internalRepresentationCount; - Result result; - do - { - result = static_cast( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast( &executableInfo ), &internalRepresentationCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && internalRepresentationCount ) - { - internalRepresentations.resize( internalRepresentationCount ); - result = static_cast( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast( &executableInfo ), &internalRepresentationCount, reinterpret_cast( internalRepresentations.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceVariablePointersFeatures; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceVariablePointersFeatures( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ = {} ) VULKAN_HPP_NOEXCEPT + : variablePointersStorageBuffer( variablePointersStorageBuffer_ ) + , variablePointers( variablePointers_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceVariablePointersFeatures( PhysicalDeviceVariablePointersFeatures const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceVariablePointersFeatures( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceVariablePointersFeatures( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVariablePointersFeatures & + operator=( PhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceVariablePointersFeatures & + operator=( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() ); - internalRepresentations.resize( internalRepresentationCount ); + *this = *reinterpret_cast( &rhs ); + return *this; } - return createResultValue( result, internalRepresentations, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableInternalRepresentationsKHR" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Allocator const& vectorAllocator, Dispatch const &d ) const - { - std::vector internalRepresentations( vectorAllocator ); - uint32_t internalRepresentationCount; - Result result; - do - { - result = static_cast( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast( &executableInfo ), &internalRepresentationCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && internalRepresentationCount ) - { - internalRepresentations.resize( internalRepresentationCount ); - result = static_cast( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast( &executableInfo ), &internalRepresentationCount, reinterpret_cast( internalRepresentations.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + + PhysicalDeviceVariablePointersFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() ); - internalRepresentations.resize( internalRepresentationCount ); + pNext = pNext_; + return *this; } - return createResultValue( result, internalRepresentations, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableInternalRepresentationsKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - template - VULKAN_HPP_INLINE Result Device::getPipelineExecutablePropertiesKHR( const VULKAN_HPP_NAMESPACE::PipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast( pPipelineInfo ), pExecutableCount, reinterpret_cast( pProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Dispatch const &d ) const - { - std::vector properties; - uint32_t executableCount; - Result result; - do - { - result = static_cast( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast( &pipelineInfo ), &executableCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && executableCount ) - { - properties.resize( executableCount ); - result = static_cast( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast( &pipelineInfo ), &executableCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + PhysicalDeviceVariablePointersFeatures & setVariablePointersStorageBuffer( + VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT( executableCount <= properties.size() ); - properties.resize( executableCount ); + variablePointersStorageBuffer = variablePointersStorageBuffer_; + return *this; } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutablePropertiesKHR" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Allocator const& vectorAllocator, Dispatch const &d ) const - { - std::vector properties( vectorAllocator ); - uint32_t executableCount; - Result result; - do - { - result = static_cast( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast( &pipelineInfo ), &executableCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && executableCount ) - { - properties.resize( executableCount ); - result = static_cast( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast( &pipelineInfo ), &executableCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + + PhysicalDeviceVariablePointersFeatures & + setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT( executableCount <= properties.size() ); - properties.resize( executableCount ); + variablePointers = variablePointers_; + return *this; } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutablePropertiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - template - VULKAN_HPP_INLINE Result Device::getPipelineExecutableStatisticsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR* pStatistics, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast( pExecutableInfo ), pStatisticCount, reinterpret_cast( pStatistics ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const &d ) const - { - std::vector statistics; - uint32_t statisticCount; - Result result; - do - { - result = static_cast( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast( &executableInfo ), &statisticCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && statisticCount ) - { - statistics.resize( statisticCount ); - result = static_cast( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast( &executableInfo ), &statisticCount, reinterpret_cast( statistics.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + operator VkPhysicalDeviceVariablePointersFeatures const &() const VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT( statisticCount <= statistics.size() ); - statistics.resize( statisticCount ); + return *reinterpret_cast( this ); } - return createResultValue( result, statistics, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableStatisticsKHR" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Allocator const& vectorAllocator, Dispatch const &d ) const - { - std::vector statistics( vectorAllocator ); - uint32_t statisticCount; - Result result; - do + + operator VkPhysicalDeviceVariablePointersFeatures &() VULKAN_HPP_NOEXCEPT { - result = static_cast( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast( &executableInfo ), &statisticCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && statisticCount ) - { - statistics.resize( statisticCount ); - result = static_cast( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast( &executableInfo ), &statisticCount, reinterpret_cast( statistics.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceVariablePointersFeatures const & ) const = default; +#else + bool operator==( PhysicalDeviceVariablePointersFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT( statisticCount <= statistics.size() ); - statistics.resize( statisticCount ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer ) && + ( variablePointers == rhs.variablePointers ); } - return createResultValue( result, statistics, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableStatisticsKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - template - VULKAN_HPP_INLINE Result Device::getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetQueryPoolResults( m_device, static_cast( queryPool ), firstQuery, queryCount, dataSize, pData, static_cast( stride ), static_cast( flags ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Device::getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, ArrayProxy data, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const &d ) const - { - Result result = static_cast( d.vkGetQueryPoolResults( m_device, static_cast( queryPool ), firstQuery, queryCount, data.size() * sizeof( T ) , reinterpret_cast( data.data() ), static_cast( stride ), static_cast( flags ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getQueryPoolResults", { Result::eSuccess, Result::eNotReady } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( PhysicalDeviceVariablePointersFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif - template - VULKAN_HPP_INLINE Result Device::getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast( pipeline ), firstGroup, groupCount, dataSize, pData ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy data, Dispatch const &d ) const - { - Result result = static_cast( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast( data.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingShaderGroupHandlesNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVariablePointersFeatures; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {}; + VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {}; + }; + static_assert( sizeof( PhysicalDeviceVariablePointersFeatures ) == sizeof( VkPhysicalDeviceVariablePointersFeatures ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - VULKAN_HPP_INLINE Result Device::getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE* pDisplayTimingProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetRefreshCycleDurationGOOGLE( m_device, static_cast( swapchain ), reinterpret_cast( pDisplayTimingProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d ) const + template <> + struct CppType { - VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE displayTimingProperties; - Result result = static_cast( d.vkGetRefreshCycleDurationGOOGLE( m_device, static_cast( swapchain ), reinterpret_cast( &displayTimingProperties ) ) ); - return createResultValue( result, displayTimingProperties, VULKAN_HPP_NAMESPACE_STRING"::Device::getRefreshCycleDurationGOOGLE" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + using Type = PhysicalDeviceVariablePointersFeatures; + }; + using PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures; + using PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures; + using PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures; - template - VULKAN_HPP_INLINE void Device::getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, VULKAN_HPP_NAMESPACE::Extent2D* pGranularity, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkGetRenderAreaGranularity( m_device, static_cast( renderPass ), reinterpret_cast( pGranularity ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Extent2D Device::getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT { - VULKAN_HPP_NAMESPACE::Extent2D granularity; - d.vkGetRenderAreaGranularity( m_device, static_cast( renderPass ), reinterpret_cast( &granularity ) ); - return granularity; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT; - template - VULKAN_HPP_INLINE Result Device::getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetSemaphoreCounterValue( m_device, static_cast( semaphore ), pValue ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const &d ) const - { - uint64_t value; - Result result = static_cast( d.vkGetSemaphoreCounterValue( m_device, static_cast( semaphore ), &value ) ); - return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING"::Device::getSemaphoreCounterValue" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ = {} ) VULKAN_HPP_NOEXCEPT + : vertexAttributeInstanceRateDivisor( vertexAttributeInstanceRateDivisor_ ) + , vertexAttributeInstanceRateZeroDivisor( vertexAttributeInstanceRateZeroDivisor_ ) + {} - template - VULKAN_HPP_INLINE Result Device::getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetSemaphoreCounterValueKHR( m_device, static_cast( semaphore ), pValue ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const &d ) const - { - uint64_t value; - Result result = static_cast( d.vkGetSemaphoreCounterValueKHR( m_device, static_cast( semaphore ), &value ) ); - return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING"::Device::getSemaphoreCounterValueKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorFeaturesEXT( + PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE Result Device::getSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast( pGetFdInfo ), pFd ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo, Dispatch const &d ) const - { - int fd; - Result result = static_cast( d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast( &getFdInfo ), &fd ) ); - return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING"::Device::getSemaphoreFdKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceVertexAttributeDivisorFeaturesEXT( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceVertexAttributeDivisorFeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_INLINE Result Device::getSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetSemaphoreWin32HandleKHR( m_device, reinterpret_cast( pGetWin32HandleInfo ), pHandle ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d ) const - { - HANDLE handle; - Result result = static_cast( d.vkGetSemaphoreWin32HandleKHR( m_device, reinterpret_cast( &getWin32HandleInfo ), &handle ) ); - return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING"::Device::getSemaphoreWin32HandleKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexAttributeDivisorFeaturesEXT & + operator=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE Result Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetShaderInfoAMD( m_device, static_cast( pipeline ), static_cast( shaderStage ), static_cast( infoType ), pInfoSize, pInfo ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Dispatch const &d ) const - { - std::vector info; - size_t infoSize; - Result result; - do - { - result = static_cast( d.vkGetShaderInfoAMD( m_device, static_cast( pipeline ), static_cast( shaderStage ), static_cast( infoType ), &infoSize, nullptr ) ); - if ( ( result == Result::eSuccess ) && infoSize ) - { - info.resize( infoSize ); - result = static_cast( d.vkGetShaderInfoAMD( m_device, static_cast( pipeline ), static_cast( shaderStage ), static_cast( infoType ), &infoSize, reinterpret_cast( info.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + PhysicalDeviceVertexAttributeDivisorFeaturesEXT & + operator=( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT( infoSize <= info.size() ); - info.resize( infoSize ); + *this = *reinterpret_cast( &rhs ); + return *this; } - return createResultValue( result, info, VULKAN_HPP_NAMESPACE_STRING"::Device::getShaderInfoAMD" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Allocator const& vectorAllocator, Dispatch const &d ) const - { - std::vector info( vectorAllocator ); - size_t infoSize; - Result result; - do + + PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT { - result = static_cast( d.vkGetShaderInfoAMD( m_device, static_cast( pipeline ), static_cast( shaderStage ), static_cast( infoType ), &infoSize, nullptr ) ); - if ( ( result == Result::eSuccess ) && infoSize ) - { - info.resize( infoSize ); - result = static_cast( d.vkGetShaderInfoAMD( m_device, static_cast( pipeline ), static_cast( shaderStage ), static_cast( infoType ), &infoSize, reinterpret_cast( info.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + pNext = pNext_; + return *this; + } + + PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateDivisor( + VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ ) VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT( infoSize <= info.size() ); - info.resize( infoSize ); + vertexAttributeInstanceRateDivisor = vertexAttributeInstanceRateDivisor_; + return *this; } - return createResultValue( result, info, VULKAN_HPP_NAMESPACE_STRING"::Device::getShaderInfoAMD" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - template - VULKAN_HPP_INLINE Result Device::getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetSwapchainCounterEXT( m_device, static_cast( swapchain ), static_cast( counter ), pCounterValue ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, Dispatch const &d ) const - { - uint64_t counterValue; - Result result = static_cast( d.vkGetSwapchainCounterEXT( m_device, static_cast( swapchain ), static_cast( counter ), &counterValue ) ); - return createResultValue( result, counterValue, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainCounterEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateZeroDivisor( + VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ ) VULKAN_HPP_NOEXCEPT + { + vertexAttributeInstanceRateZeroDivisor = vertexAttributeInstanceRateZeroDivisor_; + return *this; + } - template - VULKAN_HPP_INLINE Result Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VULKAN_HPP_NAMESPACE::Image* pSwapchainImages, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetSwapchainImagesKHR( m_device, static_cast( swapchain ), pSwapchainImageCount, reinterpret_cast( pSwapchainImages ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d ) const - { - std::vector swapchainImages; - uint32_t swapchainImageCount; - Result result; - do + operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { - result = static_cast( d.vkGetSwapchainImagesKHR( m_device, static_cast( swapchain ), &swapchainImageCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && swapchainImageCount ) - { - swapchainImages.resize( swapchainImageCount ); - result = static_cast( d.vkGetSwapchainImagesKHR( m_device, static_cast( swapchain ), &swapchainImageCount, reinterpret_cast( swapchainImages.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT &() VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() ); - swapchainImages.resize( swapchainImageCount ); + return *reinterpret_cast( this ); } - return createResultValue( result, swapchainImages, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainImagesKHR" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d ) const - { - std::vector swapchainImages( vectorAllocator ); - uint32_t swapchainImageCount; - Result result; - do + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - result = static_cast( d.vkGetSwapchainImagesKHR( m_device, static_cast( swapchain ), &swapchainImageCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && swapchainImageCount ) - { - swapchainImages.resize( swapchainImageCount ); - result = static_cast( d.vkGetSwapchainImagesKHR( m_device, static_cast( swapchain ), &swapchainImageCount, reinterpret_cast( swapchainImages.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( vertexAttributeInstanceRateDivisor == rhs.vertexAttributeInstanceRateDivisor ) && + ( vertexAttributeInstanceRateZeroDivisor == rhs.vertexAttributeInstanceRateZeroDivisor ); + } + + bool operator!=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() ); - swapchainImages.resize( swapchainImageCount ); + return !operator==( rhs ); } - return createResultValue( result, swapchainImages, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainImagesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Device::getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetSwapchainStatusKHR( m_device, static_cast( swapchain ) ) ); - } -#else - template - VULKAN_HPP_INLINE Result Device::getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d ) const - { - Result result = static_cast( d.vkGetSwapchainStatusKHR( m_device, static_cast( swapchain ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainStatusKHR", { Result::eSuccess, Result::eSuboptimalKHR } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor = {}; + VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor = {}; + }; + static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorFeaturesEXT ) == + sizeof( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - VULKAN_HPP_INLINE Result Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, size_t* pDataSize, void* pData, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + template <> + struct CppType { - return static_cast( d.vkGetValidationCacheDataEXT( m_device, static_cast( validationCache ), pDataSize, pData ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Dispatch const &d ) const + using Type = PhysicalDeviceVertexAttributeDivisorFeaturesEXT; + }; + + struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT { - std::vector data; - size_t dataSize; - Result result; - do + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceVertexAttributeDivisorPropertiesEXT( uint32_t maxVertexAttribDivisor_ = {} ) VULKAN_HPP_NOEXCEPT + : maxVertexAttribDivisor( maxVertexAttribDivisor_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorPropertiesEXT( + PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceVertexAttributeDivisorPropertiesEXT( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceVertexAttributeDivisorPropertiesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexAttributeDivisorPropertiesEXT & + operator=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceVertexAttributeDivisorPropertiesEXT & + operator=( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT { - result = static_cast( d.vkGetValidationCacheDataEXT( m_device, static_cast( validationCache ), &dataSize, nullptr ) ); - if ( ( result == Result::eSuccess ) && dataSize ) - { - data.resize( dataSize ); - result = static_cast( d.vkGetValidationCacheDataEXT( m_device, static_cast( validationCache ), &dataSize, reinterpret_cast( data.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + *this = + *reinterpret_cast( &rhs ); + return *this; + } + + operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT( dataSize <= data.size() ); - data.resize( dataSize ); + return *reinterpret_cast( this ); } - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getValidationCacheDataEXT" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Allocator const& vectorAllocator, Dispatch const &d ) const - { - std::vector data( vectorAllocator ); - size_t dataSize; - Result result; - do + + operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT &() VULKAN_HPP_NOEXCEPT { - result = static_cast( d.vkGetValidationCacheDataEXT( m_device, static_cast( validationCache ), &dataSize, nullptr ) ); - if ( ( result == Result::eSuccess ) && dataSize ) - { - data.resize( dataSize ); - result = static_cast( d.vkGetValidationCacheDataEXT( m_device, static_cast( validationCache ), &dataSize, reinterpret_cast( data.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT( dataSize <= data.size() ); - data.resize( dataSize ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( maxVertexAttribDivisor == rhs.maxVertexAttribDivisor ); } - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getValidationCacheDataEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - template - VULKAN_HPP_INLINE Result Device::importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR* pImportFenceFdInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkImportFenceFdKHR( m_device, reinterpret_cast( pImportFenceFdInfo ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo, Dispatch const &d ) const - { - Result result = static_cast( d.vkImportFenceFdKHR( m_device, reinterpret_cast( &importFenceFdInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::importFenceFdKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + bool operator!=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_INLINE Result Device::importFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkImportFenceWin32HandleKHR( m_device, reinterpret_cast( pImportFenceWin32HandleInfo ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo, Dispatch const &d ) const - { - Result result = static_cast( d.vkImportFenceWin32HandleKHR( m_device, reinterpret_cast( &importFenceWin32HandleInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::importFenceWin32HandleKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT; + void * pNext = {}; + uint32_t maxVertexAttribDivisor = {}; + }; + static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorPropertiesEXT ) == + sizeof( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); - template - VULKAN_HPP_INLINE Result Device::importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkImportSemaphoreFdKHR( m_device, reinterpret_cast( pImportSemaphoreFdInfo ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, Dispatch const &d ) const + template <> + struct CppType { - Result result = static_cast( d.vkImportSemaphoreFdKHR( m_device, reinterpret_cast( &importSemaphoreFdInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::importSemaphoreFdKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + using Type = PhysicalDeviceVertexAttributeDivisorPropertiesEXT; + }; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_INLINE Result Device::importSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkImportSemaphoreWin32HandleKHR( m_device, reinterpret_cast( pImportSemaphoreWin32HandleInfo ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo, Dispatch const &d ) const + struct PhysicalDeviceVertexInputDynamicStateFeaturesEXT { - Result result = static_cast( d.vkImportSemaphoreWin32HandleKHR( m_device, reinterpret_cast( &importSemaphoreWin32HandleInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::importSemaphoreWin32HandleKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceVertexInputDynamicStateFeaturesEXT; - template - VULKAN_HPP_INLINE Result Device::initializePerformanceApiINTEL( const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL* pInitializeInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkInitializePerformanceApiINTEL( m_device, reinterpret_cast( pInitializeInfo ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo, Dispatch const &d ) const - { - Result result = static_cast( d.vkInitializePerformanceApiINTEL( m_device, reinterpret_cast( &initializeInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::initializePerformanceApiINTEL" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexInputDynamicStateFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 vertexInputDynamicState_ = {} ) VULKAN_HPP_NOEXCEPT + : vertexInputDynamicState( vertexInputDynamicState_ ) + {} - template - VULKAN_HPP_INLINE Result Device::invalidateMappedMemoryRanges( uint32_t memoryRangeCount, const VULKAN_HPP_NAMESPACE::MappedMemoryRange* pMemoryRanges, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkInvalidateMappedMemoryRanges( m_device, memoryRangeCount, reinterpret_cast( pMemoryRanges ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::invalidateMappedMemoryRanges( ArrayProxy memoryRanges, Dispatch const &d ) const - { - Result result = static_cast( d.vkInvalidateMappedMemoryRanges( m_device, memoryRanges.size() , reinterpret_cast( memoryRanges.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::invalidateMappedMemoryRanges" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexInputDynamicStateFeaturesEXT( + PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE Result Device::mapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::DeviceSize size, VULKAN_HPP_NAMESPACE::MemoryMapFlags flags, void** ppData, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkMapMemory( m_device, static_cast( memory ), static_cast( offset ), static_cast( size ), static_cast( flags ), ppData ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::mapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::DeviceSize size, VULKAN_HPP_NAMESPACE::MemoryMapFlags flags, Dispatch const &d ) const - { - void* pData; - Result result = static_cast( d.vkMapMemory( m_device, static_cast( memory ), static_cast( offset ), static_cast( size ), static_cast( flags ), &pData ) ); - return createResultValue( result, pData, VULKAN_HPP_NAMESPACE_STRING"::Device::mapMemory" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceVertexInputDynamicStateFeaturesEXT( VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceVertexInputDynamicStateFeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ - template - VULKAN_HPP_INLINE Result Device::mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache dstCache, uint32_t srcCacheCount, const VULKAN_HPP_NAMESPACE::PipelineCache* pSrcCaches, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkMergePipelineCaches( m_device, static_cast( dstCache ), srcCacheCount, reinterpret_cast( pSrcCaches ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache dstCache, ArrayProxy srcCaches, Dispatch const &d ) const - { - Result result = static_cast( d.vkMergePipelineCaches( m_device, static_cast( dstCache ), srcCaches.size() , reinterpret_cast( srcCaches.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::mergePipelineCaches" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVertexInputDynamicStateFeaturesEXT & + operator=( PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - template - VULKAN_HPP_INLINE Result Device::mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache, uint32_t srcCacheCount, const VULKAN_HPP_NAMESPACE::ValidationCacheEXT* pSrcCaches, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkMergeValidationCachesEXT( m_device, static_cast( dstCache ), srcCacheCount, reinterpret_cast( pSrcCaches ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache, ArrayProxy srcCaches, Dispatch const &d ) const - { - Result result = static_cast( d.vkMergeValidationCachesEXT( m_device, static_cast( dstCache ), srcCaches.size() , reinterpret_cast( srcCaches.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::mergeValidationCachesEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceVertexInputDynamicStateFeaturesEXT & + operator=( VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } - template - VULKAN_HPP_INLINE Result Device::registerEventEXT( const VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT* pDeviceEventInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast( pDeviceEventInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pFence ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::registerEventEXT( const DeviceEventInfoEXT & deviceEventInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::Fence fence; - Result result = static_cast( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast( &deviceEventInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &fence ) ) ); - return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::registerEventEXT" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::registerEventEXTUnique( const DeviceEventInfoEXT & deviceEventInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::Fence fence; - Result result = static_cast( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast( &deviceEventInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &fence ) ) ); + PhysicalDeviceVertexInputDynamicStateFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::registerEventEXTUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceVertexInputDynamicStateFeaturesEXT & + setVertexInputDynamicState( VULKAN_HPP_NAMESPACE::Bool32 vertexInputDynamicState_ ) VULKAN_HPP_NOEXCEPT + { + vertexInputDynamicState = vertexInputDynamicState_; + return *this; + } - template - VULKAN_HPP_INLINE Result Device::registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT* pDisplayEventInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkRegisterDisplayEventEXT( m_device, static_cast( display ), reinterpret_cast( pDisplayEventInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pFence ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::Fence fence; - Result result = static_cast( d.vkRegisterDisplayEventEXT( m_device, static_cast( display ), reinterpret_cast( &displayEventInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &fence ) ) ); - return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::registerDisplayEventEXT" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::registerDisplayEventEXTUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional allocator, Dispatch const &d ) const - { - VULKAN_HPP_NAMESPACE::Fence fence; - Result result = static_cast( d.vkRegisterDisplayEventEXT( m_device, static_cast( display ), reinterpret_cast( &displayEventInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &fence ) ) ); + operator VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::registerDisplayEventEXTUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + operator VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } - template - VULKAN_HPP_INLINE Result Device::registerObjectsNVX( VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable, uint32_t objectCount, const VULKAN_HPP_NAMESPACE::ObjectTableEntryNVX* const* ppObjectTableEntries, const uint32_t* pObjectIndices, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkRegisterObjectsNVX( m_device, static_cast( objectTable ), objectCount, reinterpret_cast( ppObjectTableEntries ), pObjectIndices ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::registerObjectsNVX( VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable, ArrayProxy pObjectTableEntries, ArrayProxy objectIndices, Dispatch const &d ) const - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( pObjectTableEntries.size() == objectIndices.size() ); +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & ) const = default; #else - if ( pObjectTableEntries.size() != objectIndices.size() ) + bool operator==( PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkDevice::registerObjectsNVX: pObjectTableEntries.size() != objectIndices.size()" ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( vertexInputDynamicState == rhs.vertexInputDynamicState ); } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - Result result = static_cast( d.vkRegisterObjectsNVX( m_device, static_cast( objectTable ), pObjectTableEntries.size() , reinterpret_cast( pObjectTableEntries.data() ), objectIndices.data() ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::registerObjectsNVX" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Device::releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast( swapchain ) ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const &d ) const - { - Result result = static_cast( d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast( swapchain ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::releaseFullScreenExclusiveModeEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + bool operator!=( PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Device::releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast( configuration ) ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const &d ) const - { - Result result = static_cast( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast( configuration ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::releasePerformanceConfigurationINTEL" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexInputDynamicStateFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 vertexInputDynamicState = {}; + }; + static_assert( sizeof( PhysicalDeviceVertexInputDynamicStateFeaturesEXT ) == + sizeof( VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::releaseProfilingLockKHR(Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - d.vkReleaseProfilingLockKHR( m_device ); - } -#else - template - VULKAN_HPP_INLINE void Device::releaseProfilingLockKHR(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + template <> + struct CppType { - d.vkReleaseProfilingLockKHR( m_device ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + using Type = PhysicalDeviceVertexInputDynamicStateFeaturesEXT; + }; -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Device::resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkResetCommandPool( m_device, static_cast( commandPool ), static_cast( flags ) ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, Dispatch const &d ) const + struct PhysicalDeviceVulkan11Features { - Result result = static_cast( d.vkResetCommandPool( m_device, static_cast( commandPool ), static_cast( flags ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::resetCommandPool" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan11Features; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PhysicalDeviceVulkan11Features( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 multiview_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ = {} ) VULKAN_HPP_NOEXCEPT + : storageBuffer16BitAccess( storageBuffer16BitAccess_ ) + , uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ ) + , storagePushConstant16( storagePushConstant16_ ) + , storageInputOutput16( storageInputOutput16_ ) + , multiview( multiview_ ) + , multiviewGeometryShader( multiviewGeometryShader_ ) + , multiviewTessellationShader( multiviewTessellationShader_ ) + , variablePointersStorageBuffer( variablePointersStorageBuffer_ ) + , variablePointers( variablePointers_ ) + , protectedMemory( protectedMemory_ ) + , samplerYcbcrConversion( samplerYcbcrConversion_ ) + , shaderDrawParameters( shaderDrawParameters_ ) + {} -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Device::resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkResetDescriptorPool( m_device, static_cast( descriptorPool ), static_cast( flags ) ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags, Dispatch const &d ) const - { - Result result = static_cast( d.vkResetDescriptorPool( m_device, static_cast( descriptorPool ), static_cast( flags ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::resetDescriptorPool" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + VULKAN_HPP_CONSTEXPR + PhysicalDeviceVulkan11Features( PhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT = default; -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Device::resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkResetEvent( m_device, static_cast( event ) ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d ) const - { - Result result = static_cast( d.vkResetEvent( m_device, static_cast( event ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::resetEvent" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + PhysicalDeviceVulkan11Features( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceVulkan11Features( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Features & + operator=( PhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceVulkan11Features & operator=( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PhysicalDeviceVulkan11Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PhysicalDeviceVulkan11Features & + setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT + { + storageBuffer16BitAccess = storageBuffer16BitAccess_; + return *this; + } + + PhysicalDeviceVulkan11Features & setUniformAndStorageBuffer16BitAccess( + VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT + { + uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_; + return *this; + } + + PhysicalDeviceVulkan11Features & + setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT + { + storagePushConstant16 = storagePushConstant16_; + return *this; + } + + PhysicalDeviceVulkan11Features & + setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT + { + storageInputOutput16 = storageInputOutput16_; + return *this; + } + + PhysicalDeviceVulkan11Features & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT + { + multiview = multiview_; + return *this; + } + + PhysicalDeviceVulkan11Features & + setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT + { + multiviewGeometryShader = multiviewGeometryShader_; + return *this; + } + + PhysicalDeviceVulkan11Features & + setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT + { + multiviewTessellationShader = multiviewTessellationShader_; + return *this; + } + + PhysicalDeviceVulkan11Features & setVariablePointersStorageBuffer( + VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT + { + variablePointersStorageBuffer = variablePointersStorageBuffer_; + return *this; + } + + PhysicalDeviceVulkan11Features & + setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT + { + variablePointers = variablePointers_; + return *this; + } + + PhysicalDeviceVulkan11Features & + setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT + { + protectedMemory = protectedMemory_; + return *this; + } + + PhysicalDeviceVulkan11Features & + setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT + { + samplerYcbcrConversion = samplerYcbcrConversion_; + return *this; + } + + PhysicalDeviceVulkan11Features & + setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT + { + shaderDrawParameters = shaderDrawParameters_; + return *this; + } + + operator VkPhysicalDeviceVulkan11Features const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceVulkan11Features &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceVulkan11Features const & ) const = default; +#else + bool operator==( PhysicalDeviceVulkan11Features const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess ) && + ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess ) && + ( storagePushConstant16 == rhs.storagePushConstant16 ) && + ( storageInputOutput16 == rhs.storageInputOutput16 ) && ( multiview == rhs.multiview ) && + ( multiviewGeometryShader == rhs.multiviewGeometryShader ) && + ( multiviewTessellationShader == rhs.multiviewTessellationShader ) && + ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer ) && + ( variablePointers == rhs.variablePointers ) && ( protectedMemory == rhs.protectedMemory ) && + ( samplerYcbcrConversion == rhs.samplerYcbcrConversion ) && + ( shaderDrawParameters == rhs.shaderDrawParameters ); + } + + bool operator!=( PhysicalDeviceVulkan11Features const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Features; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {}; + VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {}; + VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {}; + VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {}; + VULKAN_HPP_NAMESPACE::Bool32 multiview = {}; + VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {}; + VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {}; + VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {}; + VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {}; + VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {}; + VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {}; + }; + static_assert( sizeof( PhysicalDeviceVulkan11Features ) == sizeof( VkPhysicalDeviceVulkan11Features ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceVulkan11Features; + }; + + struct PhysicalDeviceVulkan11Properties + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan11Properties; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Properties( + std::array const & deviceUUID_ = {}, + std::array const & driverUUID_ = {}, + std::array const & deviceLUID_ = {}, + uint32_t deviceNodeMask_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid_ = {}, + uint32_t subgroupSize_ = {}, + VULKAN_HPP_NAMESPACE::ShaderStageFlags subgroupSupportedStages_ = {}, + VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags subgroupSupportedOperations_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 subgroupQuadOperationsInAllStages_ = {}, + VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior_ = + VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes, + uint32_t maxMultiviewViewCount_ = {}, + uint32_t maxMultiviewInstanceIndex_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault_ = {}, + uint32_t maxPerSetDescriptors_ = {}, + VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ = {} ) VULKAN_HPP_NOEXCEPT + : deviceUUID( deviceUUID_ ) + , driverUUID( driverUUID_ ) + , deviceLUID( deviceLUID_ ) + , deviceNodeMask( deviceNodeMask_ ) + , deviceLUIDValid( deviceLUIDValid_ ) + , subgroupSize( subgroupSize_ ) + , subgroupSupportedStages( subgroupSupportedStages_ ) + , subgroupSupportedOperations( subgroupSupportedOperations_ ) + , subgroupQuadOperationsInAllStages( subgroupQuadOperationsInAllStages_ ) + , pointClippingBehavior( pointClippingBehavior_ ) + , maxMultiviewViewCount( maxMultiviewViewCount_ ) + , maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ ) + , protectedNoFault( protectedNoFault_ ) + , maxPerSetDescriptors( maxPerSetDescriptors_ ) + , maxMemoryAllocationSize( maxMemoryAllocationSize_ ) + {} + + VULKAN_HPP_CONSTEXPR_14 + PhysicalDeviceVulkan11Properties( PhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceVulkan11Properties( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceVulkan11Properties( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Properties & + operator=( PhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceVulkan11Properties & operator=( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + operator VkPhysicalDeviceVulkan11Properties const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceVulkan11Properties &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceVulkan11Properties const & ) const = default; +#else + bool operator==( PhysicalDeviceVulkan11Properties const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceUUID == rhs.deviceUUID ) && + ( driverUUID == rhs.driverUUID ) && ( deviceLUID == rhs.deviceLUID ) && + ( deviceNodeMask == rhs.deviceNodeMask ) && ( deviceLUIDValid == rhs.deviceLUIDValid ) && + ( subgroupSize == rhs.subgroupSize ) && ( subgroupSupportedStages == rhs.subgroupSupportedStages ) && + ( subgroupSupportedOperations == rhs.subgroupSupportedOperations ) && + ( subgroupQuadOperationsInAllStages == rhs.subgroupQuadOperationsInAllStages ) && + ( pointClippingBehavior == rhs.pointClippingBehavior ) && + ( maxMultiviewViewCount == rhs.maxMultiviewViewCount ) && + ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex ) && + ( protectedNoFault == rhs.protectedNoFault ) && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors ) && + ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize ); + } + + bool operator!=( PhysicalDeviceVulkan11Properties const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Properties; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D deviceUUID = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D driverUUID = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D deviceLUID = {}; + uint32_t deviceNodeMask = {}; + VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {}; + uint32_t subgroupSize = {}; + VULKAN_HPP_NAMESPACE::ShaderStageFlags subgroupSupportedStages = {}; + VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags subgroupSupportedOperations = {}; + VULKAN_HPP_NAMESPACE::Bool32 subgroupQuadOperationsInAllStages = {}; + VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = + VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes; + uint32_t maxMultiviewViewCount = {}; + uint32_t maxMultiviewInstanceIndex = {}; + VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {}; + uint32_t maxPerSetDescriptors = {}; + VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {}; + }; + static_assert( sizeof( PhysicalDeviceVulkan11Properties ) == sizeof( VkPhysicalDeviceVulkan11Properties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceVulkan11Properties; + }; + + struct PhysicalDeviceVulkan12Features + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan12Features; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan12Features( + VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ = {} ) VULKAN_HPP_NOEXCEPT + : samplerMirrorClampToEdge( samplerMirrorClampToEdge_ ) + , drawIndirectCount( drawIndirectCount_ ) + , storageBuffer8BitAccess( storageBuffer8BitAccess_ ) + , uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ ) + , storagePushConstant8( storagePushConstant8_ ) + , shaderBufferInt64Atomics( shaderBufferInt64Atomics_ ) + , shaderSharedInt64Atomics( shaderSharedInt64Atomics_ ) + , shaderFloat16( shaderFloat16_ ) + , shaderInt8( shaderInt8_ ) + , descriptorIndexing( descriptorIndexing_ ) + , shaderInputAttachmentArrayDynamicIndexing( shaderInputAttachmentArrayDynamicIndexing_ ) + , shaderUniformTexelBufferArrayDynamicIndexing( shaderUniformTexelBufferArrayDynamicIndexing_ ) + , shaderStorageTexelBufferArrayDynamicIndexing( shaderStorageTexelBufferArrayDynamicIndexing_ ) + , shaderUniformBufferArrayNonUniformIndexing( shaderUniformBufferArrayNonUniformIndexing_ ) + , shaderSampledImageArrayNonUniformIndexing( shaderSampledImageArrayNonUniformIndexing_ ) + , shaderStorageBufferArrayNonUniformIndexing( shaderStorageBufferArrayNonUniformIndexing_ ) + , shaderStorageImageArrayNonUniformIndexing( shaderStorageImageArrayNonUniformIndexing_ ) + , shaderInputAttachmentArrayNonUniformIndexing( shaderInputAttachmentArrayNonUniformIndexing_ ) + , shaderUniformTexelBufferArrayNonUniformIndexing( shaderUniformTexelBufferArrayNonUniformIndexing_ ) + , shaderStorageTexelBufferArrayNonUniformIndexing( shaderStorageTexelBufferArrayNonUniformIndexing_ ) + , descriptorBindingUniformBufferUpdateAfterBind( descriptorBindingUniformBufferUpdateAfterBind_ ) + , descriptorBindingSampledImageUpdateAfterBind( descriptorBindingSampledImageUpdateAfterBind_ ) + , descriptorBindingStorageImageUpdateAfterBind( descriptorBindingStorageImageUpdateAfterBind_ ) + , descriptorBindingStorageBufferUpdateAfterBind( descriptorBindingStorageBufferUpdateAfterBind_ ) + , descriptorBindingUniformTexelBufferUpdateAfterBind( descriptorBindingUniformTexelBufferUpdateAfterBind_ ) + , descriptorBindingStorageTexelBufferUpdateAfterBind( descriptorBindingStorageTexelBufferUpdateAfterBind_ ) + , descriptorBindingUpdateUnusedWhilePending( descriptorBindingUpdateUnusedWhilePending_ ) + , descriptorBindingPartiallyBound( descriptorBindingPartiallyBound_ ) + , descriptorBindingVariableDescriptorCount( descriptorBindingVariableDescriptorCount_ ) + , runtimeDescriptorArray( runtimeDescriptorArray_ ) + , samplerFilterMinmax( samplerFilterMinmax_ ) + , scalarBlockLayout( scalarBlockLayout_ ) + , imagelessFramebuffer( imagelessFramebuffer_ ) + , uniformBufferStandardLayout( uniformBufferStandardLayout_ ) + , shaderSubgroupExtendedTypes( shaderSubgroupExtendedTypes_ ) + , separateDepthStencilLayouts( separateDepthStencilLayouts_ ) + , hostQueryReset( hostQueryReset_ ) + , timelineSemaphore( timelineSemaphore_ ) + , bufferDeviceAddress( bufferDeviceAddress_ ) + , bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ) + , bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ ) + , vulkanMemoryModel( vulkanMemoryModel_ ) + , vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ ) + , vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ ) + , shaderOutputViewportIndex( shaderOutputViewportIndex_ ) + , shaderOutputLayer( shaderOutputLayer_ ) + , subgroupBroadcastDynamicId( subgroupBroadcastDynamicId_ ) + {} + + VULKAN_HPP_CONSTEXPR + PhysicalDeviceVulkan12Features( PhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceVulkan12Features( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceVulkan12Features( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Features & + operator=( PhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceVulkan12Features & operator=( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PhysicalDeviceVulkan12Features & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PhysicalDeviceVulkan12Features & + setSamplerMirrorClampToEdge( VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge_ ) VULKAN_HPP_NOEXCEPT + { + samplerMirrorClampToEdge = samplerMirrorClampToEdge_; + return *this; + } + + PhysicalDeviceVulkan12Features & + setDrawIndirectCount( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount_ ) VULKAN_HPP_NOEXCEPT + { + drawIndirectCount = drawIndirectCount_; + return *this; + } + + PhysicalDeviceVulkan12Features & + setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT + { + storageBuffer8BitAccess = storageBuffer8BitAccess_; + return *this; + } + + PhysicalDeviceVulkan12Features & setUniformAndStorageBuffer8BitAccess( + VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT + { + uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_; + return *this; + } + + PhysicalDeviceVulkan12Features & + setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT + { + storagePushConstant8 = storagePushConstant8_; + return *this; + } + + PhysicalDeviceVulkan12Features & + setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT + { + shaderBufferInt64Atomics = shaderBufferInt64Atomics_; + return *this; + } + + PhysicalDeviceVulkan12Features & + setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT + { + shaderSharedInt64Atomics = shaderSharedInt64Atomics_; + return *this; + } + + PhysicalDeviceVulkan12Features & setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT + { + shaderFloat16 = shaderFloat16_; + return *this; + } + + PhysicalDeviceVulkan12Features & setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT + { + shaderInt8 = shaderInt8_; + return *this; + } + + PhysicalDeviceVulkan12Features & + setDescriptorIndexing( VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing_ ) VULKAN_HPP_NOEXCEPT + { + descriptorIndexing = descriptorIndexing_; + return *this; + } + + PhysicalDeviceVulkan12Features & setShaderInputAttachmentArrayDynamicIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT + { + shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_; + return *this; + } + + PhysicalDeviceVulkan12Features & setShaderUniformTexelBufferArrayDynamicIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT + { + shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_; + return *this; + } + + PhysicalDeviceVulkan12Features & setShaderStorageTexelBufferArrayDynamicIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT + { + shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_; + return *this; + } + + PhysicalDeviceVulkan12Features & setShaderUniformBufferArrayNonUniformIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT + { + shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_; + return *this; + } + + PhysicalDeviceVulkan12Features & setShaderSampledImageArrayNonUniformIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT + { + shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_; + return *this; + } + + PhysicalDeviceVulkan12Features & setShaderStorageBufferArrayNonUniformIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT + { + shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_; + return *this; + } + + PhysicalDeviceVulkan12Features & setShaderStorageImageArrayNonUniformIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT + { + shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_; + return *this; + } + + PhysicalDeviceVulkan12Features & setShaderInputAttachmentArrayNonUniformIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT + { + shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_; + return *this; + } + + PhysicalDeviceVulkan12Features & setShaderUniformTexelBufferArrayNonUniformIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT + { + shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_; + return *this; + } + + PhysicalDeviceVulkan12Features & setShaderStorageTexelBufferArrayNonUniformIndexing( + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT + { + shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_; + return *this; + } + + PhysicalDeviceVulkan12Features & setDescriptorBindingUniformBufferUpdateAfterBind( + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT + { + descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_; + return *this; + } + + PhysicalDeviceVulkan12Features & setDescriptorBindingSampledImageUpdateAfterBind( + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT + { + descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_; + return *this; + } + + PhysicalDeviceVulkan12Features & setDescriptorBindingStorageImageUpdateAfterBind( + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT + { + descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_; + return *this; + } + + PhysicalDeviceVulkan12Features & setDescriptorBindingStorageBufferUpdateAfterBind( + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT + { + descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_; + return *this; + } + + PhysicalDeviceVulkan12Features & setDescriptorBindingUniformTexelBufferUpdateAfterBind( + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT + { + descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_; + return *this; + } + + PhysicalDeviceVulkan12Features & setDescriptorBindingStorageTexelBufferUpdateAfterBind( + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT + { + descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_; + return *this; + } + + PhysicalDeviceVulkan12Features & setDescriptorBindingUpdateUnusedWhilePending( + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT + { + descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_; + return *this; + } + + PhysicalDeviceVulkan12Features & setDescriptorBindingPartiallyBound( + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT + { + descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_; + return *this; + } + + PhysicalDeviceVulkan12Features & setDescriptorBindingVariableDescriptorCount( + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT + { + descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_; + return *this; + } + + PhysicalDeviceVulkan12Features & + setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT + { + runtimeDescriptorArray = runtimeDescriptorArray_; + return *this; + } + + PhysicalDeviceVulkan12Features & + setSamplerFilterMinmax( VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax_ ) VULKAN_HPP_NOEXCEPT + { + samplerFilterMinmax = samplerFilterMinmax_; + return *this; + } + + PhysicalDeviceVulkan12Features & + setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT + { + scalarBlockLayout = scalarBlockLayout_; + return *this; + } + + PhysicalDeviceVulkan12Features & + setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT + { + imagelessFramebuffer = imagelessFramebuffer_; + return *this; + } + + PhysicalDeviceVulkan12Features & + setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT + { + uniformBufferStandardLayout = uniformBufferStandardLayout_; + return *this; + } + + PhysicalDeviceVulkan12Features & + setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT + { + shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_; + return *this; + } + + PhysicalDeviceVulkan12Features & + setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT + { + separateDepthStencilLayouts = separateDepthStencilLayouts_; + return *this; + } + + PhysicalDeviceVulkan12Features & + setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT + { + hostQueryReset = hostQueryReset_; + return *this; + } + + PhysicalDeviceVulkan12Features & + setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT + { + timelineSemaphore = timelineSemaphore_; + return *this; + } + + PhysicalDeviceVulkan12Features & + setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT + { + bufferDeviceAddress = bufferDeviceAddress_; + return *this; + } + + PhysicalDeviceVulkan12Features & setBufferDeviceAddressCaptureReplay( + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT + { + bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_; + return *this; + } + + PhysicalDeviceVulkan12Features & setBufferDeviceAddressMultiDevice( + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT + { + bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_; + return *this; + } + + PhysicalDeviceVulkan12Features & + setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT + { + vulkanMemoryModel = vulkanMemoryModel_; + return *this; + } + + PhysicalDeviceVulkan12Features & + setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT + { + vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_; + return *this; + } + + PhysicalDeviceVulkan12Features & setVulkanMemoryModelAvailabilityVisibilityChains( + VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT + { + vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_; + return *this; + } + + PhysicalDeviceVulkan12Features & + setShaderOutputViewportIndex( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex_ ) VULKAN_HPP_NOEXCEPT + { + shaderOutputViewportIndex = shaderOutputViewportIndex_; + return *this; + } + + PhysicalDeviceVulkan12Features & + setShaderOutputLayer( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer_ ) VULKAN_HPP_NOEXCEPT + { + shaderOutputLayer = shaderOutputLayer_; + return *this; + } + + PhysicalDeviceVulkan12Features & + setSubgroupBroadcastDynamicId( VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ ) VULKAN_HPP_NOEXCEPT + { + subgroupBroadcastDynamicId = subgroupBroadcastDynamicId_; + return *this; + } + + operator VkPhysicalDeviceVulkan12Features const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceVulkan12Features &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceVulkan12Features const & ) const = default; +#else + bool operator==( PhysicalDeviceVulkan12Features const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( samplerMirrorClampToEdge == rhs.samplerMirrorClampToEdge ) && + ( drawIndirectCount == rhs.drawIndirectCount ) && + ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess ) && + ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess ) && + ( storagePushConstant8 == rhs.storagePushConstant8 ) && + ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics ) && + ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics ) && ( shaderFloat16 == rhs.shaderFloat16 ) && + ( shaderInt8 == rhs.shaderInt8 ) && ( descriptorIndexing == rhs.descriptorIndexing ) && + ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing ) && + ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing ) && + ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing ) && + ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing ) && + ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing ) && + ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing ) && + ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing ) && + ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing ) && + ( shaderUniformTexelBufferArrayNonUniformIndexing == + rhs.shaderUniformTexelBufferArrayNonUniformIndexing ) && + ( shaderStorageTexelBufferArrayNonUniformIndexing == + rhs.shaderStorageTexelBufferArrayNonUniformIndexing ) && + ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind ) && + ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind ) && + ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind ) && + ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind ) && + ( descriptorBindingUniformTexelBufferUpdateAfterBind == + rhs.descriptorBindingUniformTexelBufferUpdateAfterBind ) && + ( descriptorBindingStorageTexelBufferUpdateAfterBind == + rhs.descriptorBindingStorageTexelBufferUpdateAfterBind ) && + ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending ) && + ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound ) && + ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount ) && + ( runtimeDescriptorArray == rhs.runtimeDescriptorArray ) && + ( samplerFilterMinmax == rhs.samplerFilterMinmax ) && ( scalarBlockLayout == rhs.scalarBlockLayout ) && + ( imagelessFramebuffer == rhs.imagelessFramebuffer ) && + ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout ) && + ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes ) && + ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts ) && + ( hostQueryReset == rhs.hostQueryReset ) && ( timelineSemaphore == rhs.timelineSemaphore ) && + ( bufferDeviceAddress == rhs.bufferDeviceAddress ) && + ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay ) && + ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice ) && + ( vulkanMemoryModel == rhs.vulkanMemoryModel ) && + ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope ) && + ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains ) && + ( shaderOutputViewportIndex == rhs.shaderOutputViewportIndex ) && + ( shaderOutputLayer == rhs.shaderOutputLayer ) && + ( subgroupBroadcastDynamicId == rhs.subgroupBroadcastDynamicId ); + } + + bool operator!=( PhysicalDeviceVulkan12Features const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Features; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge = {}; + VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount = {}; + VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {}; + VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {}; + VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {}; + VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {}; + VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {}; + VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax = {}; + VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {}; + VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {}; + VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {}; + VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {}; + VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {}; + VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {}; + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {}; + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {}; + VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {}; + VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {}; + VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {}; + VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer = {}; + VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId = {}; + }; + static_assert( sizeof( PhysicalDeviceVulkan12Features ) == sizeof( VkPhysicalDeviceVulkan12Features ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceVulkan12Features; + }; + + struct PhysicalDeviceVulkan12Properties + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan12Properties; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Properties( + VULKAN_HPP_NAMESPACE::DriverId driverID_ = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary, + std::array const & driverName_ = {}, + std::array const & driverInfo_ = {}, + VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion_ = {}, + VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence_ = + VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, + VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence_ = + VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, + VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64_ = {}, + uint32_t maxUpdateAfterBindDescriptorsInAllPools_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod_ = {}, + uint32_t maxPerStageDescriptorUpdateAfterBindSamplers_ = {}, + uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers_ = {}, + uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers_ = {}, + uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages_ = {}, + uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages_ = {}, + uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments_ = {}, + uint32_t maxPerStageUpdateAfterBindResources_ = {}, + uint32_t maxDescriptorSetUpdateAfterBindSamplers_ = {}, + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers_ = {}, + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ = {}, + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers_ = {}, + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ = {}, + uint32_t maxDescriptorSetUpdateAfterBindSampledImages_ = {}, + uint32_t maxDescriptorSetUpdateAfterBindStorageImages_ = {}, + uint32_t maxDescriptorSetUpdateAfterBindInputAttachments_ = {}, + VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes_ = {}, + VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 independentResolve_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping_ = {}, + uint64_t maxTimelineSemaphoreValueDifference_ = {}, + VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferIntegerColorSampleCounts_ = {} ) VULKAN_HPP_NOEXCEPT + : driverID( driverID_ ) + , driverName( driverName_ ) + , driverInfo( driverInfo_ ) + , conformanceVersion( conformanceVersion_ ) + , denormBehaviorIndependence( denormBehaviorIndependence_ ) + , roundingModeIndependence( roundingModeIndependence_ ) + , shaderSignedZeroInfNanPreserveFloat16( shaderSignedZeroInfNanPreserveFloat16_ ) + , shaderSignedZeroInfNanPreserveFloat32( shaderSignedZeroInfNanPreserveFloat32_ ) + , shaderSignedZeroInfNanPreserveFloat64( shaderSignedZeroInfNanPreserveFloat64_ ) + , shaderDenormPreserveFloat16( shaderDenormPreserveFloat16_ ) + , shaderDenormPreserveFloat32( shaderDenormPreserveFloat32_ ) + , shaderDenormPreserveFloat64( shaderDenormPreserveFloat64_ ) + , shaderDenormFlushToZeroFloat16( shaderDenormFlushToZeroFloat16_ ) + , shaderDenormFlushToZeroFloat32( shaderDenormFlushToZeroFloat32_ ) + , shaderDenormFlushToZeroFloat64( shaderDenormFlushToZeroFloat64_ ) + , shaderRoundingModeRTEFloat16( shaderRoundingModeRTEFloat16_ ) + , shaderRoundingModeRTEFloat32( shaderRoundingModeRTEFloat32_ ) + , shaderRoundingModeRTEFloat64( shaderRoundingModeRTEFloat64_ ) + , shaderRoundingModeRTZFloat16( shaderRoundingModeRTZFloat16_ ) + , shaderRoundingModeRTZFloat32( shaderRoundingModeRTZFloat32_ ) + , shaderRoundingModeRTZFloat64( shaderRoundingModeRTZFloat64_ ) + , maxUpdateAfterBindDescriptorsInAllPools( maxUpdateAfterBindDescriptorsInAllPools_ ) + , shaderUniformBufferArrayNonUniformIndexingNative( shaderUniformBufferArrayNonUniformIndexingNative_ ) + , shaderSampledImageArrayNonUniformIndexingNative( shaderSampledImageArrayNonUniformIndexingNative_ ) + , shaderStorageBufferArrayNonUniformIndexingNative( shaderStorageBufferArrayNonUniformIndexingNative_ ) + , shaderStorageImageArrayNonUniformIndexingNative( shaderStorageImageArrayNonUniformIndexingNative_ ) + , shaderInputAttachmentArrayNonUniformIndexingNative( shaderInputAttachmentArrayNonUniformIndexingNative_ ) + , robustBufferAccessUpdateAfterBind( robustBufferAccessUpdateAfterBind_ ) + , quadDivergentImplicitLod( quadDivergentImplicitLod_ ) + , maxPerStageDescriptorUpdateAfterBindSamplers( maxPerStageDescriptorUpdateAfterBindSamplers_ ) + , maxPerStageDescriptorUpdateAfterBindUniformBuffers( maxPerStageDescriptorUpdateAfterBindUniformBuffers_ ) + , maxPerStageDescriptorUpdateAfterBindStorageBuffers( maxPerStageDescriptorUpdateAfterBindStorageBuffers_ ) + , maxPerStageDescriptorUpdateAfterBindSampledImages( maxPerStageDescriptorUpdateAfterBindSampledImages_ ) + , maxPerStageDescriptorUpdateAfterBindStorageImages( maxPerStageDescriptorUpdateAfterBindStorageImages_ ) + , maxPerStageDescriptorUpdateAfterBindInputAttachments( maxPerStageDescriptorUpdateAfterBindInputAttachments_ ) + , maxPerStageUpdateAfterBindResources( maxPerStageUpdateAfterBindResources_ ) + , maxDescriptorSetUpdateAfterBindSamplers( maxDescriptorSetUpdateAfterBindSamplers_ ) + , maxDescriptorSetUpdateAfterBindUniformBuffers( maxDescriptorSetUpdateAfterBindUniformBuffers_ ) + , maxDescriptorSetUpdateAfterBindUniformBuffersDynamic( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ ) + , maxDescriptorSetUpdateAfterBindStorageBuffers( maxDescriptorSetUpdateAfterBindStorageBuffers_ ) + , maxDescriptorSetUpdateAfterBindStorageBuffersDynamic( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ ) + , maxDescriptorSetUpdateAfterBindSampledImages( maxDescriptorSetUpdateAfterBindSampledImages_ ) + , maxDescriptorSetUpdateAfterBindStorageImages( maxDescriptorSetUpdateAfterBindStorageImages_ ) + , maxDescriptorSetUpdateAfterBindInputAttachments( maxDescriptorSetUpdateAfterBindInputAttachments_ ) + , supportedDepthResolveModes( supportedDepthResolveModes_ ) + , supportedStencilResolveModes( supportedStencilResolveModes_ ) + , independentResolveNone( independentResolveNone_ ) + , independentResolve( independentResolve_ ) + , filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ ) + , filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ ) + , maxTimelineSemaphoreValueDifference( maxTimelineSemaphoreValueDifference_ ) + , framebufferIntegerColorSampleCounts( framebufferIntegerColorSampleCounts_ ) + {} + + VULKAN_HPP_CONSTEXPR_14 + PhysicalDeviceVulkan12Properties( PhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceVulkan12Properties( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceVulkan12Properties( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Properties & + operator=( PhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceVulkan12Properties & operator=( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + operator VkPhysicalDeviceVulkan12Properties const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceVulkan12Properties &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceVulkan12Properties const & ) const = default; +#else + bool operator==( PhysicalDeviceVulkan12Properties const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( driverID == rhs.driverID ) && + ( driverName == rhs.driverName ) && ( driverInfo == rhs.driverInfo ) && + ( conformanceVersion == rhs.conformanceVersion ) && + ( denormBehaviorIndependence == rhs.denormBehaviorIndependence ) && + ( roundingModeIndependence == rhs.roundingModeIndependence ) && + ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 ) && + ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 ) && + ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 ) && + ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 ) && + ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 ) && + ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 ) && + ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 ) && + ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 ) && + ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 ) && + ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 ) && + ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 ) && + ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 ) && + ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 ) && + ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 ) && + ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 ) && + ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools ) && + ( shaderUniformBufferArrayNonUniformIndexingNative == + rhs.shaderUniformBufferArrayNonUniformIndexingNative ) && + ( shaderSampledImageArrayNonUniformIndexingNative == + rhs.shaderSampledImageArrayNonUniformIndexingNative ) && + ( shaderStorageBufferArrayNonUniformIndexingNative == + rhs.shaderStorageBufferArrayNonUniformIndexingNative ) && + ( shaderStorageImageArrayNonUniformIndexingNative == + rhs.shaderStorageImageArrayNonUniformIndexingNative ) && + ( shaderInputAttachmentArrayNonUniformIndexingNative == + rhs.shaderInputAttachmentArrayNonUniformIndexingNative ) && + ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind ) && + ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod ) && + ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers ) && + ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == + rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers ) && + ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == + rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers ) && + ( maxPerStageDescriptorUpdateAfterBindSampledImages == + rhs.maxPerStageDescriptorUpdateAfterBindSampledImages ) && + ( maxPerStageDescriptorUpdateAfterBindStorageImages == + rhs.maxPerStageDescriptorUpdateAfterBindStorageImages ) && + ( maxPerStageDescriptorUpdateAfterBindInputAttachments == + rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments ) && + ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources ) && + ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers ) && + ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers ) && + ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == + rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic ) && + ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers ) && + ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == + rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic ) && + ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages ) && + ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages ) && + ( maxDescriptorSetUpdateAfterBindInputAttachments == + rhs.maxDescriptorSetUpdateAfterBindInputAttachments ) && + ( supportedDepthResolveModes == rhs.supportedDepthResolveModes ) && + ( supportedStencilResolveModes == rhs.supportedStencilResolveModes ) && + ( independentResolveNone == rhs.independentResolveNone ) && + ( independentResolve == rhs.independentResolve ) && + ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats ) && + ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping ) && + ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference ) && + ( framebufferIntegerColorSampleCounts == rhs.framebufferIntegerColorSampleCounts ); + } + + bool operator!=( PhysicalDeviceVulkan12Properties const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Properties; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D driverName = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D driverInfo = {}; + VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {}; + VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = + VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly; + VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = + VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly; + VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {}; + uint32_t maxUpdateAfterBindDescriptorsInAllPools = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {}; + VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {}; + VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {}; + uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {}; + uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {}; + uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {}; + uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {}; + uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {}; + uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {}; + uint32_t maxPerStageUpdateAfterBindResources = {}; + uint32_t maxDescriptorSetUpdateAfterBindSamplers = {}; + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {}; + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {}; + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {}; + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {}; + uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {}; + uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {}; + uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {}; + VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {}; + VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {}; + VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {}; + VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {}; + VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {}; + VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {}; + uint64_t maxTimelineSemaphoreValueDifference = {}; + VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferIntegerColorSampleCounts = {}; + }; + static_assert( sizeof( PhysicalDeviceVulkan12Properties ) == sizeof( VkPhysicalDeviceVulkan12Properties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceVulkan12Properties; + }; + + struct PhysicalDeviceVulkanMemoryModelFeatures + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceVulkanMemoryModelFeatures; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkanMemoryModelFeatures( + VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = {} ) VULKAN_HPP_NOEXCEPT + : vulkanMemoryModel( vulkanMemoryModel_ ) + , vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ ) + , vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkanMemoryModelFeatures( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceVulkanMemoryModelFeatures( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceVulkanMemoryModelFeatures( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkanMemoryModelFeatures & + operator=( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceVulkanMemoryModelFeatures & + operator=( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PhysicalDeviceVulkanMemoryModelFeatures & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PhysicalDeviceVulkanMemoryModelFeatures & + setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT + { + vulkanMemoryModel = vulkanMemoryModel_; + return *this; + } + + PhysicalDeviceVulkanMemoryModelFeatures & + setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT + { + vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_; + return *this; + } + + PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModelAvailabilityVisibilityChains( + VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT + { + vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_; + return *this; + } + + operator VkPhysicalDeviceVulkanMemoryModelFeatures const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceVulkanMemoryModelFeatures &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceVulkanMemoryModelFeatures const & ) const = default; +#else + bool operator==( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( vulkanMemoryModel == rhs.vulkanMemoryModel ) && + ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope ) && + ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains ); + } + + bool operator!=( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkanMemoryModelFeatures; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {}; + VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {}; + VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {}; + }; + static_assert( sizeof( PhysicalDeviceVulkanMemoryModelFeatures ) == + sizeof( VkPhysicalDeviceVulkanMemoryModelFeatures ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceVulkanMemoryModelFeatures; + }; + using PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures; + + struct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR( + VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayoutScalarBlockLayout_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout8BitAccess_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout16BitAccess_ = {} ) VULKAN_HPP_NOEXCEPT + : workgroupMemoryExplicitLayout( workgroupMemoryExplicitLayout_ ) + , workgroupMemoryExplicitLayoutScalarBlockLayout( workgroupMemoryExplicitLayoutScalarBlockLayout_ ) + , workgroupMemoryExplicitLayout8BitAccess( workgroupMemoryExplicitLayout8BitAccess_ ) + , workgroupMemoryExplicitLayout16BitAccess( workgroupMemoryExplicitLayout16BitAccess_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR( + PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR( + VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & + operator=( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & + operator=( VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = + *reinterpret_cast( &rhs ); + return *this; + } + + PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & setWorkgroupMemoryExplicitLayout( + VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout_ ) VULKAN_HPP_NOEXCEPT + { + workgroupMemoryExplicitLayout = workgroupMemoryExplicitLayout_; + return *this; + } + + PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & setWorkgroupMemoryExplicitLayoutScalarBlockLayout( + VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayoutScalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT + { + workgroupMemoryExplicitLayoutScalarBlockLayout = workgroupMemoryExplicitLayoutScalarBlockLayout_; + return *this; + } + + PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & setWorkgroupMemoryExplicitLayout8BitAccess( + VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout8BitAccess_ ) VULKAN_HPP_NOEXCEPT + { + workgroupMemoryExplicitLayout8BitAccess = workgroupMemoryExplicitLayout8BitAccess_; + return *this; + } + + PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR & setWorkgroupMemoryExplicitLayout16BitAccess( + VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout16BitAccess_ ) VULKAN_HPP_NOEXCEPT + { + workgroupMemoryExplicitLayout16BitAccess = workgroupMemoryExplicitLayout16BitAccess_; + return *this; + } + + operator VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & ) const = default; +#else + bool operator==( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( workgroupMemoryExplicitLayout == rhs.workgroupMemoryExplicitLayout ) && + ( workgroupMemoryExplicitLayoutScalarBlockLayout == rhs.workgroupMemoryExplicitLayoutScalarBlockLayout ) && + ( workgroupMemoryExplicitLayout8BitAccess == rhs.workgroupMemoryExplicitLayout8BitAccess ) && + ( workgroupMemoryExplicitLayout16BitAccess == rhs.workgroupMemoryExplicitLayout16BitAccess ); + } + + bool operator!=( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout = {}; + VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayoutScalarBlockLayout = {}; + VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout8BitAccess = {}; + VULKAN_HPP_NAMESPACE::Bool32 workgroupMemoryExplicitLayout16BitAccess = {}; + }; + static_assert( sizeof( PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR ) == + sizeof( VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR; + }; + + struct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 ycbcr2plane444Formats_ = {} ) VULKAN_HPP_NOEXCEPT + : ycbcr2plane444Formats( ycbcr2plane444Formats_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT( + PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT( VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT & + operator=( PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT & + operator=( VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT & + setYcbcr2plane444Formats( VULKAN_HPP_NAMESPACE::Bool32 ycbcr2plane444Formats_ ) VULKAN_HPP_NOEXCEPT + { + ycbcr2plane444Formats = ycbcr2plane444Formats_; + return *this; + } + + operator VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( ycbcr2plane444Formats == rhs.ycbcr2plane444Formats ); + } + + bool operator!=( PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 ycbcr2plane444Formats = {}; + }; + static_assert( sizeof( PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT ) == + sizeof( VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT; + }; + + struct PhysicalDeviceYcbcrImageArraysFeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrImageArraysFeaturesEXT( + VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ = {} ) VULKAN_HPP_NOEXCEPT : ycbcrImageArrays( ycbcrImageArrays_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrImageArraysFeaturesEXT( + PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceYcbcrImageArraysFeaturesEXT( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PhysicalDeviceYcbcrImageArraysFeaturesEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceYcbcrImageArraysFeaturesEXT & + operator=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceYcbcrImageArraysFeaturesEXT & + operator=( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PhysicalDeviceYcbcrImageArraysFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PhysicalDeviceYcbcrImageArraysFeaturesEXT & + setYcbcrImageArrays( VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ ) VULKAN_HPP_NOEXCEPT + { + ycbcrImageArrays = ycbcrImageArrays_; + return *this; + } + + operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & ) const = default; +#else + bool operator==( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( ycbcrImageArrays == rhs.ycbcrImageArrays ); + } + + bool operator!=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays = {}; + }; + static_assert( sizeof( PhysicalDeviceYcbcrImageArraysFeaturesEXT ) == + sizeof( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceYcbcrImageArraysFeaturesEXT; + }; + + struct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR( + VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory_ = {} ) VULKAN_HPP_NOEXCEPT + : shaderZeroInitializeWorkgroupMemory( shaderZeroInitializeWorkgroupMemory_ ) + {} + + VULKAN_HPP_CONSTEXPR PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR( + PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR( + VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR & + operator=( PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR & + operator=( VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = + *reinterpret_cast( &rhs ); + return *this; + } + + PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR & setShaderZeroInitializeWorkgroupMemory( + VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory_ ) VULKAN_HPP_NOEXCEPT + { + shaderZeroInitializeWorkgroupMemory = shaderZeroInitializeWorkgroupMemory_; + return *this; + } + + operator VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const & ) const = default; +#else + bool operator==( PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( shaderZeroInitializeWorkgroupMemory == rhs.shaderZeroInitializeWorkgroupMemory ); + } + + bool operator!=( PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 shaderZeroInitializeWorkgroupMemory = {}; + }; + static_assert( sizeof( PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR ) == + sizeof( VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR; + }; + + struct PipelineColorBlendAdvancedStateCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineColorBlendAdvancedStateCreateInfoEXT( + VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ = {}, + VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated ) + VULKAN_HPP_NOEXCEPT + : srcPremultiplied( srcPremultiplied_ ) + , dstPremultiplied( dstPremultiplied_ ) + , blendOverlap( blendOverlap_ ) + {} + + VULKAN_HPP_CONSTEXPR PipelineColorBlendAdvancedStateCreateInfoEXT( + PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineColorBlendAdvancedStateCreateInfoEXT( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PipelineColorBlendAdvancedStateCreateInfoEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendAdvancedStateCreateInfoEXT & + operator=( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineColorBlendAdvancedStateCreateInfoEXT & + operator=( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PipelineColorBlendAdvancedStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineColorBlendAdvancedStateCreateInfoEXT & + setSrcPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ ) VULKAN_HPP_NOEXCEPT + { + srcPremultiplied = srcPremultiplied_; + return *this; + } + + PipelineColorBlendAdvancedStateCreateInfoEXT & + setDstPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ ) VULKAN_HPP_NOEXCEPT + { + dstPremultiplied = dstPremultiplied_; + return *this; + } + + PipelineColorBlendAdvancedStateCreateInfoEXT & + setBlendOverlap( VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ ) VULKAN_HPP_NOEXCEPT + { + blendOverlap = blendOverlap_; + return *this; + } + + operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineColorBlendAdvancedStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineColorBlendAdvancedStateCreateInfoEXT const & ) const = default; +#else + bool operator==( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcPremultiplied == rhs.srcPremultiplied ) && + ( dstPremultiplied == rhs.dstPremultiplied ) && ( blendOverlap == rhs.blendOverlap ); + } + + bool operator!=( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied = {}; + VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied = {}; + VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated; + }; + static_assert( sizeof( PipelineColorBlendAdvancedStateCreateInfoEXT ) == + sizeof( VkPipelineColorBlendAdvancedStateCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineColorBlendAdvancedStateCreateInfoEXT; + }; + + struct PipelineColorWriteCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorWriteCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineColorWriteCreateInfoEXT( + uint32_t attachmentCount_ = {}, + const VULKAN_HPP_NAMESPACE::Bool32 * pColorWriteEnables_ = {} ) VULKAN_HPP_NOEXCEPT + : attachmentCount( attachmentCount_ ) + , pColorWriteEnables( pColorWriteEnables_ ) + {} + + VULKAN_HPP_CONSTEXPR + PipelineColorWriteCreateInfoEXT( PipelineColorWriteCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineColorWriteCreateInfoEXT( VkPipelineColorWriteCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PipelineColorWriteCreateInfoEXT( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineColorWriteCreateInfoEXT( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & colorWriteEnables_ ) + : attachmentCount( static_cast( colorWriteEnables_.size() ) ) + , pColorWriteEnables( colorWriteEnables_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineColorWriteCreateInfoEXT & + operator=( PipelineColorWriteCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineColorWriteCreateInfoEXT & operator=( VkPipelineColorWriteCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PipelineColorWriteCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineColorWriteCreateInfoEXT & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT + { + attachmentCount = attachmentCount_; + return *this; + } + + PipelineColorWriteCreateInfoEXT & + setPColorWriteEnables( const VULKAN_HPP_NAMESPACE::Bool32 * pColorWriteEnables_ ) VULKAN_HPP_NOEXCEPT + { + pColorWriteEnables = pColorWriteEnables_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineColorWriteCreateInfoEXT & setColorWriteEnables( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & colorWriteEnables_ ) + VULKAN_HPP_NOEXCEPT + { + attachmentCount = static_cast( colorWriteEnables_.size() ); + pColorWriteEnables = colorWriteEnables_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkPipelineColorWriteCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineColorWriteCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineColorWriteCreateInfoEXT const & ) const = default; +#else + bool operator==( PipelineColorWriteCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( attachmentCount == rhs.attachmentCount ) && + ( pColorWriteEnables == rhs.pColorWriteEnables ); + } + + bool operator!=( PipelineColorWriteCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorWriteCreateInfoEXT; + const void * pNext = {}; + uint32_t attachmentCount = {}; + const VULKAN_HPP_NAMESPACE::Bool32 * pColorWriteEnables = {}; + }; + static_assert( sizeof( PipelineColorWriteCreateInfoEXT ) == sizeof( VkPipelineColorWriteCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineColorWriteCreateInfoEXT; + }; + + struct PipelineCompilerControlCreateInfoAMD + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineCompilerControlCreateInfoAMD; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineCompilerControlCreateInfoAMD( + VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ = {} ) VULKAN_HPP_NOEXCEPT + : compilerControlFlags( compilerControlFlags_ ) + {} + + VULKAN_HPP_CONSTEXPR PipelineCompilerControlCreateInfoAMD( PipelineCompilerControlCreateInfoAMD const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + PipelineCompilerControlCreateInfoAMD( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT + : PipelineCompilerControlCreateInfoAMD( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineCompilerControlCreateInfoAMD & + operator=( PipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineCompilerControlCreateInfoAMD & + operator=( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PipelineCompilerControlCreateInfoAMD & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineCompilerControlCreateInfoAMD & setCompilerControlFlags( + VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ ) VULKAN_HPP_NOEXCEPT + { + compilerControlFlags = compilerControlFlags_; + return *this; + } + + operator VkPipelineCompilerControlCreateInfoAMD const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineCompilerControlCreateInfoAMD &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineCompilerControlCreateInfoAMD const & ) const = default; +#else + bool operator==( PipelineCompilerControlCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( compilerControlFlags == rhs.compilerControlFlags ); + } + + bool operator!=( PipelineCompilerControlCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCompilerControlCreateInfoAMD; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags = {}; + }; + static_assert( sizeof( PipelineCompilerControlCreateInfoAMD ) == sizeof( VkPipelineCompilerControlCreateInfoAMD ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineCompilerControlCreateInfoAMD; + }; + + struct PipelineCoverageModulationStateCreateInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineCoverageModulationStateCreateInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineCoverageModulationStateCreateInfoNV( + VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_ = {}, + VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_ = + VULKAN_HPP_NAMESPACE::CoverageModulationModeNV::eNone, + VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_ = {}, + uint32_t coverageModulationTableCount_ = {}, + const float * pCoverageModulationTable_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , coverageModulationMode( coverageModulationMode_ ) + , coverageModulationTableEnable( coverageModulationTableEnable_ ) + , coverageModulationTableCount( coverageModulationTableCount_ ) + , pCoverageModulationTable( pCoverageModulationTable_ ) + {} + + VULKAN_HPP_CONSTEXPR PipelineCoverageModulationStateCreateInfoNV( + PipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineCoverageModulationStateCreateInfoNV( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PipelineCoverageModulationStateCreateInfoNV( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineCoverageModulationStateCreateInfoNV( + VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_, + VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_, + VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & coverageModulationTable_ ) + : flags( flags_ ) + , coverageModulationMode( coverageModulationMode_ ) + , coverageModulationTableEnable( coverageModulationTableEnable_ ) + , coverageModulationTableCount( static_cast( coverageModulationTable_.size() ) ) + , pCoverageModulationTable( coverageModulationTable_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineCoverageModulationStateCreateInfoNV & + operator=( PipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineCoverageModulationStateCreateInfoNV & + operator=( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PipelineCoverageModulationStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineCoverageModulationStateCreateInfoNV & + setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationMode( + VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_ ) VULKAN_HPP_NOEXCEPT + { + coverageModulationMode = coverageModulationMode_; + return *this; + } + + PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTableEnable( + VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_ ) VULKAN_HPP_NOEXCEPT + { + coverageModulationTableEnable = coverageModulationTableEnable_; + return *this; + } + + PipelineCoverageModulationStateCreateInfoNV & + setCoverageModulationTableCount( uint32_t coverageModulationTableCount_ ) VULKAN_HPP_NOEXCEPT + { + coverageModulationTableCount = coverageModulationTableCount_; + return *this; + } + + PipelineCoverageModulationStateCreateInfoNV & + setPCoverageModulationTable( const float * pCoverageModulationTable_ ) VULKAN_HPP_NOEXCEPT + { + pCoverageModulationTable = pCoverageModulationTable_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTable( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & coverageModulationTable_ ) VULKAN_HPP_NOEXCEPT + { + coverageModulationTableCount = static_cast( coverageModulationTable_.size() ); + pCoverageModulationTable = coverageModulationTable_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkPipelineCoverageModulationStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineCoverageModulationStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineCoverageModulationStateCreateInfoNV const & ) const = default; +#else + bool operator==( PipelineCoverageModulationStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( coverageModulationMode == rhs.coverageModulationMode ) && + ( coverageModulationTableEnable == rhs.coverageModulationTableEnable ) && + ( coverageModulationTableCount == rhs.coverageModulationTableCount ) && + ( pCoverageModulationTable == rhs.pCoverageModulationTable ); + } + + bool operator!=( PipelineCoverageModulationStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageModulationStateCreateInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags = {}; + VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode = + VULKAN_HPP_NAMESPACE::CoverageModulationModeNV::eNone; + VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable = {}; + uint32_t coverageModulationTableCount = {}; + const float * pCoverageModulationTable = {}; + }; + static_assert( sizeof( PipelineCoverageModulationStateCreateInfoNV ) == + sizeof( VkPipelineCoverageModulationStateCreateInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineCoverageModulationStateCreateInfoNV; + }; + + struct PipelineCoverageReductionStateCreateInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineCoverageReductionStateCreateInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineCoverageReductionStateCreateInfoNV( + VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ = {}, + VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ = + VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , coverageReductionMode( coverageReductionMode_ ) + {} + + VULKAN_HPP_CONSTEXPR PipelineCoverageReductionStateCreateInfoNV( + PipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineCoverageReductionStateCreateInfoNV( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PipelineCoverageReductionStateCreateInfoNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineCoverageReductionStateCreateInfoNV & + operator=( PipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineCoverageReductionStateCreateInfoNV & + operator=( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PipelineCoverageReductionStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineCoverageReductionStateCreateInfoNV & + setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + PipelineCoverageReductionStateCreateInfoNV & setCoverageReductionMode( + VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT + { + coverageReductionMode = coverageReductionMode_; + return *this; + } + + operator VkPipelineCoverageReductionStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineCoverageReductionStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineCoverageReductionStateCreateInfoNV const & ) const = default; +#else + bool operator==( PipelineCoverageReductionStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( coverageReductionMode == rhs.coverageReductionMode ); + } + + bool operator!=( PipelineCoverageReductionStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageReductionStateCreateInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags = {}; + VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = + VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge; + }; + static_assert( sizeof( PipelineCoverageReductionStateCreateInfoNV ) == + sizeof( VkPipelineCoverageReductionStateCreateInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineCoverageReductionStateCreateInfoNV; + }; + + struct PipelineCoverageToColorStateCreateInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineCoverageToColorStateCreateInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineCoverageToColorStateCreateInfoNV( + VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ = {}, + uint32_t coverageToColorLocation_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , coverageToColorEnable( coverageToColorEnable_ ) + , coverageToColorLocation( coverageToColorLocation_ ) + {} + + VULKAN_HPP_CONSTEXPR PipelineCoverageToColorStateCreateInfoNV( + PipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineCoverageToColorStateCreateInfoNV( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PipelineCoverageToColorStateCreateInfoNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineCoverageToColorStateCreateInfoNV & + operator=( PipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineCoverageToColorStateCreateInfoNV & + operator=( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PipelineCoverageToColorStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineCoverageToColorStateCreateInfoNV & + setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + PipelineCoverageToColorStateCreateInfoNV & + setCoverageToColorEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ ) VULKAN_HPP_NOEXCEPT + { + coverageToColorEnable = coverageToColorEnable_; + return *this; + } + + PipelineCoverageToColorStateCreateInfoNV & + setCoverageToColorLocation( uint32_t coverageToColorLocation_ ) VULKAN_HPP_NOEXCEPT + { + coverageToColorLocation = coverageToColorLocation_; + return *this; + } + + operator VkPipelineCoverageToColorStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineCoverageToColorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineCoverageToColorStateCreateInfoNV const & ) const = default; +#else + bool operator==( PipelineCoverageToColorStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( coverageToColorEnable == rhs.coverageToColorEnable ) && + ( coverageToColorLocation == rhs.coverageToColorLocation ); + } + + bool operator!=( PipelineCoverageToColorStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageToColorStateCreateInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags = {}; + VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable = {}; + uint32_t coverageToColorLocation = {}; + }; + static_assert( sizeof( PipelineCoverageToColorStateCreateInfoNV ) == + sizeof( VkPipelineCoverageToColorStateCreateInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineCoverageToColorStateCreateInfoNV; + }; + + struct PipelineCreationFeedbackEXT + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PipelineCreationFeedbackEXT( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlagsEXT flags_ = {}, + uint64_t duration_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , duration( duration_ ) + {} + + VULKAN_HPP_CONSTEXPR + PipelineCreationFeedbackEXT( PipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineCreationFeedbackEXT( VkPipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PipelineCreationFeedbackEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineCreationFeedbackEXT & + operator=( PipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineCreationFeedbackEXT & operator=( VkPipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + operator VkPipelineCreationFeedbackEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineCreationFeedbackEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineCreationFeedbackEXT const & ) const = default; +#else + bool operator==( PipelineCreationFeedbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( flags == rhs.flags ) && ( duration == rhs.duration ); + } + + bool operator!=( PipelineCreationFeedbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlagsEXT flags = {}; + uint64_t duration = {}; + }; + static_assert( sizeof( PipelineCreationFeedbackEXT ) == sizeof( VkPipelineCreationFeedbackEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + struct PipelineCreationFeedbackCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineCreationFeedbackCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackCreateInfoEXT( + VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT * pPipelineCreationFeedback_ = {}, + uint32_t pipelineStageCreationFeedbackCount_ = {}, + VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT * pPipelineStageCreationFeedbacks_ = {} ) VULKAN_HPP_NOEXCEPT + : pPipelineCreationFeedback( pPipelineCreationFeedback_ ) + , pipelineStageCreationFeedbackCount( pipelineStageCreationFeedbackCount_ ) + , pPipelineStageCreationFeedbacks( pPipelineStageCreationFeedbacks_ ) + {} + + VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackCreateInfoEXT( PipelineCreationFeedbackCreateInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + PipelineCreationFeedbackCreateInfoEXT( VkPipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PipelineCreationFeedbackCreateInfoEXT( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineCreationFeedbackCreateInfoEXT( + VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT * pPipelineCreationFeedback_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + pipelineStageCreationFeedbacks_ ) + : pPipelineCreationFeedback( pPipelineCreationFeedback_ ) + , pipelineStageCreationFeedbackCount( static_cast( pipelineStageCreationFeedbacks_.size() ) ) + , pPipelineStageCreationFeedbacks( pipelineStageCreationFeedbacks_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineCreationFeedbackCreateInfoEXT & + operator=( PipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineCreationFeedbackCreateInfoEXT & + operator=( VkPipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PipelineCreationFeedbackCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineCreationFeedbackCreateInfoEXT & setPPipelineCreationFeedback( + VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT * pPipelineCreationFeedback_ ) VULKAN_HPP_NOEXCEPT + { + pPipelineCreationFeedback = pPipelineCreationFeedback_; + return *this; + } + + PipelineCreationFeedbackCreateInfoEXT & + setPipelineStageCreationFeedbackCount( uint32_t pipelineStageCreationFeedbackCount_ ) VULKAN_HPP_NOEXCEPT + { + pipelineStageCreationFeedbackCount = pipelineStageCreationFeedbackCount_; + return *this; + } + + PipelineCreationFeedbackCreateInfoEXT & setPPipelineStageCreationFeedbacks( + VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT * pPipelineStageCreationFeedbacks_ ) VULKAN_HPP_NOEXCEPT + { + pPipelineStageCreationFeedbacks = pPipelineStageCreationFeedbacks_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineCreationFeedbackCreateInfoEXT & setPipelineStageCreationFeedbacks( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + pipelineStageCreationFeedbacks_ ) VULKAN_HPP_NOEXCEPT + { + pipelineStageCreationFeedbackCount = static_cast( pipelineStageCreationFeedbacks_.size() ); + pPipelineStageCreationFeedbacks = pipelineStageCreationFeedbacks_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkPipelineCreationFeedbackCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineCreationFeedbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineCreationFeedbackCreateInfoEXT const & ) const = default; +#else + bool operator==( PipelineCreationFeedbackCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( pPipelineCreationFeedback == rhs.pPipelineCreationFeedback ) && + ( pipelineStageCreationFeedbackCount == rhs.pipelineStageCreationFeedbackCount ) && + ( pPipelineStageCreationFeedbacks == rhs.pPipelineStageCreationFeedbacks ); + } + + bool operator!=( PipelineCreationFeedbackCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCreationFeedbackCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT * pPipelineCreationFeedback = {}; + uint32_t pipelineStageCreationFeedbackCount = {}; + VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT * pPipelineStageCreationFeedbacks = {}; + }; + static_assert( sizeof( PipelineCreationFeedbackCreateInfoEXT ) == sizeof( VkPipelineCreationFeedbackCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineCreationFeedbackCreateInfoEXT; + }; + + struct PipelineDiscardRectangleStateCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineDiscardRectangleStateCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineDiscardRectangleStateCreateInfoEXT( + VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_ = {}, + VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_ = + VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT::eInclusive, + uint32_t discardRectangleCount_ = {}, + const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , discardRectangleMode( discardRectangleMode_ ) + , discardRectangleCount( discardRectangleCount_ ) + , pDiscardRectangles( pDiscardRectangles_ ) + {} + + VULKAN_HPP_CONSTEXPR PipelineDiscardRectangleStateCreateInfoEXT( + PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineDiscardRectangleStateCreateInfoEXT( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PipelineDiscardRectangleStateCreateInfoEXT( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineDiscardRectangleStateCreateInfoEXT( + VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_, + VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & discardRectangles_ ) + : flags( flags_ ) + , discardRectangleMode( discardRectangleMode_ ) + , discardRectangleCount( static_cast( discardRectangles_.size() ) ) + , pDiscardRectangles( discardRectangles_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineDiscardRectangleStateCreateInfoEXT & + operator=( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineDiscardRectangleStateCreateInfoEXT & + operator=( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PipelineDiscardRectangleStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineDiscardRectangleStateCreateInfoEXT & + setFlags( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + PipelineDiscardRectangleStateCreateInfoEXT & + setDiscardRectangleMode( VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_ ) VULKAN_HPP_NOEXCEPT + { + discardRectangleMode = discardRectangleMode_; + return *this; + } + + PipelineDiscardRectangleStateCreateInfoEXT & + setDiscardRectangleCount( uint32_t discardRectangleCount_ ) VULKAN_HPP_NOEXCEPT + { + discardRectangleCount = discardRectangleCount_; + return *this; + } + + PipelineDiscardRectangleStateCreateInfoEXT & + setPDiscardRectangles( const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles_ ) VULKAN_HPP_NOEXCEPT + { + pDiscardRectangles = pDiscardRectangles_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangles( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & discardRectangles_ ) + VULKAN_HPP_NOEXCEPT + { + discardRectangleCount = static_cast( discardRectangles_.size() ); + pDiscardRectangles = discardRectangles_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkPipelineDiscardRectangleStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineDiscardRectangleStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineDiscardRectangleStateCreateInfoEXT const & ) const = default; +#else + bool operator==( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( discardRectangleMode == rhs.discardRectangleMode ) && + ( discardRectangleCount == rhs.discardRectangleCount ) && ( pDiscardRectangles == rhs.pDiscardRectangles ); + } + + bool operator!=( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags = {}; + VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode = + VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT::eInclusive; + uint32_t discardRectangleCount = {}; + const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles = {}; + }; + static_assert( sizeof( PipelineDiscardRectangleStateCreateInfoEXT ) == + sizeof( VkPipelineDiscardRectangleStateCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineDiscardRectangleStateCreateInfoEXT; + }; + + struct PipelineFragmentShadingRateEnumStateCreateInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV( + VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType_ = + VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV::eFragmentSize, + VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate_ = + VULKAN_HPP_NAMESPACE::FragmentShadingRateNV::e1InvocationPerPixel, + std::array const & + combinerOps_ = { { VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep, + VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep } } ) VULKAN_HPP_NOEXCEPT + : shadingRateType( shadingRateType_ ) + , shadingRate( shadingRate_ ) + , combinerOps( combinerOps_ ) + {} + + VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV( + PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineFragmentShadingRateEnumStateCreateInfoNV( VkPipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PipelineFragmentShadingRateEnumStateCreateInfoNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV & + operator=( PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineFragmentShadingRateEnumStateCreateInfoNV & + operator=( VkPipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PipelineFragmentShadingRateEnumStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineFragmentShadingRateEnumStateCreateInfoNV & + setShadingRateType( VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType_ ) VULKAN_HPP_NOEXCEPT + { + shadingRateType = shadingRateType_; + return *this; + } + + PipelineFragmentShadingRateEnumStateCreateInfoNV & + setShadingRate( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate_ ) VULKAN_HPP_NOEXCEPT + { + shadingRate = shadingRate_; + return *this; + } + + PipelineFragmentShadingRateEnumStateCreateInfoNV & setCombinerOps( + std::array combinerOps_ ) VULKAN_HPP_NOEXCEPT + { + combinerOps = combinerOps_; + return *this; + } + + operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineFragmentShadingRateEnumStateCreateInfoNV const & ) const = default; +#else + bool operator==( PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shadingRateType == rhs.shadingRateType ) && + ( shadingRate == rhs.shadingRate ) && ( combinerOps == rhs.combinerOps ); + } + + bool operator!=( PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType = + VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV::eFragmentSize; + VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate = + VULKAN_HPP_NAMESPACE::FragmentShadingRateNV::e1InvocationPerPixel; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D combinerOps = {}; + }; + static_assert( sizeof( PipelineFragmentShadingRateEnumStateCreateInfoNV ) == + sizeof( VkPipelineFragmentShadingRateEnumStateCreateInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineFragmentShadingRateEnumStateCreateInfoNV; + }; + + struct PipelineFragmentShadingRateStateCreateInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR( + VULKAN_HPP_NAMESPACE::Extent2D fragmentSize_ = {}, + std::array const & + combinerOps_ = { { VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep, + VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep } } ) VULKAN_HPP_NOEXCEPT + : fragmentSize( fragmentSize_ ) + , combinerOps( combinerOps_ ) + {} + + VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR( + PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineFragmentShadingRateStateCreateInfoKHR( VkPipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + : PipelineFragmentShadingRateStateCreateInfoKHR( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR & + operator=( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineFragmentShadingRateStateCreateInfoKHR & + operator=( VkPipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PipelineFragmentShadingRateStateCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineFragmentShadingRateStateCreateInfoKHR & + setFragmentSize( VULKAN_HPP_NAMESPACE::Extent2D const & fragmentSize_ ) VULKAN_HPP_NOEXCEPT + { + fragmentSize = fragmentSize_; + return *this; + } + + PipelineFragmentShadingRateStateCreateInfoKHR & setCombinerOps( + std::array combinerOps_ ) VULKAN_HPP_NOEXCEPT + { + combinerOps = combinerOps_; + return *this; + } + + operator VkPipelineFragmentShadingRateStateCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineFragmentShadingRateStateCreateInfoKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineFragmentShadingRateStateCreateInfoKHR const & ) const = default; +#else + bool operator==( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fragmentSize == rhs.fragmentSize ) && + ( combinerOps == rhs.combinerOps ); + } + + bool operator!=( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Extent2D fragmentSize = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D combinerOps = {}; + }; + static_assert( sizeof( PipelineFragmentShadingRateStateCreateInfoKHR ) == + sizeof( VkPipelineFragmentShadingRateStateCreateInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineFragmentShadingRateStateCreateInfoKHR; + }; + + struct PipelineRasterizationConservativeStateCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineRasterizationConservativeStateCreateInfoEXT( + VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ = {}, + VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ = + VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled, + float extraPrimitiveOverestimationSize_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , conservativeRasterizationMode( conservativeRasterizationMode_ ) + , extraPrimitiveOverestimationSize( extraPrimitiveOverestimationSize_ ) + {} + + VULKAN_HPP_CONSTEXPR PipelineRasterizationConservativeStateCreateInfoEXT( + PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineRasterizationConservativeStateCreateInfoEXT( + VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PipelineRasterizationConservativeStateCreateInfoEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationConservativeStateCreateInfoEXT & + operator=( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineRasterizationConservativeStateCreateInfoEXT & + operator=( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = + *reinterpret_cast( &rhs ); + return *this; + } + + PipelineRasterizationConservativeStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineRasterizationConservativeStateCreateInfoEXT & + setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + PipelineRasterizationConservativeStateCreateInfoEXT & setConservativeRasterizationMode( + VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ ) VULKAN_HPP_NOEXCEPT + { + conservativeRasterizationMode = conservativeRasterizationMode_; + return *this; + } + + PipelineRasterizationConservativeStateCreateInfoEXT & + setExtraPrimitiveOverestimationSize( float extraPrimitiveOverestimationSize_ ) VULKAN_HPP_NOEXCEPT + { + extraPrimitiveOverestimationSize = extraPrimitiveOverestimationSize_; + return *this; + } + + operator VkPipelineRasterizationConservativeStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineRasterizationConservativeStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineRasterizationConservativeStateCreateInfoEXT const & ) const = default; +#else + bool operator==( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( conservativeRasterizationMode == rhs.conservativeRasterizationMode ) && + ( extraPrimitiveOverestimationSize == rhs.extraPrimitiveOverestimationSize ); + } + + bool operator!=( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags = {}; + VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode = + VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled; + float extraPrimitiveOverestimationSize = {}; + }; + static_assert( sizeof( PipelineRasterizationConservativeStateCreateInfoEXT ) == + sizeof( VkPipelineRasterizationConservativeStateCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineRasterizationConservativeStateCreateInfoEXT; + }; + + struct PipelineRasterizationDepthClipStateCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineRasterizationDepthClipStateCreateInfoEXT( + VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , depthClipEnable( depthClipEnable_ ) + {} + + VULKAN_HPP_CONSTEXPR PipelineRasterizationDepthClipStateCreateInfoEXT( + PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineRasterizationDepthClipStateCreateInfoEXT( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PipelineRasterizationDepthClipStateCreateInfoEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationDepthClipStateCreateInfoEXT & + operator=( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineRasterizationDepthClipStateCreateInfoEXT & + operator=( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PipelineRasterizationDepthClipStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineRasterizationDepthClipStateCreateInfoEXT & + setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + PipelineRasterizationDepthClipStateCreateInfoEXT & + setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT + { + depthClipEnable = depthClipEnable_; + return *this; + } + + operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineRasterizationDepthClipStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineRasterizationDepthClipStateCreateInfoEXT const & ) const = default; +#else + bool operator==( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( depthClipEnable == rhs.depthClipEnable ); + } + + bool operator!=( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags = {}; + VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {}; + }; + static_assert( sizeof( PipelineRasterizationDepthClipStateCreateInfoEXT ) == + sizeof( VkPipelineRasterizationDepthClipStateCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineRasterizationDepthClipStateCreateInfoEXT; + }; + + struct PipelineRasterizationLineStateCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineRasterizationLineStateCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineRasterizationLineStateCreateInfoEXT( + VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode_ = + VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT::eDefault, + VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable_ = {}, + uint32_t lineStippleFactor_ = {}, + uint16_t lineStipplePattern_ = {} ) VULKAN_HPP_NOEXCEPT + : lineRasterizationMode( lineRasterizationMode_ ) + , stippledLineEnable( stippledLineEnable_ ) + , lineStippleFactor( lineStippleFactor_ ) + , lineStipplePattern( lineStipplePattern_ ) + {} + + VULKAN_HPP_CONSTEXPR PipelineRasterizationLineStateCreateInfoEXT( + PipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineRasterizationLineStateCreateInfoEXT( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PipelineRasterizationLineStateCreateInfoEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationLineStateCreateInfoEXT & + operator=( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineRasterizationLineStateCreateInfoEXT & + operator=( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PipelineRasterizationLineStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineRasterizationLineStateCreateInfoEXT & setLineRasterizationMode( + VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode_ ) VULKAN_HPP_NOEXCEPT + { + lineRasterizationMode = lineRasterizationMode_; + return *this; + } + + PipelineRasterizationLineStateCreateInfoEXT & + setStippledLineEnable( VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable_ ) VULKAN_HPP_NOEXCEPT + { + stippledLineEnable = stippledLineEnable_; + return *this; + } + + PipelineRasterizationLineStateCreateInfoEXT & + setLineStippleFactor( uint32_t lineStippleFactor_ ) VULKAN_HPP_NOEXCEPT + { + lineStippleFactor = lineStippleFactor_; + return *this; + } + + PipelineRasterizationLineStateCreateInfoEXT & + setLineStipplePattern( uint16_t lineStipplePattern_ ) VULKAN_HPP_NOEXCEPT + { + lineStipplePattern = lineStipplePattern_; + return *this; + } + + operator VkPipelineRasterizationLineStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineRasterizationLineStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineRasterizationLineStateCreateInfoEXT const & ) const = default; +#else + bool operator==( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( lineRasterizationMode == rhs.lineRasterizationMode ) && + ( stippledLineEnable == rhs.stippledLineEnable ) && ( lineStippleFactor == rhs.lineStippleFactor ) && + ( lineStipplePattern == rhs.lineStipplePattern ); + } + + bool operator!=( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationLineStateCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode = + VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT::eDefault; + VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable = {}; + uint32_t lineStippleFactor = {}; + uint16_t lineStipplePattern = {}; + }; + static_assert( sizeof( PipelineRasterizationLineStateCreateInfoEXT ) == + sizeof( VkPipelineRasterizationLineStateCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineRasterizationLineStateCreateInfoEXT; + }; + + struct PipelineRasterizationStateRasterizationOrderAMD + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineRasterizationStateRasterizationOrderAMD; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineRasterizationStateRasterizationOrderAMD( + VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ = + VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict ) VULKAN_HPP_NOEXCEPT + : rasterizationOrder( rasterizationOrder_ ) + {} + + VULKAN_HPP_CONSTEXPR PipelineRasterizationStateRasterizationOrderAMD( + PipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineRasterizationStateRasterizationOrderAMD( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) + VULKAN_HPP_NOEXCEPT + : PipelineRasterizationStateRasterizationOrderAMD( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateRasterizationOrderAMD & + operator=( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineRasterizationStateRasterizationOrderAMD & + operator=( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PipelineRasterizationStateRasterizationOrderAMD & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineRasterizationStateRasterizationOrderAMD & + setRasterizationOrder( VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ ) VULKAN_HPP_NOEXCEPT + { + rasterizationOrder = rasterizationOrder_; + return *this; + } + + operator VkPipelineRasterizationStateRasterizationOrderAMD const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineRasterizationStateRasterizationOrderAMD &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineRasterizationStateRasterizationOrderAMD const & ) const = default; +#else + bool operator==( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( rasterizationOrder == rhs.rasterizationOrder ); + } + + bool operator!=( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder = + VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict; + }; + static_assert( sizeof( PipelineRasterizationStateRasterizationOrderAMD ) == + sizeof( VkPipelineRasterizationStateRasterizationOrderAMD ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineRasterizationStateRasterizationOrderAMD; + }; + + struct PipelineRasterizationStateStreamCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineRasterizationStateStreamCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineRasterizationStateStreamCreateInfoEXT( + VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ = {}, + uint32_t rasterizationStream_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , rasterizationStream( rasterizationStream_ ) + {} + + VULKAN_HPP_CONSTEXPR PipelineRasterizationStateStreamCreateInfoEXT( + PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineRasterizationStateStreamCreateInfoEXT( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PipelineRasterizationStateStreamCreateInfoEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineRasterizationStateStreamCreateInfoEXT & + operator=( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineRasterizationStateStreamCreateInfoEXT & + operator=( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PipelineRasterizationStateStreamCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineRasterizationStateStreamCreateInfoEXT & + setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + PipelineRasterizationStateStreamCreateInfoEXT & + setRasterizationStream( uint32_t rasterizationStream_ ) VULKAN_HPP_NOEXCEPT + { + rasterizationStream = rasterizationStream_; + return *this; + } + + operator VkPipelineRasterizationStateStreamCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineRasterizationStateStreamCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineRasterizationStateStreamCreateInfoEXT const & ) const = default; +#else + bool operator==( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( rasterizationStream == rhs.rasterizationStream ); + } + + bool operator!=( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags = {}; + uint32_t rasterizationStream = {}; + }; + static_assert( sizeof( PipelineRasterizationStateStreamCreateInfoEXT ) == + sizeof( VkPipelineRasterizationStateStreamCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineRasterizationStateStreamCreateInfoEXT; + }; + + struct PipelineRepresentativeFragmentTestStateCreateInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineRepresentativeFragmentTestStateCreateInfoNV( + VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ = {} ) VULKAN_HPP_NOEXCEPT + : representativeFragmentTestEnable( representativeFragmentTestEnable_ ) + {} + + VULKAN_HPP_CONSTEXPR PipelineRepresentativeFragmentTestStateCreateInfoNV( + PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineRepresentativeFragmentTestStateCreateInfoNV( + VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : PipelineRepresentativeFragmentTestStateCreateInfoNV( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineRepresentativeFragmentTestStateCreateInfoNV & + operator=( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineRepresentativeFragmentTestStateCreateInfoNV & + operator=( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = + *reinterpret_cast( &rhs ); + return *this; + } + + PipelineRepresentativeFragmentTestStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineRepresentativeFragmentTestStateCreateInfoNV & setRepresentativeFragmentTestEnable( + VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ ) VULKAN_HPP_NOEXCEPT + { + representativeFragmentTestEnable = representativeFragmentTestEnable_; + return *this; + } + + operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineRepresentativeFragmentTestStateCreateInfoNV const & ) const = default; +#else + bool operator==( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( representativeFragmentTestEnable == rhs.representativeFragmentTestEnable ); + } + + bool operator!=( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable = {}; + }; + static_assert( sizeof( PipelineRepresentativeFragmentTestStateCreateInfoNV ) == + sizeof( VkPipelineRepresentativeFragmentTestStateCreateInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineRepresentativeFragmentTestStateCreateInfoNV; + }; + + struct PipelineSampleLocationsStateCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineSampleLocationsStateCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineSampleLocationsStateCreateInfoEXT( + VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ = {}, + VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {} ) VULKAN_HPP_NOEXCEPT + : sampleLocationsEnable( sampleLocationsEnable_ ) + , sampleLocationsInfo( sampleLocationsInfo_ ) + {} + + VULKAN_HPP_CONSTEXPR PipelineSampleLocationsStateCreateInfoEXT( + PipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineSampleLocationsStateCreateInfoEXT( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PipelineSampleLocationsStateCreateInfoEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineSampleLocationsStateCreateInfoEXT & + operator=( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineSampleLocationsStateCreateInfoEXT & + operator=( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PipelineSampleLocationsStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineSampleLocationsStateCreateInfoEXT & + setSampleLocationsEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ ) VULKAN_HPP_NOEXCEPT + { + sampleLocationsEnable = sampleLocationsEnable_; + return *this; + } + + PipelineSampleLocationsStateCreateInfoEXT & setSampleLocationsInfo( + VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT + { + sampleLocationsInfo = sampleLocationsInfo_; + return *this; + } + + operator VkPipelineSampleLocationsStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineSampleLocationsStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineSampleLocationsStateCreateInfoEXT const & ) const = default; +#else + bool operator==( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( sampleLocationsEnable == rhs.sampleLocationsEnable ) && + ( sampleLocationsInfo == rhs.sampleLocationsInfo ); + } + + bool operator!=( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable = {}; + VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {}; + }; + static_assert( sizeof( PipelineSampleLocationsStateCreateInfoEXT ) == + sizeof( VkPipelineSampleLocationsStateCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineSampleLocationsStateCreateInfoEXT; + }; + + struct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( uint32_t requiredSubgroupSize_ = {} ) VULKAN_HPP_NOEXCEPT + : requiredSubgroupSize( requiredSubgroupSize_ ) + {} + + VULKAN_HPP_CONSTEXPR PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( + PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( + VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT & + operator=( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT & + operator=( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = + *reinterpret_cast( &rhs ); + return *this; + } + + operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & ) const = default; +#else + bool operator==( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( requiredSubgroupSize == rhs.requiredSubgroupSize ); + } + + bool operator!=( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT; + void * pNext = {}; + uint32_t requiredSubgroupSize = {}; + }; + static_assert( sizeof( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ) == + sizeof( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT; + }; + + struct PipelineTessellationDomainOriginStateCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineTessellationDomainOriginStateCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineTessellationDomainOriginStateCreateInfo( + VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ = + VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft ) VULKAN_HPP_NOEXCEPT : domainOrigin( domainOrigin_ ) + {} + + VULKAN_HPP_CONSTEXPR PipelineTessellationDomainOriginStateCreateInfo( + PipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineTessellationDomainOriginStateCreateInfo( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) + VULKAN_HPP_NOEXCEPT + : PipelineTessellationDomainOriginStateCreateInfo( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineTessellationDomainOriginStateCreateInfo & + operator=( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineTessellationDomainOriginStateCreateInfo & + operator=( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PipelineTessellationDomainOriginStateCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineTessellationDomainOriginStateCreateInfo & + setDomainOrigin( VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ ) VULKAN_HPP_NOEXCEPT + { + domainOrigin = domainOrigin_; + return *this; + } + + operator VkPipelineTessellationDomainOriginStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineTessellationDomainOriginStateCreateInfo &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineTessellationDomainOriginStateCreateInfo const & ) const = default; +#else + bool operator==( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( domainOrigin == rhs.domainOrigin ); + } + + bool operator!=( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin = + VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft; + }; + static_assert( sizeof( PipelineTessellationDomainOriginStateCreateInfo ) == + sizeof( VkPipelineTessellationDomainOriginStateCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineTessellationDomainOriginStateCreateInfo; + }; + using PipelineTessellationDomainOriginStateCreateInfoKHR = PipelineTessellationDomainOriginStateCreateInfo; + + struct VertexInputBindingDivisorDescriptionEXT + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT( uint32_t binding_ = {}, + uint32_t divisor_ = {} ) VULKAN_HPP_NOEXCEPT + : binding( binding_ ) + , divisor( divisor_ ) + {} + + VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT( VertexInputBindingDivisorDescriptionEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + VertexInputBindingDivisorDescriptionEXT( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : VertexInputBindingDivisorDescriptionEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VertexInputBindingDivisorDescriptionEXT & + operator=( VertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VertexInputBindingDivisorDescriptionEXT & + operator=( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VertexInputBindingDivisorDescriptionEXT & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT + { + binding = binding_; + return *this; + } + + VertexInputBindingDivisorDescriptionEXT & setDivisor( uint32_t divisor_ ) VULKAN_HPP_NOEXCEPT + { + divisor = divisor_; + return *this; + } + + operator VkVertexInputBindingDivisorDescriptionEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVertexInputBindingDivisorDescriptionEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VertexInputBindingDivisorDescriptionEXT const & ) const = default; +#else + bool operator==( VertexInputBindingDivisorDescriptionEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( binding == rhs.binding ) && ( divisor == rhs.divisor ); + } + + bool operator!=( VertexInputBindingDivisorDescriptionEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + uint32_t binding = {}; + uint32_t divisor = {}; + }; + static_assert( sizeof( VertexInputBindingDivisorDescriptionEXT ) == + sizeof( VkVertexInputBindingDivisorDescriptionEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + struct PipelineVertexInputDivisorStateCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineVertexInputDivisorStateCreateInfoEXT( + uint32_t vertexBindingDivisorCount_ = {}, + const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT * pVertexBindingDivisors_ = {} ) + VULKAN_HPP_NOEXCEPT + : vertexBindingDivisorCount( vertexBindingDivisorCount_ ) + , pVertexBindingDivisors( pVertexBindingDivisors_ ) + {} + + VULKAN_HPP_CONSTEXPR PipelineVertexInputDivisorStateCreateInfoEXT( + PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineVertexInputDivisorStateCreateInfoEXT( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : PipelineVertexInputDivisorStateCreateInfoEXT( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineVertexInputDivisorStateCreateInfoEXT( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries< + const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT> const & vertexBindingDivisors_ ) + : vertexBindingDivisorCount( static_cast( vertexBindingDivisors_.size() ) ) + , pVertexBindingDivisors( vertexBindingDivisors_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineVertexInputDivisorStateCreateInfoEXT & + operator=( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineVertexInputDivisorStateCreateInfoEXT & + operator=( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PipelineVertexInputDivisorStateCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineVertexInputDivisorStateCreateInfoEXT & + setVertexBindingDivisorCount( uint32_t vertexBindingDivisorCount_ ) VULKAN_HPP_NOEXCEPT + { + vertexBindingDivisorCount = vertexBindingDivisorCount_; + return *this; + } + + PipelineVertexInputDivisorStateCreateInfoEXT & setPVertexBindingDivisors( + const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT * pVertexBindingDivisors_ ) + VULKAN_HPP_NOEXCEPT + { + pVertexBindingDivisors = pVertexBindingDivisors_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisors( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries< + const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT> const & vertexBindingDivisors_ ) + VULKAN_HPP_NOEXCEPT + { + vertexBindingDivisorCount = static_cast( vertexBindingDivisors_.size() ); + pVertexBindingDivisors = vertexBindingDivisors_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkPipelineVertexInputDivisorStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineVertexInputDivisorStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineVertexInputDivisorStateCreateInfoEXT const & ) const = default; +#else + bool operator==( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( vertexBindingDivisorCount == rhs.vertexBindingDivisorCount ) && + ( pVertexBindingDivisors == rhs.pVertexBindingDivisors ); + } + + bool operator!=( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT; + const void * pNext = {}; + uint32_t vertexBindingDivisorCount = {}; + const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT * pVertexBindingDivisors = {}; + }; + static_assert( sizeof( PipelineVertexInputDivisorStateCreateInfoEXT ) == + sizeof( VkPipelineVertexInputDivisorStateCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineVertexInputDivisorStateCreateInfoEXT; + }; + + struct PipelineViewportCoarseSampleOrderStateCreateInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineViewportCoarseSampleOrderStateCreateInfoNV( + VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_ = + VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV::eDefault, + uint32_t customSampleOrderCount_ = {}, + const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders_ = {} ) VULKAN_HPP_NOEXCEPT + : sampleOrderType( sampleOrderType_ ) + , customSampleOrderCount( customSampleOrderCount_ ) + , pCustomSampleOrders( pCustomSampleOrders_ ) + {} + + VULKAN_HPP_CONSTEXPR PipelineViewportCoarseSampleOrderStateCreateInfoNV( + PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineViewportCoarseSampleOrderStateCreateInfoNV( + VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : PipelineViewportCoarseSampleOrderStateCreateInfoNV( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineViewportCoarseSampleOrderStateCreateInfoNV( + VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + customSampleOrders_ ) + : sampleOrderType( sampleOrderType_ ) + , customSampleOrderCount( static_cast( customSampleOrders_.size() ) ) + , pCustomSampleOrders( customSampleOrders_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineViewportCoarseSampleOrderStateCreateInfoNV & + operator=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineViewportCoarseSampleOrderStateCreateInfoNV & + operator=( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = + *reinterpret_cast( &rhs ); + return *this; + } + + PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineViewportCoarseSampleOrderStateCreateInfoNV & + setSampleOrderType( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_ ) VULKAN_HPP_NOEXCEPT + { + sampleOrderType = sampleOrderType_; + return *this; + } + + PipelineViewportCoarseSampleOrderStateCreateInfoNV & + setCustomSampleOrderCount( uint32_t customSampleOrderCount_ ) VULKAN_HPP_NOEXCEPT + { + customSampleOrderCount = customSampleOrderCount_; + return *this; + } + + PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPCustomSampleOrders( + const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders_ ) VULKAN_HPP_NOEXCEPT + { + pCustomSampleOrders = pCustomSampleOrders_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineViewportCoarseSampleOrderStateCreateInfoNV & setCustomSampleOrders( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + customSampleOrders_ ) VULKAN_HPP_NOEXCEPT + { + customSampleOrderCount = static_cast( customSampleOrders_.size() ); + pCustomSampleOrders = customSampleOrders_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & ) const = default; +#else + bool operator==( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( sampleOrderType == rhs.sampleOrderType ) && + ( customSampleOrderCount == rhs.customSampleOrderCount ) && + ( pCustomSampleOrders == rhs.pCustomSampleOrders ); + } + + bool operator!=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType = + VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV::eDefault; + uint32_t customSampleOrderCount = {}; + const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders = {}; + }; + static_assert( sizeof( PipelineViewportCoarseSampleOrderStateCreateInfoNV ) == + sizeof( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineViewportCoarseSampleOrderStateCreateInfoNV; + }; + + struct PipelineViewportExclusiveScissorStateCreateInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineViewportExclusiveScissorStateCreateInfoNV( + uint32_t exclusiveScissorCount_ = {}, + const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors_ = {} ) VULKAN_HPP_NOEXCEPT + : exclusiveScissorCount( exclusiveScissorCount_ ) + , pExclusiveScissors( pExclusiveScissors_ ) + {} + + VULKAN_HPP_CONSTEXPR PipelineViewportExclusiveScissorStateCreateInfoNV( + PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineViewportExclusiveScissorStateCreateInfoNV( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PipelineViewportExclusiveScissorStateCreateInfoNV( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineViewportExclusiveScissorStateCreateInfoNV( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & exclusiveScissors_ ) + : exclusiveScissorCount( static_cast( exclusiveScissors_.size() ) ) + , pExclusiveScissors( exclusiveScissors_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineViewportExclusiveScissorStateCreateInfoNV & + operator=( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineViewportExclusiveScissorStateCreateInfoNV & + operator=( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = + *reinterpret_cast( &rhs ); + return *this; + } + + PipelineViewportExclusiveScissorStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineViewportExclusiveScissorStateCreateInfoNV & + setExclusiveScissorCount( uint32_t exclusiveScissorCount_ ) VULKAN_HPP_NOEXCEPT + { + exclusiveScissorCount = exclusiveScissorCount_; + return *this; + } + + PipelineViewportExclusiveScissorStateCreateInfoNV & + setPExclusiveScissors( const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors_ ) VULKAN_HPP_NOEXCEPT + { + pExclusiveScissors = pExclusiveScissors_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineViewportExclusiveScissorStateCreateInfoNV & setExclusiveScissors( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & exclusiveScissors_ ) + VULKAN_HPP_NOEXCEPT + { + exclusiveScissorCount = static_cast( exclusiveScissors_.size() ); + pExclusiveScissors = exclusiveScissors_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineViewportExclusiveScissorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineViewportExclusiveScissorStateCreateInfoNV const & ) const = default; +#else + bool operator==( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( exclusiveScissorCount == rhs.exclusiveScissorCount ) && ( pExclusiveScissors == rhs.pExclusiveScissors ); + } + + bool operator!=( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV; + const void * pNext = {}; + uint32_t exclusiveScissorCount = {}; + const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors = {}; + }; + static_assert( sizeof( PipelineViewportExclusiveScissorStateCreateInfoNV ) == + sizeof( VkPipelineViewportExclusiveScissorStateCreateInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineViewportExclusiveScissorStateCreateInfoNV; + }; + + struct PipelineViewportShadingRateImageStateCreateInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineViewportShadingRateImageStateCreateInfoNV( + VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ = {}, + uint32_t viewportCount_ = {}, + const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes_ = {} ) VULKAN_HPP_NOEXCEPT + : shadingRateImageEnable( shadingRateImageEnable_ ) + , viewportCount( viewportCount_ ) + , pShadingRatePalettes( pShadingRatePalettes_ ) + {} + + VULKAN_HPP_CONSTEXPR PipelineViewportShadingRateImageStateCreateInfoNV( + PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineViewportShadingRateImageStateCreateInfoNV( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PipelineViewportShadingRateImageStateCreateInfoNV( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineViewportShadingRateImageStateCreateInfoNV( + VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + shadingRatePalettes_ ) + : shadingRateImageEnable( shadingRateImageEnable_ ) + , viewportCount( static_cast( shadingRatePalettes_.size() ) ) + , pShadingRatePalettes( shadingRatePalettes_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineViewportShadingRateImageStateCreateInfoNV & + operator=( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineViewportShadingRateImageStateCreateInfoNV & + operator=( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = + *reinterpret_cast( &rhs ); + return *this; + } + + PipelineViewportShadingRateImageStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineViewportShadingRateImageStateCreateInfoNV & + setShadingRateImageEnable( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ ) VULKAN_HPP_NOEXCEPT + { + shadingRateImageEnable = shadingRateImageEnable_; + return *this; + } + + PipelineViewportShadingRateImageStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT + { + viewportCount = viewportCount_; + return *this; + } + + PipelineViewportShadingRateImageStateCreateInfoNV & setPShadingRatePalettes( + const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT + { + pShadingRatePalettes = pShadingRatePalettes_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineViewportShadingRateImageStateCreateInfoNV & setShadingRatePalettes( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + shadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT + { + viewportCount = static_cast( shadingRatePalettes_.size() ); + pShadingRatePalettes = shadingRatePalettes_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkPipelineViewportShadingRateImageStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineViewportShadingRateImageStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineViewportShadingRateImageStateCreateInfoNV const & ) const = default; +#else + bool operator==( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( shadingRateImageEnable == rhs.shadingRateImageEnable ) && ( viewportCount == rhs.viewportCount ) && + ( pShadingRatePalettes == rhs.pShadingRatePalettes ); + } + + bool operator!=( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable = {}; + uint32_t viewportCount = {}; + const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes = {}; + }; + static_assert( sizeof( PipelineViewportShadingRateImageStateCreateInfoNV ) == + sizeof( VkPipelineViewportShadingRateImageStateCreateInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineViewportShadingRateImageStateCreateInfoNV; + }; + + struct ViewportSwizzleNV + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + ViewportSwizzleNV( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x_ = + VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX, + VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y_ = + VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX, + VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z_ = + VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX, + VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w_ = + VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX ) VULKAN_HPP_NOEXCEPT + : x( x_ ) + , y( y_ ) + , z( z_ ) + , w( w_ ) + {} + + VULKAN_HPP_CONSTEXPR ViewportSwizzleNV( ViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ViewportSwizzleNV( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT + : ViewportSwizzleNV( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ViewportSwizzleNV & + operator=( ViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ViewportSwizzleNV & operator=( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + ViewportSwizzleNV & setX( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x_ ) VULKAN_HPP_NOEXCEPT + { + x = x_; + return *this; + } + + ViewportSwizzleNV & setY( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y_ ) VULKAN_HPP_NOEXCEPT + { + y = y_; + return *this; + } + + ViewportSwizzleNV & setZ( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z_ ) VULKAN_HPP_NOEXCEPT + { + z = z_; + return *this; + } + + ViewportSwizzleNV & setW( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w_ ) VULKAN_HPP_NOEXCEPT + { + w = w_; + return *this; + } + + operator VkViewportSwizzleNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkViewportSwizzleNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ViewportSwizzleNV const & ) const = default; +#else + bool operator==( ViewportSwizzleNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( x == rhs.x ) && ( y == rhs.y ) && ( z == rhs.z ) && ( w == rhs.w ); + } + + bool operator!=( ViewportSwizzleNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX; + VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX; + VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX; + VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX; + }; + static_assert( sizeof( ViewportSwizzleNV ) == sizeof( VkViewportSwizzleNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + struct PipelineViewportSwizzleStateCreateInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineViewportSwizzleStateCreateInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineViewportSwizzleStateCreateInfoNV( + VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ = {}, + uint32_t viewportCount_ = {}, + const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV * pViewportSwizzles_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , viewportCount( viewportCount_ ) + , pViewportSwizzles( pViewportSwizzles_ ) + {} + + VULKAN_HPP_CONSTEXPR PipelineViewportSwizzleStateCreateInfoNV( + PipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineViewportSwizzleStateCreateInfoNV( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PipelineViewportSwizzleStateCreateInfoNV( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineViewportSwizzleStateCreateInfoNV( + VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + viewportSwizzles_ ) + : flags( flags_ ) + , viewportCount( static_cast( viewportSwizzles_.size() ) ) + , pViewportSwizzles( viewportSwizzles_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineViewportSwizzleStateCreateInfoNV & + operator=( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineViewportSwizzleStateCreateInfoNV & + operator=( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PipelineViewportSwizzleStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineViewportSwizzleStateCreateInfoNV & + setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + PipelineViewportSwizzleStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT + { + viewportCount = viewportCount_; + return *this; + } + + PipelineViewportSwizzleStateCreateInfoNV & + setPViewportSwizzles( const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV * pViewportSwizzles_ ) VULKAN_HPP_NOEXCEPT + { + pViewportSwizzles = pViewportSwizzles_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineViewportSwizzleStateCreateInfoNV & setViewportSwizzles( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + viewportSwizzles_ ) VULKAN_HPP_NOEXCEPT + { + viewportCount = static_cast( viewportSwizzles_.size() ); + pViewportSwizzles = viewportSwizzles_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkPipelineViewportSwizzleStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineViewportSwizzleStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineViewportSwizzleStateCreateInfoNV const & ) const = default; +#else + bool operator==( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( viewportCount == rhs.viewportCount ) && ( pViewportSwizzles == rhs.pViewportSwizzles ); + } + + bool operator!=( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags = {}; + uint32_t viewportCount = {}; + const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV * pViewportSwizzles = {}; + }; + static_assert( sizeof( PipelineViewportSwizzleStateCreateInfoNV ) == + sizeof( VkPipelineViewportSwizzleStateCreateInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineViewportSwizzleStateCreateInfoNV; + }; + + struct PipelineViewportWScalingStateCreateInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::ePipelineViewportWScalingStateCreateInfoNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PipelineViewportWScalingStateCreateInfoNV( + VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ = {}, + uint32_t viewportCount_ = {}, + const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings_ = {} ) VULKAN_HPP_NOEXCEPT + : viewportWScalingEnable( viewportWScalingEnable_ ) + , viewportCount( viewportCount_ ) + , pViewportWScalings( pViewportWScalings_ ) + {} + + VULKAN_HPP_CONSTEXPR PipelineViewportWScalingStateCreateInfoNV( + PipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineViewportWScalingStateCreateInfoNV( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : PipelineViewportWScalingStateCreateInfoNV( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineViewportWScalingStateCreateInfoNV( + VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + viewportWScalings_ ) + : viewportWScalingEnable( viewportWScalingEnable_ ) + , viewportCount( static_cast( viewportWScalings_.size() ) ) + , pViewportWScalings( viewportWScalings_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PipelineViewportWScalingStateCreateInfoNV & + operator=( PipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PipelineViewportWScalingStateCreateInfoNV & + operator=( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PipelineViewportWScalingStateCreateInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PipelineViewportWScalingStateCreateInfoNV & + setViewportWScalingEnable( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ ) VULKAN_HPP_NOEXCEPT + { + viewportWScalingEnable = viewportWScalingEnable_; + return *this; + } + + PipelineViewportWScalingStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT + { + viewportCount = viewportCount_; + return *this; + } + + PipelineViewportWScalingStateCreateInfoNV & + setPViewportWScalings( const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings_ ) VULKAN_HPP_NOEXCEPT + { + pViewportWScalings = pViewportWScalings_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PipelineViewportWScalingStateCreateInfoNV & setViewportWScalings( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + viewportWScalings_ ) VULKAN_HPP_NOEXCEPT + { + viewportCount = static_cast( viewportWScalings_.size() ); + pViewportWScalings = viewportWScalings_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkPipelineViewportWScalingStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPipelineViewportWScalingStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PipelineViewportWScalingStateCreateInfoNV const & ) const = default; +#else + bool operator==( PipelineViewportWScalingStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( viewportWScalingEnable == rhs.viewportWScalingEnable ) && ( viewportCount == rhs.viewportCount ) && + ( pViewportWScalings == rhs.pViewportWScalings ); + } + + bool operator!=( PipelineViewportWScalingStateCreateInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportWScalingStateCreateInfoNV; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable = {}; + uint32_t viewportCount = {}; + const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings = {}; + }; + static_assert( sizeof( PipelineViewportWScalingStateCreateInfoNV ) == + sizeof( VkPipelineViewportWScalingStateCreateInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PipelineViewportWScalingStateCreateInfoNV; + }; + +#if defined( VK_USE_PLATFORM_GGP ) + struct PresentFrameTokenGGP + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentFrameTokenGGP; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP( GgpFrameToken frameToken_ = {} ) VULKAN_HPP_NOEXCEPT + : frameToken( frameToken_ ) + {} + + VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP( PresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PresentFrameTokenGGP( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT + : PresentFrameTokenGGP( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PresentFrameTokenGGP & + operator=( PresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PresentFrameTokenGGP & operator=( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PresentFrameTokenGGP & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PresentFrameTokenGGP & setFrameToken( GgpFrameToken frameToken_ ) VULKAN_HPP_NOEXCEPT + { + frameToken = frameToken_; + return *this; + } + + operator VkPresentFrameTokenGGP const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPresentFrameTokenGGP &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PresentFrameTokenGGP const & ) const = default; +# else + bool operator==( PresentFrameTokenGGP const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( memcmp( &frameToken, &rhs.frameToken, sizeof( GgpFrameToken ) ) == 0 ); + } + + bool operator!=( PresentFrameTokenGGP const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentFrameTokenGGP; + const void * pNext = {}; + GgpFrameToken frameToken = {}; + }; + static_assert( sizeof( PresentFrameTokenGGP ) == sizeof( VkPresentFrameTokenGGP ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PresentFrameTokenGGP; + }; +#endif /*VK_USE_PLATFORM_GGP*/ + + struct RectLayerKHR + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR RectLayerKHR( VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D extent_ = {}, + uint32_t layer_ = {} ) VULKAN_HPP_NOEXCEPT + : offset( offset_ ) + , extent( extent_ ) + , layer( layer_ ) + {} + + VULKAN_HPP_CONSTEXPR RectLayerKHR( RectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + RectLayerKHR( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : RectLayerKHR( *reinterpret_cast( &rhs ) ) + {} + + explicit RectLayerKHR( Rect2D const & rect2D, uint32_t layer_ = {} ) + : offset( rect2D.offset ), extent( rect2D.extent ), layer( layer_ ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 RectLayerKHR & operator=( RectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + RectLayerKHR & operator=( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + RectLayerKHR & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT + { + offset = offset_; + return *this; + } + + RectLayerKHR & setExtent( VULKAN_HPP_NAMESPACE::Extent2D const & extent_ ) VULKAN_HPP_NOEXCEPT + { + extent = extent_; + return *this; + } + + RectLayerKHR & setLayer( uint32_t layer_ ) VULKAN_HPP_NOEXCEPT + { + layer = layer_; + return *this; + } + + operator VkRectLayerKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkRectLayerKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( RectLayerKHR const & ) const = default; +#else + bool operator==( RectLayerKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( offset == rhs.offset ) && ( extent == rhs.extent ) && ( layer == rhs.layer ); + } + + bool operator!=( RectLayerKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::Offset2D offset = {}; + VULKAN_HPP_NAMESPACE::Extent2D extent = {}; + uint32_t layer = {}; + }; + static_assert( sizeof( RectLayerKHR ) == sizeof( VkRectLayerKHR ), "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + struct PresentRegionKHR + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PresentRegionKHR( uint32_t rectangleCount_ = {}, + const VULKAN_HPP_NAMESPACE::RectLayerKHR * pRectangles_ = {} ) VULKAN_HPP_NOEXCEPT + : rectangleCount( rectangleCount_ ) + , pRectangles( pRectangles_ ) + {} + + VULKAN_HPP_CONSTEXPR PresentRegionKHR( PresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PresentRegionKHR( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PresentRegionKHR( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PresentRegionKHR( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & rectangles_ ) + : rectangleCount( static_cast( rectangles_.size() ) ), pRectangles( rectangles_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PresentRegionKHR & operator=( PresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PresentRegionKHR & operator=( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PresentRegionKHR & setRectangleCount( uint32_t rectangleCount_ ) VULKAN_HPP_NOEXCEPT + { + rectangleCount = rectangleCount_; + return *this; + } + + PresentRegionKHR & setPRectangles( const VULKAN_HPP_NAMESPACE::RectLayerKHR * pRectangles_ ) VULKAN_HPP_NOEXCEPT + { + pRectangles = pRectangles_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PresentRegionKHR & setRectangles( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & rectangles_ ) + VULKAN_HPP_NOEXCEPT + { + rectangleCount = static_cast( rectangles_.size() ); + pRectangles = rectangles_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkPresentRegionKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPresentRegionKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PresentRegionKHR const & ) const = default; +#else + bool operator==( PresentRegionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( rectangleCount == rhs.rectangleCount ) && ( pRectangles == rhs.pRectangles ); + } + + bool operator!=( PresentRegionKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + uint32_t rectangleCount = {}; + const VULKAN_HPP_NAMESPACE::RectLayerKHR * pRectangles = {}; + }; + static_assert( sizeof( PresentRegionKHR ) == sizeof( VkPresentRegionKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + struct PresentRegionsKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentRegionsKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PresentRegionsKHR( uint32_t swapchainCount_ = {}, + const VULKAN_HPP_NAMESPACE::PresentRegionKHR * pRegions_ = {} ) VULKAN_HPP_NOEXCEPT + : swapchainCount( swapchainCount_ ) + , pRegions( pRegions_ ) + {} + + VULKAN_HPP_CONSTEXPR PresentRegionsKHR( PresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PresentRegionsKHR( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PresentRegionsKHR( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PresentRegionsKHR( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) + : swapchainCount( static_cast( regions_.size() ) ), pRegions( regions_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PresentRegionsKHR & + operator=( PresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PresentRegionsKHR & operator=( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PresentRegionsKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PresentRegionsKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT + { + swapchainCount = swapchainCount_; + return *this; + } + + PresentRegionsKHR & setPRegions( const VULKAN_HPP_NAMESPACE::PresentRegionKHR * pRegions_ ) VULKAN_HPP_NOEXCEPT + { + pRegions = pRegions_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PresentRegionsKHR & setRegions( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) + VULKAN_HPP_NOEXCEPT + { + swapchainCount = static_cast( regions_.size() ); + pRegions = regions_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkPresentRegionsKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPresentRegionsKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PresentRegionsKHR const & ) const = default; +#else + bool operator==( PresentRegionsKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchainCount == rhs.swapchainCount ) && + ( pRegions == rhs.pRegions ); + } + + bool operator!=( PresentRegionsKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentRegionsKHR; + const void * pNext = {}; + uint32_t swapchainCount = {}; + const VULKAN_HPP_NAMESPACE::PresentRegionKHR * pRegions = {}; + }; + static_assert( sizeof( PresentRegionsKHR ) == sizeof( VkPresentRegionsKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PresentRegionsKHR; + }; + + struct PresentTimeGOOGLE + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PresentTimeGOOGLE( uint32_t presentID_ = {}, + uint64_t desiredPresentTime_ = {} ) VULKAN_HPP_NOEXCEPT + : presentID( presentID_ ) + , desiredPresentTime( desiredPresentTime_ ) + {} + + VULKAN_HPP_CONSTEXPR PresentTimeGOOGLE( PresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PresentTimeGOOGLE( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT + : PresentTimeGOOGLE( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PresentTimeGOOGLE & + operator=( PresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PresentTimeGOOGLE & operator=( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PresentTimeGOOGLE & setPresentID( uint32_t presentID_ ) VULKAN_HPP_NOEXCEPT + { + presentID = presentID_; + return *this; + } + + PresentTimeGOOGLE & setDesiredPresentTime( uint64_t desiredPresentTime_ ) VULKAN_HPP_NOEXCEPT + { + desiredPresentTime = desiredPresentTime_; + return *this; + } + + operator VkPresentTimeGOOGLE const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPresentTimeGOOGLE &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PresentTimeGOOGLE const & ) const = default; +#else + bool operator==( PresentTimeGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( presentID == rhs.presentID ) && ( desiredPresentTime == rhs.desiredPresentTime ); + } + + bool operator!=( PresentTimeGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + uint32_t presentID = {}; + uint64_t desiredPresentTime = {}; + }; + static_assert( sizeof( PresentTimeGOOGLE ) == sizeof( VkPresentTimeGOOGLE ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + struct PresentTimesInfoGOOGLE + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentTimesInfoGOOGLE; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + PresentTimesInfoGOOGLE( uint32_t swapchainCount_ = {}, + const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE * pTimes_ = {} ) VULKAN_HPP_NOEXCEPT + : swapchainCount( swapchainCount_ ) + , pTimes( pTimes_ ) + {} + + VULKAN_HPP_CONSTEXPR PresentTimesInfoGOOGLE( PresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PresentTimesInfoGOOGLE( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT + : PresentTimesInfoGOOGLE( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PresentTimesInfoGOOGLE( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & times_ ) + : swapchainCount( static_cast( times_.size() ) ), pTimes( times_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 PresentTimesInfoGOOGLE & + operator=( PresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PresentTimesInfoGOOGLE & operator=( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + PresentTimesInfoGOOGLE & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + PresentTimesInfoGOOGLE & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT + { + swapchainCount = swapchainCount_; + return *this; + } + + PresentTimesInfoGOOGLE & setPTimes( const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE * pTimes_ ) VULKAN_HPP_NOEXCEPT + { + pTimes = pTimes_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + PresentTimesInfoGOOGLE & setTimes( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & times_ ) + VULKAN_HPP_NOEXCEPT + { + swapchainCount = static_cast( times_.size() ); + pTimes = times_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkPresentTimesInfoGOOGLE const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPresentTimesInfoGOOGLE &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PresentTimesInfoGOOGLE const & ) const = default; +#else + bool operator==( PresentTimesInfoGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( swapchainCount == rhs.swapchainCount ) && + ( pTimes == rhs.pTimes ); + } + + bool operator!=( PresentTimesInfoGOOGLE const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentTimesInfoGOOGLE; + const void * pNext = {}; + uint32_t swapchainCount = {}; + const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE * pTimes = {}; + }; + static_assert( sizeof( PresentTimesInfoGOOGLE ) == sizeof( VkPresentTimesInfoGOOGLE ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = PresentTimesInfoGOOGLE; + }; + + struct ProtectedSubmitInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eProtectedSubmitInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ProtectedSubmitInfo( VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ = {} ) VULKAN_HPP_NOEXCEPT + : protectedSubmit( protectedSubmit_ ) + {} + + VULKAN_HPP_CONSTEXPR ProtectedSubmitInfo( ProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ProtectedSubmitInfo( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : ProtectedSubmitInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ProtectedSubmitInfo & + operator=( ProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ProtectedSubmitInfo & operator=( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + ProtectedSubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + ProtectedSubmitInfo & setProtectedSubmit( VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ ) VULKAN_HPP_NOEXCEPT + { + protectedSubmit = protectedSubmit_; + return *this; + } + + operator VkProtectedSubmitInfo const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkProtectedSubmitInfo &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ProtectedSubmitInfo const & ) const = default; +#else + bool operator==( ProtectedSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( protectedSubmit == rhs.protectedSubmit ); + } + + bool operator!=( ProtectedSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eProtectedSubmitInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit = {}; + }; + static_assert( sizeof( ProtectedSubmitInfo ) == sizeof( VkProtectedSubmitInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = ProtectedSubmitInfo; + }; + + struct QueryPoolPerformanceQueryCreateInfoINTEL + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR QueryPoolPerformanceQueryCreateInfoINTEL( + VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ = + VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual ) VULKAN_HPP_NOEXCEPT + : performanceCountersSampling( performanceCountersSampling_ ) + {} + + VULKAN_HPP_CONSTEXPR QueryPoolPerformanceQueryCreateInfoINTEL( + QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + QueryPoolPerformanceQueryCreateInfoINTEL( VkQueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) + VULKAN_HPP_NOEXCEPT + : QueryPoolPerformanceQueryCreateInfoINTEL( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 QueryPoolPerformanceQueryCreateInfoINTEL & + operator=( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + QueryPoolPerformanceQueryCreateInfoINTEL & + operator=( VkQueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + QueryPoolPerformanceQueryCreateInfoINTEL & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + QueryPoolPerformanceQueryCreateInfoINTEL & setPerformanceCountersSampling( + VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ ) VULKAN_HPP_NOEXCEPT + { + performanceCountersSampling = performanceCountersSampling_; + return *this; + } + + operator VkQueryPoolPerformanceQueryCreateInfoINTEL const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkQueryPoolPerformanceQueryCreateInfoINTEL &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( QueryPoolPerformanceQueryCreateInfoINTEL const & ) const = default; +#else + bool operator==( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( performanceCountersSampling == rhs.performanceCountersSampling ); + } + + bool operator!=( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling = + VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual; + }; + static_assert( sizeof( QueryPoolPerformanceQueryCreateInfoINTEL ) == + sizeof( VkQueryPoolPerformanceQueryCreateInfoINTEL ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = QueryPoolPerformanceQueryCreateInfoINTEL; + }; + using QueryPoolCreateInfoINTEL = QueryPoolPerformanceQueryCreateInfoINTEL; + + struct QueueFamilyCheckpointProperties2NV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eQueueFamilyCheckpointProperties2Nv; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointProperties2NV( + VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR checkpointExecutionStageMask_ = {} ) VULKAN_HPP_NOEXCEPT + : checkpointExecutionStageMask( checkpointExecutionStageMask_ ) + {} + + VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointProperties2NV( QueueFamilyCheckpointProperties2NV const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + QueueFamilyCheckpointProperties2NV( VkQueueFamilyCheckpointProperties2NV const & rhs ) VULKAN_HPP_NOEXCEPT + : QueueFamilyCheckpointProperties2NV( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 QueueFamilyCheckpointProperties2NV & + operator=( QueueFamilyCheckpointProperties2NV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + QueueFamilyCheckpointProperties2NV & + operator=( VkQueueFamilyCheckpointProperties2NV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + operator VkQueueFamilyCheckpointProperties2NV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkQueueFamilyCheckpointProperties2NV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( QueueFamilyCheckpointProperties2NV const & ) const = default; +#else + bool operator==( QueueFamilyCheckpointProperties2NV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( checkpointExecutionStageMask == rhs.checkpointExecutionStageMask ); + } + + bool operator!=( QueueFamilyCheckpointProperties2NV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyCheckpointProperties2Nv; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR checkpointExecutionStageMask = {}; + }; + static_assert( sizeof( QueueFamilyCheckpointProperties2NV ) == sizeof( VkQueueFamilyCheckpointProperties2NV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = QueueFamilyCheckpointProperties2NV; + }; + + struct QueueFamilyCheckpointPropertiesNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eQueueFamilyCheckpointPropertiesNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointPropertiesNV( + VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask_ = {} ) VULKAN_HPP_NOEXCEPT + : checkpointExecutionStageMask( checkpointExecutionStageMask_ ) + {} + + VULKAN_HPP_CONSTEXPR + QueueFamilyCheckpointPropertiesNV( QueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + QueueFamilyCheckpointPropertiesNV( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + : QueueFamilyCheckpointPropertiesNV( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 QueueFamilyCheckpointPropertiesNV & + operator=( QueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + QueueFamilyCheckpointPropertiesNV & operator=( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + operator VkQueueFamilyCheckpointPropertiesNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkQueueFamilyCheckpointPropertiesNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( QueueFamilyCheckpointPropertiesNV const & ) const = default; +#else + bool operator==( QueueFamilyCheckpointPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( checkpointExecutionStageMask == rhs.checkpointExecutionStageMask ); + } + + bool operator!=( QueueFamilyCheckpointPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyCheckpointPropertiesNV; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask = {}; + }; + static_assert( sizeof( QueueFamilyCheckpointPropertiesNV ) == sizeof( VkQueueFamilyCheckpointPropertiesNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = QueueFamilyCheckpointPropertiesNV; + }; + + struct RenderPassAttachmentBeginInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassAttachmentBeginInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + RenderPassAttachmentBeginInfo( uint32_t attachmentCount_ = {}, + const VULKAN_HPP_NAMESPACE::ImageView * pAttachments_ = {} ) VULKAN_HPP_NOEXCEPT + : attachmentCount( attachmentCount_ ) + , pAttachments( pAttachments_ ) + {} + + VULKAN_HPP_CONSTEXPR + RenderPassAttachmentBeginInfo( RenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + RenderPassAttachmentBeginInfo( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : RenderPassAttachmentBeginInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RenderPassAttachmentBeginInfo( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_ ) + : attachmentCount( static_cast( attachments_.size() ) ), pAttachments( attachments_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 RenderPassAttachmentBeginInfo & + operator=( RenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + RenderPassAttachmentBeginInfo & operator=( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + RenderPassAttachmentBeginInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + RenderPassAttachmentBeginInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT + { + attachmentCount = attachmentCount_; + return *this; + } + + RenderPassAttachmentBeginInfo & + setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView * pAttachments_ ) VULKAN_HPP_NOEXCEPT + { + pAttachments = pAttachments_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RenderPassAttachmentBeginInfo & setAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_ ) + VULKAN_HPP_NOEXCEPT + { + attachmentCount = static_cast( attachments_.size() ); + pAttachments = attachments_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkRenderPassAttachmentBeginInfo const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkRenderPassAttachmentBeginInfo &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( RenderPassAttachmentBeginInfo const & ) const = default; +#else + bool operator==( RenderPassAttachmentBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( attachmentCount == rhs.attachmentCount ) && + ( pAttachments == rhs.pAttachments ); + } + + bool operator!=( RenderPassAttachmentBeginInfo const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassAttachmentBeginInfo; + const void * pNext = {}; + uint32_t attachmentCount = {}; + const VULKAN_HPP_NAMESPACE::ImageView * pAttachments = {}; + }; + static_assert( sizeof( RenderPassAttachmentBeginInfo ) == sizeof( VkRenderPassAttachmentBeginInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = RenderPassAttachmentBeginInfo; + }; + using RenderPassAttachmentBeginInfoKHR = RenderPassAttachmentBeginInfo; + + struct RenderPassFragmentDensityMapCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eRenderPassFragmentDensityMapCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR RenderPassFragmentDensityMapCreateInfoEXT( + VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment_ = {} ) VULKAN_HPP_NOEXCEPT + : fragmentDensityMapAttachment( fragmentDensityMapAttachment_ ) + {} + + VULKAN_HPP_CONSTEXPR RenderPassFragmentDensityMapCreateInfoEXT( + RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + RenderPassFragmentDensityMapCreateInfoEXT( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : RenderPassFragmentDensityMapCreateInfoEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 RenderPassFragmentDensityMapCreateInfoEXT & + operator=( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + RenderPassFragmentDensityMapCreateInfoEXT & + operator=( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + RenderPassFragmentDensityMapCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + RenderPassFragmentDensityMapCreateInfoEXT & setFragmentDensityMapAttachment( + VULKAN_HPP_NAMESPACE::AttachmentReference const & fragmentDensityMapAttachment_ ) VULKAN_HPP_NOEXCEPT + { + fragmentDensityMapAttachment = fragmentDensityMapAttachment_; + return *this; + } + + operator VkRenderPassFragmentDensityMapCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkRenderPassFragmentDensityMapCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( RenderPassFragmentDensityMapCreateInfoEXT const & ) const = default; +#else + bool operator==( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( fragmentDensityMapAttachment == rhs.fragmentDensityMapAttachment ); + } + + bool operator!=( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment = {}; + }; + static_assert( sizeof( RenderPassFragmentDensityMapCreateInfoEXT ) == + sizeof( VkRenderPassFragmentDensityMapCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = RenderPassFragmentDensityMapCreateInfoEXT; + }; + + struct RenderPassInputAttachmentAspectCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eRenderPassInputAttachmentAspectCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR RenderPassInputAttachmentAspectCreateInfo( + uint32_t aspectReferenceCount_ = {}, + const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference * pAspectReferences_ = {} ) VULKAN_HPP_NOEXCEPT + : aspectReferenceCount( aspectReferenceCount_ ) + , pAspectReferences( pAspectReferences_ ) + {} + + VULKAN_HPP_CONSTEXPR RenderPassInputAttachmentAspectCreateInfo( + RenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + RenderPassInputAttachmentAspectCreateInfo( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) + VULKAN_HPP_NOEXCEPT + : RenderPassInputAttachmentAspectCreateInfo( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RenderPassInputAttachmentAspectCreateInfo( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + aspectReferences_ ) + : aspectReferenceCount( static_cast( aspectReferences_.size() ) ) + , pAspectReferences( aspectReferences_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 RenderPassInputAttachmentAspectCreateInfo & + operator=( RenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + RenderPassInputAttachmentAspectCreateInfo & + operator=( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + RenderPassInputAttachmentAspectCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + RenderPassInputAttachmentAspectCreateInfo & + setAspectReferenceCount( uint32_t aspectReferenceCount_ ) VULKAN_HPP_NOEXCEPT + { + aspectReferenceCount = aspectReferenceCount_; + return *this; + } + + RenderPassInputAttachmentAspectCreateInfo & setPAspectReferences( + const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference * pAspectReferences_ ) VULKAN_HPP_NOEXCEPT + { + pAspectReferences = pAspectReferences_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RenderPassInputAttachmentAspectCreateInfo & setAspectReferences( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + aspectReferences_ ) VULKAN_HPP_NOEXCEPT + { + aspectReferenceCount = static_cast( aspectReferences_.size() ); + pAspectReferences = aspectReferences_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkRenderPassInputAttachmentAspectCreateInfo const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkRenderPassInputAttachmentAspectCreateInfo &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( RenderPassInputAttachmentAspectCreateInfo const & ) const = default; +#else + bool operator==( RenderPassInputAttachmentAspectCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( aspectReferenceCount == rhs.aspectReferenceCount ) && + ( pAspectReferences == rhs.pAspectReferences ); + } + + bool operator!=( RenderPassInputAttachmentAspectCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassInputAttachmentAspectCreateInfo; + const void * pNext = {}; + uint32_t aspectReferenceCount = {}; + const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference * pAspectReferences = {}; + }; + static_assert( sizeof( RenderPassInputAttachmentAspectCreateInfo ) == + sizeof( VkRenderPassInputAttachmentAspectCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = RenderPassInputAttachmentAspectCreateInfo; + }; + using RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo; + + struct RenderPassMultiviewCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassMultiviewCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR RenderPassMultiviewCreateInfo( uint32_t subpassCount_ = {}, + const uint32_t * pViewMasks_ = {}, + uint32_t dependencyCount_ = {}, + const int32_t * pViewOffsets_ = {}, + uint32_t correlationMaskCount_ = {}, + const uint32_t * pCorrelationMasks_ = {} ) VULKAN_HPP_NOEXCEPT + : subpassCount( subpassCount_ ) + , pViewMasks( pViewMasks_ ) + , dependencyCount( dependencyCount_ ) + , pViewOffsets( pViewOffsets_ ) + , correlationMaskCount( correlationMaskCount_ ) + , pCorrelationMasks( pCorrelationMasks_ ) + {} + + VULKAN_HPP_CONSTEXPR + RenderPassMultiviewCreateInfo( RenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + RenderPassMultiviewCreateInfo( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : RenderPassMultiviewCreateInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RenderPassMultiviewCreateInfo( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewMasks_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewOffsets_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & correlationMasks_ = {} ) + : subpassCount( static_cast( viewMasks_.size() ) ) + , pViewMasks( viewMasks_.data() ) + , dependencyCount( static_cast( viewOffsets_.size() ) ) + , pViewOffsets( viewOffsets_.data() ) + , correlationMaskCount( static_cast( correlationMasks_.size() ) ) + , pCorrelationMasks( correlationMasks_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 RenderPassMultiviewCreateInfo & + operator=( RenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + RenderPassMultiviewCreateInfo & operator=( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + RenderPassMultiviewCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + RenderPassMultiviewCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT + { + subpassCount = subpassCount_; + return *this; + } + + RenderPassMultiviewCreateInfo & setPViewMasks( const uint32_t * pViewMasks_ ) VULKAN_HPP_NOEXCEPT + { + pViewMasks = pViewMasks_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RenderPassMultiviewCreateInfo & setViewMasks( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewMasks_ ) VULKAN_HPP_NOEXCEPT + { + subpassCount = static_cast( viewMasks_.size() ); + pViewMasks = viewMasks_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + RenderPassMultiviewCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT + { + dependencyCount = dependencyCount_; + return *this; + } + + RenderPassMultiviewCreateInfo & setPViewOffsets( const int32_t * pViewOffsets_ ) VULKAN_HPP_NOEXCEPT + { + pViewOffsets = pViewOffsets_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RenderPassMultiviewCreateInfo & setViewOffsets( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewOffsets_ ) VULKAN_HPP_NOEXCEPT + { + dependencyCount = static_cast( viewOffsets_.size() ); + pViewOffsets = viewOffsets_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + RenderPassMultiviewCreateInfo & setCorrelationMaskCount( uint32_t correlationMaskCount_ ) VULKAN_HPP_NOEXCEPT + { + correlationMaskCount = correlationMaskCount_; + return *this; + } + + RenderPassMultiviewCreateInfo & setPCorrelationMasks( const uint32_t * pCorrelationMasks_ ) VULKAN_HPP_NOEXCEPT + { + pCorrelationMasks = pCorrelationMasks_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RenderPassMultiviewCreateInfo & setCorrelationMasks( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & correlationMasks_ ) VULKAN_HPP_NOEXCEPT + { + correlationMaskCount = static_cast( correlationMasks_.size() ); + pCorrelationMasks = correlationMasks_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkRenderPassMultiviewCreateInfo const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkRenderPassMultiviewCreateInfo &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( RenderPassMultiviewCreateInfo const & ) const = default; +#else + bool operator==( RenderPassMultiviewCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( subpassCount == rhs.subpassCount ) && + ( pViewMasks == rhs.pViewMasks ) && ( dependencyCount == rhs.dependencyCount ) && + ( pViewOffsets == rhs.pViewOffsets ) && ( correlationMaskCount == rhs.correlationMaskCount ) && + ( pCorrelationMasks == rhs.pCorrelationMasks ); + } + + bool operator!=( RenderPassMultiviewCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassMultiviewCreateInfo; + const void * pNext = {}; + uint32_t subpassCount = {}; + const uint32_t * pViewMasks = {}; + uint32_t dependencyCount = {}; + const int32_t * pViewOffsets = {}; + uint32_t correlationMaskCount = {}; + const uint32_t * pCorrelationMasks = {}; + }; + static_assert( sizeof( RenderPassMultiviewCreateInfo ) == sizeof( VkRenderPassMultiviewCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = RenderPassMultiviewCreateInfo; + }; + using RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo; + + struct SubpassSampleLocationsEXT + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SubpassSampleLocationsEXT( + uint32_t subpassIndex_ = {}, + VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {} ) VULKAN_HPP_NOEXCEPT + : subpassIndex( subpassIndex_ ) + , sampleLocationsInfo( sampleLocationsInfo_ ) + {} + + VULKAN_HPP_CONSTEXPR + SubpassSampleLocationsEXT( SubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SubpassSampleLocationsEXT( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : SubpassSampleLocationsEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SubpassSampleLocationsEXT & + operator=( SubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SubpassSampleLocationsEXT & operator=( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + SubpassSampleLocationsEXT & setSubpassIndex( uint32_t subpassIndex_ ) VULKAN_HPP_NOEXCEPT + { + subpassIndex = subpassIndex_; + return *this; + } + + SubpassSampleLocationsEXT & setSampleLocationsInfo( + VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT + { + sampleLocationsInfo = sampleLocationsInfo_; + return *this; + } + + operator VkSubpassSampleLocationsEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSubpassSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SubpassSampleLocationsEXT const & ) const = default; +#else + bool operator==( SubpassSampleLocationsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( subpassIndex == rhs.subpassIndex ) && ( sampleLocationsInfo == rhs.sampleLocationsInfo ); + } + + bool operator!=( SubpassSampleLocationsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + uint32_t subpassIndex = {}; + VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {}; + }; + static_assert( sizeof( SubpassSampleLocationsEXT ) == sizeof( VkSubpassSampleLocationsEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + struct RenderPassSampleLocationsBeginInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eRenderPassSampleLocationsBeginInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR RenderPassSampleLocationsBeginInfoEXT( + uint32_t attachmentInitialSampleLocationsCount_ = {}, + const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT * pAttachmentInitialSampleLocations_ = {}, + uint32_t postSubpassSampleLocationsCount_ = {}, + const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT * pPostSubpassSampleLocations_ = {} ) VULKAN_HPP_NOEXCEPT + : attachmentInitialSampleLocationsCount( attachmentInitialSampleLocationsCount_ ) + , pAttachmentInitialSampleLocations( pAttachmentInitialSampleLocations_ ) + , postSubpassSampleLocationsCount( postSubpassSampleLocationsCount_ ) + , pPostSubpassSampleLocations( pPostSubpassSampleLocations_ ) + {} + + VULKAN_HPP_CONSTEXPR RenderPassSampleLocationsBeginInfoEXT( RenderPassSampleLocationsBeginInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + RenderPassSampleLocationsBeginInfoEXT( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : RenderPassSampleLocationsBeginInfoEXT( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RenderPassSampleLocationsBeginInfoEXT( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + attachmentInitialSampleLocations_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + postSubpassSampleLocations_ = {} ) + : attachmentInitialSampleLocationsCount( static_cast( attachmentInitialSampleLocations_.size() ) ) + , pAttachmentInitialSampleLocations( attachmentInitialSampleLocations_.data() ) + , postSubpassSampleLocationsCount( static_cast( postSubpassSampleLocations_.size() ) ) + , pPostSubpassSampleLocations( postSubpassSampleLocations_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 RenderPassSampleLocationsBeginInfoEXT & + operator=( RenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + RenderPassSampleLocationsBeginInfoEXT & + operator=( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + RenderPassSampleLocationsBeginInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + RenderPassSampleLocationsBeginInfoEXT & + setAttachmentInitialSampleLocationsCount( uint32_t attachmentInitialSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT + { + attachmentInitialSampleLocationsCount = attachmentInitialSampleLocationsCount_; + return *this; + } + + RenderPassSampleLocationsBeginInfoEXT & setPAttachmentInitialSampleLocations( + const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT * pAttachmentInitialSampleLocations_ ) + VULKAN_HPP_NOEXCEPT + { + pAttachmentInitialSampleLocations = pAttachmentInitialSampleLocations_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RenderPassSampleLocationsBeginInfoEXT & setAttachmentInitialSampleLocations( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + attachmentInitialSampleLocations_ ) VULKAN_HPP_NOEXCEPT + { + attachmentInitialSampleLocationsCount = static_cast( attachmentInitialSampleLocations_.size() ); + pAttachmentInitialSampleLocations = attachmentInitialSampleLocations_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + RenderPassSampleLocationsBeginInfoEXT & + setPostSubpassSampleLocationsCount( uint32_t postSubpassSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT + { + postSubpassSampleLocationsCount = postSubpassSampleLocationsCount_; + return *this; + } + + RenderPassSampleLocationsBeginInfoEXT & setPPostSubpassSampleLocations( + const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT * pPostSubpassSampleLocations_ ) VULKAN_HPP_NOEXCEPT + { + pPostSubpassSampleLocations = pPostSubpassSampleLocations_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocations( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + postSubpassSampleLocations_ ) VULKAN_HPP_NOEXCEPT + { + postSubpassSampleLocationsCount = static_cast( postSubpassSampleLocations_.size() ); + pPostSubpassSampleLocations = postSubpassSampleLocations_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkRenderPassSampleLocationsBeginInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkRenderPassSampleLocationsBeginInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( RenderPassSampleLocationsBeginInfoEXT const & ) const = default; +#else + bool operator==( RenderPassSampleLocationsBeginInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( attachmentInitialSampleLocationsCount == rhs.attachmentInitialSampleLocationsCount ) && + ( pAttachmentInitialSampleLocations == rhs.pAttachmentInitialSampleLocations ) && + ( postSubpassSampleLocationsCount == rhs.postSubpassSampleLocationsCount ) && + ( pPostSubpassSampleLocations == rhs.pPostSubpassSampleLocations ); + } + + bool operator!=( RenderPassSampleLocationsBeginInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassSampleLocationsBeginInfoEXT; + const void * pNext = {}; + uint32_t attachmentInitialSampleLocationsCount = {}; + const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT * pAttachmentInitialSampleLocations = {}; + uint32_t postSubpassSampleLocationsCount = {}; + const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT * pPostSubpassSampleLocations = {}; + }; + static_assert( sizeof( RenderPassSampleLocationsBeginInfoEXT ) == sizeof( VkRenderPassSampleLocationsBeginInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = RenderPassSampleLocationsBeginInfoEXT; + }; + + struct RenderPassTransformBeginInfoQCOM + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassTransformBeginInfoQCOM; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR RenderPassTransformBeginInfoQCOM( + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity ) VULKAN_HPP_NOEXCEPT : transform( transform_ ) + {} + + VULKAN_HPP_CONSTEXPR + RenderPassTransformBeginInfoQCOM( RenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + RenderPassTransformBeginInfoQCOM( VkRenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT + : RenderPassTransformBeginInfoQCOM( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 RenderPassTransformBeginInfoQCOM & + operator=( RenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + RenderPassTransformBeginInfoQCOM & operator=( VkRenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + RenderPassTransformBeginInfoQCOM & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + RenderPassTransformBeginInfoQCOM & + setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT + { + transform = transform_; + return *this; + } + + operator VkRenderPassTransformBeginInfoQCOM const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkRenderPassTransformBeginInfoQCOM &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( RenderPassTransformBeginInfoQCOM const & ) const = default; +#else + bool operator==( RenderPassTransformBeginInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( transform == rhs.transform ); + } + + bool operator!=( RenderPassTransformBeginInfoQCOM const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassTransformBeginInfoQCOM; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = + VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; + }; + static_assert( sizeof( RenderPassTransformBeginInfoQCOM ) == sizeof( VkRenderPassTransformBeginInfoQCOM ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = RenderPassTransformBeginInfoQCOM; + }; + + struct SamplerCustomBorderColorCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eSamplerCustomBorderColorCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + SamplerCustomBorderColorCreateInfoEXT( + VULKAN_HPP_NAMESPACE::ClearColorValue customBorderColor_ = {}, + VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined ) VULKAN_HPP_NOEXCEPT + : customBorderColor( customBorderColor_ ) + , format( format_ ) + {} + + SamplerCustomBorderColorCreateInfoEXT( SamplerCustomBorderColorCreateInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + SamplerCustomBorderColorCreateInfoEXT( VkSamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : SamplerCustomBorderColorCreateInfoEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + SamplerCustomBorderColorCreateInfoEXT & + operator=( SamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SamplerCustomBorderColorCreateInfoEXT & + operator=( VkSamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + SamplerCustomBorderColorCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + SamplerCustomBorderColorCreateInfoEXT & + setCustomBorderColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & customBorderColor_ ) VULKAN_HPP_NOEXCEPT + { + customBorderColor = customBorderColor_; + return *this; + } + + SamplerCustomBorderColorCreateInfoEXT & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT + { + format = format_; + return *this; + } + + operator VkSamplerCustomBorderColorCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSamplerCustomBorderColorCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCustomBorderColorCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ClearColorValue customBorderColor = {}; + VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; + }; + static_assert( sizeof( SamplerCustomBorderColorCreateInfoEXT ) == sizeof( VkSamplerCustomBorderColorCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = SamplerCustomBorderColorCreateInfoEXT; + }; + + struct SamplerReductionModeCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerReductionModeCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SamplerReductionModeCreateInfo( + VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ = + VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage ) VULKAN_HPP_NOEXCEPT + : reductionMode( reductionMode_ ) + {} + + VULKAN_HPP_CONSTEXPR + SamplerReductionModeCreateInfo( SamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SamplerReductionModeCreateInfo( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : SamplerReductionModeCreateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SamplerReductionModeCreateInfo & + operator=( SamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SamplerReductionModeCreateInfo & operator=( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + SamplerReductionModeCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + SamplerReductionModeCreateInfo & + setReductionMode( VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ ) VULKAN_HPP_NOEXCEPT + { + reductionMode = reductionMode_; + return *this; + } + + operator VkSamplerReductionModeCreateInfo const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSamplerReductionModeCreateInfo &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SamplerReductionModeCreateInfo const & ) const = default; +#else + bool operator==( SamplerReductionModeCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( reductionMode == rhs.reductionMode ); + } + + bool operator!=( SamplerReductionModeCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerReductionModeCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode = + VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage; + }; + static_assert( sizeof( SamplerReductionModeCreateInfo ) == sizeof( VkSamplerReductionModeCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = SamplerReductionModeCreateInfo; + }; + using SamplerReductionModeCreateInfoEXT = SamplerReductionModeCreateInfo; + + struct SamplerYcbcrConversionImageFormatProperties + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eSamplerYcbcrConversionImageFormatProperties; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionImageFormatProperties( + uint32_t combinedImageSamplerDescriptorCount_ = {} ) VULKAN_HPP_NOEXCEPT + : combinedImageSamplerDescriptorCount( combinedImageSamplerDescriptorCount_ ) + {} + + VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionImageFormatProperties( + SamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SamplerYcbcrConversionImageFormatProperties( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) + VULKAN_HPP_NOEXCEPT + : SamplerYcbcrConversionImageFormatProperties( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionImageFormatProperties & + operator=( SamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SamplerYcbcrConversionImageFormatProperties & + operator=( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + operator VkSamplerYcbcrConversionImageFormatProperties const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSamplerYcbcrConversionImageFormatProperties &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SamplerYcbcrConversionImageFormatProperties const & ) const = default; +#else + bool operator==( SamplerYcbcrConversionImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( combinedImageSamplerDescriptorCount == rhs.combinedImageSamplerDescriptorCount ); + } + + bool operator!=( SamplerYcbcrConversionImageFormatProperties const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionImageFormatProperties; + void * pNext = {}; + uint32_t combinedImageSamplerDescriptorCount = {}; + }; + static_assert( sizeof( SamplerYcbcrConversionImageFormatProperties ) == + sizeof( VkSamplerYcbcrConversionImageFormatProperties ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = SamplerYcbcrConversionImageFormatProperties; + }; + using SamplerYcbcrConversionImageFormatPropertiesKHR = SamplerYcbcrConversionImageFormatProperties; + + struct SamplerYcbcrConversionInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + SamplerYcbcrConversionInfo( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ = {} ) VULKAN_HPP_NOEXCEPT + : conversion( conversion_ ) + {} + + VULKAN_HPP_CONSTEXPR + SamplerYcbcrConversionInfo( SamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SamplerYcbcrConversionInfo( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : SamplerYcbcrConversionInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SamplerYcbcrConversionInfo & + operator=( SamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SamplerYcbcrConversionInfo & operator=( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + SamplerYcbcrConversionInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + SamplerYcbcrConversionInfo & + setConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ ) VULKAN_HPP_NOEXCEPT + { + conversion = conversion_; + return *this; + } + + operator VkSamplerYcbcrConversionInfo const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSamplerYcbcrConversionInfo &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SamplerYcbcrConversionInfo const & ) const = default; +#else + bool operator==( SamplerYcbcrConversionInfo const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( conversion == rhs.conversion ); + } + + bool operator!=( SamplerYcbcrConversionInfo const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion = {}; + }; + static_assert( sizeof( SamplerYcbcrConversionInfo ) == sizeof( VkSamplerYcbcrConversionInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = SamplerYcbcrConversionInfo; + }; + using SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo; + +#if defined( VK_USE_PLATFORM_SCREEN_QNX ) + struct ScreenSurfaceCreateInfoQNX + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eScreenSurfaceCreateInfoQNX; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ScreenSurfaceCreateInfoQNX( VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagsQNX flags_ = {}, + struct _screen_context * context_ = {}, + struct _screen_window * window_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , context( context_ ) + , window( window_ ) + {} + + VULKAN_HPP_CONSTEXPR + ScreenSurfaceCreateInfoQNX( ScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ScreenSurfaceCreateInfoQNX( VkScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT + : ScreenSurfaceCreateInfoQNX( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ScreenSurfaceCreateInfoQNX & + operator=( ScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ScreenSurfaceCreateInfoQNX & operator=( VkScreenSurfaceCreateInfoQNX const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + ScreenSurfaceCreateInfoQNX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + ScreenSurfaceCreateInfoQNX & + setFlags( VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagsQNX flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + ScreenSurfaceCreateInfoQNX & setContext( struct _screen_context * context_ ) VULKAN_HPP_NOEXCEPT + { + context = context_; + return *this; + } + + ScreenSurfaceCreateInfoQNX & setWindow( struct _screen_window * window_ ) VULKAN_HPP_NOEXCEPT + { + window = window_; + return *this; + } + + operator VkScreenSurfaceCreateInfoQNX const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkScreenSurfaceCreateInfoQNX &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ScreenSurfaceCreateInfoQNX const & ) const = default; +# else + bool operator==( ScreenSurfaceCreateInfoQNX const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( context == rhs.context ) && + ( window == rhs.window ); + } + + bool operator!=( ScreenSurfaceCreateInfoQNX const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eScreenSurfaceCreateInfoQNX; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateFlagsQNX flags = {}; + struct _screen_context * context = {}; + struct _screen_window * window = {}; + }; + static_assert( sizeof( ScreenSurfaceCreateInfoQNX ) == sizeof( VkScreenSurfaceCreateInfoQNX ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = ScreenSurfaceCreateInfoQNX; + }; +#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + + struct SemaphoreTypeCreateInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreTypeCreateInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SemaphoreTypeCreateInfo( + VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary, + uint64_t initialValue_ = {} ) VULKAN_HPP_NOEXCEPT + : semaphoreType( semaphoreType_ ) + , initialValue( initialValue_ ) + {} + + VULKAN_HPP_CONSTEXPR SemaphoreTypeCreateInfo( SemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SemaphoreTypeCreateInfo( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : SemaphoreTypeCreateInfo( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SemaphoreTypeCreateInfo & + operator=( SemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SemaphoreTypeCreateInfo & operator=( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + SemaphoreTypeCreateInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + SemaphoreTypeCreateInfo & setSemaphoreType( VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ ) VULKAN_HPP_NOEXCEPT + { + semaphoreType = semaphoreType_; + return *this; + } + + SemaphoreTypeCreateInfo & setInitialValue( uint64_t initialValue_ ) VULKAN_HPP_NOEXCEPT + { + initialValue = initialValue_; + return *this; + } + + operator VkSemaphoreTypeCreateInfo const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSemaphoreTypeCreateInfo &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SemaphoreTypeCreateInfo const & ) const = default; +#else + bool operator==( SemaphoreTypeCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( semaphoreType == rhs.semaphoreType ) && + ( initialValue == rhs.initialValue ); + } + + bool operator!=( SemaphoreTypeCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreTypeCreateInfo; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary; + uint64_t initialValue = {}; + }; + static_assert( sizeof( SemaphoreTypeCreateInfo ) == sizeof( VkSemaphoreTypeCreateInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = SemaphoreTypeCreateInfo; + }; + using SemaphoreTypeCreateInfoKHR = SemaphoreTypeCreateInfo; + + struct SetStateFlagsIndirectCommandNV + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SetStateFlagsIndirectCommandNV( uint32_t data_ = {} ) VULKAN_HPP_NOEXCEPT : data( data_ ) {} + + VULKAN_HPP_CONSTEXPR + SetStateFlagsIndirectCommandNV( SetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SetStateFlagsIndirectCommandNV( VkSetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT + : SetStateFlagsIndirectCommandNV( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SetStateFlagsIndirectCommandNV & + operator=( SetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SetStateFlagsIndirectCommandNV & operator=( VkSetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + SetStateFlagsIndirectCommandNV & setData( uint32_t data_ ) VULKAN_HPP_NOEXCEPT + { + data = data_; + return *this; + } + + operator VkSetStateFlagsIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSetStateFlagsIndirectCommandNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SetStateFlagsIndirectCommandNV const & ) const = default; +#else + bool operator==( SetStateFlagsIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( data == rhs.data ); + } + + bool operator!=( SetStateFlagsIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + uint32_t data = {}; + }; + static_assert( sizeof( SetStateFlagsIndirectCommandNV ) == sizeof( VkSetStateFlagsIndirectCommandNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + struct ShaderModuleValidationCacheCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eShaderModuleValidationCacheCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ShaderModuleValidationCacheCreateInfoEXT( + VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ = {} ) VULKAN_HPP_NOEXCEPT + : validationCache( validationCache_ ) + {} + + VULKAN_HPP_CONSTEXPR ShaderModuleValidationCacheCreateInfoEXT( + ShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ShaderModuleValidationCacheCreateInfoEXT( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : ShaderModuleValidationCacheCreateInfoEXT( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ShaderModuleValidationCacheCreateInfoEXT & + operator=( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ShaderModuleValidationCacheCreateInfoEXT & + operator=( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + ShaderModuleValidationCacheCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + ShaderModuleValidationCacheCreateInfoEXT & + setValidationCache( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ ) VULKAN_HPP_NOEXCEPT + { + validationCache = validationCache_; + return *this; + } + + operator VkShaderModuleValidationCacheCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkShaderModuleValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ShaderModuleValidationCacheCreateInfoEXT const & ) const = default; +#else + bool operator==( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( validationCache == rhs.validationCache ); + } + + bool operator!=( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleValidationCacheCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache = {}; + }; + static_assert( sizeof( ShaderModuleValidationCacheCreateInfoEXT ) == + sizeof( VkShaderModuleValidationCacheCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = ShaderModuleValidationCacheCreateInfoEXT; + }; + + struct ShaderResourceUsageAMD + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ShaderResourceUsageAMD( uint32_t numUsedVgprs_ = {}, + uint32_t numUsedSgprs_ = {}, + uint32_t ldsSizePerLocalWorkGroup_ = {}, + size_t ldsUsageSizeInBytes_ = {}, + size_t scratchMemUsageInBytes_ = {} ) VULKAN_HPP_NOEXCEPT + : numUsedVgprs( numUsedVgprs_ ) + , numUsedSgprs( numUsedSgprs_ ) + , ldsSizePerLocalWorkGroup( ldsSizePerLocalWorkGroup_ ) + , ldsUsageSizeInBytes( ldsUsageSizeInBytes_ ) + , scratchMemUsageInBytes( scratchMemUsageInBytes_ ) + {} + + VULKAN_HPP_CONSTEXPR ShaderResourceUsageAMD( ShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ShaderResourceUsageAMD( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT + : ShaderResourceUsageAMD( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ShaderResourceUsageAMD & + operator=( ShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ShaderResourceUsageAMD & operator=( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + operator VkShaderResourceUsageAMD const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkShaderResourceUsageAMD &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ShaderResourceUsageAMD const & ) const = default; +#else + bool operator==( ShaderResourceUsageAMD const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( numUsedVgprs == rhs.numUsedVgprs ) && ( numUsedSgprs == rhs.numUsedSgprs ) && + ( ldsSizePerLocalWorkGroup == rhs.ldsSizePerLocalWorkGroup ) && + ( ldsUsageSizeInBytes == rhs.ldsUsageSizeInBytes ) && + ( scratchMemUsageInBytes == rhs.scratchMemUsageInBytes ); + } + + bool operator!=( ShaderResourceUsageAMD const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + uint32_t numUsedVgprs = {}; + uint32_t numUsedSgprs = {}; + uint32_t ldsSizePerLocalWorkGroup = {}; + size_t ldsUsageSizeInBytes = {}; + size_t scratchMemUsageInBytes = {}; + }; + static_assert( sizeof( ShaderResourceUsageAMD ) == sizeof( VkShaderResourceUsageAMD ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + struct ShaderStatisticsInfoAMD + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 + ShaderStatisticsInfoAMD( VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStageMask_ = {}, + VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD resourceUsage_ = {}, + uint32_t numPhysicalVgprs_ = {}, + uint32_t numPhysicalSgprs_ = {}, + uint32_t numAvailableVgprs_ = {}, + uint32_t numAvailableSgprs_ = {}, + std::array const & computeWorkGroupSize_ = {} ) VULKAN_HPP_NOEXCEPT + : shaderStageMask( shaderStageMask_ ) + , resourceUsage( resourceUsage_ ) + , numPhysicalVgprs( numPhysicalVgprs_ ) + , numPhysicalSgprs( numPhysicalSgprs_ ) + , numAvailableVgprs( numAvailableVgprs_ ) + , numAvailableSgprs( numAvailableSgprs_ ) + , computeWorkGroupSize( computeWorkGroupSize_ ) + {} + + VULKAN_HPP_CONSTEXPR_14 + ShaderStatisticsInfoAMD( ShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ShaderStatisticsInfoAMD( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT + : ShaderStatisticsInfoAMD( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ShaderStatisticsInfoAMD & + operator=( ShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ShaderStatisticsInfoAMD & operator=( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + operator VkShaderStatisticsInfoAMD const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkShaderStatisticsInfoAMD &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ShaderStatisticsInfoAMD const & ) const = default; +#else + bool operator==( ShaderStatisticsInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( shaderStageMask == rhs.shaderStageMask ) && ( resourceUsage == rhs.resourceUsage ) && + ( numPhysicalVgprs == rhs.numPhysicalVgprs ) && ( numPhysicalSgprs == rhs.numPhysicalSgprs ) && + ( numAvailableVgprs == rhs.numAvailableVgprs ) && ( numAvailableSgprs == rhs.numAvailableSgprs ) && + ( computeWorkGroupSize == rhs.computeWorkGroupSize ); + } + + bool operator!=( ShaderStatisticsInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStageMask = {}; + VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD resourceUsage = {}; + uint32_t numPhysicalVgprs = {}; + uint32_t numPhysicalSgprs = {}; + uint32_t numAvailableVgprs = {}; + uint32_t numAvailableSgprs = {}; + VULKAN_HPP_NAMESPACE::ArrayWrapper1D computeWorkGroupSize = {}; + }; + static_assert( sizeof( ShaderStatisticsInfoAMD ) == sizeof( VkShaderStatisticsInfoAMD ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + struct SharedPresentSurfaceCapabilitiesKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eSharedPresentSurfaceCapabilitiesKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SharedPresentSurfaceCapabilitiesKHR( + VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags_ = {} ) VULKAN_HPP_NOEXCEPT + : sharedPresentSupportedUsageFlags( sharedPresentSupportedUsageFlags_ ) + {} + + VULKAN_HPP_CONSTEXPR SharedPresentSurfaceCapabilitiesKHR( SharedPresentSurfaceCapabilitiesKHR const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + SharedPresentSurfaceCapabilitiesKHR( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : SharedPresentSurfaceCapabilitiesKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SharedPresentSurfaceCapabilitiesKHR & + operator=( SharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SharedPresentSurfaceCapabilitiesKHR & + operator=( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + operator VkSharedPresentSurfaceCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSharedPresentSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SharedPresentSurfaceCapabilitiesKHR const & ) const = default; +#else + bool operator==( SharedPresentSurfaceCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( sharedPresentSupportedUsageFlags == rhs.sharedPresentSupportedUsageFlags ); + } + + bool operator!=( SharedPresentSurfaceCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSharedPresentSurfaceCapabilitiesKHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags = {}; + }; + static_assert( sizeof( SharedPresentSurfaceCapabilitiesKHR ) == sizeof( VkSharedPresentSurfaceCapabilitiesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = SharedPresentSurfaceCapabilitiesKHR; + }; + +#if defined( VK_USE_PLATFORM_GGP ) + struct StreamDescriptorSurfaceCreateInfoGGP + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eStreamDescriptorSurfaceCreateInfoGGP; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + StreamDescriptorSurfaceCreateInfoGGP( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ = {}, + GgpStreamDescriptor streamDescriptor_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , streamDescriptor( streamDescriptor_ ) + {} + + VULKAN_HPP_CONSTEXPR StreamDescriptorSurfaceCreateInfoGGP( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + StreamDescriptorSurfaceCreateInfoGGP( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT + : StreamDescriptorSurfaceCreateInfoGGP( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 StreamDescriptorSurfaceCreateInfoGGP & + operator=( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + StreamDescriptorSurfaceCreateInfoGGP & + operator=( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + StreamDescriptorSurfaceCreateInfoGGP & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + StreamDescriptorSurfaceCreateInfoGGP & + setFlags( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + StreamDescriptorSurfaceCreateInfoGGP & + setStreamDescriptor( GgpStreamDescriptor streamDescriptor_ ) VULKAN_HPP_NOEXCEPT + { + streamDescriptor = streamDescriptor_; + return *this; + } + + operator VkStreamDescriptorSurfaceCreateInfoGGP const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkStreamDescriptorSurfaceCreateInfoGGP &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( StreamDescriptorSurfaceCreateInfoGGP const & ) const = default; +# else + bool operator==( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( memcmp( &streamDescriptor, &rhs.streamDescriptor, sizeof( GgpStreamDescriptor ) ) == 0 ); + } + + bool operator!=( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags = {}; + GgpStreamDescriptor streamDescriptor = {}; + }; + static_assert( sizeof( StreamDescriptorSurfaceCreateInfoGGP ) == sizeof( VkStreamDescriptorSurfaceCreateInfoGGP ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = StreamDescriptorSurfaceCreateInfoGGP; + }; +#endif /*VK_USE_PLATFORM_GGP*/ + + struct SubpassDescriptionDepthStencilResolve + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eSubpassDescriptionDepthStencilResolve; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SubpassDescriptionDepthStencilResolve( + VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode_ = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone, + VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone, + const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilResolveAttachment_ = {} ) VULKAN_HPP_NOEXCEPT + : depthResolveMode( depthResolveMode_ ) + , stencilResolveMode( stencilResolveMode_ ) + , pDepthStencilResolveAttachment( pDepthStencilResolveAttachment_ ) + {} + + VULKAN_HPP_CONSTEXPR SubpassDescriptionDepthStencilResolve( SubpassDescriptionDepthStencilResolve const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + SubpassDescriptionDepthStencilResolve( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT + : SubpassDescriptionDepthStencilResolve( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SubpassDescriptionDepthStencilResolve & + operator=( SubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SubpassDescriptionDepthStencilResolve & + operator=( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + SubpassDescriptionDepthStencilResolve & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + SubpassDescriptionDepthStencilResolve & + setDepthResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode_ ) VULKAN_HPP_NOEXCEPT + { + depthResolveMode = depthResolveMode_; + return *this; + } + + SubpassDescriptionDepthStencilResolve & + setStencilResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ ) VULKAN_HPP_NOEXCEPT + { + stencilResolveMode = stencilResolveMode_; + return *this; + } + + SubpassDescriptionDepthStencilResolve & setPDepthStencilResolveAttachment( + const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilResolveAttachment_ ) VULKAN_HPP_NOEXCEPT + { + pDepthStencilResolveAttachment = pDepthStencilResolveAttachment_; + return *this; + } + + operator VkSubpassDescriptionDepthStencilResolve const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSubpassDescriptionDepthStencilResolve &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SubpassDescriptionDepthStencilResolve const & ) const = default; +#else + bool operator==( SubpassDescriptionDepthStencilResolve const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( depthResolveMode == rhs.depthResolveMode ) && + ( stencilResolveMode == rhs.stencilResolveMode ) && + ( pDepthStencilResolveAttachment == rhs.pDepthStencilResolveAttachment ); + } + + bool operator!=( SubpassDescriptionDepthStencilResolve const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescriptionDepthStencilResolve; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone; + VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone; + const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilResolveAttachment = {}; + }; + static_assert( sizeof( SubpassDescriptionDepthStencilResolve ) == sizeof( VkSubpassDescriptionDepthStencilResolve ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = SubpassDescriptionDepthStencilResolve; + }; + using SubpassDescriptionDepthStencilResolveKHR = SubpassDescriptionDepthStencilResolve; + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + struct SurfaceCapabilitiesFullScreenExclusiveEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesFullScreenExclusiveEXT( + VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ = {} ) VULKAN_HPP_NOEXCEPT + : fullScreenExclusiveSupported( fullScreenExclusiveSupported_ ) + {} + + VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesFullScreenExclusiveEXT( + SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SurfaceCapabilitiesFullScreenExclusiveEXT( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : SurfaceCapabilitiesFullScreenExclusiveEXT( + *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SurfaceCapabilitiesFullScreenExclusiveEXT & + operator=( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SurfaceCapabilitiesFullScreenExclusiveEXT & + operator=( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + SurfaceCapabilitiesFullScreenExclusiveEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + SurfaceCapabilitiesFullScreenExclusiveEXT & + setFullScreenExclusiveSupported( VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ ) VULKAN_HPP_NOEXCEPT + { + fullScreenExclusiveSupported = fullScreenExclusiveSupported_; + return *this; + } + + operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSurfaceCapabilitiesFullScreenExclusiveEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SurfaceCapabilitiesFullScreenExclusiveEXT const & ) const = default; +# else + bool operator==( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( fullScreenExclusiveSupported == rhs.fullScreenExclusiveSupported ); + } + + bool operator!=( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported = {}; + }; + static_assert( sizeof( SurfaceCapabilitiesFullScreenExclusiveEXT ) == + sizeof( VkSurfaceCapabilitiesFullScreenExclusiveEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = SurfaceCapabilitiesFullScreenExclusiveEXT; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + struct SurfaceFullScreenExclusiveInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eSurfaceFullScreenExclusiveInfoEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + SurfaceFullScreenExclusiveInfoEXT( VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ = + VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault ) VULKAN_HPP_NOEXCEPT + : fullScreenExclusive( fullScreenExclusive_ ) + {} + + VULKAN_HPP_CONSTEXPR + SurfaceFullScreenExclusiveInfoEXT( SurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SurfaceFullScreenExclusiveInfoEXT( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : SurfaceFullScreenExclusiveInfoEXT( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SurfaceFullScreenExclusiveInfoEXT & + operator=( SurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SurfaceFullScreenExclusiveInfoEXT & operator=( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + SurfaceFullScreenExclusiveInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + SurfaceFullScreenExclusiveInfoEXT & + setFullScreenExclusive( VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ ) VULKAN_HPP_NOEXCEPT + { + fullScreenExclusive = fullScreenExclusive_; + return *this; + } + + operator VkSurfaceFullScreenExclusiveInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSurfaceFullScreenExclusiveInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SurfaceFullScreenExclusiveInfoEXT const & ) const = default; +# else + bool operator==( SurfaceFullScreenExclusiveInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( fullScreenExclusive == rhs.fullScreenExclusive ); + } + + bool operator!=( SurfaceFullScreenExclusiveInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveInfoEXT; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive = + VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault; + }; + static_assert( sizeof( SurfaceFullScreenExclusiveInfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = SurfaceFullScreenExclusiveInfoEXT; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + struct SurfaceFullScreenExclusiveWin32InfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveWin32InfoEXT( HMONITOR hmonitor_ = {} ) VULKAN_HPP_NOEXCEPT + : hmonitor( hmonitor_ ) + {} + + VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveWin32InfoEXT( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + SurfaceFullScreenExclusiveWin32InfoEXT( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : SurfaceFullScreenExclusiveWin32InfoEXT( + *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SurfaceFullScreenExclusiveWin32InfoEXT & + operator=( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SurfaceFullScreenExclusiveWin32InfoEXT & + operator=( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + SurfaceFullScreenExclusiveWin32InfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + SurfaceFullScreenExclusiveWin32InfoEXT & setHmonitor( HMONITOR hmonitor_ ) VULKAN_HPP_NOEXCEPT + { + hmonitor = hmonitor_; + return *this; + } + + operator VkSurfaceFullScreenExclusiveWin32InfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSurfaceFullScreenExclusiveWin32InfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SurfaceFullScreenExclusiveWin32InfoEXT const & ) const = default; +# else + bool operator==( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( hmonitor == rhs.hmonitor ); + } + + bool operator!=( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT; + const void * pNext = {}; + HMONITOR hmonitor = {}; + }; + static_assert( sizeof( SurfaceFullScreenExclusiveWin32InfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveWin32InfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = SurfaceFullScreenExclusiveWin32InfoEXT; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + struct SurfaceProtectedCapabilitiesKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceProtectedCapabilitiesKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + SurfaceProtectedCapabilitiesKHR( VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ = {} ) VULKAN_HPP_NOEXCEPT + : supportsProtected( supportsProtected_ ) + {} + + VULKAN_HPP_CONSTEXPR + SurfaceProtectedCapabilitiesKHR( SurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SurfaceProtectedCapabilitiesKHR( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : SurfaceProtectedCapabilitiesKHR( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SurfaceProtectedCapabilitiesKHR & + operator=( SurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SurfaceProtectedCapabilitiesKHR & operator=( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + SurfaceProtectedCapabilitiesKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + SurfaceProtectedCapabilitiesKHR & + setSupportsProtected( VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ ) VULKAN_HPP_NOEXCEPT + { + supportsProtected = supportsProtected_; + return *this; + } + + operator VkSurfaceProtectedCapabilitiesKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSurfaceProtectedCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SurfaceProtectedCapabilitiesKHR const & ) const = default; +#else + bool operator==( SurfaceProtectedCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( supportsProtected == rhs.supportsProtected ); + } + + bool operator!=( SurfaceProtectedCapabilitiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceProtectedCapabilitiesKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 supportsProtected = {}; + }; + static_assert( sizeof( SurfaceProtectedCapabilitiesKHR ) == sizeof( VkSurfaceProtectedCapabilitiesKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = SurfaceProtectedCapabilitiesKHR; + }; + + struct SwapchainCounterCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainCounterCreateInfoEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SwapchainCounterCreateInfoEXT( + VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ = {} ) VULKAN_HPP_NOEXCEPT + : surfaceCounters( surfaceCounters_ ) + {} + + VULKAN_HPP_CONSTEXPR + SwapchainCounterCreateInfoEXT( SwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SwapchainCounterCreateInfoEXT( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : SwapchainCounterCreateInfoEXT( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SwapchainCounterCreateInfoEXT & + operator=( SwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SwapchainCounterCreateInfoEXT & operator=( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + SwapchainCounterCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + SwapchainCounterCreateInfoEXT & + setSurfaceCounters( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ ) VULKAN_HPP_NOEXCEPT + { + surfaceCounters = surfaceCounters_; + return *this; + } + + operator VkSwapchainCounterCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSwapchainCounterCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SwapchainCounterCreateInfoEXT const & ) const = default; +#else + bool operator==( SwapchainCounterCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( surfaceCounters == rhs.surfaceCounters ); + } + + bool operator!=( SwapchainCounterCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCounterCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters = {}; + }; + static_assert( sizeof( SwapchainCounterCreateInfoEXT ) == sizeof( VkSwapchainCounterCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = SwapchainCounterCreateInfoEXT; + }; + + struct SwapchainDisplayNativeHdrCreateInfoAMD + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR SwapchainDisplayNativeHdrCreateInfoAMD( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ = {} ) + VULKAN_HPP_NOEXCEPT : localDimmingEnable( localDimmingEnable_ ) + {} + + VULKAN_HPP_CONSTEXPR SwapchainDisplayNativeHdrCreateInfoAMD( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + SwapchainDisplayNativeHdrCreateInfoAMD( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT + : SwapchainDisplayNativeHdrCreateInfoAMD( + *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 SwapchainDisplayNativeHdrCreateInfoAMD & + operator=( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + SwapchainDisplayNativeHdrCreateInfoAMD & + operator=( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + SwapchainDisplayNativeHdrCreateInfoAMD & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + SwapchainDisplayNativeHdrCreateInfoAMD & + setLocalDimmingEnable( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ ) VULKAN_HPP_NOEXCEPT + { + localDimmingEnable = localDimmingEnable_; + return *this; + } + + operator VkSwapchainDisplayNativeHdrCreateInfoAMD const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkSwapchainDisplayNativeHdrCreateInfoAMD &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( SwapchainDisplayNativeHdrCreateInfoAMD const & ) const = default; +#else + bool operator==( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( localDimmingEnable == rhs.localDimmingEnable ); + } + + bool operator!=( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable = {}; + }; + static_assert( sizeof( SwapchainDisplayNativeHdrCreateInfoAMD ) == sizeof( VkSwapchainDisplayNativeHdrCreateInfoAMD ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = SwapchainDisplayNativeHdrCreateInfoAMD; + }; + + struct TextureLODGatherFormatPropertiesAMD + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eTextureLodGatherFormatPropertiesAMD; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR TextureLODGatherFormatPropertiesAMD( + VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD_ = {} ) VULKAN_HPP_NOEXCEPT + : supportsTextureGatherLODBiasAMD( supportsTextureGatherLODBiasAMD_ ) + {} + + VULKAN_HPP_CONSTEXPR TextureLODGatherFormatPropertiesAMD( TextureLODGatherFormatPropertiesAMD const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + TextureLODGatherFormatPropertiesAMD( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT + : TextureLODGatherFormatPropertiesAMD( *reinterpret_cast( &rhs ) ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 TextureLODGatherFormatPropertiesAMD & + operator=( TextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + TextureLODGatherFormatPropertiesAMD & + operator=( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + operator VkTextureLODGatherFormatPropertiesAMD const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkTextureLODGatherFormatPropertiesAMD &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( TextureLODGatherFormatPropertiesAMD const & ) const = default; +#else + bool operator==( TextureLODGatherFormatPropertiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( supportsTextureGatherLODBiasAMD == rhs.supportsTextureGatherLODBiasAMD ); + } + + bool operator!=( TextureLODGatherFormatPropertiesAMD const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTextureLodGatherFormatPropertiesAMD; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD = {}; + }; + static_assert( sizeof( TextureLODGatherFormatPropertiesAMD ) == sizeof( VkTextureLODGatherFormatPropertiesAMD ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = TextureLODGatherFormatPropertiesAMD; + }; + + struct TimelineSemaphoreSubmitInfo + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTimelineSemaphoreSubmitInfo; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + TimelineSemaphoreSubmitInfo( uint32_t waitSemaphoreValueCount_ = {}, + const uint64_t * pWaitSemaphoreValues_ = {}, + uint32_t signalSemaphoreValueCount_ = {}, + const uint64_t * pSignalSemaphoreValues_ = {} ) VULKAN_HPP_NOEXCEPT + : waitSemaphoreValueCount( waitSemaphoreValueCount_ ) + , pWaitSemaphoreValues( pWaitSemaphoreValues_ ) + , signalSemaphoreValueCount( signalSemaphoreValueCount_ ) + , pSignalSemaphoreValues( pSignalSemaphoreValues_ ) + {} + + VULKAN_HPP_CONSTEXPR + TimelineSemaphoreSubmitInfo( TimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + TimelineSemaphoreSubmitInfo( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : TimelineSemaphoreSubmitInfo( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + TimelineSemaphoreSubmitInfo( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphoreValues_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphoreValues_ = {} ) + : waitSemaphoreValueCount( static_cast( waitSemaphoreValues_.size() ) ) + , pWaitSemaphoreValues( waitSemaphoreValues_.data() ) + , signalSemaphoreValueCount( static_cast( signalSemaphoreValues_.size() ) ) + , pSignalSemaphoreValues( signalSemaphoreValues_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 TimelineSemaphoreSubmitInfo & + operator=( TimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + TimelineSemaphoreSubmitInfo & operator=( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + TimelineSemaphoreSubmitInfo & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + TimelineSemaphoreSubmitInfo & setWaitSemaphoreValueCount( uint32_t waitSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT + { + waitSemaphoreValueCount = waitSemaphoreValueCount_; + return *this; + } + + TimelineSemaphoreSubmitInfo & setPWaitSemaphoreValues( const uint64_t * pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT + { + pWaitSemaphoreValues = pWaitSemaphoreValues_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + TimelineSemaphoreSubmitInfo & setWaitSemaphoreValues( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT + { + waitSemaphoreValueCount = static_cast( waitSemaphoreValues_.size() ); + pWaitSemaphoreValues = waitSemaphoreValues_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + TimelineSemaphoreSubmitInfo & + setSignalSemaphoreValueCount( uint32_t signalSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT + { + signalSemaphoreValueCount = signalSemaphoreValueCount_; + return *this; + } + + TimelineSemaphoreSubmitInfo & + setPSignalSemaphoreValues( const uint64_t * pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT + { + pSignalSemaphoreValues = pSignalSemaphoreValues_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + TimelineSemaphoreSubmitInfo & setSignalSemaphoreValues( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT + { + signalSemaphoreValueCount = static_cast( signalSemaphoreValues_.size() ); + pSignalSemaphoreValues = signalSemaphoreValues_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkTimelineSemaphoreSubmitInfo const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkTimelineSemaphoreSubmitInfo &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( TimelineSemaphoreSubmitInfo const & ) const = default; +#else + bool operator==( TimelineSemaphoreSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( waitSemaphoreValueCount == rhs.waitSemaphoreValueCount ) && + ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues ) && + ( signalSemaphoreValueCount == rhs.signalSemaphoreValueCount ) && + ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues ); + } + + bool operator!=( TimelineSemaphoreSubmitInfo const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTimelineSemaphoreSubmitInfo; + const void * pNext = {}; + uint32_t waitSemaphoreValueCount = {}; + const uint64_t * pWaitSemaphoreValues = {}; + uint32_t signalSemaphoreValueCount = {}; + const uint64_t * pSignalSemaphoreValues = {}; + }; + static_assert( sizeof( TimelineSemaphoreSubmitInfo ) == sizeof( VkTimelineSemaphoreSubmitInfo ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = TimelineSemaphoreSubmitInfo; + }; + using TimelineSemaphoreSubmitInfoKHR = TimelineSemaphoreSubmitInfo; + + struct TraceRaysIndirectCommandKHR + { +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommandKHR( uint32_t width_ = {}, + uint32_t height_ = {}, + uint32_t depth_ = {} ) VULKAN_HPP_NOEXCEPT + : width( width_ ) + , height( height_ ) + , depth( depth_ ) + {} + + VULKAN_HPP_CONSTEXPR + TraceRaysIndirectCommandKHR( TraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + TraceRaysIndirectCommandKHR( VkTraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : TraceRaysIndirectCommandKHR( *reinterpret_cast( &rhs ) ) + {} + + explicit TraceRaysIndirectCommandKHR( Extent2D const & extent2D, uint32_t depth_ = {} ) + : width( extent2D.width ), height( extent2D.height ), depth( depth_ ) + {} +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 TraceRaysIndirectCommandKHR & + operator=( TraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + TraceRaysIndirectCommandKHR & operator=( VkTraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + TraceRaysIndirectCommandKHR & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT + { + width = width_; + return *this; + } + + TraceRaysIndirectCommandKHR & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT + { + height = height_; + return *this; + } + + TraceRaysIndirectCommandKHR & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT + { + depth = depth_; + return *this; + } + + operator VkTraceRaysIndirectCommandKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkTraceRaysIndirectCommandKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( TraceRaysIndirectCommandKHR const & ) const = default; +#else + bool operator==( TraceRaysIndirectCommandKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( width == rhs.width ) && ( height == rhs.height ) && ( depth == rhs.depth ); + } + + bool operator!=( TraceRaysIndirectCommandKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + uint32_t width = {}; + uint32_t height = {}; + uint32_t depth = {}; + }; + static_assert( sizeof( TraceRaysIndirectCommandKHR ) == sizeof( VkTraceRaysIndirectCommandKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + struct ValidationFeaturesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationFeaturesEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ValidationFeaturesEXT( + uint32_t enabledValidationFeatureCount_ = {}, + const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT * pEnabledValidationFeatures_ = {}, + uint32_t disabledValidationFeatureCount_ = {}, + const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT * pDisabledValidationFeatures_ = {} ) VULKAN_HPP_NOEXCEPT + : enabledValidationFeatureCount( enabledValidationFeatureCount_ ) + , pEnabledValidationFeatures( pEnabledValidationFeatures_ ) + , disabledValidationFeatureCount( disabledValidationFeatureCount_ ) + , pDisabledValidationFeatures( pDisabledValidationFeatures_ ) + {} + + VULKAN_HPP_CONSTEXPR ValidationFeaturesEXT( ValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ValidationFeaturesEXT( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : ValidationFeaturesEXT( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + ValidationFeaturesEXT( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + enabledValidationFeatures_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + disabledValidationFeatures_ = {} ) + : enabledValidationFeatureCount( static_cast( enabledValidationFeatures_.size() ) ) + , pEnabledValidationFeatures( enabledValidationFeatures_.data() ) + , disabledValidationFeatureCount( static_cast( disabledValidationFeatures_.size() ) ) + , pDisabledValidationFeatures( disabledValidationFeatures_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ValidationFeaturesEXT & + operator=( ValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ValidationFeaturesEXT & operator=( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + ValidationFeaturesEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + ValidationFeaturesEXT & + setEnabledValidationFeatureCount( uint32_t enabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT + { + enabledValidationFeatureCount = enabledValidationFeatureCount_; + return *this; + } + + ValidationFeaturesEXT & setPEnabledValidationFeatures( + const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT * pEnabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT + { + pEnabledValidationFeatures = pEnabledValidationFeatures_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + ValidationFeaturesEXT & setEnabledValidationFeatures( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + enabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT + { + enabledValidationFeatureCount = static_cast( enabledValidationFeatures_.size() ); + pEnabledValidationFeatures = enabledValidationFeatures_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + ValidationFeaturesEXT & + setDisabledValidationFeatureCount( uint32_t disabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT + { + disabledValidationFeatureCount = disabledValidationFeatureCount_; + return *this; + } + + ValidationFeaturesEXT & setPDisabledValidationFeatures( + const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT * pDisabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT + { + pDisabledValidationFeatures = pDisabledValidationFeatures_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + ValidationFeaturesEXT & setDisabledValidationFeatures( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + disabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT + { + disabledValidationFeatureCount = static_cast( disabledValidationFeatures_.size() ); + pDisabledValidationFeatures = disabledValidationFeatures_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkValidationFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkValidationFeaturesEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ValidationFeaturesEXT const & ) const = default; +#else + bool operator==( ValidationFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( enabledValidationFeatureCount == rhs.enabledValidationFeatureCount ) && + ( pEnabledValidationFeatures == rhs.pEnabledValidationFeatures ) && + ( disabledValidationFeatureCount == rhs.disabledValidationFeatureCount ) && + ( pDisabledValidationFeatures == rhs.pDisabledValidationFeatures ); + } + + bool operator!=( ValidationFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFeaturesEXT; + const void * pNext = {}; + uint32_t enabledValidationFeatureCount = {}; + const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT * pEnabledValidationFeatures = {}; + uint32_t disabledValidationFeatureCount = {}; + const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT * pDisabledValidationFeatures = {}; + }; + static_assert( sizeof( ValidationFeaturesEXT ) == sizeof( VkValidationFeaturesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = ValidationFeaturesEXT; + }; + + struct ValidationFlagsEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationFlagsEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ValidationFlagsEXT( + uint32_t disabledValidationCheckCount_ = {}, + const VULKAN_HPP_NAMESPACE::ValidationCheckEXT * pDisabledValidationChecks_ = {} ) VULKAN_HPP_NOEXCEPT + : disabledValidationCheckCount( disabledValidationCheckCount_ ) + , pDisabledValidationChecks( pDisabledValidationChecks_ ) + {} + + VULKAN_HPP_CONSTEXPR ValidationFlagsEXT( ValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ValidationFlagsEXT( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : ValidationFlagsEXT( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + ValidationFlagsEXT( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + disabledValidationChecks_ ) + : disabledValidationCheckCount( static_cast( disabledValidationChecks_.size() ) ) + , pDisabledValidationChecks( disabledValidationChecks_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ValidationFlagsEXT & + operator=( ValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ValidationFlagsEXT & operator=( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + ValidationFlagsEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + ValidationFlagsEXT & setDisabledValidationCheckCount( uint32_t disabledValidationCheckCount_ ) VULKAN_HPP_NOEXCEPT + { + disabledValidationCheckCount = disabledValidationCheckCount_; + return *this; + } + + ValidationFlagsEXT & setPDisabledValidationChecks( + const VULKAN_HPP_NAMESPACE::ValidationCheckEXT * pDisabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT + { + pDisabledValidationChecks = pDisabledValidationChecks_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + ValidationFlagsEXT & setDisabledValidationChecks( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + disabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT + { + disabledValidationCheckCount = static_cast( disabledValidationChecks_.size() ); + pDisabledValidationChecks = disabledValidationChecks_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkValidationFlagsEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkValidationFlagsEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ValidationFlagsEXT const & ) const = default; +#else + bool operator==( ValidationFlagsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( disabledValidationCheckCount == rhs.disabledValidationCheckCount ) && + ( pDisabledValidationChecks == rhs.pDisabledValidationChecks ); + } + + bool operator!=( ValidationFlagsEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFlagsEXT; + const void * pNext = {}; + uint32_t disabledValidationCheckCount = {}; + const VULKAN_HPP_NAMESPACE::ValidationCheckEXT * pDisabledValidationChecks = {}; + }; + static_assert( sizeof( ValidationFlagsEXT ) == sizeof( VkValidationFlagsEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = ValidationFlagsEXT; + }; + +#if defined( VK_USE_PLATFORM_VI_NN ) + struct ViSurfaceCreateInfoNN + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eViSurfaceCreateInfoNN; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR ViSurfaceCreateInfoNN( VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ = {}, + void * window_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , window( window_ ) + {} + + VULKAN_HPP_CONSTEXPR ViSurfaceCreateInfoNN( ViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ViSurfaceCreateInfoNN( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT + : ViSurfaceCreateInfoNN( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 ViSurfaceCreateInfoNN & + operator=( ViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + ViSurfaceCreateInfoNN & operator=( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + ViSurfaceCreateInfoNN & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + ViSurfaceCreateInfoNN & setFlags( VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + ViSurfaceCreateInfoNN & setWindow( void * window_ ) VULKAN_HPP_NOEXCEPT + { + window = window_; + return *this; + } + + operator VkViSurfaceCreateInfoNN const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkViSurfaceCreateInfoNN &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( ViSurfaceCreateInfoNN const & ) const = default; +# else + bool operator==( ViSurfaceCreateInfoNN const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( window == rhs.window ); + } + + bool operator!=( ViSurfaceCreateInfoNN const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eViSurfaceCreateInfoNN; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags = {}; + void * window = {}; + }; + static_assert( sizeof( ViSurfaceCreateInfoNN ) == sizeof( VkViSurfaceCreateInfoNN ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = ViSurfaceCreateInfoNN; + }; +#endif /*VK_USE_PLATFORM_VI_NN*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoDecodeH264CapabilitiesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264CapabilitiesEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264CapabilitiesEXT( + uint32_t maxLevel_ = {}, + VULKAN_HPP_NAMESPACE::Offset2D fieldOffsetGranularity_ = {}, + VULKAN_HPP_NAMESPACE::ExtensionProperties stdExtensionVersion_ = {} ) VULKAN_HPP_NOEXCEPT + : maxLevel( maxLevel_ ) + , fieldOffsetGranularity( fieldOffsetGranularity_ ) + , stdExtensionVersion( stdExtensionVersion_ ) + {} + + VULKAN_HPP_CONSTEXPR_14 + VideoDecodeH264CapabilitiesEXT( VideoDecodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH264CapabilitiesEXT( VkVideoDecodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoDecodeH264CapabilitiesEXT( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264CapabilitiesEXT & + operator=( VideoDecodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH264CapabilitiesEXT & operator=( VkVideoDecodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + operator VkVideoDecodeH264CapabilitiesEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoDecodeH264CapabilitiesEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoDecodeH264CapabilitiesEXT const & ) const = default; +# else + bool operator==( VideoDecodeH264CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxLevel == rhs.maxLevel ) && + ( fieldOffsetGranularity == rhs.fieldOffsetGranularity ) && + ( stdExtensionVersion == rhs.stdExtensionVersion ); + } + + bool operator!=( VideoDecodeH264CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264CapabilitiesEXT; + void * pNext = {}; + uint32_t maxLevel = {}; + VULKAN_HPP_NAMESPACE::Offset2D fieldOffsetGranularity = {}; + VULKAN_HPP_NAMESPACE::ExtensionProperties stdExtensionVersion = {}; + }; + static_assert( sizeof( VideoDecodeH264CapabilitiesEXT ) == sizeof( VkVideoDecodeH264CapabilitiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoDecodeH264CapabilitiesEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoDecodeH264DpbSlotInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264DpbSlotInfoEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoDecodeH264DpbSlotInfoEXT( + const StdVideoDecodeH264ReferenceInfo * pStdReferenceInfo_ = {} ) VULKAN_HPP_NOEXCEPT + : pStdReferenceInfo( pStdReferenceInfo_ ) + {} + + VULKAN_HPP_CONSTEXPR + VideoDecodeH264DpbSlotInfoEXT( VideoDecodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH264DpbSlotInfoEXT( VkVideoDecodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoDecodeH264DpbSlotInfoEXT( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264DpbSlotInfoEXT & + operator=( VideoDecodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH264DpbSlotInfoEXT & operator=( VkVideoDecodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoDecodeH264DpbSlotInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoDecodeH264DpbSlotInfoEXT & + setPStdReferenceInfo( const StdVideoDecodeH264ReferenceInfo * pStdReferenceInfo_ ) VULKAN_HPP_NOEXCEPT + { + pStdReferenceInfo = pStdReferenceInfo_; + return *this; + } + + operator VkVideoDecodeH264DpbSlotInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoDecodeH264DpbSlotInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoDecodeH264DpbSlotInfoEXT const & ) const = default; +# else + bool operator==( VideoDecodeH264DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pStdReferenceInfo == rhs.pStdReferenceInfo ); + } + + bool operator!=( VideoDecodeH264DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264DpbSlotInfoEXT; + const void * pNext = {}; + const StdVideoDecodeH264ReferenceInfo * pStdReferenceInfo = {}; + }; + static_assert( sizeof( VideoDecodeH264DpbSlotInfoEXT ) == sizeof( VkVideoDecodeH264DpbSlotInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoDecodeH264DpbSlotInfoEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoDecodeH264MvcEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264MvcEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoDecodeH264MvcEXT( const StdVideoDecodeH264Mvc * pStdMvc_ = {} ) VULKAN_HPP_NOEXCEPT + : pStdMvc( pStdMvc_ ) + {} + + VULKAN_HPP_CONSTEXPR VideoDecodeH264MvcEXT( VideoDecodeH264MvcEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH264MvcEXT( VkVideoDecodeH264MvcEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoDecodeH264MvcEXT( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264MvcEXT & + operator=( VideoDecodeH264MvcEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH264MvcEXT & operator=( VkVideoDecodeH264MvcEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoDecodeH264MvcEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoDecodeH264MvcEXT & setPStdMvc( const StdVideoDecodeH264Mvc * pStdMvc_ ) VULKAN_HPP_NOEXCEPT + { + pStdMvc = pStdMvc_; + return *this; + } + + operator VkVideoDecodeH264MvcEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoDecodeH264MvcEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoDecodeH264MvcEXT const & ) const = default; +# else + bool operator==( VideoDecodeH264MvcEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pStdMvc == rhs.pStdMvc ); + } + + bool operator!=( VideoDecodeH264MvcEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264MvcEXT; + const void * pNext = {}; + const StdVideoDecodeH264Mvc * pStdMvc = {}; + }; + static_assert( sizeof( VideoDecodeH264MvcEXT ) == sizeof( VkVideoDecodeH264MvcEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoDecodeH264MvcEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoDecodeH264PictureInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264PictureInfoEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoDecodeH264PictureInfoEXT( const StdVideoDecodeH264PictureInfo * pStdPictureInfo_ = {}, + uint32_t slicesCount_ = {}, + const uint32_t * pSlicesDataOffsets_ = {} ) VULKAN_HPP_NOEXCEPT + : pStdPictureInfo( pStdPictureInfo_ ) + , slicesCount( slicesCount_ ) + , pSlicesDataOffsets( pSlicesDataOffsets_ ) + {} + + VULKAN_HPP_CONSTEXPR + VideoDecodeH264PictureInfoEXT( VideoDecodeH264PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH264PictureInfoEXT( VkVideoDecodeH264PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoDecodeH264PictureInfoEXT( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoDecodeH264PictureInfoEXT( + const StdVideoDecodeH264PictureInfo * pStdPictureInfo_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & slicesDataOffsets_ ) + : pStdPictureInfo( pStdPictureInfo_ ) + , slicesCount( static_cast( slicesDataOffsets_.size() ) ) + , pSlicesDataOffsets( slicesDataOffsets_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264PictureInfoEXT & + operator=( VideoDecodeH264PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH264PictureInfoEXT & operator=( VkVideoDecodeH264PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoDecodeH264PictureInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoDecodeH264PictureInfoEXT & + setPStdPictureInfo( const StdVideoDecodeH264PictureInfo * pStdPictureInfo_ ) VULKAN_HPP_NOEXCEPT + { + pStdPictureInfo = pStdPictureInfo_; + return *this; + } + + VideoDecodeH264PictureInfoEXT & setSlicesCount( uint32_t slicesCount_ ) VULKAN_HPP_NOEXCEPT + { + slicesCount = slicesCount_; + return *this; + } + + VideoDecodeH264PictureInfoEXT & setPSlicesDataOffsets( const uint32_t * pSlicesDataOffsets_ ) VULKAN_HPP_NOEXCEPT + { + pSlicesDataOffsets = pSlicesDataOffsets_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoDecodeH264PictureInfoEXT & setSlicesDataOffsets( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & slicesDataOffsets_ ) VULKAN_HPP_NOEXCEPT + { + slicesCount = static_cast( slicesDataOffsets_.size() ); + pSlicesDataOffsets = slicesDataOffsets_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkVideoDecodeH264PictureInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoDecodeH264PictureInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoDecodeH264PictureInfoEXT const & ) const = default; +# else + bool operator==( VideoDecodeH264PictureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pStdPictureInfo == rhs.pStdPictureInfo ) && + ( slicesCount == rhs.slicesCount ) && ( pSlicesDataOffsets == rhs.pSlicesDataOffsets ); + } + + bool operator!=( VideoDecodeH264PictureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264PictureInfoEXT; + const void * pNext = {}; + const StdVideoDecodeH264PictureInfo * pStdPictureInfo = {}; + uint32_t slicesCount = {}; + const uint32_t * pSlicesDataOffsets = {}; + }; + static_assert( sizeof( VideoDecodeH264PictureInfoEXT ) == sizeof( VkVideoDecodeH264PictureInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoDecodeH264PictureInfoEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoDecodeH264ProfileEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH264ProfileEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoDecodeH264ProfileEXT( + StdVideoH264ProfileIdc stdProfileIdc_ = {}, + VULKAN_HPP_NAMESPACE::VideoDecodeH264FieldLayoutFlagsEXT fieldLayout_ = {} ) VULKAN_HPP_NOEXCEPT + : stdProfileIdc( stdProfileIdc_ ) + , fieldLayout( fieldLayout_ ) + {} + + VULKAN_HPP_CONSTEXPR + VideoDecodeH264ProfileEXT( VideoDecodeH264ProfileEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH264ProfileEXT( VkVideoDecodeH264ProfileEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoDecodeH264ProfileEXT( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264ProfileEXT & + operator=( VideoDecodeH264ProfileEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH264ProfileEXT & operator=( VkVideoDecodeH264ProfileEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoDecodeH264ProfileEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoDecodeH264ProfileEXT & setStdProfileIdc( StdVideoH264ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT + { + stdProfileIdc = stdProfileIdc_; + return *this; + } + + VideoDecodeH264ProfileEXT & + setFieldLayout( VULKAN_HPP_NAMESPACE::VideoDecodeH264FieldLayoutFlagsEXT fieldLayout_ ) VULKAN_HPP_NOEXCEPT + { + fieldLayout = fieldLayout_; + return *this; + } + + operator VkVideoDecodeH264ProfileEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoDecodeH264ProfileEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoDecodeH264ProfileEXT const & ) const = default; +# else + bool operator==( VideoDecodeH264ProfileEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH264ProfileIdc ) ) == 0 ) && + ( fieldLayout == rhs.fieldLayout ); + } + + bool operator!=( VideoDecodeH264ProfileEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264ProfileEXT; + const void * pNext = {}; + StdVideoH264ProfileIdc stdProfileIdc = {}; + VULKAN_HPP_NAMESPACE::VideoDecodeH264FieldLayoutFlagsEXT fieldLayout = {}; + }; + static_assert( sizeof( VideoDecodeH264ProfileEXT ) == sizeof( VkVideoDecodeH264ProfileEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoDecodeH264ProfileEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoDecodeH264SessionCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eVideoDecodeH264SessionCreateInfoEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionCreateInfoEXT( + VULKAN_HPP_NAMESPACE::VideoDecodeH264CreateFlagsEXT flags_ = {}, + const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdExtensionVersion_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , pStdExtensionVersion( pStdExtensionVersion_ ) + {} + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionCreateInfoEXT( VideoDecodeH264SessionCreateInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH264SessionCreateInfoEXT( VkVideoDecodeH264SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoDecodeH264SessionCreateInfoEXT( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionCreateInfoEXT & + operator=( VideoDecodeH264SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH264SessionCreateInfoEXT & + operator=( VkVideoDecodeH264SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoDecodeH264SessionCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoDecodeH264SessionCreateInfoEXT & + setFlags( VULKAN_HPP_NAMESPACE::VideoDecodeH264CreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + VideoDecodeH264SessionCreateInfoEXT & setPStdExtensionVersion( + const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdExtensionVersion_ ) VULKAN_HPP_NOEXCEPT + { + pStdExtensionVersion = pStdExtensionVersion_; + return *this; + } + + operator VkVideoDecodeH264SessionCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoDecodeH264SessionCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoDecodeH264SessionCreateInfoEXT const & ) const = default; +# else + bool operator==( VideoDecodeH264SessionCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( pStdExtensionVersion == rhs.pStdExtensionVersion ); + } + + bool operator!=( VideoDecodeH264SessionCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264SessionCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::VideoDecodeH264CreateFlagsEXT flags = {}; + const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdExtensionVersion = {}; + }; + static_assert( sizeof( VideoDecodeH264SessionCreateInfoEXT ) == sizeof( VkVideoDecodeH264SessionCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoDecodeH264SessionCreateInfoEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoDecodeH264SessionParametersAddInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eVideoDecodeH264SessionParametersAddInfoEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoDecodeH264SessionParametersAddInfoEXT( + uint32_t spsStdCount_ = {}, + const StdVideoH264SequenceParameterSet * pSpsStd_ = {}, + uint32_t ppsStdCount_ = {}, + const StdVideoH264PictureParameterSet * pPpsStd_ = {} ) VULKAN_HPP_NOEXCEPT + : spsStdCount( spsStdCount_ ) + , pSpsStd( pSpsStd_ ) + , ppsStdCount( ppsStdCount_ ) + , pPpsStd( pPpsStd_ ) + {} + + VULKAN_HPP_CONSTEXPR VideoDecodeH264SessionParametersAddInfoEXT( + VideoDecodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH264SessionParametersAddInfoEXT( VkVideoDecodeH264SessionParametersAddInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : VideoDecodeH264SessionParametersAddInfoEXT( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoDecodeH264SessionParametersAddInfoEXT( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & spsStd_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & ppsStd_ = {} ) + : spsStdCount( static_cast( spsStd_.size() ) ) + , pSpsStd( spsStd_.data() ) + , ppsStdCount( static_cast( ppsStd_.size() ) ) + , pPpsStd( ppsStd_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersAddInfoEXT & + operator=( VideoDecodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH264SessionParametersAddInfoEXT & + operator=( VkVideoDecodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoDecodeH264SessionParametersAddInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoDecodeH264SessionParametersAddInfoEXT & setSpsStdCount( uint32_t spsStdCount_ ) VULKAN_HPP_NOEXCEPT + { + spsStdCount = spsStdCount_; + return *this; + } + + VideoDecodeH264SessionParametersAddInfoEXT & + setPSpsStd( const StdVideoH264SequenceParameterSet * pSpsStd_ ) VULKAN_HPP_NOEXCEPT + { + pSpsStd = pSpsStd_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoDecodeH264SessionParametersAddInfoEXT & + setSpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & spsStd_ ) + VULKAN_HPP_NOEXCEPT + { + spsStdCount = static_cast( spsStd_.size() ); + pSpsStd = spsStd_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + VideoDecodeH264SessionParametersAddInfoEXT & setPpsStdCount( uint32_t ppsStdCount_ ) VULKAN_HPP_NOEXCEPT + { + ppsStdCount = ppsStdCount_; + return *this; + } + + VideoDecodeH264SessionParametersAddInfoEXT & + setPPpsStd( const StdVideoH264PictureParameterSet * pPpsStd_ ) VULKAN_HPP_NOEXCEPT + { + pPpsStd = pPpsStd_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoDecodeH264SessionParametersAddInfoEXT & + setPpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & ppsStd_ ) + VULKAN_HPP_NOEXCEPT + { + ppsStdCount = static_cast( ppsStd_.size() ); + pPpsStd = ppsStd_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkVideoDecodeH264SessionParametersAddInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoDecodeH264SessionParametersAddInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoDecodeH264SessionParametersAddInfoEXT const & ) const = default; +# else + bool operator==( VideoDecodeH264SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( spsStdCount == rhs.spsStdCount ) && + ( pSpsStd == rhs.pSpsStd ) && ( ppsStdCount == rhs.ppsStdCount ) && ( pPpsStd == rhs.pPpsStd ); + } + + bool operator!=( VideoDecodeH264SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264SessionParametersAddInfoEXT; + const void * pNext = {}; + uint32_t spsStdCount = {}; + const StdVideoH264SequenceParameterSet * pSpsStd = {}; + uint32_t ppsStdCount = {}; + const StdVideoH264PictureParameterSet * pPpsStd = {}; + }; + static_assert( sizeof( VideoDecodeH264SessionParametersAddInfoEXT ) == + sizeof( VkVideoDecodeH264SessionParametersAddInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoDecodeH264SessionParametersAddInfoEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoDecodeH264SessionParametersCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eVideoDecodeH264SessionParametersCreateInfoEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoDecodeH264SessionParametersCreateInfoEXT( + uint32_t maxSpsStdCount_ = {}, + uint32_t maxPpsStdCount_ = {}, + const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoEXT * pParametersAddInfo_ = {} ) + VULKAN_HPP_NOEXCEPT + : maxSpsStdCount( maxSpsStdCount_ ) + , maxPpsStdCount( maxPpsStdCount_ ) + , pParametersAddInfo( pParametersAddInfo_ ) + {} + + VULKAN_HPP_CONSTEXPR VideoDecodeH264SessionParametersCreateInfoEXT( + VideoDecodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH264SessionParametersCreateInfoEXT( VkVideoDecodeH264SessionParametersCreateInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : VideoDecodeH264SessionParametersCreateInfoEXT( + *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeH264SessionParametersCreateInfoEXT & + operator=( VideoDecodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH264SessionParametersCreateInfoEXT & + operator=( VkVideoDecodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoDecodeH264SessionParametersCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoDecodeH264SessionParametersCreateInfoEXT & setMaxSpsStdCount( uint32_t maxSpsStdCount_ ) VULKAN_HPP_NOEXCEPT + { + maxSpsStdCount = maxSpsStdCount_; + return *this; + } + + VideoDecodeH264SessionParametersCreateInfoEXT & setMaxPpsStdCount( uint32_t maxPpsStdCount_ ) VULKAN_HPP_NOEXCEPT + { + maxPpsStdCount = maxPpsStdCount_; + return *this; + } + + VideoDecodeH264SessionParametersCreateInfoEXT & setPParametersAddInfo( + const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoEXT * pParametersAddInfo_ ) VULKAN_HPP_NOEXCEPT + { + pParametersAddInfo = pParametersAddInfo_; + return *this; + } + + operator VkVideoDecodeH264SessionParametersCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoDecodeH264SessionParametersCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoDecodeH264SessionParametersCreateInfoEXT const & ) const = default; +# else + bool operator==( VideoDecodeH264SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxSpsStdCount == rhs.maxSpsStdCount ) && + ( maxPpsStdCount == rhs.maxPpsStdCount ) && ( pParametersAddInfo == rhs.pParametersAddInfo ); + } + + bool operator!=( VideoDecodeH264SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH264SessionParametersCreateInfoEXT; + const void * pNext = {}; + uint32_t maxSpsStdCount = {}; + uint32_t maxPpsStdCount = {}; + const VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoEXT * pParametersAddInfo = {}; + }; + static_assert( sizeof( VideoDecodeH264SessionParametersCreateInfoEXT ) == + sizeof( VkVideoDecodeH264SessionParametersCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoDecodeH264SessionParametersCreateInfoEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoDecodeH265CapabilitiesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH265CapabilitiesEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265CapabilitiesEXT( + uint32_t maxLevel_ = {}, VULKAN_HPP_NAMESPACE::ExtensionProperties stdExtensionVersion_ = {} ) VULKAN_HPP_NOEXCEPT + : maxLevel( maxLevel_ ) + , stdExtensionVersion( stdExtensionVersion_ ) + {} + + VULKAN_HPP_CONSTEXPR_14 + VideoDecodeH265CapabilitiesEXT( VideoDecodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH265CapabilitiesEXT( VkVideoDecodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoDecodeH265CapabilitiesEXT( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265CapabilitiesEXT & + operator=( VideoDecodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH265CapabilitiesEXT & operator=( VkVideoDecodeH265CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + operator VkVideoDecodeH265CapabilitiesEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoDecodeH265CapabilitiesEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoDecodeH265CapabilitiesEXT const & ) const = default; +# else + bool operator==( VideoDecodeH265CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxLevel == rhs.maxLevel ) && + ( stdExtensionVersion == rhs.stdExtensionVersion ); + } + + bool operator!=( VideoDecodeH265CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265CapabilitiesEXT; + void * pNext = {}; + uint32_t maxLevel = {}; + VULKAN_HPP_NAMESPACE::ExtensionProperties stdExtensionVersion = {}; + }; + static_assert( sizeof( VideoDecodeH265CapabilitiesEXT ) == sizeof( VkVideoDecodeH265CapabilitiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoDecodeH265CapabilitiesEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoDecodeH265DpbSlotInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH265DpbSlotInfoEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoDecodeH265DpbSlotInfoEXT( + const StdVideoDecodeH265ReferenceInfo * pStdReferenceInfo_ = {} ) VULKAN_HPP_NOEXCEPT + : pStdReferenceInfo( pStdReferenceInfo_ ) + {} + + VULKAN_HPP_CONSTEXPR + VideoDecodeH265DpbSlotInfoEXT( VideoDecodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH265DpbSlotInfoEXT( VkVideoDecodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoDecodeH265DpbSlotInfoEXT( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265DpbSlotInfoEXT & + operator=( VideoDecodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH265DpbSlotInfoEXT & operator=( VkVideoDecodeH265DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoDecodeH265DpbSlotInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoDecodeH265DpbSlotInfoEXT & + setPStdReferenceInfo( const StdVideoDecodeH265ReferenceInfo * pStdReferenceInfo_ ) VULKAN_HPP_NOEXCEPT + { + pStdReferenceInfo = pStdReferenceInfo_; + return *this; + } + + operator VkVideoDecodeH265DpbSlotInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoDecodeH265DpbSlotInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoDecodeH265DpbSlotInfoEXT const & ) const = default; +# else + bool operator==( VideoDecodeH265DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pStdReferenceInfo == rhs.pStdReferenceInfo ); + } + + bool operator!=( VideoDecodeH265DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265DpbSlotInfoEXT; + const void * pNext = {}; + const StdVideoDecodeH265ReferenceInfo * pStdReferenceInfo = {}; + }; + static_assert( sizeof( VideoDecodeH265DpbSlotInfoEXT ) == sizeof( VkVideoDecodeH265DpbSlotInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoDecodeH265DpbSlotInfoEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoDecodeH265PictureInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH265PictureInfoEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoDecodeH265PictureInfoEXT( StdVideoDecodeH265PictureInfo * pStdPictureInfo_ = {}, + uint32_t slicesCount_ = {}, + const uint32_t * pSlicesDataOffsets_ = {} ) VULKAN_HPP_NOEXCEPT + : pStdPictureInfo( pStdPictureInfo_ ) + , slicesCount( slicesCount_ ) + , pSlicesDataOffsets( pSlicesDataOffsets_ ) + {} + + VULKAN_HPP_CONSTEXPR + VideoDecodeH265PictureInfoEXT( VideoDecodeH265PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH265PictureInfoEXT( VkVideoDecodeH265PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoDecodeH265PictureInfoEXT( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoDecodeH265PictureInfoEXT( + StdVideoDecodeH265PictureInfo * pStdPictureInfo_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & slicesDataOffsets_ ) + : pStdPictureInfo( pStdPictureInfo_ ) + , slicesCount( static_cast( slicesDataOffsets_.size() ) ) + , pSlicesDataOffsets( slicesDataOffsets_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265PictureInfoEXT & + operator=( VideoDecodeH265PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH265PictureInfoEXT & operator=( VkVideoDecodeH265PictureInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoDecodeH265PictureInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoDecodeH265PictureInfoEXT & + setPStdPictureInfo( StdVideoDecodeH265PictureInfo * pStdPictureInfo_ ) VULKAN_HPP_NOEXCEPT + { + pStdPictureInfo = pStdPictureInfo_; + return *this; + } + + VideoDecodeH265PictureInfoEXT & setSlicesCount( uint32_t slicesCount_ ) VULKAN_HPP_NOEXCEPT + { + slicesCount = slicesCount_; + return *this; + } + + VideoDecodeH265PictureInfoEXT & setPSlicesDataOffsets( const uint32_t * pSlicesDataOffsets_ ) VULKAN_HPP_NOEXCEPT + { + pSlicesDataOffsets = pSlicesDataOffsets_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoDecodeH265PictureInfoEXT & setSlicesDataOffsets( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & slicesDataOffsets_ ) VULKAN_HPP_NOEXCEPT + { + slicesCount = static_cast( slicesDataOffsets_.size() ); + pSlicesDataOffsets = slicesDataOffsets_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkVideoDecodeH265PictureInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoDecodeH265PictureInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoDecodeH265PictureInfoEXT const & ) const = default; +# else + bool operator==( VideoDecodeH265PictureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pStdPictureInfo == rhs.pStdPictureInfo ) && + ( slicesCount == rhs.slicesCount ) && ( pSlicesDataOffsets == rhs.pSlicesDataOffsets ); + } + + bool operator!=( VideoDecodeH265PictureInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265PictureInfoEXT; + const void * pNext = {}; + StdVideoDecodeH265PictureInfo * pStdPictureInfo = {}; + uint32_t slicesCount = {}; + const uint32_t * pSlicesDataOffsets = {}; + }; + static_assert( sizeof( VideoDecodeH265PictureInfoEXT ) == sizeof( VkVideoDecodeH265PictureInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoDecodeH265PictureInfoEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoDecodeH265ProfileEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoDecodeH265ProfileEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoDecodeH265ProfileEXT( StdVideoH265ProfileIdc stdProfileIdc_ = {} ) VULKAN_HPP_NOEXCEPT + : stdProfileIdc( stdProfileIdc_ ) + {} + + VULKAN_HPP_CONSTEXPR + VideoDecodeH265ProfileEXT( VideoDecodeH265ProfileEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH265ProfileEXT( VkVideoDecodeH265ProfileEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoDecodeH265ProfileEXT( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265ProfileEXT & + operator=( VideoDecodeH265ProfileEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH265ProfileEXT & operator=( VkVideoDecodeH265ProfileEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoDecodeH265ProfileEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoDecodeH265ProfileEXT & setStdProfileIdc( StdVideoH265ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT + { + stdProfileIdc = stdProfileIdc_; + return *this; + } + + operator VkVideoDecodeH265ProfileEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoDecodeH265ProfileEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoDecodeH265ProfileEXT const & ) const = default; +# else + bool operator==( VideoDecodeH265ProfileEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH265ProfileIdc ) ) == 0 ); + } + + bool operator!=( VideoDecodeH265ProfileEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265ProfileEXT; + const void * pNext = {}; + StdVideoH265ProfileIdc stdProfileIdc = {}; + }; + static_assert( sizeof( VideoDecodeH265ProfileEXT ) == sizeof( VkVideoDecodeH265ProfileEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoDecodeH265ProfileEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoDecodeH265SessionCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eVideoDecodeH265SessionCreateInfoEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionCreateInfoEXT( + VULKAN_HPP_NAMESPACE::VideoDecodeH265CreateFlagsEXT flags_ = {}, + const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdExtensionVersion_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , pStdExtensionVersion( pStdExtensionVersion_ ) + {} + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionCreateInfoEXT( VideoDecodeH265SessionCreateInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH265SessionCreateInfoEXT( VkVideoDecodeH265SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoDecodeH265SessionCreateInfoEXT( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionCreateInfoEXT & + operator=( VideoDecodeH265SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH265SessionCreateInfoEXT & + operator=( VkVideoDecodeH265SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoDecodeH265SessionCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoDecodeH265SessionCreateInfoEXT & + setFlags( VULKAN_HPP_NAMESPACE::VideoDecodeH265CreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + VideoDecodeH265SessionCreateInfoEXT & setPStdExtensionVersion( + const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdExtensionVersion_ ) VULKAN_HPP_NOEXCEPT + { + pStdExtensionVersion = pStdExtensionVersion_; + return *this; + } + + operator VkVideoDecodeH265SessionCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoDecodeH265SessionCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoDecodeH265SessionCreateInfoEXT const & ) const = default; +# else + bool operator==( VideoDecodeH265SessionCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( pStdExtensionVersion == rhs.pStdExtensionVersion ); + } + + bool operator!=( VideoDecodeH265SessionCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265SessionCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::VideoDecodeH265CreateFlagsEXT flags = {}; + const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdExtensionVersion = {}; + }; + static_assert( sizeof( VideoDecodeH265SessionCreateInfoEXT ) == sizeof( VkVideoDecodeH265SessionCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoDecodeH265SessionCreateInfoEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoDecodeH265SessionParametersAddInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eVideoDecodeH265SessionParametersAddInfoEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoDecodeH265SessionParametersAddInfoEXT( + uint32_t spsStdCount_ = {}, + const StdVideoH265SequenceParameterSet * pSpsStd_ = {}, + uint32_t ppsStdCount_ = {}, + const StdVideoH265PictureParameterSet * pPpsStd_ = {} ) VULKAN_HPP_NOEXCEPT + : spsStdCount( spsStdCount_ ) + , pSpsStd( pSpsStd_ ) + , ppsStdCount( ppsStdCount_ ) + , pPpsStd( pPpsStd_ ) + {} + + VULKAN_HPP_CONSTEXPR VideoDecodeH265SessionParametersAddInfoEXT( + VideoDecodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH265SessionParametersAddInfoEXT( VkVideoDecodeH265SessionParametersAddInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : VideoDecodeH265SessionParametersAddInfoEXT( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoDecodeH265SessionParametersAddInfoEXT( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & spsStd_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & ppsStd_ = {} ) + : spsStdCount( static_cast( spsStd_.size() ) ) + , pSpsStd( spsStd_.data() ) + , ppsStdCount( static_cast( ppsStd_.size() ) ) + , pPpsStd( ppsStd_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersAddInfoEXT & + operator=( VideoDecodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH265SessionParametersAddInfoEXT & + operator=( VkVideoDecodeH265SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoDecodeH265SessionParametersAddInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoDecodeH265SessionParametersAddInfoEXT & setSpsStdCount( uint32_t spsStdCount_ ) VULKAN_HPP_NOEXCEPT + { + spsStdCount = spsStdCount_; + return *this; + } + + VideoDecodeH265SessionParametersAddInfoEXT & + setPSpsStd( const StdVideoH265SequenceParameterSet * pSpsStd_ ) VULKAN_HPP_NOEXCEPT + { + pSpsStd = pSpsStd_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoDecodeH265SessionParametersAddInfoEXT & + setSpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & spsStd_ ) + VULKAN_HPP_NOEXCEPT + { + spsStdCount = static_cast( spsStd_.size() ); + pSpsStd = spsStd_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + VideoDecodeH265SessionParametersAddInfoEXT & setPpsStdCount( uint32_t ppsStdCount_ ) VULKAN_HPP_NOEXCEPT + { + ppsStdCount = ppsStdCount_; + return *this; + } + + VideoDecodeH265SessionParametersAddInfoEXT & + setPPpsStd( const StdVideoH265PictureParameterSet * pPpsStd_ ) VULKAN_HPP_NOEXCEPT + { + pPpsStd = pPpsStd_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoDecodeH265SessionParametersAddInfoEXT & + setPpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & ppsStd_ ) + VULKAN_HPP_NOEXCEPT + { + ppsStdCount = static_cast( ppsStd_.size() ); + pPpsStd = ppsStd_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkVideoDecodeH265SessionParametersAddInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoDecodeH265SessionParametersAddInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoDecodeH265SessionParametersAddInfoEXT const & ) const = default; +# else + bool operator==( VideoDecodeH265SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( spsStdCount == rhs.spsStdCount ) && + ( pSpsStd == rhs.pSpsStd ) && ( ppsStdCount == rhs.ppsStdCount ) && ( pPpsStd == rhs.pPpsStd ); + } + + bool operator!=( VideoDecodeH265SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265SessionParametersAddInfoEXT; + const void * pNext = {}; + uint32_t spsStdCount = {}; + const StdVideoH265SequenceParameterSet * pSpsStd = {}; + uint32_t ppsStdCount = {}; + const StdVideoH265PictureParameterSet * pPpsStd = {}; + }; + static_assert( sizeof( VideoDecodeH265SessionParametersAddInfoEXT ) == + sizeof( VkVideoDecodeH265SessionParametersAddInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoDecodeH265SessionParametersAddInfoEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoDecodeH265SessionParametersCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eVideoDecodeH265SessionParametersCreateInfoEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoDecodeH265SessionParametersCreateInfoEXT( + uint32_t maxSpsStdCount_ = {}, + uint32_t maxPpsStdCount_ = {}, + const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoEXT * pParametersAddInfo_ = {} ) + VULKAN_HPP_NOEXCEPT + : maxSpsStdCount( maxSpsStdCount_ ) + , maxPpsStdCount( maxPpsStdCount_ ) + , pParametersAddInfo( pParametersAddInfo_ ) + {} + + VULKAN_HPP_CONSTEXPR VideoDecodeH265SessionParametersCreateInfoEXT( + VideoDecodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH265SessionParametersCreateInfoEXT( VkVideoDecodeH265SessionParametersCreateInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : VideoDecodeH265SessionParametersCreateInfoEXT( + *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoDecodeH265SessionParametersCreateInfoEXT & + operator=( VideoDecodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoDecodeH265SessionParametersCreateInfoEXT & + operator=( VkVideoDecodeH265SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoDecodeH265SessionParametersCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoDecodeH265SessionParametersCreateInfoEXT & setMaxSpsStdCount( uint32_t maxSpsStdCount_ ) VULKAN_HPP_NOEXCEPT + { + maxSpsStdCount = maxSpsStdCount_; + return *this; + } + + VideoDecodeH265SessionParametersCreateInfoEXT & setMaxPpsStdCount( uint32_t maxPpsStdCount_ ) VULKAN_HPP_NOEXCEPT + { + maxPpsStdCount = maxPpsStdCount_; + return *this; + } + + VideoDecodeH265SessionParametersCreateInfoEXT & setPParametersAddInfo( + const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoEXT * pParametersAddInfo_ ) VULKAN_HPP_NOEXCEPT + { + pParametersAddInfo = pParametersAddInfo_; + return *this; + } + + operator VkVideoDecodeH265SessionParametersCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoDecodeH265SessionParametersCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoDecodeH265SessionParametersCreateInfoEXT const & ) const = default; +# else + bool operator==( VideoDecodeH265SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxSpsStdCount == rhs.maxSpsStdCount ) && + ( maxPpsStdCount == rhs.maxPpsStdCount ) && ( pParametersAddInfo == rhs.pParametersAddInfo ); + } + + bool operator!=( VideoDecodeH265SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoDecodeH265SessionParametersCreateInfoEXT; + const void * pNext = {}; + uint32_t maxSpsStdCount = {}; + uint32_t maxPpsStdCount = {}; + const VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoEXT * pParametersAddInfo = {}; + }; + static_assert( sizeof( VideoDecodeH265SessionParametersCreateInfoEXT ) == + sizeof( VkVideoDecodeH265SessionParametersCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoDecodeH265SessionParametersCreateInfoEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoEncodeH264CapabilitiesEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264CapabilitiesEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264CapabilitiesEXT( + VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesFlagsEXT flags_ = {}, + VULKAN_HPP_NAMESPACE::VideoEncodeH264InputModeFlagsEXT inputModeFlags_ = {}, + VULKAN_HPP_NAMESPACE::VideoEncodeH264OutputModeFlagsEXT outputModeFlags_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D minPictureSizeInMbs_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D maxPictureSizeInMbs_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D inputImageDataAlignment_ = {}, + uint8_t maxNumL0ReferenceForP_ = {}, + uint8_t maxNumL0ReferenceForB_ = {}, + uint8_t maxNumL1Reference_ = {}, + uint8_t qualityLevelCount_ = {}, + VULKAN_HPP_NAMESPACE::ExtensionProperties stdExtensionVersion_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , inputModeFlags( inputModeFlags_ ) + , outputModeFlags( outputModeFlags_ ) + , minPictureSizeInMbs( minPictureSizeInMbs_ ) + , maxPictureSizeInMbs( maxPictureSizeInMbs_ ) + , inputImageDataAlignment( inputImageDataAlignment_ ) + , maxNumL0ReferenceForP( maxNumL0ReferenceForP_ ) + , maxNumL0ReferenceForB( maxNumL0ReferenceForB_ ) + , maxNumL1Reference( maxNumL1Reference_ ) + , qualityLevelCount( qualityLevelCount_ ) + , stdExtensionVersion( stdExtensionVersion_ ) + {} + + VULKAN_HPP_CONSTEXPR_14 + VideoEncodeH264CapabilitiesEXT( VideoEncodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoEncodeH264CapabilitiesEXT( VkVideoEncodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoEncodeH264CapabilitiesEXT( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264CapabilitiesEXT & + operator=( VideoEncodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoEncodeH264CapabilitiesEXT & operator=( VkVideoEncodeH264CapabilitiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoEncodeH264CapabilitiesEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoEncodeH264CapabilitiesEXT & + setFlags( VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + VideoEncodeH264CapabilitiesEXT & + setInputModeFlags( VULKAN_HPP_NAMESPACE::VideoEncodeH264InputModeFlagsEXT inputModeFlags_ ) VULKAN_HPP_NOEXCEPT + { + inputModeFlags = inputModeFlags_; + return *this; + } + + VideoEncodeH264CapabilitiesEXT & + setOutputModeFlags( VULKAN_HPP_NAMESPACE::VideoEncodeH264OutputModeFlagsEXT outputModeFlags_ ) VULKAN_HPP_NOEXCEPT + { + outputModeFlags = outputModeFlags_; + return *this; + } + + VideoEncodeH264CapabilitiesEXT & + setMinPictureSizeInMbs( VULKAN_HPP_NAMESPACE::Extent2D const & minPictureSizeInMbs_ ) VULKAN_HPP_NOEXCEPT + { + minPictureSizeInMbs = minPictureSizeInMbs_; + return *this; + } + + VideoEncodeH264CapabilitiesEXT & + setMaxPictureSizeInMbs( VULKAN_HPP_NAMESPACE::Extent2D const & maxPictureSizeInMbs_ ) VULKAN_HPP_NOEXCEPT + { + maxPictureSizeInMbs = maxPictureSizeInMbs_; + return *this; + } + + VideoEncodeH264CapabilitiesEXT & + setInputImageDataAlignment( VULKAN_HPP_NAMESPACE::Extent2D const & inputImageDataAlignment_ ) VULKAN_HPP_NOEXCEPT + { + inputImageDataAlignment = inputImageDataAlignment_; + return *this; + } + + VideoEncodeH264CapabilitiesEXT & setMaxNumL0ReferenceForP( uint8_t maxNumL0ReferenceForP_ ) VULKAN_HPP_NOEXCEPT + { + maxNumL0ReferenceForP = maxNumL0ReferenceForP_; + return *this; + } + + VideoEncodeH264CapabilitiesEXT & setMaxNumL0ReferenceForB( uint8_t maxNumL0ReferenceForB_ ) VULKAN_HPP_NOEXCEPT + { + maxNumL0ReferenceForB = maxNumL0ReferenceForB_; + return *this; + } + + VideoEncodeH264CapabilitiesEXT & setMaxNumL1Reference( uint8_t maxNumL1Reference_ ) VULKAN_HPP_NOEXCEPT + { + maxNumL1Reference = maxNumL1Reference_; + return *this; + } + + VideoEncodeH264CapabilitiesEXT & setQualityLevelCount( uint8_t qualityLevelCount_ ) VULKAN_HPP_NOEXCEPT + { + qualityLevelCount = qualityLevelCount_; + return *this; + } + + VideoEncodeH264CapabilitiesEXT & setStdExtensionVersion( + VULKAN_HPP_NAMESPACE::ExtensionProperties const & stdExtensionVersion_ ) VULKAN_HPP_NOEXCEPT + { + stdExtensionVersion = stdExtensionVersion_; + return *this; + } + + operator VkVideoEncodeH264CapabilitiesEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoEncodeH264CapabilitiesEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoEncodeH264CapabilitiesEXT const & ) const = default; +# else + bool operator==( VideoEncodeH264CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( inputModeFlags == rhs.inputModeFlags ) && ( outputModeFlags == rhs.outputModeFlags ) && + ( minPictureSizeInMbs == rhs.minPictureSizeInMbs ) && ( maxPictureSizeInMbs == rhs.maxPictureSizeInMbs ) && + ( inputImageDataAlignment == rhs.inputImageDataAlignment ) && + ( maxNumL0ReferenceForP == rhs.maxNumL0ReferenceForP ) && + ( maxNumL0ReferenceForB == rhs.maxNumL0ReferenceForB ) && ( maxNumL1Reference == rhs.maxNumL1Reference ) && + ( qualityLevelCount == rhs.qualityLevelCount ) && ( stdExtensionVersion == rhs.stdExtensionVersion ); + } + + bool operator!=( VideoEncodeH264CapabilitiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264CapabilitiesEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesFlagsEXT flags = {}; + VULKAN_HPP_NAMESPACE::VideoEncodeH264InputModeFlagsEXT inputModeFlags = {}; + VULKAN_HPP_NAMESPACE::VideoEncodeH264OutputModeFlagsEXT outputModeFlags = {}; + VULKAN_HPP_NAMESPACE::Extent2D minPictureSizeInMbs = {}; + VULKAN_HPP_NAMESPACE::Extent2D maxPictureSizeInMbs = {}; + VULKAN_HPP_NAMESPACE::Extent2D inputImageDataAlignment = {}; + uint8_t maxNumL0ReferenceForP = {}; + uint8_t maxNumL0ReferenceForB = {}; + uint8_t maxNumL1Reference = {}; + uint8_t qualityLevelCount = {}; + VULKAN_HPP_NAMESPACE::ExtensionProperties stdExtensionVersion = {}; + }; + static_assert( sizeof( VideoEncodeH264CapabilitiesEXT ) == sizeof( VkVideoEncodeH264CapabilitiesEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoEncodeH264CapabilitiesEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoEncodeH264DpbSlotInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264DpbSlotInfoEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + VideoEncodeH264DpbSlotInfoEXT( int8_t slotIndex_ = {}, + const StdVideoEncodeH264PictureInfo * pStdPictureInfo_ = {} ) VULKAN_HPP_NOEXCEPT + : slotIndex( slotIndex_ ) + , pStdPictureInfo( pStdPictureInfo_ ) + {} + + VULKAN_HPP_CONSTEXPR + VideoEncodeH264DpbSlotInfoEXT( VideoEncodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoEncodeH264DpbSlotInfoEXT( VkVideoEncodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoEncodeH264DpbSlotInfoEXT( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264DpbSlotInfoEXT & + operator=( VideoEncodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoEncodeH264DpbSlotInfoEXT & operator=( VkVideoEncodeH264DpbSlotInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoEncodeH264DpbSlotInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoEncodeH264DpbSlotInfoEXT & setSlotIndex( int8_t slotIndex_ ) VULKAN_HPP_NOEXCEPT + { + slotIndex = slotIndex_; + return *this; + } + + VideoEncodeH264DpbSlotInfoEXT & + setPStdPictureInfo( const StdVideoEncodeH264PictureInfo * pStdPictureInfo_ ) VULKAN_HPP_NOEXCEPT + { + pStdPictureInfo = pStdPictureInfo_; + return *this; + } + + operator VkVideoEncodeH264DpbSlotInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoEncodeH264DpbSlotInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoEncodeH264DpbSlotInfoEXT const & ) const = default; +# else + bool operator==( VideoEncodeH264DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( slotIndex == rhs.slotIndex ) && + ( pStdPictureInfo == rhs.pStdPictureInfo ); + } + + bool operator!=( VideoEncodeH264DpbSlotInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264DpbSlotInfoEXT; + const void * pNext = {}; + int8_t slotIndex = {}; + const StdVideoEncodeH264PictureInfo * pStdPictureInfo = {}; + }; + static_assert( sizeof( VideoEncodeH264DpbSlotInfoEXT ) == sizeof( VkVideoEncodeH264DpbSlotInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoEncodeH264DpbSlotInfoEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoEncodeH264EmitPictureParametersEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eVideoEncodeH264EmitPictureParametersEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + VideoEncodeH264EmitPictureParametersEXT( uint8_t spsId_ = {}, + VULKAN_HPP_NAMESPACE::Bool32 emitSpsEnable_ = {}, + uint32_t ppsIdEntryCount_ = {}, + const uint8_t * ppsIdEntries_ = {} ) VULKAN_HPP_NOEXCEPT + : spsId( spsId_ ) + , emitSpsEnable( emitSpsEnable_ ) + , ppsIdEntryCount( ppsIdEntryCount_ ) + , ppsIdEntries( ppsIdEntries_ ) + {} + + VULKAN_HPP_CONSTEXPR VideoEncodeH264EmitPictureParametersEXT( VideoEncodeH264EmitPictureParametersEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + VideoEncodeH264EmitPictureParametersEXT( VkVideoEncodeH264EmitPictureParametersEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoEncodeH264EmitPictureParametersEXT( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoEncodeH264EmitPictureParametersEXT( + uint8_t spsId_, + VULKAN_HPP_NAMESPACE::Bool32 emitSpsEnable_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & psIdEntries_ ) + : spsId( spsId_ ) + , emitSpsEnable( emitSpsEnable_ ) + , ppsIdEntryCount( static_cast( psIdEntries_.size() ) ) + , ppsIdEntries( psIdEntries_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264EmitPictureParametersEXT & + operator=( VideoEncodeH264EmitPictureParametersEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoEncodeH264EmitPictureParametersEXT & + operator=( VkVideoEncodeH264EmitPictureParametersEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoEncodeH264EmitPictureParametersEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoEncodeH264EmitPictureParametersEXT & setSpsId( uint8_t spsId_ ) VULKAN_HPP_NOEXCEPT + { + spsId = spsId_; + return *this; + } + + VideoEncodeH264EmitPictureParametersEXT & + setEmitSpsEnable( VULKAN_HPP_NAMESPACE::Bool32 emitSpsEnable_ ) VULKAN_HPP_NOEXCEPT + { + emitSpsEnable = emitSpsEnable_; + return *this; + } + + VideoEncodeH264EmitPictureParametersEXT & setPpsIdEntryCount( uint32_t ppsIdEntryCount_ ) VULKAN_HPP_NOEXCEPT + { + ppsIdEntryCount = ppsIdEntryCount_; + return *this; + } + + VideoEncodeH264EmitPictureParametersEXT & setPpsIdEntries( const uint8_t * ppsIdEntries_ ) VULKAN_HPP_NOEXCEPT + { + ppsIdEntries = ppsIdEntries_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoEncodeH264EmitPictureParametersEXT & setPsIdEntries( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & psIdEntries_ ) VULKAN_HPP_NOEXCEPT + { + ppsIdEntryCount = static_cast( psIdEntries_.size() ); + ppsIdEntries = psIdEntries_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkVideoEncodeH264EmitPictureParametersEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoEncodeH264EmitPictureParametersEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoEncodeH264EmitPictureParametersEXT const & ) const = default; +# else + bool operator==( VideoEncodeH264EmitPictureParametersEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( spsId == rhs.spsId ) && + ( emitSpsEnable == rhs.emitSpsEnable ) && ( ppsIdEntryCount == rhs.ppsIdEntryCount ) && + ( ppsIdEntries == rhs.ppsIdEntries ); + } + + bool operator!=( VideoEncodeH264EmitPictureParametersEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264EmitPictureParametersEXT; + const void * pNext = {}; + uint8_t spsId = {}; + VULKAN_HPP_NAMESPACE::Bool32 emitSpsEnable = {}; + uint32_t ppsIdEntryCount = {}; + const uint8_t * ppsIdEntries = {}; + }; + static_assert( sizeof( VideoEncodeH264EmitPictureParametersEXT ) == + sizeof( VkVideoEncodeH264EmitPictureParametersEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoEncodeH264EmitPictureParametersEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoEncodeH264NaluSliceEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264NaluSliceEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoEncodeH264NaluSliceEXT( + const StdVideoEncodeH264SliceHeader * pSliceHeaderStd_ = {}, + uint32_t mbCount_ = {}, + uint8_t refFinalList0EntryCount_ = {}, + const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pRefFinalList0Entries_ = {}, + uint8_t refFinalList1EntryCount_ = {}, + const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pRefFinalList1Entries_ = {}, + uint32_t precedingNaluBytes_ = {}, + uint8_t minQp_ = {}, + uint8_t maxQp_ = {} ) VULKAN_HPP_NOEXCEPT + : pSliceHeaderStd( pSliceHeaderStd_ ) + , mbCount( mbCount_ ) + , refFinalList0EntryCount( refFinalList0EntryCount_ ) + , pRefFinalList0Entries( pRefFinalList0Entries_ ) + , refFinalList1EntryCount( refFinalList1EntryCount_ ) + , pRefFinalList1Entries( pRefFinalList1Entries_ ) + , precedingNaluBytes( precedingNaluBytes_ ) + , minQp( minQp_ ) + , maxQp( maxQp_ ) + {} + + VULKAN_HPP_CONSTEXPR + VideoEncodeH264NaluSliceEXT( VideoEncodeH264NaluSliceEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoEncodeH264NaluSliceEXT( VkVideoEncodeH264NaluSliceEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoEncodeH264NaluSliceEXT( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoEncodeH264NaluSliceEXT( + const StdVideoEncodeH264SliceHeader * pSliceHeaderStd_, + uint32_t mbCount_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + refFinalList0Entries_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + refFinalList1Entries_ = {}, + uint32_t precedingNaluBytes_ = {}, + uint8_t minQp_ = {}, + uint8_t maxQp_ = {} ) + : pSliceHeaderStd( pSliceHeaderStd_ ) + , mbCount( mbCount_ ) + , refFinalList0EntryCount( static_cast( refFinalList0Entries_.size() ) ) + , pRefFinalList0Entries( refFinalList0Entries_.data() ) + , refFinalList1EntryCount( static_cast( refFinalList1Entries_.size() ) ) + , pRefFinalList1Entries( refFinalList1Entries_.data() ) + , precedingNaluBytes( precedingNaluBytes_ ) + , minQp( minQp_ ) + , maxQp( maxQp_ ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264NaluSliceEXT & + operator=( VideoEncodeH264NaluSliceEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoEncodeH264NaluSliceEXT & operator=( VkVideoEncodeH264NaluSliceEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoEncodeH264NaluSliceEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoEncodeH264NaluSliceEXT & + setPSliceHeaderStd( const StdVideoEncodeH264SliceHeader * pSliceHeaderStd_ ) VULKAN_HPP_NOEXCEPT + { + pSliceHeaderStd = pSliceHeaderStd_; + return *this; + } + + VideoEncodeH264NaluSliceEXT & setMbCount( uint32_t mbCount_ ) VULKAN_HPP_NOEXCEPT + { + mbCount = mbCount_; + return *this; + } + + VideoEncodeH264NaluSliceEXT & setRefFinalList0EntryCount( uint8_t refFinalList0EntryCount_ ) VULKAN_HPP_NOEXCEPT + { + refFinalList0EntryCount = refFinalList0EntryCount_; + return *this; + } + + VideoEncodeH264NaluSliceEXT & setPRefFinalList0Entries( + const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pRefFinalList0Entries_ ) VULKAN_HPP_NOEXCEPT + { + pRefFinalList0Entries = pRefFinalList0Entries_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoEncodeH264NaluSliceEXT & setRefFinalList0Entries( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + refFinalList0Entries_ ) VULKAN_HPP_NOEXCEPT + { + refFinalList0EntryCount = static_cast( refFinalList0Entries_.size() ); + pRefFinalList0Entries = refFinalList0Entries_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + VideoEncodeH264NaluSliceEXT & setRefFinalList1EntryCount( uint8_t refFinalList1EntryCount_ ) VULKAN_HPP_NOEXCEPT + { + refFinalList1EntryCount = refFinalList1EntryCount_; + return *this; + } + + VideoEncodeH264NaluSliceEXT & setPRefFinalList1Entries( + const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pRefFinalList1Entries_ ) VULKAN_HPP_NOEXCEPT + { + pRefFinalList1Entries = pRefFinalList1Entries_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoEncodeH264NaluSliceEXT & setRefFinalList1Entries( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + refFinalList1Entries_ ) VULKAN_HPP_NOEXCEPT + { + refFinalList1EntryCount = static_cast( refFinalList1Entries_.size() ); + pRefFinalList1Entries = refFinalList1Entries_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + VideoEncodeH264NaluSliceEXT & setPrecedingNaluBytes( uint32_t precedingNaluBytes_ ) VULKAN_HPP_NOEXCEPT + { + precedingNaluBytes = precedingNaluBytes_; + return *this; + } + + VideoEncodeH264NaluSliceEXT & setMinQp( uint8_t minQp_ ) VULKAN_HPP_NOEXCEPT + { + minQp = minQp_; + return *this; + } + + VideoEncodeH264NaluSliceEXT & setMaxQp( uint8_t maxQp_ ) VULKAN_HPP_NOEXCEPT + { + maxQp = maxQp_; + return *this; + } + + operator VkVideoEncodeH264NaluSliceEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoEncodeH264NaluSliceEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoEncodeH264NaluSliceEXT const & ) const = default; +# else + bool operator==( VideoEncodeH264NaluSliceEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pSliceHeaderStd == rhs.pSliceHeaderStd ) && + ( mbCount == rhs.mbCount ) && ( refFinalList0EntryCount == rhs.refFinalList0EntryCount ) && + ( pRefFinalList0Entries == rhs.pRefFinalList0Entries ) && + ( refFinalList1EntryCount == rhs.refFinalList1EntryCount ) && + ( pRefFinalList1Entries == rhs.pRefFinalList1Entries ) && + ( precedingNaluBytes == rhs.precedingNaluBytes ) && ( minQp == rhs.minQp ) && ( maxQp == rhs.maxQp ); + } + + bool operator!=( VideoEncodeH264NaluSliceEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264NaluSliceEXT; + const void * pNext = {}; + const StdVideoEncodeH264SliceHeader * pSliceHeaderStd = {}; + uint32_t mbCount = {}; + uint8_t refFinalList0EntryCount = {}; + const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pRefFinalList0Entries = {}; + uint8_t refFinalList1EntryCount = {}; + const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pRefFinalList1Entries = {}; + uint32_t precedingNaluBytes = {}; + uint8_t minQp = {}; + uint8_t maxQp = {}; + }; + static_assert( sizeof( VideoEncodeH264NaluSliceEXT ) == sizeof( VkVideoEncodeH264NaluSliceEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoEncodeH264NaluSliceEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoEncodeH264ProfileEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264ProfileEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoEncodeH264ProfileEXT( StdVideoH264ProfileIdc stdProfileIdc_ = {} ) VULKAN_HPP_NOEXCEPT + : stdProfileIdc( stdProfileIdc_ ) + {} + + VULKAN_HPP_CONSTEXPR + VideoEncodeH264ProfileEXT( VideoEncodeH264ProfileEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoEncodeH264ProfileEXT( VkVideoEncodeH264ProfileEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoEncodeH264ProfileEXT( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264ProfileEXT & + operator=( VideoEncodeH264ProfileEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoEncodeH264ProfileEXT & operator=( VkVideoEncodeH264ProfileEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoEncodeH264ProfileEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoEncodeH264ProfileEXT & setStdProfileIdc( StdVideoH264ProfileIdc stdProfileIdc_ ) VULKAN_HPP_NOEXCEPT + { + stdProfileIdc = stdProfileIdc_; + return *this; + } + + operator VkVideoEncodeH264ProfileEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoEncodeH264ProfileEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoEncodeH264ProfileEXT const & ) const = default; +# else + bool operator==( VideoEncodeH264ProfileEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( memcmp( &stdProfileIdc, &rhs.stdProfileIdc, sizeof( StdVideoH264ProfileIdc ) ) == 0 ); + } + + bool operator!=( VideoEncodeH264ProfileEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264ProfileEXT; + const void * pNext = {}; + StdVideoH264ProfileIdc stdProfileIdc = {}; + }; + static_assert( sizeof( VideoEncodeH264ProfileEXT ) == sizeof( VkVideoEncodeH264ProfileEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoEncodeH264ProfileEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoEncodeH264SessionCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eVideoEncodeH264SessionCreateInfoEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoEXT( + VULKAN_HPP_NAMESPACE::VideoEncodeH264CreateFlagsEXT flags_ = {}, + VULKAN_HPP_NAMESPACE::Extent2D maxPictureSizeInMbs_ = {}, + const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdExtensionVersion_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , maxPictureSizeInMbs( maxPictureSizeInMbs_ ) + , pStdExtensionVersion( pStdExtensionVersion_ ) + {} + + VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoEXT( VideoEncodeH264SessionCreateInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + VideoEncodeH264SessionCreateInfoEXT( VkVideoEncodeH264SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoEncodeH264SessionCreateInfoEXT( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionCreateInfoEXT & + operator=( VideoEncodeH264SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoEncodeH264SessionCreateInfoEXT & + operator=( VkVideoEncodeH264SessionCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoEncodeH264SessionCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoEncodeH264SessionCreateInfoEXT & + setFlags( VULKAN_HPP_NAMESPACE::VideoEncodeH264CreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + VideoEncodeH264SessionCreateInfoEXT & + setMaxPictureSizeInMbs( VULKAN_HPP_NAMESPACE::Extent2D const & maxPictureSizeInMbs_ ) VULKAN_HPP_NOEXCEPT + { + maxPictureSizeInMbs = maxPictureSizeInMbs_; + return *this; + } + + VideoEncodeH264SessionCreateInfoEXT & setPStdExtensionVersion( + const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdExtensionVersion_ ) VULKAN_HPP_NOEXCEPT + { + pStdExtensionVersion = pStdExtensionVersion_; + return *this; + } + + operator VkVideoEncodeH264SessionCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoEncodeH264SessionCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoEncodeH264SessionCreateInfoEXT const & ) const = default; +# else + bool operator==( VideoEncodeH264SessionCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( maxPictureSizeInMbs == rhs.maxPictureSizeInMbs ) && ( pStdExtensionVersion == rhs.pStdExtensionVersion ); + } + + bool operator!=( VideoEncodeH264SessionCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264SessionCreateInfoEXT; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::VideoEncodeH264CreateFlagsEXT flags = {}; + VULKAN_HPP_NAMESPACE::Extent2D maxPictureSizeInMbs = {}; + const VULKAN_HPP_NAMESPACE::ExtensionProperties * pStdExtensionVersion = {}; + }; + static_assert( sizeof( VideoEncodeH264SessionCreateInfoEXT ) == sizeof( VkVideoEncodeH264SessionCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoEncodeH264SessionCreateInfoEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoEncodeH264SessionParametersAddInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eVideoEncodeH264SessionParametersAddInfoEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersAddInfoEXT( + uint32_t spsStdCount_ = {}, + const StdVideoH264SequenceParameterSet * pSpsStd_ = {}, + uint32_t ppsStdCount_ = {}, + const StdVideoH264PictureParameterSet * pPpsStd_ = {} ) VULKAN_HPP_NOEXCEPT + : spsStdCount( spsStdCount_ ) + , pSpsStd( pSpsStd_ ) + , ppsStdCount( ppsStdCount_ ) + , pPpsStd( pPpsStd_ ) + {} + + VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersAddInfoEXT( + VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoEncodeH264SessionParametersAddInfoEXT( VkVideoEncodeH264SessionParametersAddInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : VideoEncodeH264SessionParametersAddInfoEXT( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoEncodeH264SessionParametersAddInfoEXT( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & spsStd_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & ppsStd_ = {} ) + : spsStdCount( static_cast( spsStd_.size() ) ) + , pSpsStd( spsStd_.data() ) + , ppsStdCount( static_cast( ppsStd_.size() ) ) + , pPpsStd( ppsStd_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersAddInfoEXT & + operator=( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoEncodeH264SessionParametersAddInfoEXT & + operator=( VkVideoEncodeH264SessionParametersAddInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoEncodeH264SessionParametersAddInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoEncodeH264SessionParametersAddInfoEXT & setSpsStdCount( uint32_t spsStdCount_ ) VULKAN_HPP_NOEXCEPT + { + spsStdCount = spsStdCount_; + return *this; + } + + VideoEncodeH264SessionParametersAddInfoEXT & + setPSpsStd( const StdVideoH264SequenceParameterSet * pSpsStd_ ) VULKAN_HPP_NOEXCEPT + { + pSpsStd = pSpsStd_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoEncodeH264SessionParametersAddInfoEXT & + setSpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & spsStd_ ) + VULKAN_HPP_NOEXCEPT + { + spsStdCount = static_cast( spsStd_.size() ); + pSpsStd = spsStd_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + VideoEncodeH264SessionParametersAddInfoEXT & setPpsStdCount( uint32_t ppsStdCount_ ) VULKAN_HPP_NOEXCEPT + { + ppsStdCount = ppsStdCount_; + return *this; + } + + VideoEncodeH264SessionParametersAddInfoEXT & + setPPpsStd( const StdVideoH264PictureParameterSet * pPpsStd_ ) VULKAN_HPP_NOEXCEPT + { + pPpsStd = pPpsStd_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoEncodeH264SessionParametersAddInfoEXT & + setPpsStd( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & ppsStd_ ) + VULKAN_HPP_NOEXCEPT + { + ppsStdCount = static_cast( ppsStd_.size() ); + pPpsStd = ppsStd_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkVideoEncodeH264SessionParametersAddInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoEncodeH264SessionParametersAddInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoEncodeH264SessionParametersAddInfoEXT const & ) const = default; +# else + bool operator==( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( spsStdCount == rhs.spsStdCount ) && + ( pSpsStd == rhs.pSpsStd ) && ( ppsStdCount == rhs.ppsStdCount ) && ( pPpsStd == rhs.pPpsStd ); + } + + bool operator!=( VideoEncodeH264SessionParametersAddInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264SessionParametersAddInfoEXT; + const void * pNext = {}; + uint32_t spsStdCount = {}; + const StdVideoH264SequenceParameterSet * pSpsStd = {}; + uint32_t ppsStdCount = {}; + const StdVideoH264PictureParameterSet * pPpsStd = {}; + }; + static_assert( sizeof( VideoEncodeH264SessionParametersAddInfoEXT ) == + sizeof( VkVideoEncodeH264SessionParametersAddInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoEncodeH264SessionParametersAddInfoEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoEncodeH264SessionParametersCreateInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eVideoEncodeH264SessionParametersCreateInfoEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersCreateInfoEXT( + uint32_t maxSpsStdCount_ = {}, + uint32_t maxPpsStdCount_ = {}, + const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT * pParametersAddInfo_ = {} ) + VULKAN_HPP_NOEXCEPT + : maxSpsStdCount( maxSpsStdCount_ ) + , maxPpsStdCount( maxPpsStdCount_ ) + , pParametersAddInfo( pParametersAddInfo_ ) + {} + + VULKAN_HPP_CONSTEXPR VideoEncodeH264SessionParametersCreateInfoEXT( + VideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoEncodeH264SessionParametersCreateInfoEXT( VkVideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) + VULKAN_HPP_NOEXCEPT + : VideoEncodeH264SessionParametersCreateInfoEXT( + *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264SessionParametersCreateInfoEXT & + operator=( VideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoEncodeH264SessionParametersCreateInfoEXT & + operator=( VkVideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoEncodeH264SessionParametersCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoEncodeH264SessionParametersCreateInfoEXT & setMaxSpsStdCount( uint32_t maxSpsStdCount_ ) VULKAN_HPP_NOEXCEPT + { + maxSpsStdCount = maxSpsStdCount_; + return *this; + } + + VideoEncodeH264SessionParametersCreateInfoEXT & setMaxPpsStdCount( uint32_t maxPpsStdCount_ ) VULKAN_HPP_NOEXCEPT + { + maxPpsStdCount = maxPpsStdCount_; + return *this; + } + + VideoEncodeH264SessionParametersCreateInfoEXT & setPParametersAddInfo( + const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT * pParametersAddInfo_ ) VULKAN_HPP_NOEXCEPT + { + pParametersAddInfo = pParametersAddInfo_; + return *this; + } + + operator VkVideoEncodeH264SessionParametersCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoEncodeH264SessionParametersCreateInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoEncodeH264SessionParametersCreateInfoEXT const & ) const = default; +# else + bool operator==( VideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxSpsStdCount == rhs.maxSpsStdCount ) && + ( maxPpsStdCount == rhs.maxPpsStdCount ) && ( pParametersAddInfo == rhs.pParametersAddInfo ); + } + + bool operator!=( VideoEncodeH264SessionParametersCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264SessionParametersCreateInfoEXT; + const void * pNext = {}; + uint32_t maxSpsStdCount = {}; + uint32_t maxPpsStdCount = {}; + const VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT * pParametersAddInfo = {}; + }; + static_assert( sizeof( VideoEncodeH264SessionParametersCreateInfoEXT ) == + sizeof( VkVideoEncodeH264SessionParametersCreateInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoEncodeH264SessionParametersCreateInfoEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoEncodeH264VclFrameInfoEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeH264VclFrameInfoEXT; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoEncodeH264VclFrameInfoEXT( + uint8_t refDefaultFinalList0EntryCount_ = {}, + const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pRefDefaultFinalList0Entries_ = {}, + uint8_t refDefaultFinalList1EntryCount_ = {}, + const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pRefDefaultFinalList1Entries_ = {}, + uint32_t naluSliceEntryCount_ = {}, + const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceEXT * pNaluSliceEntries_ = {}, + const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pCurrentPictureInfo_ = {} ) VULKAN_HPP_NOEXCEPT + : refDefaultFinalList0EntryCount( refDefaultFinalList0EntryCount_ ) + , pRefDefaultFinalList0Entries( pRefDefaultFinalList0Entries_ ) + , refDefaultFinalList1EntryCount( refDefaultFinalList1EntryCount_ ) + , pRefDefaultFinalList1Entries( pRefDefaultFinalList1Entries_ ) + , naluSliceEntryCount( naluSliceEntryCount_ ) + , pNaluSliceEntries( pNaluSliceEntries_ ) + , pCurrentPictureInfo( pCurrentPictureInfo_ ) + {} + + VULKAN_HPP_CONSTEXPR + VideoEncodeH264VclFrameInfoEXT( VideoEncodeH264VclFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoEncodeH264VclFrameInfoEXT( VkVideoEncodeH264VclFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoEncodeH264VclFrameInfoEXT( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoEncodeH264VclFrameInfoEXT( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + refDefaultFinalList0Entries_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + refDefaultFinalList1Entries_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + naluSliceEntries_ = {}, + const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pCurrentPictureInfo_ = {} ) + : refDefaultFinalList0EntryCount( static_cast( refDefaultFinalList0Entries_.size() ) ) + , pRefDefaultFinalList0Entries( refDefaultFinalList0Entries_.data() ) + , refDefaultFinalList1EntryCount( static_cast( refDefaultFinalList1Entries_.size() ) ) + , pRefDefaultFinalList1Entries( refDefaultFinalList1Entries_.data() ) + , naluSliceEntryCount( static_cast( naluSliceEntries_.size() ) ) + , pNaluSliceEntries( naluSliceEntries_.data() ) + , pCurrentPictureInfo( pCurrentPictureInfo_ ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoEncodeH264VclFrameInfoEXT & + operator=( VideoEncodeH264VclFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoEncodeH264VclFrameInfoEXT & operator=( VkVideoEncodeH264VclFrameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoEncodeH264VclFrameInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoEncodeH264VclFrameInfoEXT & + setRefDefaultFinalList0EntryCount( uint8_t refDefaultFinalList0EntryCount_ ) VULKAN_HPP_NOEXCEPT + { + refDefaultFinalList0EntryCount = refDefaultFinalList0EntryCount_; + return *this; + } + + VideoEncodeH264VclFrameInfoEXT & setPRefDefaultFinalList0Entries( + const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pRefDefaultFinalList0Entries_ ) VULKAN_HPP_NOEXCEPT + { + pRefDefaultFinalList0Entries = pRefDefaultFinalList0Entries_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoEncodeH264VclFrameInfoEXT & setRefDefaultFinalList0Entries( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + refDefaultFinalList0Entries_ ) VULKAN_HPP_NOEXCEPT + { + refDefaultFinalList0EntryCount = static_cast( refDefaultFinalList0Entries_.size() ); + pRefDefaultFinalList0Entries = refDefaultFinalList0Entries_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + VideoEncodeH264VclFrameInfoEXT & + setRefDefaultFinalList1EntryCount( uint8_t refDefaultFinalList1EntryCount_ ) VULKAN_HPP_NOEXCEPT + { + refDefaultFinalList1EntryCount = refDefaultFinalList1EntryCount_; + return *this; + } + + VideoEncodeH264VclFrameInfoEXT & setPRefDefaultFinalList1Entries( + const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pRefDefaultFinalList1Entries_ ) VULKAN_HPP_NOEXCEPT + { + pRefDefaultFinalList1Entries = pRefDefaultFinalList1Entries_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoEncodeH264VclFrameInfoEXT & setRefDefaultFinalList1Entries( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + refDefaultFinalList1Entries_ ) VULKAN_HPP_NOEXCEPT + { + refDefaultFinalList1EntryCount = static_cast( refDefaultFinalList1Entries_.size() ); + pRefDefaultFinalList1Entries = refDefaultFinalList1Entries_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + VideoEncodeH264VclFrameInfoEXT & setNaluSliceEntryCount( uint32_t naluSliceEntryCount_ ) VULKAN_HPP_NOEXCEPT + { + naluSliceEntryCount = naluSliceEntryCount_; + return *this; + } + + VideoEncodeH264VclFrameInfoEXT & setPNaluSliceEntries( + const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceEXT * pNaluSliceEntries_ ) VULKAN_HPP_NOEXCEPT + { + pNaluSliceEntries = pNaluSliceEntries_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VideoEncodeH264VclFrameInfoEXT & setNaluSliceEntries( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + naluSliceEntries_ ) VULKAN_HPP_NOEXCEPT + { + naluSliceEntryCount = static_cast( naluSliceEntries_.size() ); + pNaluSliceEntries = naluSliceEntries_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + VideoEncodeH264VclFrameInfoEXT & setPCurrentPictureInfo( + const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pCurrentPictureInfo_ ) VULKAN_HPP_NOEXCEPT + { + pCurrentPictureInfo = pCurrentPictureInfo_; + return *this; + } + + operator VkVideoEncodeH264VclFrameInfoEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoEncodeH264VclFrameInfoEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoEncodeH264VclFrameInfoEXT const & ) const = default; +# else + bool operator==( VideoEncodeH264VclFrameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( refDefaultFinalList0EntryCount == rhs.refDefaultFinalList0EntryCount ) && + ( pRefDefaultFinalList0Entries == rhs.pRefDefaultFinalList0Entries ) && + ( refDefaultFinalList1EntryCount == rhs.refDefaultFinalList1EntryCount ) && + ( pRefDefaultFinalList1Entries == rhs.pRefDefaultFinalList1Entries ) && + ( naluSliceEntryCount == rhs.naluSliceEntryCount ) && ( pNaluSliceEntries == rhs.pNaluSliceEntries ) && + ( pCurrentPictureInfo == rhs.pCurrentPictureInfo ); + } + + bool operator!=( VideoEncodeH264VclFrameInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeH264VclFrameInfoEXT; + const void * pNext = {}; + uint8_t refDefaultFinalList0EntryCount = {}; + const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pRefDefaultFinalList0Entries = {}; + uint8_t refDefaultFinalList1EntryCount = {}; + const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pRefDefaultFinalList1Entries = {}; + uint32_t naluSliceEntryCount = {}; + const VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceEXT * pNaluSliceEntries = {}; + const VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT * pCurrentPictureInfo = {}; + }; + static_assert( sizeof( VideoEncodeH264VclFrameInfoEXT ) == sizeof( VkVideoEncodeH264VclFrameInfoEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoEncodeH264VclFrameInfoEXT; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoEncodeRateControlInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoEncodeRateControlInfoKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + VideoEncodeRateControlInfoKHR( VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR flags_ = {}, + VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR rateControlMode_ = + VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR::eNone, + uint32_t averageBitrate_ = {}, + uint16_t peakToAverageBitrateRatio_ = {}, + uint16_t frameRateNumerator_ = {}, + uint16_t frameRateDenominator_ = {}, + uint32_t virtualBufferSizeInMs_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , rateControlMode( rateControlMode_ ) + , averageBitrate( averageBitrate_ ) + , peakToAverageBitrateRatio( peakToAverageBitrateRatio_ ) + , frameRateNumerator( frameRateNumerator_ ) + , frameRateDenominator( frameRateDenominator_ ) + , virtualBufferSizeInMs( virtualBufferSizeInMs_ ) + {} + + VULKAN_HPP_CONSTEXPR + VideoEncodeRateControlInfoKHR( VideoEncodeRateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoEncodeRateControlInfoKHR( VkVideoEncodeRateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoEncodeRateControlInfoKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoEncodeRateControlInfoKHR & + operator=( VideoEncodeRateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoEncodeRateControlInfoKHR & operator=( VkVideoEncodeRateControlInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoEncodeRateControlInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoEncodeRateControlInfoKHR & + setFlags( VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + VideoEncodeRateControlInfoKHR & setRateControlMode( + VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR rateControlMode_ ) VULKAN_HPP_NOEXCEPT + { + rateControlMode = rateControlMode_; + return *this; + } + + VideoEncodeRateControlInfoKHR & setAverageBitrate( uint32_t averageBitrate_ ) VULKAN_HPP_NOEXCEPT + { + averageBitrate = averageBitrate_; + return *this; + } + + VideoEncodeRateControlInfoKHR & + setPeakToAverageBitrateRatio( uint16_t peakToAverageBitrateRatio_ ) VULKAN_HPP_NOEXCEPT + { + peakToAverageBitrateRatio = peakToAverageBitrateRatio_; + return *this; + } + + VideoEncodeRateControlInfoKHR & setFrameRateNumerator( uint16_t frameRateNumerator_ ) VULKAN_HPP_NOEXCEPT + { + frameRateNumerator = frameRateNumerator_; + return *this; + } + + VideoEncodeRateControlInfoKHR & setFrameRateDenominator( uint16_t frameRateDenominator_ ) VULKAN_HPP_NOEXCEPT + { + frameRateDenominator = frameRateDenominator_; + return *this; + } + + VideoEncodeRateControlInfoKHR & setVirtualBufferSizeInMs( uint32_t virtualBufferSizeInMs_ ) VULKAN_HPP_NOEXCEPT + { + virtualBufferSizeInMs = virtualBufferSizeInMs_; + return *this; + } + + operator VkVideoEncodeRateControlInfoKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoEncodeRateControlInfoKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoEncodeRateControlInfoKHR const & ) const = default; +# else + bool operator==( VideoEncodeRateControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( rateControlMode == rhs.rateControlMode ) && ( averageBitrate == rhs.averageBitrate ) && + ( peakToAverageBitrateRatio == rhs.peakToAverageBitrateRatio ) && + ( frameRateNumerator == rhs.frameRateNumerator ) && ( frameRateDenominator == rhs.frameRateDenominator ) && + ( virtualBufferSizeInMs == rhs.virtualBufferSizeInMs ); + } + + bool operator!=( VideoEncodeRateControlInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoEncodeRateControlInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::VideoEncodeRateControlFlagsKHR flags = {}; + VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR rateControlMode = + VULKAN_HPP_NAMESPACE::VideoEncodeRateControlModeFlagBitsKHR::eNone; + uint32_t averageBitrate = {}; + uint16_t peakToAverageBitrateRatio = {}; + uint16_t frameRateNumerator = {}; + uint16_t frameRateDenominator = {}; + uint32_t virtualBufferSizeInMs = {}; + }; + static_assert( sizeof( VideoEncodeRateControlInfoKHR ) == sizeof( VkVideoEncodeRateControlInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoEncodeRateControlInfoKHR; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + struct VideoQueueFamilyProperties2KHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eVideoQueueFamilyProperties2KHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR VideoQueueFamilyProperties2KHR( + VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagsKHR videoCodecOperations_ = {} ) VULKAN_HPP_NOEXCEPT + : videoCodecOperations( videoCodecOperations_ ) + {} + + VULKAN_HPP_CONSTEXPR + VideoQueueFamilyProperties2KHR( VideoQueueFamilyProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoQueueFamilyProperties2KHR( VkVideoQueueFamilyProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + : VideoQueueFamilyProperties2KHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 VideoQueueFamilyProperties2KHR & + operator=( VideoQueueFamilyProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + VideoQueueFamilyProperties2KHR & operator=( VkVideoQueueFamilyProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + VideoQueueFamilyProperties2KHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VideoQueueFamilyProperties2KHR & setVideoCodecOperations( + VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagsKHR videoCodecOperations_ ) VULKAN_HPP_NOEXCEPT + { + videoCodecOperations = videoCodecOperations_; + return *this; + } + + operator VkVideoQueueFamilyProperties2KHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkVideoQueueFamilyProperties2KHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( VideoQueueFamilyProperties2KHR const & ) const = default; +# else + bool operator==( VideoQueueFamilyProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( videoCodecOperations == rhs.videoCodecOperations ); + } + + bool operator!=( VideoQueueFamilyProperties2KHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eVideoQueueFamilyProperties2KHR; + void * pNext = {}; + VULKAN_HPP_NAMESPACE::VideoCodecOperationFlagsKHR videoCodecOperations = {}; + }; + static_assert( sizeof( VideoQueueFamilyProperties2KHR ) == sizeof( VkVideoQueueFamilyProperties2KHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = VideoQueueFamilyProperties2KHR; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_USE_PLATFORM_WAYLAND_KHR ) + struct WaylandSurfaceCreateInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWaylandSurfaceCreateInfoKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR WaylandSurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ = {}, + struct wl_display * display_ = {}, + struct wl_surface * surface_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , display( display_ ) + , surface( surface_ ) + {} + + VULKAN_HPP_CONSTEXPR + WaylandSurfaceCreateInfoKHR( WaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + WaylandSurfaceCreateInfoKHR( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : WaylandSurfaceCreateInfoKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 WaylandSurfaceCreateInfoKHR & + operator=( WaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + WaylandSurfaceCreateInfoKHR & operator=( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + WaylandSurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + WaylandSurfaceCreateInfoKHR & + setFlags( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + WaylandSurfaceCreateInfoKHR & setDisplay( struct wl_display * display_ ) VULKAN_HPP_NOEXCEPT + { + display = display_; + return *this; + } + + WaylandSurfaceCreateInfoKHR & setSurface( struct wl_surface * surface_ ) VULKAN_HPP_NOEXCEPT + { + surface = surface_; + return *this; + } + + operator VkWaylandSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkWaylandSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( WaylandSurfaceCreateInfoKHR const & ) const = default; +# else + bool operator==( WaylandSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( display == rhs.display ) && + ( surface == rhs.surface ); + } + + bool operator!=( WaylandSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWaylandSurfaceCreateInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags = {}; + struct wl_display * display = {}; + struct wl_surface * surface = {}; + }; + static_assert( sizeof( WaylandSurfaceCreateInfoKHR ) == sizeof( VkWaylandSurfaceCreateInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = WaylandSurfaceCreateInfoKHR; + }; +#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + struct Win32KeyedMutexAcquireReleaseInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + Win32KeyedMutexAcquireReleaseInfoKHR( uint32_t acquireCount_ = {}, + const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs_ = {}, + const uint64_t * pAcquireKeys_ = {}, + const uint32_t * pAcquireTimeouts_ = {}, + uint32_t releaseCount_ = {}, + const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs_ = {}, + const uint64_t * pReleaseKeys_ = {} ) VULKAN_HPP_NOEXCEPT + : acquireCount( acquireCount_ ) + , pAcquireSyncs( pAcquireSyncs_ ) + , pAcquireKeys( pAcquireKeys_ ) + , pAcquireTimeouts( pAcquireTimeouts_ ) + , releaseCount( releaseCount_ ) + , pReleaseSyncs( pReleaseSyncs_ ) + , pReleaseKeys( pReleaseKeys_ ) + {} + + VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoKHR( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + Win32KeyedMutexAcquireReleaseInfoKHR( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : Win32KeyedMutexAcquireReleaseInfoKHR( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + Win32KeyedMutexAcquireReleaseInfoKHR( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireSyncs_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireKeys_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireTimeouts_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + releaseSyncs_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & releaseKeys_ = {} ) + : acquireCount( static_cast( acquireSyncs_.size() ) ) + , pAcquireSyncs( acquireSyncs_.data() ) + , pAcquireKeys( acquireKeys_.data() ) + , pAcquireTimeouts( acquireTimeouts_.data() ) + , releaseCount( static_cast( releaseSyncs_.size() ) ) + , pReleaseSyncs( releaseSyncs_.data() ) + , pReleaseKeys( releaseKeys_.data() ) + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireKeys_.size() ); + VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireTimeouts_.size() ); + VULKAN_HPP_ASSERT( acquireKeys_.size() == acquireTimeouts_.size() ); +# else + if ( acquireSyncs_.size() != acquireKeys_.size() ) + { + throw LogicError( + VULKAN_HPP_NAMESPACE_STRING + "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireSyncs_.size() != acquireKeys_.size()" ); + } + if ( acquireSyncs_.size() != acquireTimeouts_.size() ) + { + throw LogicError( + VULKAN_HPP_NAMESPACE_STRING + "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireSyncs_.size() != acquireTimeouts_.size()" ); + } + if ( acquireKeys_.size() != acquireTimeouts_.size() ) + { + throw LogicError( + VULKAN_HPP_NAMESPACE_STRING + "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireKeys_.size() != acquireTimeouts_.size()" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ + +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( releaseSyncs_.size() == releaseKeys_.size() ); +# else + if ( releaseSyncs_.size() != releaseKeys_.size() ) + { + throw LogicError( + VULKAN_HPP_NAMESPACE_STRING + "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: releaseSyncs_.size() != releaseKeys_.size()" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoKHR & + operator=( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + Win32KeyedMutexAcquireReleaseInfoKHR & + operator=( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + Win32KeyedMutexAcquireReleaseInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT + { + acquireCount = acquireCount_; + return *this; + } + + Win32KeyedMutexAcquireReleaseInfoKHR & + setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT + { + pAcquireSyncs = pAcquireSyncs_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireSyncs( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireSyncs_ ) + VULKAN_HPP_NOEXCEPT + { + acquireCount = static_cast( acquireSyncs_.size() ); + pAcquireSyncs = acquireSyncs_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireKeys( const uint64_t * pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT + { + pAcquireKeys = pAcquireKeys_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireKeys( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireKeys_ ) VULKAN_HPP_NOEXCEPT + { + acquireCount = static_cast( acquireKeys_.size() ); + pAcquireKeys = acquireKeys_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireTimeouts( const uint32_t * pAcquireTimeouts_ ) VULKAN_HPP_NOEXCEPT + { + pAcquireTimeouts = pAcquireTimeouts_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireTimeouts( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireTimeouts_ ) VULKAN_HPP_NOEXCEPT + { + acquireCount = static_cast( acquireTimeouts_.size() ); + pAcquireTimeouts = acquireTimeouts_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT + { + releaseCount = releaseCount_; + return *this; + } + + Win32KeyedMutexAcquireReleaseInfoKHR & + setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT + { + pReleaseSyncs = pReleaseSyncs_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseSyncs( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & releaseSyncs_ ) + VULKAN_HPP_NOEXCEPT + { + releaseCount = static_cast( releaseSyncs_.size() ); + pReleaseSyncs = releaseSyncs_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseKeys( const uint64_t * pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT + { + pReleaseKeys = pReleaseKeys_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseKeys( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & releaseKeys_ ) VULKAN_HPP_NOEXCEPT + { + releaseCount = static_cast( releaseKeys_.size() ); + pReleaseKeys = releaseKeys_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkWin32KeyedMutexAcquireReleaseInfoKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkWin32KeyedMutexAcquireReleaseInfoKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( Win32KeyedMutexAcquireReleaseInfoKHR const & ) const = default; +# else + bool operator==( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( acquireCount == rhs.acquireCount ) && + ( pAcquireSyncs == rhs.pAcquireSyncs ) && ( pAcquireKeys == rhs.pAcquireKeys ) && + ( pAcquireTimeouts == rhs.pAcquireTimeouts ) && ( releaseCount == rhs.releaseCount ) && + ( pReleaseSyncs == rhs.pReleaseSyncs ) && ( pReleaseKeys == rhs.pReleaseKeys ); + } + + bool operator!=( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR; + const void * pNext = {}; + uint32_t acquireCount = {}; + const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs = {}; + const uint64_t * pAcquireKeys = {}; + const uint32_t * pAcquireTimeouts = {}; + uint32_t releaseCount = {}; + const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs = {}; + const uint64_t * pReleaseKeys = {}; + }; + static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoKHR ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = Win32KeyedMutexAcquireReleaseInfoKHR; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + struct Win32KeyedMutexAcquireReleaseInfoNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eWin32KeyedMutexAcquireReleaseInfoNV; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR + Win32KeyedMutexAcquireReleaseInfoNV( uint32_t acquireCount_ = {}, + const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs_ = {}, + const uint64_t * pAcquireKeys_ = {}, + const uint32_t * pAcquireTimeoutMilliseconds_ = {}, + uint32_t releaseCount_ = {}, + const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs_ = {}, + const uint64_t * pReleaseKeys_ = {} ) VULKAN_HPP_NOEXCEPT + : acquireCount( acquireCount_ ) + , pAcquireSyncs( pAcquireSyncs_ ) + , pAcquireKeys( pAcquireKeys_ ) + , pAcquireTimeoutMilliseconds( pAcquireTimeoutMilliseconds_ ) + , releaseCount( releaseCount_ ) + , pReleaseSyncs( pReleaseSyncs_ ) + , pReleaseKeys( pReleaseKeys_ ) + {} + + VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoNV( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + Win32KeyedMutexAcquireReleaseInfoNV( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + : Win32KeyedMutexAcquireReleaseInfoNV( *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + Win32KeyedMutexAcquireReleaseInfoNV( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireSyncs_, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireKeys_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireTimeoutMilliseconds_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + releaseSyncs_ = {}, + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & releaseKeys_ = {} ) + : acquireCount( static_cast( acquireSyncs_.size() ) ) + , pAcquireSyncs( acquireSyncs_.data() ) + , pAcquireKeys( acquireKeys_.data() ) + , pAcquireTimeoutMilliseconds( acquireTimeoutMilliseconds_.data() ) + , releaseCount( static_cast( releaseSyncs_.size() ) ) + , pReleaseSyncs( releaseSyncs_.data() ) + , pReleaseKeys( releaseKeys_.data() ) + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireKeys_.size() ); + VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireTimeoutMilliseconds_.size() ); + VULKAN_HPP_ASSERT( acquireKeys_.size() == acquireTimeoutMilliseconds_.size() ); +# else + if ( acquireSyncs_.size() != acquireKeys_.size() ) + { + throw LogicError( + VULKAN_HPP_NAMESPACE_STRING + "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireSyncs_.size() != acquireKeys_.size()" ); + } + if ( acquireSyncs_.size() != acquireTimeoutMilliseconds_.size() ) + { + throw LogicError( + VULKAN_HPP_NAMESPACE_STRING + "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireSyncs_.size() != acquireTimeoutMilliseconds_.size()" ); + } + if ( acquireKeys_.size() != acquireTimeoutMilliseconds_.size() ) + { + throw LogicError( + VULKAN_HPP_NAMESPACE_STRING + "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireKeys_.size() != acquireTimeoutMilliseconds_.size()" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ + +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( releaseSyncs_.size() == releaseKeys_.size() ); +# else + if ( releaseSyncs_.size() != releaseKeys_.size() ) + { + throw LogicError( + VULKAN_HPP_NAMESPACE_STRING + "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: releaseSyncs_.size() != releaseKeys_.size()" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 Win32KeyedMutexAcquireReleaseInfoNV & + operator=( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + Win32KeyedMutexAcquireReleaseInfoNV & + operator=( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + Win32KeyedMutexAcquireReleaseInfoNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + Win32KeyedMutexAcquireReleaseInfoNV & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT + { + acquireCount = acquireCount_; + return *this; + } + + Win32KeyedMutexAcquireReleaseInfoNV & + setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT + { + pAcquireSyncs = pAcquireSyncs_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + Win32KeyedMutexAcquireReleaseInfoNV & setAcquireSyncs( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireSyncs_ ) + VULKAN_HPP_NOEXCEPT + { + acquireCount = static_cast( acquireSyncs_.size() ); + pAcquireSyncs = acquireSyncs_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireKeys( const uint64_t * pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT + { + pAcquireKeys = pAcquireKeys_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + Win32KeyedMutexAcquireReleaseInfoNV & setAcquireKeys( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireKeys_ ) VULKAN_HPP_NOEXCEPT + { + acquireCount = static_cast( acquireKeys_.size() ); + pAcquireKeys = acquireKeys_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + Win32KeyedMutexAcquireReleaseInfoNV & + setPAcquireTimeoutMilliseconds( const uint32_t * pAcquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT + { + pAcquireTimeoutMilliseconds = pAcquireTimeoutMilliseconds_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + Win32KeyedMutexAcquireReleaseInfoNV & setAcquireTimeoutMilliseconds( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireTimeoutMilliseconds_ ) + VULKAN_HPP_NOEXCEPT + { + acquireCount = static_cast( acquireTimeoutMilliseconds_.size() ); + pAcquireTimeoutMilliseconds = acquireTimeoutMilliseconds_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + Win32KeyedMutexAcquireReleaseInfoNV & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT + { + releaseCount = releaseCount_; + return *this; + } + + Win32KeyedMutexAcquireReleaseInfoNV & + setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT + { + pReleaseSyncs = pReleaseSyncs_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + Win32KeyedMutexAcquireReleaseInfoNV & setReleaseSyncs( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & releaseSyncs_ ) + VULKAN_HPP_NOEXCEPT + { + releaseCount = static_cast( releaseSyncs_.size() ); + pReleaseSyncs = releaseSyncs_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseKeys( const uint64_t * pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT + { + pReleaseKeys = pReleaseKeys_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + Win32KeyedMutexAcquireReleaseInfoNV & setReleaseKeys( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & releaseKeys_ ) VULKAN_HPP_NOEXCEPT + { + releaseCount = static_cast( releaseKeys_.size() ); + pReleaseKeys = releaseKeys_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkWin32KeyedMutexAcquireReleaseInfoNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkWin32KeyedMutexAcquireReleaseInfoNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( Win32KeyedMutexAcquireReleaseInfoNV const & ) const = default; +# else + bool operator==( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( acquireCount == rhs.acquireCount ) && + ( pAcquireSyncs == rhs.pAcquireSyncs ) && ( pAcquireKeys == rhs.pAcquireKeys ) && + ( pAcquireTimeoutMilliseconds == rhs.pAcquireTimeoutMilliseconds ) && + ( releaseCount == rhs.releaseCount ) && ( pReleaseSyncs == rhs.pReleaseSyncs ) && + ( pReleaseKeys == rhs.pReleaseKeys ); + } + + bool operator!=( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV; + const void * pNext = {}; + uint32_t acquireCount = {}; + const VULKAN_HPP_NAMESPACE::DeviceMemory * pAcquireSyncs = {}; + const uint64_t * pAcquireKeys = {}; + const uint32_t * pAcquireTimeoutMilliseconds = {}; + uint32_t releaseCount = {}; + const VULKAN_HPP_NAMESPACE::DeviceMemory * pReleaseSyncs = {}; + const uint64_t * pReleaseKeys = {}; + }; + static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoNV ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = Win32KeyedMutexAcquireReleaseInfoNV; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + struct Win32SurfaceCreateInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32SurfaceCreateInfoKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR Win32SurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ = {}, + HINSTANCE hinstance_ = {}, + HWND hwnd_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , hinstance( hinstance_ ) + , hwnd( hwnd_ ) + {} + + VULKAN_HPP_CONSTEXPR + Win32SurfaceCreateInfoKHR( Win32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + Win32SurfaceCreateInfoKHR( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : Win32SurfaceCreateInfoKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 Win32SurfaceCreateInfoKHR & + operator=( Win32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + Win32SurfaceCreateInfoKHR & operator=( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + Win32SurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + Win32SurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + Win32SurfaceCreateInfoKHR & setHinstance( HINSTANCE hinstance_ ) VULKAN_HPP_NOEXCEPT + { + hinstance = hinstance_; + return *this; + } + + Win32SurfaceCreateInfoKHR & setHwnd( HWND hwnd_ ) VULKAN_HPP_NOEXCEPT + { + hwnd = hwnd_; + return *this; + } + + operator VkWin32SurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkWin32SurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( Win32SurfaceCreateInfoKHR const & ) const = default; +# else + bool operator==( Win32SurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( hinstance == rhs.hinstance ) && ( hwnd == rhs.hwnd ); + } + + bool operator!=( Win32SurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32SurfaceCreateInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags = {}; + HINSTANCE hinstance = {}; + HWND hwnd = {}; + }; + static_assert( sizeof( Win32SurfaceCreateInfoKHR ) == sizeof( VkWin32SurfaceCreateInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = Win32SurfaceCreateInfoKHR; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + struct WriteDescriptorSetAccelerationStructureKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eWriteDescriptorSetAccelerationStructureKHR; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureKHR( + uint32_t accelerationStructureCount_ = {}, + const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures_ = {} ) VULKAN_HPP_NOEXCEPT + : accelerationStructureCount( accelerationStructureCount_ ) + , pAccelerationStructures( pAccelerationStructures_ ) + {} + + VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureKHR( + WriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + WriteDescriptorSetAccelerationStructureKHR( VkWriteDescriptorSetAccelerationStructureKHR const & rhs ) + VULKAN_HPP_NOEXCEPT + : WriteDescriptorSetAccelerationStructureKHR( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + WriteDescriptorSetAccelerationStructureKHR( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + accelerationStructures_ ) + : accelerationStructureCount( static_cast( accelerationStructures_.size() ) ) + , pAccelerationStructures( accelerationStructures_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureKHR & + operator=( WriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + WriteDescriptorSetAccelerationStructureKHR & + operator=( VkWriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + WriteDescriptorSetAccelerationStructureKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + WriteDescriptorSetAccelerationStructureKHR & + setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) VULKAN_HPP_NOEXCEPT + { + accelerationStructureCount = accelerationStructureCount_; + return *this; + } + + WriteDescriptorSetAccelerationStructureKHR & setPAccelerationStructures( + const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures_ ) VULKAN_HPP_NOEXCEPT + { + pAccelerationStructures = pAccelerationStructures_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + WriteDescriptorSetAccelerationStructureKHR & setAccelerationStructures( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + accelerationStructures_ ) VULKAN_HPP_NOEXCEPT + { + accelerationStructureCount = static_cast( accelerationStructures_.size() ); + pAccelerationStructures = accelerationStructures_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkWriteDescriptorSetAccelerationStructureKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkWriteDescriptorSetAccelerationStructureKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( WriteDescriptorSetAccelerationStructureKHR const & ) const = default; +#else + bool operator==( WriteDescriptorSetAccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( accelerationStructureCount == rhs.accelerationStructureCount ) && + ( pAccelerationStructures == rhs.pAccelerationStructures ); + } + + bool operator!=( WriteDescriptorSetAccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetAccelerationStructureKHR; + const void * pNext = {}; + uint32_t accelerationStructureCount = {}; + const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures = {}; + }; + static_assert( sizeof( WriteDescriptorSetAccelerationStructureKHR ) == + sizeof( VkWriteDescriptorSetAccelerationStructureKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = WriteDescriptorSetAccelerationStructureKHR; + }; + + struct WriteDescriptorSetAccelerationStructureNV + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eWriteDescriptorSetAccelerationStructureNV; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureNV( + uint32_t accelerationStructureCount_ = {}, + const VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructures_ = {} ) VULKAN_HPP_NOEXCEPT + : accelerationStructureCount( accelerationStructureCount_ ) + , pAccelerationStructures( pAccelerationStructures_ ) + {} + + VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureNV( + WriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + WriteDescriptorSetAccelerationStructureNV( VkWriteDescriptorSetAccelerationStructureNV const & rhs ) + VULKAN_HPP_NOEXCEPT + : WriteDescriptorSetAccelerationStructureNV( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + WriteDescriptorSetAccelerationStructureNV( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + accelerationStructures_ ) + : accelerationStructureCount( static_cast( accelerationStructures_.size() ) ) + , pAccelerationStructures( accelerationStructures_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetAccelerationStructureNV & + operator=( WriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + WriteDescriptorSetAccelerationStructureNV & + operator=( VkWriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + WriteDescriptorSetAccelerationStructureNV & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + WriteDescriptorSetAccelerationStructureNV & + setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) VULKAN_HPP_NOEXCEPT + { + accelerationStructureCount = accelerationStructureCount_; + return *this; + } + + WriteDescriptorSetAccelerationStructureNV & setPAccelerationStructures( + const VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructures_ ) VULKAN_HPP_NOEXCEPT + { + pAccelerationStructures = pAccelerationStructures_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + WriteDescriptorSetAccelerationStructureNV & setAccelerationStructures( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & + accelerationStructures_ ) VULKAN_HPP_NOEXCEPT + { + accelerationStructureCount = static_cast( accelerationStructures_.size() ); + pAccelerationStructures = accelerationStructures_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkWriteDescriptorSetAccelerationStructureNV const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkWriteDescriptorSetAccelerationStructureNV &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( WriteDescriptorSetAccelerationStructureNV const & ) const = default; +#else + bool operator==( WriteDescriptorSetAccelerationStructureNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && + ( accelerationStructureCount == rhs.accelerationStructureCount ) && + ( pAccelerationStructures == rhs.pAccelerationStructures ); + } + + bool operator!=( WriteDescriptorSetAccelerationStructureNV const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetAccelerationStructureNV; + const void * pNext = {}; + uint32_t accelerationStructureCount = {}; + const VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructures = {}; + }; + static_assert( sizeof( WriteDescriptorSetAccelerationStructureNV ) == + sizeof( VkWriteDescriptorSetAccelerationStructureNV ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = WriteDescriptorSetAccelerationStructureNV; + }; + + struct WriteDescriptorSetInlineUniformBlockEXT + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = + StructureType::eWriteDescriptorSetInlineUniformBlockEXT; + +#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR WriteDescriptorSetInlineUniformBlockEXT( uint32_t dataSize_ = {}, + const void * pData_ = {} ) VULKAN_HPP_NOEXCEPT + : dataSize( dataSize_ ) + , pData( pData_ ) + {} + + VULKAN_HPP_CONSTEXPR WriteDescriptorSetInlineUniformBlockEXT( WriteDescriptorSetInlineUniformBlockEXT const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + WriteDescriptorSetInlineUniformBlockEXT( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT + : WriteDescriptorSetInlineUniformBlockEXT( + *reinterpret_cast( &rhs ) ) + {} + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + template + WriteDescriptorSetInlineUniformBlockEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & data_ ) + : dataSize( static_cast( data_.size() * sizeof( T ) ) ), pData( data_.data() ) + {} +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 WriteDescriptorSetInlineUniformBlockEXT & + operator=( WriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + WriteDescriptorSetInlineUniformBlockEXT & + operator=( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + WriteDescriptorSetInlineUniformBlockEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + WriteDescriptorSetInlineUniformBlockEXT & setDataSize( uint32_t dataSize_ ) VULKAN_HPP_NOEXCEPT + { + dataSize = dataSize_; + return *this; + } + + WriteDescriptorSetInlineUniformBlockEXT & setPData( const void * pData_ ) VULKAN_HPP_NOEXCEPT + { + pData = pData_; + return *this; + } + +#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + template + WriteDescriptorSetInlineUniformBlockEXT & + setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & data_ ) VULKAN_HPP_NOEXCEPT + { + dataSize = static_cast( data_.size() * sizeof( T ) ); + pData = data_.data(); + return *this; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + operator VkWriteDescriptorSetInlineUniformBlockEXT const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkWriteDescriptorSetInlineUniformBlockEXT &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( WriteDescriptorSetInlineUniformBlockEXT const & ) const = default; +#else + bool operator==( WriteDescriptorSetInlineUniformBlockEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( dataSize == rhs.dataSize ) && ( pData == rhs.pData ); + } + + bool operator!=( WriteDescriptorSetInlineUniformBlockEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetInlineUniformBlockEXT; + const void * pNext = {}; + uint32_t dataSize = {}; + const void * pData = {}; + }; + static_assert( sizeof( WriteDescriptorSetInlineUniformBlockEXT ) == + sizeof( VkWriteDescriptorSetInlineUniformBlockEXT ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = WriteDescriptorSetInlineUniformBlockEXT; + }; + +#if defined( VK_USE_PLATFORM_XCB_KHR ) + struct XcbSurfaceCreateInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eXcbSurfaceCreateInfoKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR XcbSurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ = {}, + xcb_connection_t * connection_ = {}, + xcb_window_t window_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , connection( connection_ ) + , window( window_ ) + {} + + VULKAN_HPP_CONSTEXPR XcbSurfaceCreateInfoKHR( XcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + XcbSurfaceCreateInfoKHR( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : XcbSurfaceCreateInfoKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 XcbSurfaceCreateInfoKHR & + operator=( XcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + XcbSurfaceCreateInfoKHR & operator=( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + XcbSurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + XcbSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + XcbSurfaceCreateInfoKHR & setConnection( xcb_connection_t * connection_ ) VULKAN_HPP_NOEXCEPT + { + connection = connection_; + return *this; + } + + XcbSurfaceCreateInfoKHR & setWindow( xcb_window_t window_ ) VULKAN_HPP_NOEXCEPT + { + window = window_; + return *this; + } + + operator VkXcbSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkXcbSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( XcbSurfaceCreateInfoKHR const & ) const = default; +# else + bool operator==( XcbSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && + ( connection == rhs.connection ) && ( memcmp( &window, &rhs.window, sizeof( xcb_window_t ) ) == 0 ); + } + + bool operator!=( XcbSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXcbSurfaceCreateInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags = {}; + xcb_connection_t * connection = {}; + xcb_window_t window = {}; + }; + static_assert( sizeof( XcbSurfaceCreateInfoKHR ) == sizeof( VkXcbSurfaceCreateInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = XcbSurfaceCreateInfoKHR; + }; +#endif /*VK_USE_PLATFORM_XCB_KHR*/ + +#if defined( VK_USE_PLATFORM_XLIB_KHR ) + struct XlibSurfaceCreateInfoKHR + { + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eXlibSurfaceCreateInfoKHR; + +# if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR XlibSurfaceCreateInfoKHR( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ = {}, + Display * dpy_ = {}, + Window window_ = {} ) VULKAN_HPP_NOEXCEPT + : flags( flags_ ) + , dpy( dpy_ ) + , window( window_ ) + {} + + VULKAN_HPP_CONSTEXPR XlibSurfaceCreateInfoKHR( XlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + XlibSurfaceCreateInfoKHR( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : XlibSurfaceCreateInfoKHR( *reinterpret_cast( &rhs ) ) + {} +# endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ + + VULKAN_HPP_CONSTEXPR_14 XlibSurfaceCreateInfoKHR & + operator=( XlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + XlibSurfaceCreateInfoKHR & operator=( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + + XlibSurfaceCreateInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + XlibSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT + { + flags = flags_; + return *this; + } + + XlibSurfaceCreateInfoKHR & setDpy( Display * dpy_ ) VULKAN_HPP_NOEXCEPT + { + dpy = dpy_; + return *this; + } + + XlibSurfaceCreateInfoKHR & setWindow( Window window_ ) VULKAN_HPP_NOEXCEPT + { + window = window_; + return *this; + } + + operator VkXlibSurfaceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkXlibSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( XlibSurfaceCreateInfoKHR const & ) const = default; +# else + bool operator==( XlibSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( dpy == rhs.dpy ) && + ( memcmp( &window, &rhs.window, sizeof( Window ) ) == 0 ); + } + + bool operator!=( XlibSurfaceCreateInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXlibSurfaceCreateInfoKHR; + const void * pNext = {}; + VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags = {}; + Display * dpy = {}; + Window window = {}; + }; + static_assert( sizeof( XlibSurfaceCreateInfoKHR ) == sizeof( VkXlibSurfaceCreateInfoKHR ), + "struct and wrapper have different size!" ); + static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); + + template <> + struct CppType + { + using Type = XlibSurfaceCreateInfoKHR; + }; +#endif /*VK_USE_PLATFORM_XLIB_KHR*/ + + 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: + VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT() = default; + VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT + DebugReportCallbackEXT( VkDebugReportCallbackEXT debugReportCallbackEXT ) VULKAN_HPP_NOEXCEPT + : m_debugReportCallbackEXT( debugReportCallbackEXT ) + {} + +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + DebugReportCallbackEXT & operator=( VkDebugReportCallbackEXT debugReportCallbackEXT ) VULKAN_HPP_NOEXCEPT + { + m_debugReportCallbackEXT = debugReportCallbackEXT; + return *this; + } +#endif + + DebugReportCallbackEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + { + m_debugReportCallbackEXT = {}; + return *this; + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DebugReportCallbackEXT const & ) const = default; +#else + bool operator==( DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_debugReportCallbackEXT == rhs.m_debugReportCallbackEXT; + } + + bool operator!=( DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_debugReportCallbackEXT != rhs.m_debugReportCallbackEXT; + } + + bool operator<( DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_debugReportCallbackEXT < rhs.m_debugReportCallbackEXT; + } +#endif + + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDebugReportCallbackEXT() const VULKAN_HPP_NOEXCEPT + { + return m_debugReportCallbackEXT; + } + + explicit operator bool() const VULKAN_HPP_NOEXCEPT + { + return m_debugReportCallbackEXT != VK_NULL_HANDLE; + } + + bool operator!() const VULKAN_HPP_NOEXCEPT + { + return m_debugReportCallbackEXT == VK_NULL_HANDLE; + } + + private: + VkDebugReportCallbackEXT m_debugReportCallbackEXT = {}; + }; + static_assert( sizeof( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT ) == sizeof( VkDebugReportCallbackEXT ), + "handle and wrapper have different size!" ); + + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type + { + using type = VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + + 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: + VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT() = default; + VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT + DebugUtilsMessengerEXT( VkDebugUtilsMessengerEXT debugUtilsMessengerEXT ) VULKAN_HPP_NOEXCEPT + : m_debugUtilsMessengerEXT( debugUtilsMessengerEXT ) + {} + +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + DebugUtilsMessengerEXT & operator=( VkDebugUtilsMessengerEXT debugUtilsMessengerEXT ) VULKAN_HPP_NOEXCEPT + { + m_debugUtilsMessengerEXT = debugUtilsMessengerEXT; + return *this; + } +#endif + + DebugUtilsMessengerEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + { + m_debugUtilsMessengerEXT = {}; + return *this; + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( DebugUtilsMessengerEXT const & ) const = default; +#else + bool operator==( DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_debugUtilsMessengerEXT == rhs.m_debugUtilsMessengerEXT; + } + + bool operator!=( DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_debugUtilsMessengerEXT != rhs.m_debugUtilsMessengerEXT; + } + + bool operator<( DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_debugUtilsMessengerEXT < rhs.m_debugUtilsMessengerEXT; + } +#endif + + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDebugUtilsMessengerEXT() const VULKAN_HPP_NOEXCEPT + { + return m_debugUtilsMessengerEXT; + } + + explicit operator bool() const VULKAN_HPP_NOEXCEPT + { + return m_debugUtilsMessengerEXT != VK_NULL_HANDLE; + } + + bool operator!() const VULKAN_HPP_NOEXCEPT + { + return m_debugUtilsMessengerEXT == VK_NULL_HANDLE; + } + + private: + VkDebugUtilsMessengerEXT m_debugUtilsMessengerEXT = {}; + }; + static_assert( sizeof( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT ) == sizeof( VkDebugUtilsMessengerEXT ), + "handle and wrapper have different size!" ); + + template <> + struct VULKAN_HPP_DEPRECATED( + "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type + { + using type = VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + +#ifndef VULKAN_HPP_NO_SMART_HANDLE + class Instance; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueDebugReportCallbackEXT = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueDebugUtilsMessengerEXT = UniqueHandle; + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueSurfaceKHR = UniqueHandle; +#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ + + 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: + VULKAN_HPP_CONSTEXPR Instance() = default; + VULKAN_HPP_CONSTEXPR Instance( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {} + VULKAN_HPP_TYPESAFE_EXPLICIT Instance( VkInstance instance ) VULKAN_HPP_NOEXCEPT : m_instance( instance ) {} + +#if defined( VULKAN_HPP_TYPESAFE_CONVERSION ) + Instance & operator=( VkInstance instance ) VULKAN_HPP_NOEXCEPT + { + m_instance = instance; + return *this; + } +#endif + + Instance & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + { + m_instance = {}; + return *this; + } + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( Instance const & ) const = default; +#else + bool operator==( Instance const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_instance == rhs.m_instance; + } + + bool operator!=( Instance const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_instance != rhs.m_instance; + } + + bool operator<( Instance const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return m_instance < rhs.m_instance; + } +#endif + +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + template + VULKAN_HPP_NODISCARD Result + createAndroidSurfaceKHR( const VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createAndroidSurfaceKHR( const AndroidSurfaceCreateInfoKHR & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createAndroidSurfaceKHRUnique( const AndroidSurfaceCreateInfoKHR & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + + template + VULKAN_HPP_NODISCARD Result createDebugReportCallbackEXT( + const VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT * pCallback, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + typename ResultValueType::type createDebugReportCallbackEXT( + const DebugReportCallbackCreateInfoEXT & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_INLINE + typename ResultValueType>::type + createDebugReportCallbackEXTUnique( const DebugReportCallbackCreateInfoEXT & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result createDebugUtilsMessengerEXT( + const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT * pMessenger, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + typename ResultValueType::type createDebugUtilsMessengerEXT( + const DebugUtilsMessengerCreateInfoEXT & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_INLINE + typename ResultValueType>::type + createDebugUtilsMessengerEXTUnique( const DebugUtilsMessengerCreateInfoEXT & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) + template + VULKAN_HPP_NODISCARD Result + createDirectFBSurfaceEXT( const VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createDirectFBSurfaceEXT( const DirectFBSurfaceCreateInfoEXT & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createDirectFBSurfaceEXTUnique( const DirectFBSurfaceCreateInfoEXT & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ + + template + VULKAN_HPP_NODISCARD Result createDisplayPlaneSurfaceKHR( + const VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createDisplayPlaneSurfaceKHR( const DisplaySurfaceCreateInfoKHR & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createDisplayPlaneSurfaceKHRUnique( const DisplaySurfaceCreateInfoKHR & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + createHeadlessSurfaceEXT( const VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createHeadlessSurfaceEXT( const HeadlessSurfaceCreateInfoEXT & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createHeadlessSurfaceEXTUnique( const HeadlessSurfaceCreateInfoEXT & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_IOS_MVK ) + template + VULKAN_HPP_NODISCARD Result + createIOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createIOSSurfaceMVK( const IOSSurfaceCreateInfoMVK & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createIOSSurfaceMVKUnique( const IOSSurfaceCreateInfoMVK & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_IOS_MVK*/ + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + template + VULKAN_HPP_NODISCARD Result createImagePipeSurfaceFUCHSIA( + const VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createImagePipeSurfaceFUCHSIA( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createImagePipeSurfaceFUCHSIAUnique( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + +#if defined( VK_USE_PLATFORM_MACOS_MVK ) + template + VULKAN_HPP_NODISCARD Result + createMacOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createMacOSSurfaceMVK( const MacOSSurfaceCreateInfoMVK & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createMacOSSurfaceMVKUnique( const MacOSSurfaceCreateInfoMVK & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_MACOS_MVK*/ + +#if defined( VK_USE_PLATFORM_METAL_EXT ) + template + VULKAN_HPP_NODISCARD Result + createMetalSurfaceEXT( const VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createMetalSurfaceEXT( const MetalSurfaceCreateInfoEXT & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createMetalSurfaceEXTUnique( const MetalSurfaceCreateInfoEXT & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_METAL_EXT*/ + +#if defined( VK_USE_PLATFORM_SCREEN_QNX ) + template + VULKAN_HPP_NODISCARD Result + createScreenSurfaceQNX( const VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createScreenSurfaceQNX( const ScreenSurfaceCreateInfoQNX & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createScreenSurfaceQNXUnique( const ScreenSurfaceCreateInfoQNX & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + +#if defined( VK_USE_PLATFORM_GGP ) + template + VULKAN_HPP_NODISCARD Result createStreamDescriptorSurfaceGGP( + const VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createStreamDescriptorSurfaceGGP( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createStreamDescriptorSurfaceGGPUnique( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_GGP*/ + +#if defined( VK_USE_PLATFORM_VI_NN ) + template + VULKAN_HPP_NODISCARD Result + createViSurfaceNN( const VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createViSurfaceNN( const ViSurfaceCreateInfoNN & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createViSurfaceNNUnique( const ViSurfaceCreateInfoNN & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_VI_NN*/ + +#if defined( VK_USE_PLATFORM_WAYLAND_KHR ) + template + VULKAN_HPP_NODISCARD Result + createWaylandSurfaceKHR( const VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createWaylandSurfaceKHR( const WaylandSurfaceCreateInfoKHR & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createWaylandSurfaceKHRUnique( const WaylandSurfaceCreateInfoKHR & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + VULKAN_HPP_NODISCARD Result + createWin32SurfaceKHR( const VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createWin32SurfaceKHR( const Win32SurfaceCreateInfoKHR & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createWin32SurfaceKHRUnique( const Win32SurfaceCreateInfoKHR & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_XCB_KHR ) + template + VULKAN_HPP_NODISCARD Result + createXcbSurfaceKHR( const VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createXcbSurfaceKHR( const XcbSurfaceCreateInfoKHR & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createXcbSurfaceKHRUnique( const XcbSurfaceCreateInfoKHR & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_XCB_KHR*/ + +#if defined( VK_USE_PLATFORM_XLIB_KHR ) + template + VULKAN_HPP_NODISCARD Result + createXlibSurfaceKHR( const VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createXlibSurfaceKHR( const XlibSurfaceCreateInfoKHR & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createXlibSurfaceKHRUnique( const XlibSurfaceCreateInfoKHR & createInfo, + Optional allocator + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_XLIB_KHR*/ + + template + void debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags, + VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType, + uint64_t object, + size_t location, + int32_t messageCode, + const char * pLayerPrefix, + const char * pMessage, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + 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, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroyDebugReportCallbackEXT( + VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroyDebugUtilsMessengerEXT( + VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void + destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result enumeratePhysicalDeviceGroups( + uint32_t * pPhysicalDeviceGroupCount, + VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + enumeratePhysicalDeviceGroups( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = PhysicalDeviceGroupPropertiesAllocator, + typename std::enable_if::value, + int>::type = 0> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + enumeratePhysicalDeviceGroups( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result enumeratePhysicalDeviceGroupsKHR( + uint32_t * pPhysicalDeviceGroupCount, + VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + enumeratePhysicalDeviceGroupsKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = PhysicalDeviceGroupPropertiesAllocator, + typename std::enable_if::value, + int>::type = 0> + VULKAN_HPP_NODISCARD + typename ResultValueType>::type + enumeratePhysicalDeviceGroupsKHR( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + enumeratePhysicalDevices( uint32_t * pPhysicalDeviceCount, + VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + enumeratePhysicalDevices( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = PhysicalDeviceAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + enumeratePhysicalDevices( PhysicalDeviceAllocator & physicalDeviceAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + PFN_vkVoidFunction + getProcAddr( const char * pName, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + PFN_vkVoidFunction + getProcAddr( const std::string & name, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + void submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, + VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, + const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT * pCallbackData, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + void submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, + VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, + const DebugUtilsMessengerCallbackDataEXT & callbackData, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const + VULKAN_HPP_NOEXCEPT; +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + VULKAN_HPP_TYPESAFE_EXPLICIT operator VkInstance() const VULKAN_HPP_NOEXCEPT + { + return m_instance; + } + + explicit operator bool() const VULKAN_HPP_NOEXCEPT + { + return m_instance != VK_NULL_HANDLE; + } + + bool operator!() const VULKAN_HPP_NOEXCEPT + { + return m_instance == VK_NULL_HANDLE; + } + + private: + VkInstance m_instance = {}; + }; + static_assert( sizeof( VULKAN_HPP_NAMESPACE::Instance ) == sizeof( VkInstance ), + "handle and wrapper have different size!" ); + + template <> + struct VULKAN_HPP_DEPRECATED( "vk::cpp_type is deprecated. Use vk::CppType instead." ) cpp_type + { + using type = VULKAN_HPP_NAMESPACE::Instance; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::Instance; + }; + + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::Instance; + }; + + template <> + struct isVulkanHandleType + { + static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; + }; + +#ifndef VULKAN_HPP_NO_SMART_HANDLE + template + class UniqueHandleTraits + { + public: + using deleter = ObjectDestroy; + }; + using UniqueInstance = UniqueHandle; +#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ + + template + VULKAN_HPP_NODISCARD Result createInstance( const VULKAN_HPP_NAMESPACE::InstanceCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Instance * pInstance, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) + VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type + createInstance( const InstanceCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ); +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createInstanceUnique( const InstanceCreateInfo & createInfo, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ); +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result enumerateInstanceExtensionProperties( + const char * pLayerName, + uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::ExtensionProperties * pProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + enumerateInstanceExtensionProperties( Optional layerName + VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ); + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = ExtensionPropertiesAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + enumerateInstanceExtensionProperties( Optional layerName, + ExtensionPropertiesAllocator & extensionPropertiesAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ); +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result + enumerateInstanceLayerProperties( uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::LayerProperties * pProperties, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + enumerateInstanceLayerProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ); + template , + typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, + typename B = LayerPropertiesAllocator, + typename std::enable_if::value, int>::type = 0> + VULKAN_HPP_NODISCARD typename ResultValueType>::type + enumerateInstanceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ); +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD Result enumerateInstanceVersion( + uint32_t * pApiVersion, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + typename ResultValueType::type + enumerateInstanceVersion( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ); +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + createInstance( const VULKAN_HPP_NAMESPACE::InstanceCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Instance * pInstance, + Dispatch const & d ) VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCreateInstance( reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pInstance ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + createInstance( const InstanceCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) + { + VULKAN_HPP_NAMESPACE::Instance instance; + Result result = static_cast( + d.vkCreateInstance( reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &instance ) ) ); + return createResultValue( result, instance, VULKAN_HPP_NAMESPACE_STRING "::createInstance" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + createInstanceUnique( const InstanceCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) + { + VULKAN_HPP_NAMESPACE::Instance instance; + Result result = static_cast( + d.vkCreateInstance( reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &instance ) ) ); + ObjectDestroy deleter( allocator, d ); + return createResultValue( + result, instance, VULKAN_HPP_NAMESPACE_STRING "::createInstanceUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + enumerateInstanceExtensionProperties( const char * pLayerName, + uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::ExtensionProperties * pProperties, + Dispatch const & d ) VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkEnumerateInstanceExtensionProperties( + pLayerName, pPropertyCount, reinterpret_cast( pProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + enumerateInstanceExtensionProperties( Optional layerName, Dispatch const & d ) + { + std::vector properties; + uint32_t propertyCount; + Result result; + do + { + result = static_cast( + d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && propertyCount ) + { + properties.resize( propertyCount ); + result = static_cast( + d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, + &propertyCount, + reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) + { + properties.resize( propertyCount ); + } + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceExtensionProperties" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + enumerateInstanceExtensionProperties( Optional layerName, + ExtensionPropertiesAllocator & extensionPropertiesAllocator, + Dispatch const & d ) + { + std::vector properties( extensionPropertiesAllocator ); + uint32_t propertyCount; + Result result; + do + { + result = static_cast( + d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && propertyCount ) + { + properties.resize( propertyCount ); + result = static_cast( + d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, + &propertyCount, + reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) + { + properties.resize( propertyCount ); + } + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceExtensionProperties" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + enumerateInstanceLayerProperties( uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::LayerProperties * pProperties, + Dispatch const & d ) VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkEnumerateInstanceLayerProperties( pPropertyCount, reinterpret_cast( pProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + enumerateInstanceLayerProperties( Dispatch const & d ) + { + std::vector properties; + uint32_t propertyCount; + Result result; + do + { + result = static_cast( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && propertyCount ) + { + properties.resize( propertyCount ); + result = static_cast( d.vkEnumerateInstanceLayerProperties( + &propertyCount, reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) + { + properties.resize( propertyCount ); + } + return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceLayerProperties" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + enumerateInstanceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d ) + { + std::vector properties( layerPropertiesAllocator ); + uint32_t propertyCount; + Result result; + do + { + result = static_cast( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && propertyCount ) + { + properties.resize( propertyCount ); + result = static_cast( d.vkEnumerateInstanceLayerProperties( + &propertyCount, reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) + { + properties.resize( propertyCount ); + } + return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceLayerProperties" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result enumerateInstanceVersion( uint32_t * pApiVersion, + Dispatch const & d ) VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkEnumerateInstanceVersion( pApiVersion ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE typename ResultValueType::type enumerateInstanceVersion( Dispatch const & d ) + { + uint32_t apiVersion; + Result result = static_cast( d.vkEnumerateInstanceVersion( &apiVersion ) ); + return createResultValue( result, apiVersion, VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceVersion" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::begin( + const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo * pBeginInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast( pBeginInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + CommandBuffer::begin( const CommandBufferBeginInfo & beginInfo, Dispatch const & d ) const + { + Result result = static_cast( + d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast( &beginInfo ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::begin" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( + const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBeginConditionalRenderingEXT( + m_commandBuffer, reinterpret_cast( pConditionalRenderingBegin ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + CommandBuffer::beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBeginConditionalRenderingEXT( + m_commandBuffer, reinterpret_cast( &conditionalRenderingBegin ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + CommandBuffer::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast( pLabelInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast( &labelInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::beginQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t query, + VULKAN_HPP_NAMESPACE::QueryControlFlags flags, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBeginQuery( + m_commandBuffer, static_cast( queryPool ), query, static_cast( flags ) ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::beginQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t query, + VULKAN_HPP_NAMESPACE::QueryControlFlags flags, + uint32_t index, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBeginQueryIndexedEXT( + m_commandBuffer, static_cast( queryPool ), query, static_cast( flags ), index ); + } + + template + VULKAN_HPP_INLINE void + CommandBuffer::beginRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin, + VULKAN_HPP_NAMESPACE::SubpassContents contents, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBeginRenderPass( m_commandBuffer, + reinterpret_cast( pRenderPassBegin ), + static_cast( contents ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const RenderPassBeginInfo & renderPassBegin, + VULKAN_HPP_NAMESPACE::SubpassContents contents, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBeginRenderPass( m_commandBuffer, + reinterpret_cast( &renderPassBegin ), + static_cast( contents ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + CommandBuffer::beginRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin, + const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBeginRenderPass2( m_commandBuffer, + reinterpret_cast( pRenderPassBegin ), + reinterpret_cast( pSubpassBeginInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2( const RenderPassBeginInfo & renderPassBegin, + const SubpassBeginInfo & subpassBeginInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBeginRenderPass2( m_commandBuffer, + reinterpret_cast( &renderPassBegin ), + reinterpret_cast( &subpassBeginInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + CommandBuffer::beginRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin, + const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBeginRenderPass2KHR( m_commandBuffer, + reinterpret_cast( pRenderPassBegin ), + reinterpret_cast( pSubpassBeginInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, + const SubpassBeginInfo & subpassBeginInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBeginRenderPass2KHR( m_commandBuffer, + reinterpret_cast( &renderPassBegin ), + reinterpret_cast( &subpassBeginInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + CommandBuffer::beginTransformFeedbackEXT( uint32_t firstCounterBuffer, + uint32_t counterBufferCount, + const VULKAN_HPP_NAMESPACE::Buffer * pCounterBuffers, + const VULKAN_HPP_NAMESPACE::DeviceSize * pCounterBufferOffsets, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer, + firstCounterBuffer, + counterBufferCount, + reinterpret_cast( pCounterBuffers ), + reinterpret_cast( pCounterBufferOffsets ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::beginTransformFeedbackEXT( + uint32_t firstCounterBuffer, + ArrayProxy const & counterBuffers, + ArrayProxy const & counterBufferOffsets, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() ); +# else + if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() ) + { + throw LogicError( + VULKAN_HPP_NAMESPACE_STRING + "::CommandBuffer::beginTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ + + d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer, + firstCounterBuffer, + counterBuffers.size(), + reinterpret_cast( counterBuffers.data() ), + reinterpret_cast( counterBufferOffsets.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + VULKAN_HPP_INLINE void + CommandBuffer::beginVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR * pBeginInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBeginVideoCodingKHR( m_commandBuffer, reinterpret_cast( pBeginInfo ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::beginVideoCodingKHR( const VideoBeginCodingInfoKHR & beginInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBeginVideoCodingKHR( m_commandBuffer, reinterpret_cast( &beginInfo ) ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, + VULKAN_HPP_NAMESPACE::PipelineLayout layout, + uint32_t firstSet, + uint32_t descriptorSetCount, + const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets, + uint32_t dynamicOffsetCount, + const uint32_t * pDynamicOffsets, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBindDescriptorSets( m_commandBuffer, + static_cast( pipelineBindPoint ), + static_cast( layout ), + firstSet, + descriptorSetCount, + reinterpret_cast( pDescriptorSets ), + dynamicOffsetCount, + pDynamicOffsets ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + CommandBuffer::bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, + VULKAN_HPP_NAMESPACE::PipelineLayout layout, + uint32_t firstSet, + ArrayProxy const & descriptorSets, + ArrayProxy const & dynamicOffsets, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBindDescriptorSets( m_commandBuffer, + static_cast( pipelineBindPoint ), + static_cast( layout ), + firstSet, + descriptorSets.size(), + reinterpret_cast( descriptorSets.data() ), + dynamicOffsets.size(), + dynamicOffsets.data() ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::bindIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, + VULKAN_HPP_NAMESPACE::DeviceSize offset, + VULKAN_HPP_NAMESPACE::IndexType indexType, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBindIndexBuffer( m_commandBuffer, + static_cast( buffer ), + static_cast( offset ), + static_cast( indexType ) ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, + VULKAN_HPP_NAMESPACE::Pipeline pipeline, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBindPipeline( + m_commandBuffer, static_cast( pipelineBindPoint ), static_cast( pipeline ) ); + } + + template + VULKAN_HPP_INLINE void + CommandBuffer::bindPipelineShaderGroupNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, + VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t groupIndex, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBindPipelineShaderGroupNV( m_commandBuffer, + static_cast( pipelineBindPoint ), + static_cast( pipeline ), + groupIndex ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, + VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBindShadingRateImageNV( + m_commandBuffer, static_cast( imageView ), static_cast( imageLayout ) ); + } + + template + VULKAN_HPP_INLINE void + CommandBuffer::bindTransformFeedbackBuffersEXT( uint32_t firstBinding, + uint32_t bindingCount, + const VULKAN_HPP_NAMESPACE::Buffer * pBuffers, + const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets, + const VULKAN_HPP_NAMESPACE::DeviceSize * pSizes, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBindTransformFeedbackBuffersEXT( m_commandBuffer, + firstBinding, + bindingCount, + reinterpret_cast( pBuffers ), + reinterpret_cast( pOffsets ), + reinterpret_cast( pSizes ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + CommandBuffer::bindTransformFeedbackBuffersEXT( uint32_t firstBinding, + ArrayProxy const & buffers, + ArrayProxy const & offsets, + ArrayProxy const & sizes, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( buffers.size() == offsets.size() ); + VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() ); +# else + 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()" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ + + d.vkCmdBindTransformFeedbackBuffersEXT( m_commandBuffer, + firstBinding, + buffers.size(), + reinterpret_cast( buffers.data() ), + reinterpret_cast( offsets.data() ), + reinterpret_cast( sizes.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers( uint32_t firstBinding, + uint32_t bindingCount, + const VULKAN_HPP_NAMESPACE::Buffer * pBuffers, + const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBindVertexBuffers( m_commandBuffer, + firstBinding, + bindingCount, + reinterpret_cast( pBuffers ), + reinterpret_cast( pOffsets ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + CommandBuffer::bindVertexBuffers( uint32_t firstBinding, + ArrayProxy const & buffers, + ArrayProxy const & offsets, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( buffers.size() == offsets.size() ); +# else + if ( buffers.size() != offsets.size() ) + { + throw LogicError( VULKAN_HPP_NAMESPACE_STRING + "::CommandBuffer::bindVertexBuffers: buffers.size() != offsets.size()" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ + + d.vkCmdBindVertexBuffers( m_commandBuffer, + firstBinding, + buffers.size(), + reinterpret_cast( buffers.data() ), + reinterpret_cast( offsets.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers2EXT( uint32_t firstBinding, + uint32_t bindingCount, + const VULKAN_HPP_NAMESPACE::Buffer * pBuffers, + const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets, + const VULKAN_HPP_NAMESPACE::DeviceSize * pSizes, + const VULKAN_HPP_NAMESPACE::DeviceSize * pStrides, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBindVertexBuffers2EXT( m_commandBuffer, + firstBinding, + bindingCount, + reinterpret_cast( pBuffers ), + reinterpret_cast( pOffsets ), + reinterpret_cast( pSizes ), + reinterpret_cast( pStrides ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + CommandBuffer::bindVertexBuffers2EXT( uint32_t firstBinding, + ArrayProxy const & buffers, + ArrayProxy const & offsets, + ArrayProxy const & sizes, + ArrayProxy const & strides, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( buffers.size() == offsets.size() ); + VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() ); + VULKAN_HPP_ASSERT( strides.empty() || buffers.size() == strides.size() ); +# else + 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()" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ + + d.vkCmdBindVertexBuffers2EXT( m_commandBuffer, + firstBinding, + buffers.size(), + reinterpret_cast( buffers.data() ), + reinterpret_cast( offsets.data() ), + reinterpret_cast( sizes.data() ), + reinterpret_cast( strides.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + 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, + uint32_t regionCount, + const VULKAN_HPP_NAMESPACE::ImageBlit * pRegions, + VULKAN_HPP_NAMESPACE::Filter filter, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBlitImage( m_commandBuffer, + static_cast( srcImage ), + static_cast( srcImageLayout ), + static_cast( dstImage ), + static_cast( dstImageLayout ), + regionCount, + reinterpret_cast( pRegions ), + static_cast( filter ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + 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 & regions, + VULKAN_HPP_NAMESPACE::Filter filter, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBlitImage( m_commandBuffer, + static_cast( srcImage ), + static_cast( srcImageLayout ), + static_cast( dstImage ), + static_cast( dstImageLayout ), + regions.size(), + reinterpret_cast( regions.data() ), + static_cast( filter ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR( const VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR * pBlitImageInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBlitImage2KHR( m_commandBuffer, reinterpret_cast( pBlitImageInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR( const BlitImageInfo2KHR & blitImageInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBlitImage2KHR( m_commandBuffer, reinterpret_cast( &blitImageInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + CommandBuffer::buildAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV * pInfo, + VULKAN_HPP_NAMESPACE::Buffer instanceData, + VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, + VULKAN_HPP_NAMESPACE::Bool32 update, + VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, + VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, + VULKAN_HPP_NAMESPACE::Buffer scratch, + VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBuildAccelerationStructureNV( m_commandBuffer, + reinterpret_cast( pInfo ), + static_cast( instanceData ), + static_cast( instanceOffset ), + static_cast( update ), + static_cast( dst ), + static_cast( src ), + static_cast( scratch ), + static_cast( scratchOffset ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureNV( const AccelerationStructureInfoNV & info, + VULKAN_HPP_NAMESPACE::Buffer instanceData, + VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, + VULKAN_HPP_NAMESPACE::Bool32 update, + VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, + VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, + VULKAN_HPP_NAMESPACE::Buffer scratch, + VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBuildAccelerationStructureNV( m_commandBuffer, + reinterpret_cast( &info ), + static_cast( instanceData ), + static_cast( instanceOffset ), + static_cast( update ), + static_cast( dst ), + static_cast( src ), + static_cast( scratch ), + static_cast( scratchOffset ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresIndirectKHR( + uint32_t infoCount, + const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pInfos, + const VULKAN_HPP_NAMESPACE::DeviceAddress * pIndirectDeviceAddresses, + const uint32_t * pIndirectStrides, + const uint32_t * const * ppMaxPrimitiveCounts, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBuildAccelerationStructuresIndirectKHR( + m_commandBuffer, + infoCount, + reinterpret_cast( pInfos ), + reinterpret_cast( pIndirectDeviceAddresses ), + pIndirectStrides, + ppMaxPrimitiveCounts ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresIndirectKHR( + ArrayProxy const & infos, + ArrayProxy const & indirectDeviceAddresses, + ArrayProxy const & indirectStrides, + ArrayProxy const & pMaxPrimitiveCounts, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( infos.size() == indirectDeviceAddresses.size() ); + VULKAN_HPP_ASSERT( infos.size() == indirectStrides.size() ); + VULKAN_HPP_ASSERT( infos.size() == pMaxPrimitiveCounts.size() ); +# else + 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()" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ + + d.vkCmdBuildAccelerationStructuresIndirectKHR( + m_commandBuffer, + infos.size(), + reinterpret_cast( infos.data() ), + reinterpret_cast( indirectDeviceAddresses.data() ), + indirectStrides.data(), + pMaxPrimitiveCounts.data() ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresKHR( + uint32_t infoCount, + const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pInfos, + const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdBuildAccelerationStructuresKHR( + m_commandBuffer, + infoCount, + reinterpret_cast( pInfos ), + reinterpret_cast( ppBuildRangeInfos ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresKHR( + ArrayProxy const & infos, + ArrayProxy const & pBuildRangeInfos, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( infos.size() == pBuildRangeInfos.size() ); +# else + if ( infos.size() != pBuildRangeInfos.size() ) + { + throw LogicError( VULKAN_HPP_NAMESPACE_STRING + "::CommandBuffer::buildAccelerationStructuresKHR: infos.size() != pBuildRangeInfos.size()" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ + + d.vkCmdBuildAccelerationStructuresKHR( + m_commandBuffer, + infos.size(), + reinterpret_cast( infos.data() ), + reinterpret_cast( pBuildRangeInfos.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::clearAttachments( uint32_t attachmentCount, + const VULKAN_HPP_NAMESPACE::ClearAttachment * pAttachments, + uint32_t rectCount, + const VULKAN_HPP_NAMESPACE::ClearRect * pRects, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdClearAttachments( m_commandBuffer, + attachmentCount, + reinterpret_cast( pAttachments ), + rectCount, + reinterpret_cast( pRects ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + CommandBuffer::clearAttachments( ArrayProxy const & attachments, + ArrayProxy const & rects, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdClearAttachments( m_commandBuffer, + attachments.size(), + reinterpret_cast( attachments.data() ), + rects.size(), + reinterpret_cast( rects.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::clearColorImage( VULKAN_HPP_NAMESPACE::Image image, + VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, + const VULKAN_HPP_NAMESPACE::ClearColorValue * pColor, + uint32_t rangeCount, + const VULKAN_HPP_NAMESPACE::ImageSubresourceRange * pRanges, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdClearColorImage( m_commandBuffer, + static_cast( image ), + static_cast( imageLayout ), + reinterpret_cast( pColor ), + rangeCount, + reinterpret_cast( pRanges ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + CommandBuffer::clearColorImage( VULKAN_HPP_NAMESPACE::Image image, + VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, + const ClearColorValue & color, + ArrayProxy const & ranges, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdClearColorImage( m_commandBuffer, + static_cast( image ), + static_cast( imageLayout ), + reinterpret_cast( &color ), + ranges.size(), + reinterpret_cast( ranges.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + CommandBuffer::clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, + VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, + const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue * pDepthStencil, + uint32_t rangeCount, + const VULKAN_HPP_NAMESPACE::ImageSubresourceRange * pRanges, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdClearDepthStencilImage( m_commandBuffer, + static_cast( image ), + static_cast( imageLayout ), + reinterpret_cast( pDepthStencil ), + rangeCount, + reinterpret_cast( pRanges ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + CommandBuffer::clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, + VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, + const ClearDepthStencilValue & depthStencil, + ArrayProxy const & ranges, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdClearDepthStencilImage( m_commandBuffer, + static_cast( image ), + static_cast( imageLayout ), + reinterpret_cast( &depthStencil ), + ranges.size(), + reinterpret_cast( ranges.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + VULKAN_HPP_INLINE void + CommandBuffer::controlVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR * pCodingControlInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdControlVideoCodingKHR( m_commandBuffer, + reinterpret_cast( pCodingControlInfo ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::controlVideoCodingKHR( const VideoCodingControlInfoKHR & codingControlInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdControlVideoCodingKHR( m_commandBuffer, + reinterpret_cast( &codingControlInfo ) ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + template + VULKAN_HPP_INLINE void + CommandBuffer::copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR * pInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyAccelerationStructureKHR( m_commandBuffer, + reinterpret_cast( pInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyAccelerationStructureKHR( m_commandBuffer, + reinterpret_cast( &info ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + CommandBuffer::copyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, + VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, + VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyAccelerationStructureNV( m_commandBuffer, + static_cast( dst ), + static_cast( src ), + static_cast( mode ) ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureToMemoryKHR( + const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR * pInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyAccelerationStructureToMemoryKHR( + m_commandBuffer, reinterpret_cast( pInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + CommandBuffer::copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyAccelerationStructureToMemoryKHR( + m_commandBuffer, reinterpret_cast( &info ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, + VULKAN_HPP_NAMESPACE::Buffer dstBuffer, + uint32_t regionCount, + const VULKAN_HPP_NAMESPACE::BufferCopy * pRegions, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyBuffer( m_commandBuffer, + static_cast( srcBuffer ), + static_cast( dstBuffer ), + regionCount, + reinterpret_cast( pRegions ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, + VULKAN_HPP_NAMESPACE::Buffer dstBuffer, + ArrayProxy const & regions, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyBuffer( m_commandBuffer, + static_cast( srcBuffer ), + static_cast( dstBuffer ), + regions.size(), + reinterpret_cast( regions.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + CommandBuffer::copyBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR * pCopyBufferInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyBuffer2KHR( m_commandBuffer, reinterpret_cast( pCopyBufferInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2KHR( const CopyBufferInfo2KHR & copyBufferInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyBuffer2KHR( m_commandBuffer, reinterpret_cast( ©BufferInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, + VULKAN_HPP_NAMESPACE::Image dstImage, + VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, + uint32_t regionCount, + const VULKAN_HPP_NAMESPACE::BufferImageCopy * pRegions, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyBufferToImage( m_commandBuffer, + static_cast( srcBuffer ), + static_cast( dstImage ), + static_cast( dstImageLayout ), + regionCount, + reinterpret_cast( pRegions ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + CommandBuffer::copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, + VULKAN_HPP_NAMESPACE::Image dstImage, + VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, + ArrayProxy const & regions, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyBufferToImage( m_commandBuffer, + static_cast( srcBuffer ), + static_cast( dstImage ), + static_cast( dstImageLayout ), + regions.size(), + reinterpret_cast( regions.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage2KHR( + const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR * pCopyBufferToImageInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyBufferToImage2KHR( m_commandBuffer, + reinterpret_cast( pCopyBufferToImageInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage2KHR( const CopyBufferToImageInfo2KHR & copyBufferToImageInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyBufferToImage2KHR( m_commandBuffer, + reinterpret_cast( ©BufferToImageInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + 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, + uint32_t regionCount, + const VULKAN_HPP_NAMESPACE::ImageCopy * pRegions, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyImage( m_commandBuffer, + static_cast( srcImage ), + static_cast( srcImageLayout ), + static_cast( dstImage ), + static_cast( dstImageLayout ), + regionCount, + reinterpret_cast( pRegions ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + 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 & regions, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyImage( m_commandBuffer, + static_cast( srcImage ), + static_cast( srcImageLayout ), + static_cast( dstImage ), + static_cast( dstImageLayout ), + regions.size(), + reinterpret_cast( regions.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR( const VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR * pCopyImageInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyImage2KHR( m_commandBuffer, reinterpret_cast( pCopyImageInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR( const CopyImageInfo2KHR & copyImageInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyImage2KHR( m_commandBuffer, reinterpret_cast( ©ImageInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, + VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, + VULKAN_HPP_NAMESPACE::Buffer dstBuffer, + uint32_t regionCount, + const VULKAN_HPP_NAMESPACE::BufferImageCopy * pRegions, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyImageToBuffer( m_commandBuffer, + static_cast( srcImage ), + static_cast( srcImageLayout ), + static_cast( dstBuffer ), + regionCount, + reinterpret_cast( pRegions ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + CommandBuffer::copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, + VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, + VULKAN_HPP_NAMESPACE::Buffer dstBuffer, + ArrayProxy const & regions, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyImageToBuffer( m_commandBuffer, + static_cast( srcImage ), + static_cast( srcImageLayout ), + static_cast( dstBuffer ), + regions.size(), + reinterpret_cast( regions.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer2KHR( + const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR * pCopyImageToBufferInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyImageToBuffer2KHR( m_commandBuffer, + reinterpret_cast( pCopyImageToBufferInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer2KHR( const CopyImageToBufferInfo2KHR & copyImageToBufferInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyImageToBuffer2KHR( m_commandBuffer, + reinterpret_cast( ©ImageToBufferInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToAccelerationStructureKHR( + const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR * pInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyMemoryToAccelerationStructureKHR( + m_commandBuffer, reinterpret_cast( pInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + CommandBuffer::copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyMemoryToAccelerationStructureKHR( + m_commandBuffer, reinterpret_cast( &info ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + 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, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdCopyQueryPoolResults( m_commandBuffer, + static_cast( queryPool ), + firstQuery, + queryCount, + static_cast( dstBuffer ), + static_cast( dstOffset ), + static_cast( stride ), + static_cast( flags ) ); + } + + template + VULKAN_HPP_INLINE void + CommandBuffer::debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT * pMarkerInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast( pMarkerInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast( &markerInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::debugMarkerEndEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDebugMarkerEndEXT( m_commandBuffer ); + } + + template + VULKAN_HPP_INLINE void + CommandBuffer::debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT * pMarkerInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast( pMarkerInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast( &markerInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + VULKAN_HPP_INLINE void CommandBuffer::decodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR * pFrameInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDecodeVideoKHR( m_commandBuffer, reinterpret_cast( pFrameInfo ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::decodeVideoKHR( const VideoDecodeInfoKHR & frameInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDecodeVideoKHR( m_commandBuffer, reinterpret_cast( &frameInfo ) ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::dispatch( uint32_t groupCountX, + uint32_t groupCountY, + uint32_t groupCountZ, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDispatch( m_commandBuffer, groupCountX, groupCountY, groupCountZ ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::dispatchBase( uint32_t baseGroupX, + uint32_t baseGroupY, + uint32_t baseGroupZ, + uint32_t groupCountX, + uint32_t groupCountY, + uint32_t groupCountZ, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDispatchBase( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::dispatchBaseKHR( uint32_t baseGroupX, + uint32_t baseGroupY, + uint32_t baseGroupZ, + uint32_t groupCountX, + uint32_t groupCountY, + uint32_t groupCountZ, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDispatchBaseKHR( + m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, + VULKAN_HPP_NAMESPACE::DeviceSize offset, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDispatchIndirect( m_commandBuffer, static_cast( buffer ), static_cast( offset ) ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::draw( uint32_t vertexCount, + uint32_t instanceCount, + uint32_t firstVertex, + uint32_t firstInstance, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDraw( m_commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::drawIndexed( uint32_t indexCount, + uint32_t instanceCount, + uint32_t firstIndex, + int32_t vertexOffset, + uint32_t firstInstance, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDrawIndexed( m_commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, + VULKAN_HPP_NAMESPACE::DeviceSize offset, + uint32_t drawCount, + uint32_t stride, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDrawIndexedIndirect( + m_commandBuffer, static_cast( buffer ), static_cast( offset ), drawCount, stride ); + } + + template + 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, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDrawIndexedIndirectCount( m_commandBuffer, + static_cast( buffer ), + static_cast( offset ), + static_cast( countBuffer ), + static_cast( countBufferOffset ), + maxDrawCount, + stride ); + } + + template + 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, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDrawIndexedIndirectCountAMD( m_commandBuffer, + static_cast( buffer ), + static_cast( offset ), + static_cast( countBuffer ), + static_cast( countBufferOffset ), + maxDrawCount, + stride ); + } + + template + 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, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDrawIndexedIndirectCountKHR( m_commandBuffer, + static_cast( buffer ), + static_cast( offset ), + static_cast( countBuffer ), + static_cast( countBufferOffset ), + maxDrawCount, + stride ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::drawIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, + VULKAN_HPP_NAMESPACE::DeviceSize offset, + uint32_t drawCount, + uint32_t stride, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDrawIndirect( + m_commandBuffer, static_cast( buffer ), static_cast( offset ), drawCount, stride ); + } + + template + 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, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDrawIndirectByteCountEXT( m_commandBuffer, + instanceCount, + firstInstance, + static_cast( counterBuffer ), + static_cast( counterBufferOffset ), + counterOffset, + vertexStride ); + } + + template + 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, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDrawIndirectCount( m_commandBuffer, + static_cast( buffer ), + static_cast( offset ), + static_cast( countBuffer ), + static_cast( countBufferOffset ), + maxDrawCount, + stride ); + } + + template + 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, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDrawIndirectCountAMD( m_commandBuffer, + static_cast( buffer ), + static_cast( offset ), + static_cast( countBuffer ), + static_cast( countBufferOffset ), + maxDrawCount, + stride ); + } + + template + 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, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDrawIndirectCountKHR( m_commandBuffer, + static_cast( buffer ), + static_cast( offset ), + static_cast( countBuffer ), + static_cast( countBufferOffset ), + maxDrawCount, + stride ); + } + + template + 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, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDrawMeshTasksIndirectCountNV( m_commandBuffer, + static_cast( buffer ), + static_cast( offset ), + static_cast( countBuffer ), + static_cast( countBufferOffset ), + maxDrawCount, + stride ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectNV( VULKAN_HPP_NAMESPACE::Buffer buffer, + VULKAN_HPP_NAMESPACE::DeviceSize offset, + uint32_t drawCount, + uint32_t stride, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDrawMeshTasksIndirectNV( + m_commandBuffer, static_cast( buffer ), static_cast( offset ), drawCount, stride ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV( uint32_t taskCount, + uint32_t firstTask, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdDrawMeshTasksNV( m_commandBuffer, taskCount, firstTask ); + } + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + VULKAN_HPP_INLINE void CommandBuffer::encodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR * pEncodeInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdEncodeVideoKHR( m_commandBuffer, reinterpret_cast( pEncodeInfo ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::encodeVideoKHR( const VideoEncodeInfoKHR & encodeInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdEncodeVideoKHR( m_commandBuffer, reinterpret_cast( &encodeInfo ) ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdEndConditionalRenderingEXT( m_commandBuffer ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::endDebugUtilsLabelEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdEndDebugUtilsLabelEXT( m_commandBuffer ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t query, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdEndQuery( m_commandBuffer, static_cast( queryPool ), query ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t query, + uint32_t index, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdEndQueryIndexedEXT( m_commandBuffer, static_cast( queryPool ), query, index ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::endRenderPass( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdEndRenderPass( m_commandBuffer ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdEndRenderPass2( m_commandBuffer, reinterpret_cast( pSubpassEndInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const SubpassEndInfo & subpassEndInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdEndRenderPass2( m_commandBuffer, reinterpret_cast( &subpassEndInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast( pSubpassEndInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const SubpassEndInfo & subpassEndInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast( &subpassEndInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + CommandBuffer::endTransformFeedbackEXT( uint32_t firstCounterBuffer, + uint32_t counterBufferCount, + const VULKAN_HPP_NAMESPACE::Buffer * pCounterBuffers, + const VULKAN_HPP_NAMESPACE::DeviceSize * pCounterBufferOffsets, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdEndTransformFeedbackEXT( m_commandBuffer, + firstCounterBuffer, + counterBufferCount, + reinterpret_cast( pCounterBuffers ), + reinterpret_cast( pCounterBufferOffsets ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::endTransformFeedbackEXT( + uint32_t firstCounterBuffer, + ArrayProxy const & counterBuffers, + ArrayProxy const & counterBufferOffsets, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() ); +# else + if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() ) + { + throw LogicError( + VULKAN_HPP_NAMESPACE_STRING + "::CommandBuffer::endTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ + + d.vkCmdEndTransformFeedbackEXT( m_commandBuffer, + firstCounterBuffer, + counterBuffers.size(), + reinterpret_cast( counterBuffers.data() ), + reinterpret_cast( counterBufferOffsets.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + VULKAN_HPP_INLINE void + CommandBuffer::endVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR * pEndCodingInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdEndVideoCodingKHR( m_commandBuffer, reinterpret_cast( pEndCodingInfo ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::endVideoCodingKHR( const VideoEndCodingInfoKHR & endCodingInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdEndVideoCodingKHR( m_commandBuffer, reinterpret_cast( &endCodingInfo ) ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::executeCommands( uint32_t commandBufferCount, + const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdExecuteCommands( + m_commandBuffer, commandBufferCount, reinterpret_cast( pCommandBuffers ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + CommandBuffer::executeCommands( ArrayProxy const & commandBuffers, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdExecuteCommands( + m_commandBuffer, commandBuffers.size(), reinterpret_cast( commandBuffers.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::executeGeneratedCommandsNV( + VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, + const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV * pGeneratedCommandsInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdExecuteGeneratedCommandsNV( m_commandBuffer, + static_cast( isPreprocessed ), + reinterpret_cast( pGeneratedCommandsInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + CommandBuffer::executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, + const GeneratedCommandsInfoNV & generatedCommandsInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdExecuteGeneratedCommandsNV( m_commandBuffer, + static_cast( isPreprocessed ), + reinterpret_cast( &generatedCommandsInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::fillBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, + VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, + VULKAN_HPP_NAMESPACE::DeviceSize size, + uint32_t data, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdFillBuffer( m_commandBuffer, + static_cast( dstBuffer ), + static_cast( dstOffset ), + static_cast( size ), + data ); + } + + template + VULKAN_HPP_INLINE void + CommandBuffer::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast( pLabelInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast( &labelInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdNextSubpass( m_commandBuffer, static_cast( contents ) ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo, + const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdNextSubpass2( m_commandBuffer, + reinterpret_cast( pSubpassBeginInfo ), + reinterpret_cast( pSubpassEndInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2( const SubpassBeginInfo & subpassBeginInfo, + const SubpassEndInfo & subpassEndInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdNextSubpass2( m_commandBuffer, + reinterpret_cast( &subpassBeginInfo ), + reinterpret_cast( &subpassEndInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + CommandBuffer::nextSubpass2KHR( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo, + const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdNextSubpass2KHR( m_commandBuffer, + reinterpret_cast( pSubpassBeginInfo ), + reinterpret_cast( pSubpassEndInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( const SubpassBeginInfo & subpassBeginInfo, + const SubpassEndInfo & subpassEndInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdNextSubpass2KHR( m_commandBuffer, + reinterpret_cast( &subpassBeginInfo ), + reinterpret_cast( &subpassEndInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + CommandBuffer::pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, + VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, + VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, + uint32_t memoryBarrierCount, + const VULKAN_HPP_NAMESPACE::MemoryBarrier * pMemoryBarriers, + uint32_t bufferMemoryBarrierCount, + const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier * pBufferMemoryBarriers, + uint32_t imageMemoryBarrierCount, + const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier * pImageMemoryBarriers, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdPipelineBarrier( m_commandBuffer, + static_cast( srcStageMask ), + static_cast( dstStageMask ), + static_cast( dependencyFlags ), + memoryBarrierCount, + reinterpret_cast( pMemoryBarriers ), + bufferMemoryBarrierCount, + reinterpret_cast( pBufferMemoryBarriers ), + imageMemoryBarrierCount, + reinterpret_cast( pImageMemoryBarriers ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier( + VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, + VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, + VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, + ArrayProxy const & memoryBarriers, + ArrayProxy const & bufferMemoryBarriers, + ArrayProxy const & imageMemoryBarriers, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdPipelineBarrier( m_commandBuffer, + static_cast( srcStageMask ), + static_cast( dstStageMask ), + static_cast( dependencyFlags ), + memoryBarriers.size(), + reinterpret_cast( memoryBarriers.data() ), + bufferMemoryBarriers.size(), + reinterpret_cast( bufferMemoryBarriers.data() ), + imageMemoryBarriers.size(), + reinterpret_cast( imageMemoryBarriers.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + CommandBuffer::pipelineBarrier2KHR( const VULKAN_HPP_NAMESPACE::DependencyInfoKHR * pDependencyInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdPipelineBarrier2KHR( m_commandBuffer, reinterpret_cast( pDependencyInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier2KHR( const DependencyInfoKHR & dependencyInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdPipelineBarrier2KHR( m_commandBuffer, reinterpret_cast( &dependencyInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsNV( + const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV * pGeneratedCommandsInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdPreprocessGeneratedCommandsNV( + m_commandBuffer, reinterpret_cast( pGeneratedCommandsInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + CommandBuffer::preprocessGeneratedCommandsNV( const GeneratedCommandsInfoNV & generatedCommandsInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdPreprocessGeneratedCommandsNV( + m_commandBuffer, reinterpret_cast( &generatedCommandsInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, + VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, + uint32_t offset, + uint32_t size, + const void * pValues, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdPushConstants( m_commandBuffer, + static_cast( layout ), + static_cast( stageFlags ), + offset, + size, + pValues ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, + VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, + uint32_t offset, + ArrayProxy const & values, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdPushConstants( m_commandBuffer, + static_cast( layout ), + static_cast( stageFlags ), + offset, + values.size() * sizeof( T ), + reinterpret_cast( values.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + CommandBuffer::pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, + VULKAN_HPP_NAMESPACE::PipelineLayout layout, + uint32_t set, + uint32_t descriptorWriteCount, + const VULKAN_HPP_NAMESPACE::WriteDescriptorSet * pDescriptorWrites, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdPushDescriptorSetKHR( m_commandBuffer, + static_cast( pipelineBindPoint ), + static_cast( layout ), + set, + descriptorWriteCount, + reinterpret_cast( pDescriptorWrites ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetKHR( + VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, + VULKAN_HPP_NAMESPACE::PipelineLayout layout, + uint32_t set, + ArrayProxy const & descriptorWrites, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdPushDescriptorSetKHR( m_commandBuffer, + static_cast( pipelineBindPoint ), + static_cast( layout ), + set, + descriptorWrites.size(), + reinterpret_cast( descriptorWrites.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetWithTemplateKHR( + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, + VULKAN_HPP_NAMESPACE::PipelineLayout layout, + uint32_t set, + const void * pData, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdPushDescriptorSetWithTemplateKHR( m_commandBuffer, + static_cast( descriptorUpdateTemplate ), + static_cast( layout ), + set, + pData ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::resetEvent( VULKAN_HPP_NAMESPACE::Event event, + VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdResetEvent( m_commandBuffer, static_cast( event ), static_cast( stageMask ) ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::resetEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, + VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stageMask, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdResetEvent2KHR( + m_commandBuffer, static_cast( event ), static_cast( stageMask ) ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdResetQueryPool( m_commandBuffer, static_cast( queryPool ), firstQuery, queryCount ); + } + + template + 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, + uint32_t regionCount, + const VULKAN_HPP_NAMESPACE::ImageResolve * pRegions, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdResolveImage( m_commandBuffer, + static_cast( srcImage ), + static_cast( srcImageLayout ), + static_cast( dstImage ), + static_cast( dstImageLayout ), + regionCount, + reinterpret_cast( pRegions ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + 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 & regions, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdResolveImage( m_commandBuffer, + static_cast( srcImage ), + static_cast( srcImageLayout ), + static_cast( dstImage ), + static_cast( dstImageLayout ), + regions.size(), + reinterpret_cast( regions.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + CommandBuffer::resolveImage2KHR( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR * pResolveImageInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdResolveImage2KHR( m_commandBuffer, reinterpret_cast( pResolveImageInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::resolveImage2KHR( const ResolveImageInfo2KHR & resolveImageInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdResolveImage2KHR( m_commandBuffer, reinterpret_cast( &resolveImageInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::setBlendConstants( const float blendConstants[4], + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetBlendConstants( m_commandBuffer, blendConstants ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( const void * pCheckpointMarker, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetCheckpointNV( m_commandBuffer, pCheckpointMarker ); + } + + template + VULKAN_HPP_INLINE void + CommandBuffer::setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, + uint32_t customSampleOrderCount, + const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, + static_cast( sampleOrderType ), + customSampleOrderCount, + reinterpret_cast( pCustomSampleOrders ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::setCoarseSampleOrderNV( + VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, + ArrayProxy const & customSampleOrders, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, + static_cast( sampleOrderType ), + customSampleOrders.size(), + reinterpret_cast( customSampleOrders.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::setColorWriteEnableEXT( uint32_t attachmentCount, + const VULKAN_HPP_NAMESPACE::Bool32 * pColorWriteEnables, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetColorWriteEnableEXT( + m_commandBuffer, attachmentCount, reinterpret_cast( pColorWriteEnables ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + CommandBuffer::setColorWriteEnableEXT( ArrayProxy const & colorWriteEnables, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetColorWriteEnableEXT( + m_commandBuffer, colorWriteEnables.size(), reinterpret_cast( colorWriteEnables.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetCullModeEXT( m_commandBuffer, static_cast( cullMode ) ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::setDepthBias( float depthBiasConstantFactor, + float depthBiasClamp, + float depthBiasSlopeFactor, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetDepthBias( m_commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::setDepthBiasEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetDepthBiasEnableEXT( m_commandBuffer, static_cast( depthBiasEnable ) ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::setDepthBounds( float minDepthBounds, + float maxDepthBounds, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetDepthBounds( m_commandBuffer, minDepthBounds, maxDepthBounds ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::setDepthBoundsTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetDepthBoundsTestEnableEXT( m_commandBuffer, static_cast( depthBoundsTestEnable ) ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetDepthCompareOpEXT( m_commandBuffer, static_cast( depthCompareOp ) ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetDepthTestEnableEXT( m_commandBuffer, static_cast( depthTestEnable ) ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetDepthWriteEnableEXT( m_commandBuffer, static_cast( depthWriteEnable ) ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::setDeviceMask( uint32_t deviceMask, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetDeviceMask( m_commandBuffer, deviceMask ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::setDeviceMaskKHR( uint32_t deviceMask, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetDeviceMaskKHR( m_commandBuffer, deviceMask ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEXT( uint32_t firstDiscardRectangle, + uint32_t discardRectangleCount, + const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetDiscardRectangleEXT( m_commandBuffer, + firstDiscardRectangle, + discardRectangleCount, + reinterpret_cast( pDiscardRectangles ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + CommandBuffer::setDiscardRectangleEXT( uint32_t firstDiscardRectangle, + ArrayProxy const & discardRectangles, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetDiscardRectangleEXT( m_commandBuffer, + firstDiscardRectangle, + discardRectangles.size(), + reinterpret_cast( discardRectangles.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::setEvent( VULKAN_HPP_NAMESPACE::Event event, + VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetEvent( m_commandBuffer, static_cast( event ), static_cast( stageMask ) ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::setEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, + const VULKAN_HPP_NAMESPACE::DependencyInfoKHR * pDependencyInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetEvent2KHR( m_commandBuffer, + static_cast( event ), + reinterpret_cast( pDependencyInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::setEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, + const DependencyInfoKHR & dependencyInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetEvent2KHR( m_commandBuffer, + static_cast( event ), + reinterpret_cast( &dependencyInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( uint32_t firstExclusiveScissor, + uint32_t exclusiveScissorCount, + const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetExclusiveScissorNV( m_commandBuffer, + firstExclusiveScissor, + exclusiveScissorCount, + reinterpret_cast( pExclusiveScissors ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + CommandBuffer::setExclusiveScissorNV( uint32_t firstExclusiveScissor, + ArrayProxy const & exclusiveScissors, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetExclusiveScissorNV( m_commandBuffer, + firstExclusiveScissor, + exclusiveScissors.size(), + reinterpret_cast( exclusiveScissors.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::setFragmentShadingRateEnumNV( + VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate, + const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetFragmentShadingRateEnumNV( m_commandBuffer, + static_cast( shadingRate ), + reinterpret_cast( combinerOps ) ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::setFragmentShadingRateKHR( + const VULKAN_HPP_NAMESPACE::Extent2D * pFragmentSize, + const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetFragmentShadingRateKHR( m_commandBuffer, + reinterpret_cast( pFragmentSize ), + reinterpret_cast( combinerOps ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::setFragmentShadingRateKHR( + const Extent2D & fragmentSize, + const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetFragmentShadingRateKHR( m_commandBuffer, + reinterpret_cast( &fragmentSize ), + reinterpret_cast( combinerOps ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetFrontFaceEXT( m_commandBuffer, static_cast( frontFace ) ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::setLineStippleEXT( uint32_t lineStippleFactor, + uint16_t lineStipplePattern, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetLineStippleEXT( m_commandBuffer, lineStippleFactor, lineStipplePattern ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::setLineWidth( float lineWidth, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetLineWidth( m_commandBuffer, lineWidth ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::setLogicOpEXT( VULKAN_HPP_NAMESPACE::LogicOp logicOp, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetLogicOpEXT( m_commandBuffer, static_cast( logicOp ) ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::setPatchControlPointsEXT( uint32_t patchControlPoints, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetPatchControlPointsEXT( m_commandBuffer, patchControlPoints ); + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceMarkerINTEL( + const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL * pMarkerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCmdSetPerformanceMarkerINTEL( + m_commandBuffer, reinterpret_cast( pMarkerInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + CommandBuffer::setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo, Dispatch const & d ) const + { + Result result = static_cast( d.vkCmdSetPerformanceMarkerINTEL( + m_commandBuffer, reinterpret_cast( &markerInfo ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceMarkerINTEL" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceOverrideINTEL( + const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL * pOverrideInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCmdSetPerformanceOverrideINTEL( + m_commandBuffer, reinterpret_cast( pOverrideInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + CommandBuffer::setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo, + Dispatch const & d ) const + { + Result result = static_cast( d.vkCmdSetPerformanceOverrideINTEL( + m_commandBuffer, reinterpret_cast( &overrideInfo ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceOverrideINTEL" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceStreamMarkerINTEL( + const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL * pMarkerInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCmdSetPerformanceStreamMarkerINTEL( + m_commandBuffer, reinterpret_cast( pMarkerInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + CommandBuffer::setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo, + Dispatch const & d ) const + { + Result result = static_cast( d.vkCmdSetPerformanceStreamMarkerINTEL( + m_commandBuffer, reinterpret_cast( &markerInfo ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceStreamMarkerINTEL" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + CommandBuffer::setPrimitiveRestartEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetPrimitiveRestartEnableEXT( m_commandBuffer, static_cast( primitiveRestartEnable ) ); + } + + template + VULKAN_HPP_INLINE void + CommandBuffer::setPrimitiveTopologyEXT( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetPrimitiveTopologyEXT( m_commandBuffer, static_cast( primitiveTopology ) ); + } + + template + VULKAN_HPP_INLINE void + CommandBuffer::setRasterizerDiscardEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetRasterizerDiscardEnableEXT( m_commandBuffer, static_cast( rasterizerDiscardEnable ) ); + } + + template + VULKAN_HPP_INLINE void + CommandBuffer::setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetRayTracingPipelineStackSizeKHR( m_commandBuffer, pipelineStackSize ); + } + + template + VULKAN_HPP_INLINE void + CommandBuffer::setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT * pSampleLocationsInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetSampleLocationsEXT( m_commandBuffer, + reinterpret_cast( pSampleLocationsInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetSampleLocationsEXT( m_commandBuffer, + reinterpret_cast( &sampleLocationsInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::setScissor( uint32_t firstScissor, + uint32_t scissorCount, + const VULKAN_HPP_NAMESPACE::Rect2D * pScissors, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetScissor( m_commandBuffer, firstScissor, scissorCount, reinterpret_cast( pScissors ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::setScissor( uint32_t firstScissor, + ArrayProxy const & scissors, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetScissor( + m_commandBuffer, firstScissor, scissors.size(), reinterpret_cast( scissors.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::setScissorWithCountEXT( uint32_t scissorCount, + const VULKAN_HPP_NAMESPACE::Rect2D * pScissors, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetScissorWithCountEXT( m_commandBuffer, scissorCount, reinterpret_cast( pScissors ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + CommandBuffer::setScissorWithCountEXT( ArrayProxy const & scissors, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetScissorWithCountEXT( + m_commandBuffer, scissors.size(), reinterpret_cast( scissors.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, + uint32_t compareMask, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetStencilCompareMask( m_commandBuffer, static_cast( faceMask ), compareMask ); + } + + template + 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, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetStencilOpEXT( m_commandBuffer, + static_cast( faceMask ), + static_cast( failOp ), + static_cast( passOp ), + static_cast( depthFailOp ), + static_cast( compareOp ) ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, + uint32_t reference, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetStencilReference( m_commandBuffer, static_cast( faceMask ), reference ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetStencilTestEnableEXT( m_commandBuffer, static_cast( stencilTestEnable ) ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, + uint32_t writeMask, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetStencilWriteMask( m_commandBuffer, static_cast( faceMask ), writeMask ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::setVertexInputEXT( + uint32_t vertexBindingDescriptionCount, + const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT * pVertexBindingDescriptions, + uint32_t vertexAttributeDescriptionCount, + const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT * pVertexAttributeDescriptions, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetVertexInputEXT( + m_commandBuffer, + vertexBindingDescriptionCount, + reinterpret_cast( pVertexBindingDescriptions ), + vertexAttributeDescriptionCount, + reinterpret_cast( pVertexAttributeDescriptions ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::setVertexInputEXT( + ArrayProxy const & vertexBindingDescriptions, + ArrayProxy const & vertexAttributeDescriptions, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetVertexInputEXT( + m_commandBuffer, + vertexBindingDescriptions.size(), + reinterpret_cast( vertexBindingDescriptions.data() ), + vertexAttributeDescriptions.size(), + reinterpret_cast( vertexAttributeDescriptions.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::setViewport( uint32_t firstViewport, + uint32_t viewportCount, + const VULKAN_HPP_NAMESPACE::Viewport * pViewports, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetViewport( + m_commandBuffer, firstViewport, viewportCount, reinterpret_cast( pViewports ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::setViewport( uint32_t firstViewport, + ArrayProxy const & viewports, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetViewport( + m_commandBuffer, firstViewport, viewports.size(), reinterpret_cast( viewports.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( + uint32_t firstViewport, + uint32_t viewportCount, + const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer, + firstViewport, + viewportCount, + reinterpret_cast( pShadingRatePalettes ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( + uint32_t firstViewport, + ArrayProxy const & shadingRatePalettes, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetViewportShadingRatePaletteNV( + m_commandBuffer, + firstViewport, + shadingRatePalettes.size(), + reinterpret_cast( shadingRatePalettes.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + CommandBuffer::setViewportWScalingNV( uint32_t firstViewport, + uint32_t viewportCount, + const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetViewportWScalingNV( m_commandBuffer, + firstViewport, + viewportCount, + reinterpret_cast( pViewportWScalings ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingNV( + uint32_t firstViewport, + ArrayProxy const & viewportWScalings, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetViewportWScalingNV( m_commandBuffer, + firstViewport, + viewportWScalings.size(), + reinterpret_cast( viewportWScalings.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCountEXT( uint32_t viewportCount, + const VULKAN_HPP_NAMESPACE::Viewport * pViewports, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetViewportWithCountEXT( + m_commandBuffer, viewportCount, reinterpret_cast( pViewports ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + CommandBuffer::setViewportWithCountEXT( ArrayProxy const & viewports, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdSetViewportWithCountEXT( + m_commandBuffer, viewports.size(), reinterpret_cast( viewports.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirectKHR( + const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pRaygenShaderBindingTable, + const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pMissShaderBindingTable, + const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pHitShaderBindingTable, + const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pCallableShaderBindingTable, + VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdTraceRaysIndirectKHR( + m_commandBuffer, + reinterpret_cast( pRaygenShaderBindingTable ), + reinterpret_cast( pMissShaderBindingTable ), + reinterpret_cast( pHitShaderBindingTable ), + reinterpret_cast( pCallableShaderBindingTable ), + static_cast( indirectDeviceAddress ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + CommandBuffer::traceRaysIndirectKHR( const StridedDeviceAddressRegionKHR & raygenShaderBindingTable, + const StridedDeviceAddressRegionKHR & missShaderBindingTable, + const StridedDeviceAddressRegionKHR & hitShaderBindingTable, + const StridedDeviceAddressRegionKHR & callableShaderBindingTable, + VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdTraceRaysIndirectKHR( + m_commandBuffer, + reinterpret_cast( &raygenShaderBindingTable ), + reinterpret_cast( &missShaderBindingTable ), + reinterpret_cast( &hitShaderBindingTable ), + reinterpret_cast( &callableShaderBindingTable ), + static_cast( indirectDeviceAddress ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::traceRaysKHR( + const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pRaygenShaderBindingTable, + const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pMissShaderBindingTable, + const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pHitShaderBindingTable, + const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pCallableShaderBindingTable, + uint32_t width, + uint32_t height, + uint32_t depth, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdTraceRaysKHR( m_commandBuffer, + reinterpret_cast( pRaygenShaderBindingTable ), + reinterpret_cast( pMissShaderBindingTable ), + reinterpret_cast( pHitShaderBindingTable ), + reinterpret_cast( pCallableShaderBindingTable ), + width, + height, + depth ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::traceRaysKHR( const StridedDeviceAddressRegionKHR & raygenShaderBindingTable, + const StridedDeviceAddressRegionKHR & missShaderBindingTable, + const StridedDeviceAddressRegionKHR & hitShaderBindingTable, + const StridedDeviceAddressRegionKHR & callableShaderBindingTable, + uint32_t width, + uint32_t height, + uint32_t depth, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdTraceRaysKHR( m_commandBuffer, + reinterpret_cast( &raygenShaderBindingTable ), + reinterpret_cast( &missShaderBindingTable ), + reinterpret_cast( &hitShaderBindingTable ), + reinterpret_cast( &callableShaderBindingTable ), + width, + height, + depth ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + 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, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdTraceRaysNV( m_commandBuffer, + static_cast( raygenShaderBindingTableBuffer ), + static_cast( raygenShaderBindingOffset ), + static_cast( missShaderBindingTableBuffer ), + static_cast( missShaderBindingOffset ), + static_cast( missShaderBindingStride ), + static_cast( hitShaderBindingTableBuffer ), + static_cast( hitShaderBindingOffset ), + static_cast( hitShaderBindingStride ), + static_cast( callableShaderBindingTableBuffer ), + static_cast( callableShaderBindingOffset ), + static_cast( callableShaderBindingStride ), + width, + height, + depth ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, + VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, + VULKAN_HPP_NAMESPACE::DeviceSize dataSize, + const void * pData, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdUpdateBuffer( m_commandBuffer, + static_cast( dstBuffer ), + static_cast( dstOffset ), + static_cast( dataSize ), + pData ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, + VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, + ArrayProxy const & data, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdUpdateBuffer( m_commandBuffer, + static_cast( dstBuffer ), + static_cast( dstOffset ), + data.size() * sizeof( T ), + reinterpret_cast( data.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + CommandBuffer::waitEvents( uint32_t eventCount, + const VULKAN_HPP_NAMESPACE::Event * pEvents, + VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, + VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, + uint32_t memoryBarrierCount, + const VULKAN_HPP_NAMESPACE::MemoryBarrier * pMemoryBarriers, + uint32_t bufferMemoryBarrierCount, + const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier * pBufferMemoryBarriers, + uint32_t imageMemoryBarrierCount, + const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier * pImageMemoryBarriers, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdWaitEvents( m_commandBuffer, + eventCount, + reinterpret_cast( pEvents ), + static_cast( srcStageMask ), + static_cast( dstStageMask ), + memoryBarrierCount, + reinterpret_cast( pMemoryBarriers ), + bufferMemoryBarrierCount, + reinterpret_cast( pBufferMemoryBarriers ), + imageMemoryBarrierCount, + reinterpret_cast( pImageMemoryBarriers ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + CommandBuffer::waitEvents( ArrayProxy const & events, + VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, + VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, + ArrayProxy const & memoryBarriers, + ArrayProxy const & bufferMemoryBarriers, + ArrayProxy const & imageMemoryBarriers, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdWaitEvents( m_commandBuffer, + events.size(), + reinterpret_cast( events.data() ), + static_cast( srcStageMask ), + static_cast( dstStageMask ), + memoryBarriers.size(), + reinterpret_cast( memoryBarriers.data() ), + bufferMemoryBarriers.size(), + reinterpret_cast( bufferMemoryBarriers.data() ), + imageMemoryBarriers.size(), + reinterpret_cast( imageMemoryBarriers.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + CommandBuffer::waitEvents2KHR( uint32_t eventCount, + const VULKAN_HPP_NAMESPACE::Event * pEvents, + const VULKAN_HPP_NAMESPACE::DependencyInfoKHR * pDependencyInfos, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdWaitEvents2KHR( m_commandBuffer, + eventCount, + reinterpret_cast( pEvents ), + reinterpret_cast( pDependencyInfos ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + CommandBuffer::waitEvents2KHR( ArrayProxy const & events, + ArrayProxy const & dependencyInfos, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( events.size() == dependencyInfos.size() ); +# else + if ( events.size() != dependencyInfos.size() ) + { + throw LogicError( VULKAN_HPP_NAMESPACE_STRING + "::CommandBuffer::waitEvents2KHR: events.size() != dependencyInfos.size()" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ + + d.vkCmdWaitEvents2KHR( m_commandBuffer, + events.size(), + reinterpret_cast( events.data() ), + reinterpret_cast( dependencyInfos.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesKHR( + uint32_t accelerationStructureCount, + const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures, + VULKAN_HPP_NAMESPACE::QueryType queryType, + VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t firstQuery, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdWriteAccelerationStructuresPropertiesKHR( + m_commandBuffer, + accelerationStructureCount, + reinterpret_cast( pAccelerationStructures ), + static_cast( queryType ), + static_cast( queryPool ), + firstQuery ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesKHR( + ArrayProxy const & accelerationStructures, + VULKAN_HPP_NAMESPACE::QueryType queryType, + VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t firstQuery, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdWriteAccelerationStructuresPropertiesKHR( + m_commandBuffer, + accelerationStructures.size(), + reinterpret_cast( accelerationStructures.data() ), + static_cast( queryType ), + static_cast( queryPool ), + firstQuery ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV( + uint32_t accelerationStructureCount, + const VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructures, + VULKAN_HPP_NAMESPACE::QueryType queryType, + VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t firstQuery, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdWriteAccelerationStructuresPropertiesNV( + m_commandBuffer, + accelerationStructureCount, + reinterpret_cast( pAccelerationStructures ), + static_cast( queryType ), + static_cast( queryPool ), + firstQuery ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV( + ArrayProxy const & accelerationStructures, + VULKAN_HPP_NAMESPACE::QueryType queryType, + VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t firstQuery, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdWriteAccelerationStructuresPropertiesNV( + m_commandBuffer, + accelerationStructures.size(), + reinterpret_cast( accelerationStructures.data() ), + static_cast( queryType ), + static_cast( queryPool ), + firstQuery ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void CommandBuffer::writeBufferMarker2AMD( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage, + VULKAN_HPP_NAMESPACE::Buffer dstBuffer, + VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, + uint32_t marker, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdWriteBufferMarker2AMD( m_commandBuffer, + static_cast( stage ), + static_cast( dstBuffer ), + static_cast( dstOffset ), + marker ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::writeBufferMarkerAMD( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, + VULKAN_HPP_NAMESPACE::Buffer dstBuffer, + VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, + uint32_t marker, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdWriteBufferMarkerAMD( m_commandBuffer, + static_cast( pipelineStage ), + static_cast( dstBuffer ), + static_cast( dstOffset ), + marker ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, + VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t query, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdWriteTimestamp( m_commandBuffer, + static_cast( pipelineStage ), + static_cast( queryPool ), + query ); + } + + template + VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp2KHR( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage, + VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t query, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkCmdWriteTimestamp2KHR( + m_commandBuffer, static_cast( stage ), static_cast( queryPool ), query ); + } + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::end( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkEndCommandBuffer( m_commandBuffer ) ); + } +#else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + CommandBuffer::end( Dispatch const & d ) const + { + Result result = static_cast( d.vkEndCommandBuffer( m_commandBuffer ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::end" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::reset( + VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkResetCommandBuffer( m_commandBuffer, static_cast( flags ) ) ); + } +#else + template + VULKAN_HPP_INLINE typename ResultValueType::type + CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const & d ) const + { + Result result = + static_cast( d.vkResetCommandBuffer( m_commandBuffer, static_cast( flags ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::reset" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) +# ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireFullScreenExclusiveModeEXT( + VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast( swapchain ) ) ); + } +# else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const + { + Result result = static_cast( + d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast( swapchain ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireFullScreenExclusiveModeEXT" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::acquireNextImage2KHR( const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR * pAcquireInfo, + uint32_t * pImageIndex, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkAcquireNextImage2KHR( + m_device, reinterpret_cast( pAcquireInfo ), pImageIndex ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue + Device::acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo, Dispatch const & d ) const + { + uint32_t imageIndex; + Result result = static_cast( d.vkAcquireNextImage2KHR( + m_device, reinterpret_cast( &acquireInfo ), &imageIndex ) ); + return createResultValue( result, + imageIndex, + VULKAN_HPP_NAMESPACE_STRING "::Device::acquireNextImage2KHR", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, + VULKAN_HPP_NAMESPACE::Result::eTimeout, + VULKAN_HPP_NAMESPACE::Result::eNotReady, + VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + uint64_t timeout, + VULKAN_HPP_NAMESPACE::Semaphore semaphore, + VULKAN_HPP_NAMESPACE::Fence fence, + uint32_t * pImageIndex, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkAcquireNextImageKHR( m_device, + static_cast( swapchain ), + timeout, + static_cast( semaphore ), + static_cast( fence ), + pImageIndex ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue + Device::acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + uint64_t timeout, + VULKAN_HPP_NAMESPACE::Semaphore semaphore, + VULKAN_HPP_NAMESPACE::Fence fence, + Dispatch const & d ) const + { + uint32_t imageIndex; + Result result = static_cast( d.vkAcquireNextImageKHR( m_device, + static_cast( swapchain ), + timeout, + static_cast( semaphore ), + static_cast( fence ), + &imageIndex ) ); + return createResultValue( result, + imageIndex, + VULKAN_HPP_NAMESPACE_STRING "::Device::acquireNextImageKHR", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, + VULKAN_HPP_NAMESPACE::Result::eTimeout, + VULKAN_HPP_NAMESPACE::Result::eNotReady, + VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquirePerformanceConfigurationINTEL( + const VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL * pAcquireInfo, + VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL * pConfiguration, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkAcquirePerformanceConfigurationINTEL( + m_device, + reinterpret_cast( pAcquireInfo ), + reinterpret_cast( pConfiguration ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::acquirePerformanceConfigurationINTEL( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration; + Result result = static_cast( d.vkAcquirePerformanceConfigurationINTEL( + m_device, + reinterpret_cast( &acquireInfo ), + reinterpret_cast( &configuration ) ) ); + return createResultValue( + result, configuration, VULKAN_HPP_NAMESPACE_STRING "::Device::acquirePerformanceConfigurationINTEL" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::acquirePerformanceConfigurationINTELUnique( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration; + Result result = static_cast( d.vkAcquirePerformanceConfigurationINTEL( + m_device, + reinterpret_cast( &acquireInfo ), + reinterpret_cast( &configuration ) ) ); + ObjectRelease deleter( *this, d ); + return createResultValue( + result, + configuration, + VULKAN_HPP_NAMESPACE_STRING "::Device::acquirePerformanceConfigurationINTELUnique", + deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireProfilingLockKHR( + const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR * pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkAcquireProfilingLockKHR( m_device, reinterpret_cast( pInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info, Dispatch const & d ) const + { + Result result = static_cast( + d.vkAcquireProfilingLockKHR( m_device, reinterpret_cast( &info ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireProfilingLockKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::allocateCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo * pAllocateInfo, + VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkAllocateCommandBuffers( m_device, + reinterpret_cast( pAllocateInfo ), + reinterpret_cast( pCommandBuffers ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Dispatch const & d ) const + { + std::vector commandBuffers( allocateInfo.commandBufferCount ); + Result result = static_cast( + d.vkAllocateCommandBuffers( m_device, + reinterpret_cast( &allocateInfo ), + reinterpret_cast( commandBuffers.data() ) ) ); + return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffers" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, + CommandBufferAllocator & commandBufferAllocator, + Dispatch const & d ) const + { + std::vector commandBuffers( allocateInfo.commandBufferCount, + commandBufferAllocator ); + Result result = static_cast( + d.vkAllocateCommandBuffers( m_device, + reinterpret_cast( &allocateInfo ), + reinterpret_cast( commandBuffers.data() ) ) ); + return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffers" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType, CommandBufferAllocator>>::type + Device::allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const & d ) const + { + std::vector, CommandBufferAllocator> uniqueCommandBuffers; + std::vector commandBuffers( allocateInfo.commandBufferCount ); + Result result = static_cast( + d.vkAllocateCommandBuffers( m_device, + reinterpret_cast( &allocateInfo ), + reinterpret_cast( commandBuffers.data() ) ) ); + if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) + { + uniqueCommandBuffers.reserve( allocateInfo.commandBufferCount ); + PoolFree deleter( *this, allocateInfo.commandPool, d ); + for ( size_t i = 0; i < allocateInfo.commandBufferCount; i++ ) + { + uniqueCommandBuffers.push_back( UniqueHandle( commandBuffers[i], deleter ) ); + } + } + return createResultValue( + result, std::move( uniqueCommandBuffers ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" ); + } + + template >::value, + int>::type> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType, CommandBufferAllocator>>::type + Device::allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, + CommandBufferAllocator & commandBufferAllocator, + Dispatch const & d ) const + { + std::vector, CommandBufferAllocator> uniqueCommandBuffers( + commandBufferAllocator ); + std::vector commandBuffers( allocateInfo.commandBufferCount ); + Result result = static_cast( + d.vkAllocateCommandBuffers( m_device, + reinterpret_cast( &allocateInfo ), + reinterpret_cast( commandBuffers.data() ) ) ); + if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) + { + uniqueCommandBuffers.reserve( allocateInfo.commandBufferCount ); + PoolFree deleter( *this, allocateInfo.commandPool, d ); + for ( size_t i = 0; i < allocateInfo.commandBufferCount; i++ ) + { + uniqueCommandBuffers.push_back( UniqueHandle( commandBuffers[i], deleter ) ); + } + } + return createResultValue( + result, std::move( uniqueCommandBuffers ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::allocateDescriptorSets( const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo * pAllocateInfo, + VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkAllocateDescriptorSets( m_device, + reinterpret_cast( pAllocateInfo ), + reinterpret_cast( pDescriptorSets ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const & d ) const + { + std::vector descriptorSets( allocateInfo.descriptorSetCount ); + Result result = static_cast( + d.vkAllocateDescriptorSets( m_device, + reinterpret_cast( &allocateInfo ), + reinterpret_cast( descriptorSets.data() ) ) ); + return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSets" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, + DescriptorSetAllocator & descriptorSetAllocator, + Dispatch const & d ) const + { + std::vector descriptorSets( allocateInfo.descriptorSetCount, + descriptorSetAllocator ); + Result result = static_cast( + d.vkAllocateDescriptorSets( m_device, + reinterpret_cast( &allocateInfo ), + reinterpret_cast( descriptorSets.data() ) ) ); + return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSets" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType, DescriptorSetAllocator>>::type + Device::allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const & d ) const + { + std::vector, DescriptorSetAllocator> uniqueDescriptorSets; + std::vector descriptorSets( allocateInfo.descriptorSetCount ); + Result result = static_cast( + d.vkAllocateDescriptorSets( m_device, + reinterpret_cast( &allocateInfo ), + reinterpret_cast( descriptorSets.data() ) ) ); + if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) + { + uniqueDescriptorSets.reserve( allocateInfo.descriptorSetCount ); + PoolFree deleter( *this, allocateInfo.descriptorPool, d ); + for ( size_t i = 0; i < allocateInfo.descriptorSetCount; i++ ) + { + uniqueDescriptorSets.push_back( UniqueHandle( descriptorSets[i], deleter ) ); + } + } + return createResultValue( + result, std::move( uniqueDescriptorSets ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" ); + } + + template >::value, + int>::type> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType, DescriptorSetAllocator>>::type + Device::allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, + DescriptorSetAllocator & descriptorSetAllocator, + Dispatch const & d ) const + { + std::vector, DescriptorSetAllocator> uniqueDescriptorSets( + descriptorSetAllocator ); + std::vector descriptorSets( allocateInfo.descriptorSetCount ); + Result result = static_cast( + d.vkAllocateDescriptorSets( m_device, + reinterpret_cast( &allocateInfo ), + reinterpret_cast( descriptorSets.data() ) ) ); + if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) + { + uniqueDescriptorSets.reserve( allocateInfo.descriptorSetCount ); + PoolFree deleter( *this, allocateInfo.descriptorPool, d ); + for ( size_t i = 0; i < allocateInfo.descriptorSetCount; i++ ) + { + uniqueDescriptorSets.push_back( UniqueHandle( descriptorSets[i], deleter ) ); + } + } + return createResultValue( + result, std::move( uniqueDescriptorSets ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::allocateMemory( const VULKAN_HPP_NAMESPACE::MemoryAllocateInfo * pAllocateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::DeviceMemory * pMemory, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkAllocateMemory( m_device, + reinterpret_cast( pAllocateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pMemory ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::allocateMemory( const MemoryAllocateInfo & allocateInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DeviceMemory memory; + Result result = static_cast( + d.vkAllocateMemory( m_device, + reinterpret_cast( &allocateInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &memory ) ) ); + return createResultValue( result, memory, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateMemory" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::allocateMemoryUnique( const MemoryAllocateInfo & allocateInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DeviceMemory memory; + Result result = static_cast( + d.vkAllocateMemory( m_device, + reinterpret_cast( &allocateInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &memory ) ) ); + ObjectFree deleter( *this, allocator, d ); + return createResultValue( + result, memory, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateMemoryUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindAccelerationStructureMemoryNV( + uint32_t bindInfoCount, + const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV * pBindInfos, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkBindAccelerationStructureMemoryNV( + m_device, bindInfoCount, reinterpret_cast( pBindInfos ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::bindAccelerationStructureMemoryNV( + ArrayProxy const & bindInfos, + Dispatch const & d ) const + { + Result result = static_cast( d.vkBindAccelerationStructureMemoryNV( + m_device, + bindInfos.size(), + reinterpret_cast( bindInfos.data() ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindAccelerationStructureMemoryNV" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindBufferMemory( VULKAN_HPP_NAMESPACE::Buffer buffer, + VULKAN_HPP_NAMESPACE::DeviceMemory memory, + VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkBindBufferMemory( m_device, + static_cast( buffer ), + static_cast( memory ), + static_cast( memoryOffset ) ) ); + } +#else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::bindBufferMemory( VULKAN_HPP_NAMESPACE::Buffer buffer, + VULKAN_HPP_NAMESPACE::DeviceMemory memory, + VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, + Dispatch const & d ) const + { + Result result = static_cast( d.vkBindBufferMemory( m_device, + static_cast( buffer ), + static_cast( memory ), + static_cast( memoryOffset ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::bindBufferMemory2( uint32_t bindInfoCount, + const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo * pBindInfos, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkBindBufferMemory2( + m_device, bindInfoCount, reinterpret_cast( pBindInfos ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::bindBufferMemory2( ArrayProxy const & bindInfos, + Dispatch const & d ) const + { + Result result = static_cast( d.vkBindBufferMemory2( + m_device, bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::bindBufferMemory2KHR( uint32_t bindInfoCount, + const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo * pBindInfos, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkBindBufferMemory2KHR( + m_device, bindInfoCount, reinterpret_cast( pBindInfos ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::bindBufferMemory2KHR( ArrayProxy const & bindInfos, + Dispatch const & d ) const + { + Result result = static_cast( d.vkBindBufferMemory2KHR( + m_device, bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2KHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindImageMemory( VULKAN_HPP_NAMESPACE::Image image, + VULKAN_HPP_NAMESPACE::DeviceMemory memory, + VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkBindImageMemory( m_device, + static_cast( image ), + static_cast( memory ), + static_cast( memoryOffset ) ) ); + } +#else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::bindImageMemory( VULKAN_HPP_NAMESPACE::Image image, + VULKAN_HPP_NAMESPACE::DeviceMemory memory, + VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, + Dispatch const & d ) const + { + Result result = static_cast( d.vkBindImageMemory( m_device, + static_cast( image ), + static_cast( memory ), + static_cast( memoryOffset ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::bindImageMemory2( uint32_t bindInfoCount, + const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo * pBindInfos, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkBindImageMemory2( m_device, bindInfoCount, reinterpret_cast( pBindInfos ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::bindImageMemory2( ArrayProxy const & bindInfos, + Dispatch const & d ) const + { + Result result = static_cast( d.vkBindImageMemory2( + m_device, bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::bindImageMemory2KHR( uint32_t bindInfoCount, + const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo * pBindInfos, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkBindImageMemory2KHR( + m_device, bindInfoCount, reinterpret_cast( pBindInfos ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::bindImageMemory2KHR( ArrayProxy const & bindInfos, + Dispatch const & d ) const + { + Result result = static_cast( d.vkBindImageMemory2KHR( + m_device, bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2KHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::bindVideoSessionMemoryKHR( VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession, + uint32_t videoSessionBindMemoryCount, + const VULKAN_HPP_NAMESPACE::VideoBindMemoryKHR * pVideoSessionBindMemories, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkBindVideoSessionMemoryKHR( m_device, + static_cast( videoSession ), + videoSessionBindMemoryCount, + reinterpret_cast( pVideoSessionBindMemories ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::bindVideoSessionMemoryKHR( + VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession, + ArrayProxy const & videoSessionBindMemories, + Dispatch const & d ) const + { + Result result = static_cast( d.vkBindVideoSessionMemoryKHR( + m_device, + static_cast( videoSession ), + videoSessionBindMemories.size(), + reinterpret_cast( videoSessionBindMemories.data() ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindVideoSessionMemoryKHR" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::buildAccelerationStructuresKHR( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + uint32_t infoCount, + const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pInfos, + const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkBuildAccelerationStructuresKHR( + m_device, + static_cast( deferredOperation ), + infoCount, + reinterpret_cast( pInfos ), + reinterpret_cast( ppBuildRangeInfos ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE Result Device::buildAccelerationStructuresKHR( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + ArrayProxy const & infos, + ArrayProxy const & pBuildRangeInfos, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( infos.size() == pBuildRangeInfos.size() ); +# else + if ( infos.size() != pBuildRangeInfos.size() ) + { + throw LogicError( VULKAN_HPP_NAMESPACE_STRING + "::Device::buildAccelerationStructuresKHR: infos.size() != pBuildRangeInfos.size()" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ + + Result result = static_cast( d.vkBuildAccelerationStructuresKHR( + m_device, + static_cast( deferredOperation ), + infos.size(), + reinterpret_cast( infos.data() ), + reinterpret_cast( pBuildRangeInfos.data() ) ) ); + return createResultValue( result, + VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructuresKHR", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, + VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, + VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::compileDeferredNV( + VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCompileDeferredNV( m_device, static_cast( pipeline ), shader ) ); + } +#else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const & d ) const + { + Result result = + static_cast( d.vkCompileDeferredNV( m_device, static_cast( pipeline ), shader ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::compileDeferredNV" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR * pInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCopyAccelerationStructureKHR( m_device, + static_cast( deferredOperation ), + reinterpret_cast( pInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + const CopyAccelerationStructureInfoKHR & info, + Dispatch const & d ) const + { + Result result = static_cast( + d.vkCopyAccelerationStructureKHR( m_device, + static_cast( deferredOperation ), + reinterpret_cast( &info ) ) ); + return createResultValue( result, + VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureKHR", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, + VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, + VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureToMemoryKHR( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR * pInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCopyAccelerationStructureToMemoryKHR( + m_device, + static_cast( deferredOperation ), + reinterpret_cast( pInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::copyAccelerationStructureToMemoryKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + const CopyAccelerationStructureToMemoryInfoKHR & info, + Dispatch const & d ) const + { + Result result = static_cast( d.vkCopyAccelerationStructureToMemoryKHR( + m_device, + static_cast( deferredOperation ), + reinterpret_cast( &info ) ) ); + return createResultValue( result, + VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureToMemoryKHR", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, + VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, + VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyMemoryToAccelerationStructureKHR( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR * pInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCopyMemoryToAccelerationStructureKHR( + m_device, + static_cast( deferredOperation ), + reinterpret_cast( pInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::copyMemoryToAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + const CopyMemoryToAccelerationStructureInfoKHR & info, + Dispatch const & d ) const + { + Result result = static_cast( d.vkCopyMemoryToAccelerationStructureKHR( + m_device, + static_cast( deferredOperation ), + reinterpret_cast( &info ) ) ); + return createResultValue( result, + VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToAccelerationStructureKHR", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, + VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, + VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createAccelerationStructureKHR( + const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructure, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateAccelerationStructureKHR( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pAccelerationStructure ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createAccelerationStructureKHR( const AccelerationStructureCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure; + Result result = static_cast( d.vkCreateAccelerationStructureKHR( + m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &accelerationStructure ) ) ); + return createResultValue( + result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureKHR" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createAccelerationStructureKHRUnique( const AccelerationStructureCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure; + Result result = static_cast( d.vkCreateAccelerationStructureKHR( + m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &accelerationStructure ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, + accelerationStructure, + VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureKHRUnique", + deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructure, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateAccelerationStructureNV( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pAccelerationStructure ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE typename ResultValueType::type + Device::createAccelerationStructureNV( const AccelerationStructureCreateInfoNV & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure; + Result result = static_cast( d.vkCreateAccelerationStructureNV( + m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &accelerationStructure ) ) ); + return createResultValue( + result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureNV" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createAccelerationStructureNVUnique( const AccelerationStructureCreateInfoNV & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure; + Result result = static_cast( d.vkCreateAccelerationStructureNV( + m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &accelerationStructure ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, + accelerationStructure, + VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureNVUnique", + deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createBuffer( const VULKAN_HPP_NAMESPACE::BufferCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Buffer * pBuffer, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCreateBuffer( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pBuffer ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::createBuffer( const BufferCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::Buffer buffer; + Result result = static_cast( + d.vkCreateBuffer( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &buffer ) ) ); + return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createBuffer" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createBufferUnique( const BufferCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::Buffer buffer; + Result result = static_cast( + d.vkCreateBuffer( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &buffer ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, buffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createBufferView( const VULKAN_HPP_NAMESPACE::BufferViewCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::BufferView * pView, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCreateBufferView( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pView ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createBufferView( const BufferViewCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::BufferView view; + Result result = static_cast( + d.vkCreateBufferView( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &view ) ) ); + return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferView" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createBufferViewUnique( const BufferViewCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::BufferView view; + Result result = static_cast( + d.vkCreateBufferView( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &view ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferViewUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createCommandPool( const VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::CommandPool * pCommandPool, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCreateCommandPool( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pCommandPool ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createCommandPool( const CommandPoolCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::CommandPool commandPool; + Result result = static_cast( + d.vkCreateCommandPool( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &commandPool ) ) ); + return createResultValue( result, commandPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createCommandPool" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createCommandPoolUnique( const CommandPoolCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::CommandPool commandPool; + Result result = static_cast( + d.vkCreateCommandPool( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &commandPool ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, commandPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createCommandPoolUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + uint32_t createInfoCount, + const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo * pCreateInfos, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Pipeline * pPipelines, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateComputePipelines( m_device, + static_cast( pipelineCache ), + createInfoCount, + reinterpret_cast( pCreateInfos ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pPipelines ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> + Device::createComputePipelines( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + Dispatch const & d ) const + { + std::vector pipelines( createInfos.size() ); + Result result = static_cast( + d.vkCreateComputePipelines( m_device, + static_cast( pipelineCache ), + createInfos.size(), + reinterpret_cast( createInfos.data() ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( pipelines.data() ) ) ); + return createResultValue( + result, + pipelines, + VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelines", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> + Device::createComputePipelines( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + PipelineAllocator & pipelineAllocator, + Dispatch const & d ) const + { + std::vector pipelines( createInfos.size(), pipelineAllocator ); + Result result = static_cast( + d.vkCreateComputePipelines( m_device, + static_cast( pipelineCache ), + createInfos.size(), + reinterpret_cast( createInfos.data() ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( pipelines.data() ) ) ); + return createResultValue( + result, + pipelines, + VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelines", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue + Device::createComputePipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + Pipeline pipeline; + Result result = static_cast( + d.vkCreateComputePipelines( m_device, + static_cast( pipelineCache ), + 1, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &pipeline ) ) ); + return createResultValue( + result, + pipeline, + VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipeline", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> + Device::createComputePipelinesUnique( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + Dispatch const & d ) const + { + std::vector, PipelineAllocator> uniquePipelines; + std::vector pipelines( createInfos.size() ); + Result result = static_cast( + d.vkCreateComputePipelines( m_device, + static_cast( pipelineCache ), + createInfos.size(), + reinterpret_cast( createInfos.data() ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( pipelines.data() ) ) ); + if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || + ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) + { + uniquePipelines.reserve( createInfos.size() ); + ObjectDestroy deleter( *this, allocator, d ); + for ( size_t i = 0; i < createInfos.size(); i++ ) + { + uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); + } + } + return createResultValue( + result, + std::move( uniquePipelines ), + VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); + } + + template < + typename Dispatch, + typename PipelineAllocator, + typename B, + typename std::enable_if>::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> + Device::createComputePipelinesUnique( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + PipelineAllocator & pipelineAllocator, + Dispatch const & d ) const + { + std::vector, PipelineAllocator> uniquePipelines( pipelineAllocator ); + std::vector pipelines( createInfos.size() ); + Result result = static_cast( + d.vkCreateComputePipelines( m_device, + static_cast( pipelineCache ), + createInfos.size(), + reinterpret_cast( createInfos.data() ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( pipelines.data() ) ) ); + if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || + ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) + { + uniquePipelines.reserve( createInfos.size() ); + ObjectDestroy deleter( *this, allocator, d ); + for ( size_t i = 0; i < createInfos.size(); i++ ) + { + uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); + } + } + return createResultValue( + result, + std::move( uniquePipelines ), + VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> + Device::createComputePipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + Pipeline pipeline; + Result result = static_cast( + d.vkCreateComputePipelines( m_device, + static_cast( pipelineCache ), + 1, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &pipeline ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, + pipeline, + VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelineUnique", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT }, + deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createDeferredOperationKHR( const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::DeferredOperationKHR * pDeferredOperation, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateDeferredOperationKHR( m_device, + reinterpret_cast( pAllocator ), + reinterpret_cast( pDeferredOperation ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE typename ResultValueType::type + Device::createDeferredOperationKHR( Optional allocator, Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation; + Result result = static_cast( + d.vkCreateDeferredOperationKHR( m_device, + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &deferredOperation ) ) ); + return createResultValue( + result, deferredOperation, VULKAN_HPP_NAMESPACE_STRING "::Device::createDeferredOperationKHR" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_INLINE typename ResultValueType>::type + Device::createDeferredOperationKHRUnique( Optional allocator, Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation; + Result result = static_cast( + d.vkCreateDeferredOperationKHR( m_device, + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &deferredOperation ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, deferredOperation, VULKAN_HPP_NAMESPACE_STRING "::Device::createDeferredOperationKHRUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createDescriptorPool( const VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::DescriptorPool * pDescriptorPool, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateDescriptorPool( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pDescriptorPool ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createDescriptorPool( const DescriptorPoolCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool; + Result result = static_cast( + d.vkCreateDescriptorPool( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &descriptorPool ) ) ); + return createResultValue( result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorPool" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createDescriptorPoolUnique( const DescriptorPoolCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool; + Result result = static_cast( + d.vkCreateDescriptorPool( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &descriptorPool ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorPoolUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createDescriptorSetLayout( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayout, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateDescriptorSetLayout( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pSetLayout ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createDescriptorSetLayout( const DescriptorSetLayoutCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout; + Result result = static_cast( + d.vkCreateDescriptorSetLayout( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &setLayout ) ) ); + return createResultValue( result, setLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorSetLayout" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createDescriptorSetLayoutUnique( const DescriptorSetLayoutCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout; + Result result = static_cast( + d.vkCreateDescriptorSetLayout( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &setLayout ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, setLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorSetLayoutUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createDescriptorUpdateTemplate( + const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate * pDescriptorUpdateTemplate, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCreateDescriptorUpdateTemplate( + m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pDescriptorUpdateTemplate ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createDescriptorUpdateTemplate( const DescriptorUpdateTemplateCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate; + Result result = static_cast( d.vkCreateDescriptorUpdateTemplate( + m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &descriptorUpdateTemplate ) ) ); + return createResultValue( + result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplate" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createDescriptorUpdateTemplateUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate; + Result result = static_cast( d.vkCreateDescriptorUpdateTemplate( + m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &descriptorUpdateTemplate ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, + descriptorUpdateTemplate, + VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateUnique", + deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createDescriptorUpdateTemplateKHR( + const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate * pDescriptorUpdateTemplate, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCreateDescriptorUpdateTemplateKHR( + m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pDescriptorUpdateTemplate ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createDescriptorUpdateTemplateKHR( const DescriptorUpdateTemplateCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate; + Result result = static_cast( d.vkCreateDescriptorUpdateTemplateKHR( + m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &descriptorUpdateTemplate ) ) ); + return createResultValue( + result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateKHR" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createDescriptorUpdateTemplateKHRUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate; + Result result = static_cast( d.vkCreateDescriptorUpdateTemplateKHR( + m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &descriptorUpdateTemplate ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, + descriptorUpdateTemplate, + VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateKHRUnique", + deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createEvent( const VULKAN_HPP_NAMESPACE::EventCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Event * pEvent, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCreateEvent( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pEvent ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::createEvent( const EventCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::Event event; + Result result = static_cast( + d.vkCreateEvent( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &event ) ) ); + return createResultValue( result, event, VULKAN_HPP_NAMESPACE_STRING "::Device::createEvent" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createEventUnique( const EventCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::Event event; + Result result = static_cast( + d.vkCreateEvent( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &event ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, event, VULKAN_HPP_NAMESPACE_STRING "::Device::createEventUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createFence( const VULKAN_HPP_NAMESPACE::FenceCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Fence * pFence, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCreateFence( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pFence ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::createFence( const FenceCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::Fence fence; + Result result = static_cast( + d.vkCreateFence( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &fence ) ) ); + return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::createFence" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createFenceUnique( const FenceCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::Fence fence; + Result result = static_cast( + d.vkCreateFence( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &fence ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::createFenceUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createFramebuffer( const VULKAN_HPP_NAMESPACE::FramebufferCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Framebuffer * pFramebuffer, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCreateFramebuffer( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pFramebuffer ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createFramebuffer( const FramebufferCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::Framebuffer framebuffer; + Result result = static_cast( + d.vkCreateFramebuffer( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &framebuffer ) ) ); + return createResultValue( result, framebuffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createFramebuffer" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createFramebufferUnique( const FramebufferCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::Framebuffer framebuffer; + Result result = static_cast( + d.vkCreateFramebuffer( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &framebuffer ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, framebuffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createFramebufferUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + uint32_t createInfoCount, + const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo * pCreateInfos, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Pipeline * pPipelines, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateGraphicsPipelines( m_device, + static_cast( pipelineCache ), + createInfoCount, + reinterpret_cast( pCreateInfos ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pPipelines ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> + Device::createGraphicsPipelines( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + Dispatch const & d ) const + { + std::vector pipelines( createInfos.size() ); + Result result = static_cast( + d.vkCreateGraphicsPipelines( m_device, + static_cast( pipelineCache ), + createInfos.size(), + reinterpret_cast( createInfos.data() ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( pipelines.data() ) ) ); + return createResultValue( + result, + pipelines, + VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelines", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> + Device::createGraphicsPipelines( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + PipelineAllocator & pipelineAllocator, + Dispatch const & d ) const + { + std::vector pipelines( createInfos.size(), pipelineAllocator ); + Result result = static_cast( + d.vkCreateGraphicsPipelines( m_device, + static_cast( pipelineCache ), + createInfos.size(), + reinterpret_cast( createInfos.data() ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( pipelines.data() ) ) ); + return createResultValue( + result, + pipelines, + VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelines", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue + Device::createGraphicsPipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + Pipeline pipeline; + Result result = static_cast( + d.vkCreateGraphicsPipelines( m_device, + static_cast( pipelineCache ), + 1, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &pipeline ) ) ); + return createResultValue( + result, + pipeline, + VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipeline", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> + Device::createGraphicsPipelinesUnique( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + Dispatch const & d ) const + { + std::vector, PipelineAllocator> uniquePipelines; + std::vector pipelines( createInfos.size() ); + Result result = static_cast( + d.vkCreateGraphicsPipelines( m_device, + static_cast( pipelineCache ), + createInfos.size(), + reinterpret_cast( createInfos.data() ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( pipelines.data() ) ) ); + if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || + ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) + { + uniquePipelines.reserve( createInfos.size() ); + ObjectDestroy deleter( *this, allocator, d ); + for ( size_t i = 0; i < createInfos.size(); i++ ) + { + uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); + } + } + return createResultValue( + result, + std::move( uniquePipelines ), + VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); + } + + template < + typename Dispatch, + typename PipelineAllocator, + typename B, + typename std::enable_if>::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> + Device::createGraphicsPipelinesUnique( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + PipelineAllocator & pipelineAllocator, + Dispatch const & d ) const + { + std::vector, PipelineAllocator> uniquePipelines( pipelineAllocator ); + std::vector pipelines( createInfos.size() ); + Result result = static_cast( + d.vkCreateGraphicsPipelines( m_device, + static_cast( pipelineCache ), + createInfos.size(), + reinterpret_cast( createInfos.data() ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( pipelines.data() ) ) ); + if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || + ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) + { + uniquePipelines.reserve( createInfos.size() ); + ObjectDestroy deleter( *this, allocator, d ); + for ( size_t i = 0; i < createInfos.size(); i++ ) + { + uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); + } + } + return createResultValue( + result, + std::move( uniquePipelines ), + VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> + Device::createGraphicsPipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + Pipeline pipeline; + Result result = static_cast( + d.vkCreateGraphicsPipelines( m_device, + static_cast( pipelineCache ), + 1, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &pipeline ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, + pipeline, + VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelineUnique", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT }, + deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createImage( const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Image * pImage, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCreateImage( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pImage ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::createImage( const ImageCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::Image image; + Result result = static_cast( + d.vkCreateImage( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &image ) ) ); + return createResultValue( result, image, VULKAN_HPP_NAMESPACE_STRING "::Device::createImage" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createImageUnique( const ImageCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::Image image; + Result result = static_cast( + d.vkCreateImage( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &image ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, image, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createImageView( const VULKAN_HPP_NAMESPACE::ImageViewCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::ImageView * pView, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCreateImageView( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pView ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createImageView( const ImageViewCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::ImageView view; + Result result = static_cast( + d.vkCreateImageView( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &view ) ) ); + return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageView" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createImageViewUnique( const ImageViewCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::ImageView view; + Result result = static_cast( + d.vkCreateImageView( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &view ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageViewUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createIndirectCommandsLayoutNV( + const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV * pIndirectCommandsLayout, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateIndirectCommandsLayoutNV( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pIndirectCommandsLayout ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createIndirectCommandsLayoutNV( const IndirectCommandsLayoutCreateInfoNV & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout; + Result result = static_cast( d.vkCreateIndirectCommandsLayoutNV( + m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &indirectCommandsLayout ) ) ); + return createResultValue( + result, indirectCommandsLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutNV" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createIndirectCommandsLayoutNVUnique( const IndirectCommandsLayoutCreateInfoNV & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout; + Result result = static_cast( d.vkCreateIndirectCommandsLayoutNV( + m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &indirectCommandsLayout ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, + indirectCommandsLayout, + VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutNVUnique", + deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createPipelineCache( const VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::PipelineCache * pPipelineCache, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreatePipelineCache( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pPipelineCache ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createPipelineCache( const PipelineCacheCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache; + Result result = static_cast( + d.vkCreatePipelineCache( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &pipelineCache ) ) ); + return createResultValue( result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineCache" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createPipelineCacheUnique( const PipelineCacheCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache; + Result result = static_cast( + d.vkCreatePipelineCache( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &pipelineCache ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineCacheUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createPipelineLayout( const VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::PipelineLayout * pPipelineLayout, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreatePipelineLayout( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pPipelineLayout ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createPipelineLayout( const PipelineLayoutCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout; + Result result = static_cast( + d.vkCreatePipelineLayout( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &pipelineLayout ) ) ); + return createResultValue( result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineLayout" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createPipelineLayoutUnique( const PipelineLayoutCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout; + Result result = static_cast( + d.vkCreatePipelineLayout( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &pipelineLayout ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineLayoutUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createPrivateDataSlotEXT( const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT * pPrivateDataSlot, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreatePrivateDataSlotEXT( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pPrivateDataSlot ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE typename ResultValueType::type + Device::createPrivateDataSlotEXT( const PrivateDataSlotCreateInfoEXT & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot; + Result result = static_cast( + d.vkCreatePrivateDataSlotEXT( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &privateDataSlot ) ) ); + return createResultValue( + result, privateDataSlot, VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlotEXT" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_INLINE typename ResultValueType>::type + Device::createPrivateDataSlotEXTUnique( const PrivateDataSlotCreateInfoEXT & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot; + Result result = static_cast( + d.vkCreatePrivateDataSlotEXT( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &privateDataSlot ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, privateDataSlot, VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlotEXTUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createQueryPool( const VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::QueryPool * pQueryPool, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCreateQueryPool( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pQueryPool ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createQueryPool( const QueryPoolCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::QueryPool queryPool; + Result result = static_cast( + d.vkCreateQueryPool( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &queryPool ) ) ); + return createResultValue( result, queryPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createQueryPool" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createQueryPoolUnique( const QueryPoolCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::QueryPool queryPool; + Result result = static_cast( + d.vkCreateQueryPool( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &queryPool ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, queryPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createQueryPoolUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + uint32_t createInfoCount, + const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR * pCreateInfos, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Pipeline * pPipelines, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateRayTracingPipelinesKHR( m_device, + static_cast( deferredOperation ), + static_cast( pipelineCache ), + createInfoCount, + reinterpret_cast( pCreateInfos ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pPipelines ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> + Device::createRayTracingPipelinesKHR( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + Dispatch const & d ) const + { + std::vector pipelines( createInfos.size() ); + Result result = static_cast( d.vkCreateRayTracingPipelinesKHR( + m_device, + static_cast( deferredOperation ), + static_cast( pipelineCache ), + createInfos.size(), + reinterpret_cast( createInfos.data() ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( pipelines.data() ) ) ); + return createResultValue( result, + pipelines, + VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHR", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, + VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, + VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, + VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> + Device::createRayTracingPipelinesKHR( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + PipelineAllocator & pipelineAllocator, + Dispatch const & d ) const + { + std::vector pipelines( createInfos.size(), pipelineAllocator ); + Result result = static_cast( d.vkCreateRayTracingPipelinesKHR( + m_device, + static_cast( deferredOperation ), + static_cast( pipelineCache ), + createInfos.size(), + reinterpret_cast( createInfos.data() ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( pipelines.data() ) ) ); + return createResultValue( result, + pipelines, + VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHR", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, + VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, + VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, + VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue + Device::createRayTracingPipelineKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + Pipeline pipeline; + Result result = static_cast( + d.vkCreateRayTracingPipelinesKHR( m_device, + static_cast( deferredOperation ), + static_cast( pipelineCache ), + 1, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &pipeline ) ) ); + return createResultValue( result, + pipeline, + VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineKHR", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, + VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, + VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, + VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> + Device::createRayTracingPipelinesKHRUnique( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + Dispatch const & d ) const + { + std::vector, PipelineAllocator> uniquePipelines; + std::vector pipelines( createInfos.size() ); + Result result = static_cast( d.vkCreateRayTracingPipelinesKHR( + m_device, + static_cast( deferredOperation ), + static_cast( pipelineCache ), + createInfos.size(), + reinterpret_cast( createInfos.data() ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( 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 ) ) + { + uniquePipelines.reserve( createInfos.size() ); + ObjectDestroy deleter( *this, allocator, d ); + for ( size_t i = 0; i < createInfos.size(); i++ ) + { + uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); + } + } + return createResultValue( result, + std::move( uniquePipelines ), + VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHRUnique", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, + VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, + VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, + VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); + } + + template < + typename Dispatch, + typename PipelineAllocator, + typename B, + typename std::enable_if>::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> + Device::createRayTracingPipelinesKHRUnique( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + PipelineAllocator & pipelineAllocator, + Dispatch const & d ) const + { + std::vector, PipelineAllocator> uniquePipelines( pipelineAllocator ); + std::vector pipelines( createInfos.size() ); + Result result = static_cast( d.vkCreateRayTracingPipelinesKHR( + m_device, + static_cast( deferredOperation ), + static_cast( pipelineCache ), + createInfos.size(), + reinterpret_cast( createInfos.data() ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( 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 ) ) + { + uniquePipelines.reserve( createInfos.size() ); + ObjectDestroy deleter( *this, allocator, d ); + for ( size_t i = 0; i < createInfos.size(); i++ ) + { + uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); + } + } + return createResultValue( result, + std::move( uniquePipelines ), + VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHRUnique", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, + VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, + VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, + VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> + Device::createRayTracingPipelineKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + Pipeline pipeline; + Result result = static_cast( + d.vkCreateRayTracingPipelinesKHR( m_device, + static_cast( deferredOperation ), + static_cast( pipelineCache ), + 1, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &pipeline ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( result, + pipeline, + VULKAN_HPP_NAMESPACE_STRING + "::Device::createRayTracingPipelineKHRUnique", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, + VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, + VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, + VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT }, + deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + uint32_t createInfoCount, + const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV * pCreateInfos, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Pipeline * pPipelines, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateRayTracingPipelinesNV( m_device, + static_cast( pipelineCache ), + createInfoCount, + reinterpret_cast( pCreateInfos ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pPipelines ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> + Device::createRayTracingPipelinesNV( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + Dispatch const & d ) const + { + std::vector pipelines( createInfos.size() ); + Result result = static_cast( + d.vkCreateRayTracingPipelinesNV( m_device, + static_cast( pipelineCache ), + createInfos.size(), + reinterpret_cast( createInfos.data() ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( pipelines.data() ) ) ); + return createResultValue( + result, + pipelines, + VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNV", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> + Device::createRayTracingPipelinesNV( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + PipelineAllocator & pipelineAllocator, + Dispatch const & d ) const + { + std::vector pipelines( createInfos.size(), pipelineAllocator ); + Result result = static_cast( + d.vkCreateRayTracingPipelinesNV( m_device, + static_cast( pipelineCache ), + createInfos.size(), + reinterpret_cast( createInfos.data() ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( pipelines.data() ) ) ); + return createResultValue( + result, + pipelines, + VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNV", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue + Device::createRayTracingPipelineNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV & createInfo, + Optional allocator, + Dispatch const & d ) const + { + Pipeline pipeline; + Result result = static_cast( + d.vkCreateRayTracingPipelinesNV( m_device, + static_cast( pipelineCache ), + 1, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &pipeline ) ) ); + return createResultValue( + result, + pipeline, + VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineNV", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> + Device::createRayTracingPipelinesNVUnique( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + Dispatch const & d ) const + { + std::vector, PipelineAllocator> uniquePipelines; + std::vector pipelines( createInfos.size() ); + Result result = static_cast( + d.vkCreateRayTracingPipelinesNV( m_device, + static_cast( pipelineCache ), + createInfos.size(), + reinterpret_cast( createInfos.data() ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( pipelines.data() ) ) ); + if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || + ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) + { + uniquePipelines.reserve( createInfos.size() ); + ObjectDestroy deleter( *this, allocator, d ); + for ( size_t i = 0; i < createInfos.size(); i++ ) + { + uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); + } + } + return createResultValue( + result, + std::move( uniquePipelines ), + VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); + } + + template < + typename Dispatch, + typename PipelineAllocator, + typename B, + typename std::enable_if>::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> + Device::createRayTracingPipelinesNVUnique( + VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + ArrayProxy const & createInfos, + Optional allocator, + PipelineAllocator & pipelineAllocator, + Dispatch const & d ) const + { + std::vector, PipelineAllocator> uniquePipelines( pipelineAllocator ); + std::vector pipelines( createInfos.size() ); + Result result = static_cast( + d.vkCreateRayTracingPipelinesNV( m_device, + static_cast( pipelineCache ), + createInfos.size(), + reinterpret_cast( createInfos.data() ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( pipelines.data() ) ) ); + if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || + ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) + { + uniquePipelines.reserve( createInfos.size() ); + ObjectDestroy deleter( *this, allocator, d ); + for ( size_t i = 0; i < createInfos.size(); i++ ) + { + uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); + } + } + return createResultValue( + result, + std::move( uniquePipelines ), + VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> + Device::createRayTracingPipelineNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV & createInfo, + Optional allocator, + Dispatch const & d ) const + { + Pipeline pipeline; + Result result = static_cast( + d.vkCreateRayTracingPipelinesNV( m_device, + static_cast( pipelineCache ), + 1, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &pipeline ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, + pipeline, + VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineNVUnique", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT }, + deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCreateRenderPass( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pRenderPass ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createRenderPass( const RenderPassCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::RenderPass renderPass; + Result result = static_cast( + d.vkCreateRenderPass( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &renderPass ) ) ); + return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createRenderPassUnique( const RenderPassCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::RenderPass renderPass; + Result result = static_cast( + d.vkCreateRenderPass( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &renderPass ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPassUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCreateRenderPass2( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pRenderPass ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createRenderPass2( const RenderPassCreateInfo2 & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::RenderPass renderPass; + Result result = static_cast( + d.vkCreateRenderPass2( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &renderPass ) ) ); + return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createRenderPass2Unique( const RenderPassCreateInfo2 & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::RenderPass renderPass; + Result result = static_cast( + d.vkCreateRenderPass2( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &renderPass ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2Unique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateRenderPass2KHR( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pRenderPass ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createRenderPass2KHR( const RenderPassCreateInfo2 & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::RenderPass renderPass; + Result result = static_cast( + d.vkCreateRenderPass2KHR( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &renderPass ) ) ); + return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2KHR" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createRenderPass2KHRUnique( const RenderPassCreateInfo2 & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::RenderPass renderPass; + Result result = static_cast( + d.vkCreateRenderPass2KHR( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &renderPass ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2KHRUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createSampler( const VULKAN_HPP_NAMESPACE::SamplerCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Sampler * pSampler, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCreateSampler( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pSampler ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createSampler( const SamplerCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::Sampler sampler; + Result result = static_cast( + d.vkCreateSampler( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &sampler ) ) ); + return createResultValue( result, sampler, VULKAN_HPP_NAMESPACE_STRING "::Device::createSampler" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createSamplerUnique( const SamplerCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::Sampler sampler; + Result result = static_cast( + d.vkCreateSampler( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &sampler ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, sampler, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createSamplerYcbcrConversion( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion * pYcbcrConversion, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateSamplerYcbcrConversion( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pYcbcrConversion ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createSamplerYcbcrConversion( const SamplerYcbcrConversionCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion; + Result result = static_cast( + d.vkCreateSamplerYcbcrConversion( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &ycbcrConversion ) ) ); + return createResultValue( + result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversion" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createSamplerYcbcrConversionUnique( const SamplerYcbcrConversionCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion; + Result result = static_cast( + d.vkCreateSamplerYcbcrConversion( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &ycbcrConversion ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createSamplerYcbcrConversionKHR( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion * pYcbcrConversion, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateSamplerYcbcrConversionKHR( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pYcbcrConversion ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createSamplerYcbcrConversionKHR( const SamplerYcbcrConversionCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion; + Result result = static_cast( d.vkCreateSamplerYcbcrConversionKHR( + m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &ycbcrConversion ) ) ); + return createResultValue( + result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionKHR" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createSamplerYcbcrConversionKHRUnique( const SamplerYcbcrConversionCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion; + Result result = static_cast( d.vkCreateSamplerYcbcrConversionKHR( + m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &ycbcrConversion ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionKHRUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Semaphore * pSemaphore, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCreateSemaphore( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pSemaphore ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createSemaphore( const SemaphoreCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::Semaphore semaphore; + Result result = static_cast( + d.vkCreateSemaphore( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &semaphore ) ) ); + return createResultValue( result, semaphore, VULKAN_HPP_NAMESPACE_STRING "::Device::createSemaphore" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createSemaphoreUnique( const SemaphoreCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::Semaphore semaphore; + Result result = static_cast( + d.vkCreateSemaphore( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &semaphore ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, semaphore, VULKAN_HPP_NAMESPACE_STRING "::Device::createSemaphoreUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createShaderModule( const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::ShaderModule * pShaderModule, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateShaderModule( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pShaderModule ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createShaderModule( const ShaderModuleCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::ShaderModule shaderModule; + Result result = static_cast( + d.vkCreateShaderModule( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &shaderModule ) ) ); + return createResultValue( result, shaderModule, VULKAN_HPP_NAMESPACE_STRING "::Device::createShaderModule" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createShaderModuleUnique( const ShaderModuleCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::ShaderModule shaderModule; + Result result = static_cast( + d.vkCreateShaderModule( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &shaderModule ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, shaderModule, VULKAN_HPP_NAMESPACE_STRING "::Device::createShaderModuleUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createSharedSwapchainsKHR( uint32_t swapchainCount, + const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR * pCreateInfos, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateSharedSwapchainsKHR( m_device, + swapchainCount, + reinterpret_cast( pCreateInfos ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pSwapchains ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createSharedSwapchainsKHR( + ArrayProxy const & createInfos, + Optional allocator, + Dispatch const & d ) const + { + std::vector swapchains( createInfos.size() ); + Result result = static_cast( + d.vkCreateSharedSwapchainsKHR( m_device, + createInfos.size(), + reinterpret_cast( createInfos.data() ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( swapchains.data() ) ) ); + return createResultValue( result, swapchains, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHR" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createSharedSwapchainsKHR( + ArrayProxy const & createInfos, + Optional allocator, + SwapchainKHRAllocator & swapchainKHRAllocator, + Dispatch const & d ) const + { + std::vector swapchains( createInfos.size(), swapchainKHRAllocator ); + Result result = static_cast( + d.vkCreateSharedSwapchainsKHR( m_device, + createInfos.size(), + reinterpret_cast( createInfos.data() ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( swapchains.data() ) ) ); + return createResultValue( result, swapchains, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHR" ); + } + + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::createSharedSwapchainKHR( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + SwapchainKHR swapchain; + Result result = static_cast( + d.vkCreateSharedSwapchainsKHR( m_device, + 1, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &swapchain ) ) ); + return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainKHR" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType, SwapchainKHRAllocator>>::type + Device::createSharedSwapchainsKHRUnique( + ArrayProxy const & createInfos, + Optional allocator, + Dispatch const & d ) const + { + std::vector, SwapchainKHRAllocator> uniqueSwapchains; + std::vector swapchains( createInfos.size() ); + Result result = static_cast( + d.vkCreateSharedSwapchainsKHR( m_device, + createInfos.size(), + reinterpret_cast( createInfos.data() ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( swapchains.data() ) ) ); + if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) + { + uniqueSwapchains.reserve( createInfos.size() ); + ObjectDestroy deleter( *this, allocator, d ); + for ( size_t i = 0; i < createInfos.size(); i++ ) + { + uniqueSwapchains.push_back( UniqueHandle( swapchains[i], deleter ) ); + } + } + return createResultValue( + result, std::move( uniqueSwapchains ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" ); + } + + template >::value, + int>::type> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType, SwapchainKHRAllocator>>::type + Device::createSharedSwapchainsKHRUnique( + ArrayProxy const & createInfos, + Optional allocator, + SwapchainKHRAllocator & swapchainKHRAllocator, + Dispatch const & d ) const + { + std::vector, SwapchainKHRAllocator> uniqueSwapchains( swapchainKHRAllocator ); + std::vector swapchains( createInfos.size() ); + Result result = static_cast( + d.vkCreateSharedSwapchainsKHR( m_device, + createInfos.size(), + reinterpret_cast( createInfos.data() ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( swapchains.data() ) ) ); + if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) + { + uniqueSwapchains.reserve( createInfos.size() ); + ObjectDestroy deleter( *this, allocator, d ); + for ( size_t i = 0; i < createInfos.size(); i++ ) + { + uniqueSwapchains.push_back( UniqueHandle( swapchains[i], deleter ) ); + } + } + return createResultValue( + result, std::move( uniqueSwapchains ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" ); + } + + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createSharedSwapchainKHRUnique( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + SwapchainKHR swapchain; + Result result = static_cast( + d.vkCreateSharedSwapchainsKHR( m_device, + 1, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &swapchain ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainKHRUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createSwapchainKHR( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchain, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateSwapchainKHR( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pSwapchain ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain; + Result result = static_cast( + d.vkCreateSwapchainKHR( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &swapchain ) ) ); + return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSwapchainKHR" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain; + Result result = static_cast( + d.vkCreateSwapchainKHR( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &swapchain ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSwapchainKHRUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createValidationCacheEXT( const VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::ValidationCacheEXT * pValidationCache, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateValidationCacheEXT( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pValidationCache ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE typename ResultValueType::type + Device::createValidationCacheEXT( const ValidationCacheCreateInfoEXT & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache; + Result result = static_cast( + d.vkCreateValidationCacheEXT( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &validationCache ) ) ); + return createResultValue( + result, validationCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createValidationCacheEXT" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_INLINE typename ResultValueType>::type + Device::createValidationCacheEXTUnique( const ValidationCacheCreateInfoEXT & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache; + Result result = static_cast( + d.vkCreateValidationCacheEXT( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &validationCache ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, validationCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createValidationCacheEXTUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::createVideoSessionKHR( const VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::VideoSessionKHR * pVideoSession, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateVideoSessionKHR( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pVideoSession ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createVideoSessionKHR( const VideoSessionCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession; + Result result = static_cast( + d.vkCreateVideoSessionKHR( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &videoSession ) ) ); + return createResultValue( result, videoSession, VULKAN_HPP_NAMESPACE_STRING "::Device::createVideoSessionKHR" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createVideoSessionKHRUnique( const VideoSessionCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession; + Result result = static_cast( + d.vkCreateVideoSessionKHR( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &videoSession ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, videoSession, VULKAN_HPP_NAMESPACE_STRING "::Device::createVideoSessionKHRUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createVideoSessionParametersKHR( + const VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR * pVideoSessionParameters, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCreateVideoSessionParametersKHR( + m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pVideoSessionParameters ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::createVideoSessionParametersKHR( const VideoSessionParametersCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters; + Result result = static_cast( d.vkCreateVideoSessionParametersKHR( + m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &videoSessionParameters ) ) ); + return createResultValue( + result, videoSessionParameters, VULKAN_HPP_NAMESPACE_STRING "::Device::createVideoSessionParametersKHR" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::createVideoSessionParametersKHRUnique( const VideoSessionParametersCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters; + Result result = static_cast( d.vkCreateVideoSessionParametersKHR( + m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &videoSessionParameters ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, + videoSessionParameters, + VULKAN_HPP_NAMESPACE_STRING "::Device::createVideoSessionParametersKHRUnique", + deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectNameEXT( + const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT * pNameInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkDebugMarkerSetObjectNameEXT( + m_device, reinterpret_cast( pNameInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo, Dispatch const & d ) const + { + Result result = static_cast( d.vkDebugMarkerSetObjectNameEXT( + m_device, reinterpret_cast( &nameInfo ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectNameEXT" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectTagEXT( + const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT * pTagInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast( pTagInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo, Dispatch const & d ) const + { + Result result = static_cast( + d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast( &tagInfo ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectTagEXT" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::deferredOperationJoinKHR( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkDeferredOperationJoinKHR( m_device, static_cast( operation ) ) ); + } +#else + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const + { + Result result = + static_cast( d.vkDeferredOperationJoinKHR( m_device, static_cast( operation ) ) ); + return createResultValue( result, + VULKAN_HPP_NAMESPACE_STRING "::Device::deferredOperationJoinKHR", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, + VULKAN_HPP_NAMESPACE::Result::eThreadDoneKHR, + VULKAN_HPP_NAMESPACE::Result::eThreadIdleKHR } ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + Device::destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyAccelerationStructureKHR( m_device, + static_cast( accelerationStructure ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + Device::destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyAccelerationStructureKHR( + m_device, + static_cast( accelerationStructure ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyAccelerationStructureKHR( m_device, + static_cast( accelerationStructure ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyAccelerationStructureKHR( + m_device, + static_cast( accelerationStructure ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + Device::destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyAccelerationStructureNV( m_device, + static_cast( accelerationStructure ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + Device::destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyAccelerationStructureNV( + m_device, + static_cast( accelerationStructure ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyAccelerationStructureNV( m_device, + static_cast( accelerationStructure ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyAccelerationStructureNV( + m_device, + static_cast( accelerationStructure ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyBuffer( + m_device, static_cast( buffer ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyBuffer( m_device, + static_cast( buffer ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyBuffer( + m_device, static_cast( buffer ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyBuffer( m_device, + static_cast( buffer ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyBufferView( m_device, + static_cast( bufferView ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyBufferView( m_device, + static_cast( bufferView ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyBufferView( m_device, + static_cast( bufferView ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyBufferView( m_device, + static_cast( bufferView ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyCommandPool( m_device, + static_cast( commandPool ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyCommandPool( m_device, + static_cast( commandPool ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyCommandPool( m_device, + static_cast( commandPool ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyCommandPool( m_device, + static_cast( commandPool ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + Device::destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDeferredOperationKHR( m_device, + static_cast( operation ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDeferredOperationKHR( m_device, + static_cast( operation ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDeferredOperationKHR( m_device, + static_cast( operation ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDeferredOperationKHR( m_device, + static_cast( operation ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDescriptorPool( m_device, + static_cast( descriptorPool ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDescriptorPool( m_device, + static_cast( descriptorPool ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDescriptorPool( m_device, + static_cast( descriptorPool ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDescriptorPool( m_device, + static_cast( descriptorPool ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + Device::destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDescriptorSetLayout( m_device, + static_cast( descriptorSetLayout ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + Device::destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDescriptorSetLayout( m_device, + static_cast( descriptorSetLayout ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDescriptorSetLayout( m_device, + static_cast( descriptorSetLayout ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDescriptorSetLayout( m_device, + static_cast( descriptorSetLayout ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + Device::destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDescriptorUpdateTemplate( m_device, + static_cast( descriptorUpdateTemplate ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + Device::destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDescriptorUpdateTemplate( + m_device, + static_cast( descriptorUpdateTemplate ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + Device::destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDescriptorUpdateTemplateKHR( m_device, + static_cast( descriptorUpdateTemplate ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + Device::destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDescriptorUpdateTemplateKHR( + m_device, + static_cast( descriptorUpdateTemplate ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDescriptorUpdateTemplate( m_device, + static_cast( descriptorUpdateTemplate ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDescriptorUpdateTemplate( + m_device, + static_cast( descriptorUpdateTemplate ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDevice( m_device, reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDevice( m_device, + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroyEvent( VULKAN_HPP_NAMESPACE::Event event, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyEvent( + m_device, static_cast( event ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroyEvent( VULKAN_HPP_NAMESPACE::Event event, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyEvent( m_device, + static_cast( event ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Event event, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyEvent( + m_device, static_cast( event ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Event event, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyEvent( m_device, + static_cast( event ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyFence( + m_device, static_cast( fence ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyFence( m_device, + static_cast( fence ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Fence fence, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyFence( + m_device, static_cast( fence ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Fence fence, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyFence( m_device, + static_cast( fence ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyFramebuffer( m_device, + static_cast( framebuffer ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyFramebuffer( m_device, + static_cast( framebuffer ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyFramebuffer( m_device, + static_cast( framebuffer ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyFramebuffer( m_device, + static_cast( framebuffer ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroyImage( VULKAN_HPP_NAMESPACE::Image image, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyImage( + m_device, static_cast( image ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroyImage( VULKAN_HPP_NAMESPACE::Image image, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyImage( m_device, + static_cast( image ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Image image, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyImage( + m_device, static_cast( image ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Image image, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyImage( m_device, + static_cast( image ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyImageView( + m_device, static_cast( imageView ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyImageView( m_device, + static_cast( imageView ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyImageView( + m_device, static_cast( imageView ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyImageView( m_device, + static_cast( imageView ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + Device::destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyIndirectCommandsLayoutNV( m_device, + static_cast( indirectCommandsLayout ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + Device::destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyIndirectCommandsLayoutNV( + m_device, + static_cast( indirectCommandsLayout ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyIndirectCommandsLayoutNV( m_device, + static_cast( indirectCommandsLayout ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyIndirectCommandsLayoutNV( + m_device, + static_cast( indirectCommandsLayout ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyPipeline( + m_device, static_cast( pipeline ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyPipeline( m_device, + static_cast( pipeline ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyPipeline( + m_device, static_cast( pipeline ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyPipeline( m_device, + static_cast( pipeline ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyPipelineCache( m_device, + static_cast( pipelineCache ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyPipelineCache( m_device, + static_cast( pipelineCache ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyPipelineCache( m_device, + static_cast( pipelineCache ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyPipelineCache( m_device, + static_cast( pipelineCache ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyPipelineLayout( m_device, + static_cast( pipelineLayout ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyPipelineLayout( m_device, + static_cast( pipelineLayout ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyPipelineLayout( m_device, + static_cast( pipelineLayout ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyPipelineLayout( m_device, + static_cast( pipelineLayout ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + Device::destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyPrivateDataSlotEXT( m_device, + static_cast( privateDataSlot ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyPrivateDataSlotEXT( m_device, + static_cast( privateDataSlot ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyPrivateDataSlotEXT( m_device, + static_cast( privateDataSlot ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyPrivateDataSlotEXT( m_device, + static_cast( privateDataSlot ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyQueryPool( + m_device, static_cast( queryPool ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyQueryPool( m_device, + static_cast( queryPool ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyQueryPool( + m_device, static_cast( queryPool ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyQueryPool( m_device, + static_cast( queryPool ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyRenderPass( m_device, + static_cast( renderPass ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyRenderPass( m_device, + static_cast( renderPass ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyRenderPass( m_device, + static_cast( renderPass ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyRenderPass( m_device, + static_cast( renderPass ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroySampler( + m_device, static_cast( sampler ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroySampler( m_device, + static_cast( sampler ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroySampler( + m_device, static_cast( sampler ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroySampler( m_device, + static_cast( sampler ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + Device::destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroySamplerYcbcrConversion( m_device, + static_cast( ycbcrConversion ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + Device::destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroySamplerYcbcrConversion( + m_device, + static_cast( ycbcrConversion ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + Device::destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroySamplerYcbcrConversionKHR( m_device, + static_cast( ycbcrConversion ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + Device::destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroySamplerYcbcrConversionKHR( + m_device, + static_cast( ycbcrConversion ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroySamplerYcbcrConversion( m_device, + static_cast( ycbcrConversion ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroySamplerYcbcrConversion( + m_device, + static_cast( ycbcrConversion ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroySemaphore( + m_device, static_cast( semaphore ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroySemaphore( m_device, + static_cast( semaphore ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroySemaphore( + m_device, static_cast( semaphore ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroySemaphore( m_device, + static_cast( semaphore ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyShaderModule( m_device, + static_cast( shaderModule ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyShaderModule( m_device, + static_cast( shaderModule ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyShaderModule( m_device, + static_cast( shaderModule ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyShaderModule( m_device, + static_cast( shaderModule ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroySwapchainKHR( m_device, + static_cast( swapchain ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroySwapchainKHR( m_device, + static_cast( swapchain ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroySwapchainKHR( m_device, + static_cast( swapchain ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroySwapchainKHR( m_device, + static_cast( swapchain ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + Device::destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyValidationCacheEXT( m_device, + static_cast( validationCache ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyValidationCacheEXT( m_device, + static_cast( validationCache ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyValidationCacheEXT( m_device, + static_cast( validationCache ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyValidationCacheEXT( m_device, + static_cast( validationCache ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + VULKAN_HPP_INLINE void Device::destroyVideoSessionKHR( VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyVideoSessionKHR( m_device, + static_cast( videoSession ), + reinterpret_cast( pAllocator ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroyVideoSessionKHR( VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyVideoSessionKHR( m_device, + static_cast( videoSession ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyVideoSessionKHR( m_device, + static_cast( videoSession ), + reinterpret_cast( pAllocator ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyVideoSessionKHR( m_device, + static_cast( videoSession ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + VULKAN_HPP_INLINE void + Device::destroyVideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyVideoSessionParametersKHR( m_device, + static_cast( videoSessionParameters ), + reinterpret_cast( pAllocator ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + Device::destroyVideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyVideoSessionParametersKHR( + m_device, + static_cast( videoSessionParameters ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyVideoSessionParametersKHR( m_device, + static_cast( videoSessionParameters ), + reinterpret_cast( pAllocator ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyVideoSessionParametersKHR( + m_device, + static_cast( videoSessionParameters ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitIdle( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkDeviceWaitIdle( m_device ) ); + } +#else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::waitIdle( Dispatch const & d ) const + { + Result result = static_cast( d.vkDeviceWaitIdle( m_device ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitIdle" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, + const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT * pDisplayPowerInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkDisplayPowerControlEXT( m_device, + static_cast( display ), + reinterpret_cast( pDisplayPowerInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE typename ResultValueType::type Device::displayPowerControlEXT( + VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo, Dispatch const & d ) const + { + Result result = static_cast( + d.vkDisplayPowerControlEXT( m_device, + static_cast( display ), + reinterpret_cast( &displayPowerInfo ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::displayPowerControlEXT" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::flushMappedMemoryRanges( uint32_t memoryRangeCount, + const VULKAN_HPP_NAMESPACE::MappedMemoryRange * pMemoryRanges, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkFlushMappedMemoryRanges( + m_device, memoryRangeCount, reinterpret_cast( pMemoryRanges ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::flushMappedMemoryRanges( ArrayProxy const & memoryRanges, + Dispatch const & d ) const + { + Result result = static_cast( d.vkFlushMappedMemoryRanges( + m_device, memoryRanges.size(), reinterpret_cast( memoryRanges.data() ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::flushMappedMemoryRanges" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool commandPool, + uint32_t commandBufferCount, + const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkFreeCommandBuffers( m_device, + static_cast( commandPool ), + commandBufferCount, + reinterpret_cast( pCommandBuffers ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + Device::freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool commandPool, + ArrayProxy const & commandBuffers, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkFreeCommandBuffers( m_device, + static_cast( commandPool ), + commandBuffers.size(), + reinterpret_cast( commandBuffers.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::CommandPool commandPool, + uint32_t commandBufferCount, + const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkFreeCommandBuffers( m_device, + static_cast( commandPool ), + commandBufferCount, + reinterpret_cast( pCommandBuffers ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::CommandPool commandPool, + ArrayProxy const & commandBuffers, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkFreeCommandBuffers( m_device, + static_cast( commandPool ), + commandBuffers.size(), + reinterpret_cast( commandBuffers.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE Result Device::freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, + uint32_t descriptorSetCount, + const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkFreeDescriptorSets( m_device, + static_cast( descriptorPool ), + descriptorSetCount, + reinterpret_cast( pDescriptorSets ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE typename ResultValueType::type + Device::freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, + ArrayProxy const & descriptorSets, + Dispatch const & d ) const + { + Result result = static_cast( + d.vkFreeDescriptorSets( m_device, + static_cast( descriptorPool ), + descriptorSets.size(), + reinterpret_cast( descriptorSets.data() ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::freeDescriptorSets" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE Result Device::free( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, + uint32_t descriptorSetCount, + const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkFreeDescriptorSets( m_device, + static_cast( descriptorPool ), + descriptorSetCount, + reinterpret_cast( pDescriptorSets ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE typename ResultValueType::type + Device::free( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, + ArrayProxy const & descriptorSets, + Dispatch const & d ) const + { + Result result = static_cast( + d.vkFreeDescriptorSets( m_device, + static_cast( descriptorPool ), + descriptorSets.size(), + reinterpret_cast( descriptorSets.data() ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::free" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkFreeMemory( + m_device, static_cast( memory ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkFreeMemory( m_device, + static_cast( memory ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkFreeMemory( + m_device, static_cast( memory ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkFreeMemory( m_device, + static_cast( memory ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::getAccelerationStructureBuildSizesKHR( + VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, + const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pBuildInfo, + const uint32_t * pMaxPrimitiveCounts, + VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR * pSizeInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetAccelerationStructureBuildSizesKHR( + m_device, + static_cast( buildType ), + reinterpret_cast( pBuildInfo ), + pMaxPrimitiveCounts, + reinterpret_cast( pSizeInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR + Device::getAccelerationStructureBuildSizesKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, + const AccelerationStructureBuildGeometryInfoKHR & buildInfo, + ArrayProxy const & maxPrimitiveCounts, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( maxPrimitiveCounts.size() == buildInfo.geometryCount ); +# else + if ( maxPrimitiveCounts.size() != buildInfo.geometryCount ) + { + throw LogicError( + VULKAN_HPP_NAMESPACE_STRING + "::Device::getAccelerationStructureBuildSizesKHR: maxPrimitiveCounts.size() != buildInfo.geometryCount" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ + VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR sizeInfo; + d.vkGetAccelerationStructureBuildSizesKHR( + m_device, + static_cast( buildType ), + reinterpret_cast( &buildInfo ), + maxPrimitiveCounts.data(), + reinterpret_cast( &sizeInfo ) ); + return sizeInfo; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE DeviceAddress Device::getAccelerationStructureAddressKHR( + const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR * pInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetAccelerationStructureDeviceAddressKHR( + m_device, reinterpret_cast( pInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE DeviceAddress Device::getAccelerationStructureAddressKHR( + const AccelerationStructureDeviceAddressInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetAccelerationStructureDeviceAddressKHR( + m_device, reinterpret_cast( &info ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, + size_t dataSize, + void * pData, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetAccelerationStructureHandleNV( + m_device, static_cast( accelerationStructure ), dataSize, pData ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it." ) + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type Device::getAccelerationStructureHandleNV( + VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, + ArrayProxy const & data, + Dispatch const & d ) const + { + Result result = static_cast( + d.vkGetAccelerationStructureHandleNV( m_device, + static_cast( accelerationStructure ), + data.size() * sizeof( T ), + reinterpret_cast( data.data() ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureHandleNV" ); + } + + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type + Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, + size_t dataSize, + Dispatch const & d ) const + { + VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); + std::vector data( dataSize / sizeof( T ) ); + Result result = static_cast( + d.vkGetAccelerationStructureHandleNV( m_device, + static_cast( accelerationStructure ), + data.size() * sizeof( T ), + reinterpret_cast( data.data() ) ) ); + return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureHandleNV" ); + } + + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, + Dispatch const & d ) const + { + T data; + Result result = static_cast( + d.vkGetAccelerationStructureHandleNV( m_device, + static_cast( accelerationStructure ), + sizeof( T ), + reinterpret_cast( &data ) ) ); + return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureHandleNV" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::getAccelerationStructureMemoryRequirementsNV( + const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV * pInfo, + VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR * pMemoryRequirements, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetAccelerationStructureMemoryRequirementsNV( + m_device, + reinterpret_cast( pInfo ), + reinterpret_cast( pMemoryRequirements ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR + Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR memoryRequirements; + d.vkGetAccelerationStructureMemoryRequirementsNV( + m_device, + reinterpret_cast( &info ), + reinterpret_cast( &memoryRequirements ) ); + return memoryRequirements; + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain + Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + StructureChain structureChain; + VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR & memoryRequirements = + structureChain.template get(); + d.vkGetAccelerationStructureMemoryRequirementsNV( + m_device, + reinterpret_cast( &info ), + reinterpret_cast( &memoryRequirements ) ); + return structureChain; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getAndroidHardwareBufferPropertiesANDROID( + const struct AHardwareBuffer * buffer, + VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID * pProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetAndroidHardwareBufferPropertiesANDROID( + m_device, buffer, reinterpret_cast( pProperties ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID properties; + Result result = static_cast( d.vkGetAndroidHardwareBufferPropertiesANDROID( + m_device, &buffer, reinterpret_cast( &properties ) ) ); + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" ); + } + + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type + Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const & d ) const + { + StructureChain structureChain; + VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID & properties = + structureChain.template get(); + Result result = static_cast( d.vkGetAndroidHardwareBufferPropertiesANDROID( + m_device, &buffer, reinterpret_cast( &properties ) ) ); + return createResultValue( + result, structureChain, VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + + template + VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetBufferDeviceAddress( m_device, reinterpret_cast( pInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddress( const BufferDeviceAddressInfo & info, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetBufferDeviceAddress( m_device, reinterpret_cast( &info ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( + const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast( pInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( const BufferDeviceAddressInfo & info, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast( &info ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressKHR( + const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetBufferDeviceAddressKHR( m_device, reinterpret_cast( pInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressKHR( const BufferDeviceAddressInfo & info, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetBufferDeviceAddressKHR( m_device, reinterpret_cast( &info ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + Device::getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, + VULKAN_HPP_NAMESPACE::MemoryRequirements * pMemoryRequirements, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetBufferMemoryRequirements( + m_device, static_cast( buffer ), reinterpret_cast( pMemoryRequirements ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements + Device::getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements; + d.vkGetBufferMemoryRequirements( + m_device, static_cast( buffer ), reinterpret_cast( &memoryRequirements ) ); + return memoryRequirements; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + Device::getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 * pInfo, + VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetBufferMemoryRequirements2( m_device, + reinterpret_cast( pInfo ), + reinterpret_cast( pMemoryRequirements ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 + Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; + d.vkGetBufferMemoryRequirements2( m_device, + reinterpret_cast( &info ), + reinterpret_cast( &memoryRequirements ) ); + return memoryRequirements; + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain + Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + StructureChain structureChain; + VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = + structureChain.template get(); + d.vkGetBufferMemoryRequirements2( m_device, + reinterpret_cast( &info ), + reinterpret_cast( &memoryRequirements ) ); + return structureChain; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + Device::getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 * pInfo, + VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetBufferMemoryRequirements2KHR( m_device, + reinterpret_cast( pInfo ), + reinterpret_cast( pMemoryRequirements ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 + Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; + d.vkGetBufferMemoryRequirements2KHR( m_device, + reinterpret_cast( &info ), + reinterpret_cast( &memoryRequirements ) ); + return memoryRequirements; + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain + Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + StructureChain structureChain; + VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = + structureChain.template get(); + d.vkGetBufferMemoryRequirements2KHR( m_device, + reinterpret_cast( &info ), + reinterpret_cast( &memoryRequirements ) ); + return structureChain; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress( + const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetBufferOpaqueCaptureAddress( m_device, reinterpret_cast( pInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress( const BufferDeviceAddressInfo & info, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetBufferOpaqueCaptureAddress( m_device, reinterpret_cast( &info ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddressKHR( + const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetBufferOpaqueCaptureAddressKHR( m_device, + reinterpret_cast( pInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddressKHR( const BufferDeviceAddressInfo & info, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetBufferOpaqueCaptureAddressKHR( m_device, + reinterpret_cast( &info ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getCalibratedTimestampsEXT( uint32_t timestampCount, + const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT * pTimestampInfos, + uint64_t * pTimestamps, + uint64_t * pMaxDeviation, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetCalibratedTimestampsEXT( m_device, + timestampCount, + reinterpret_cast( pTimestampInfos ), + pTimestamps, + pMaxDeviation ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it." ) + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type Device::getCalibratedTimestampsEXT( + ArrayProxy const & timestampInfos, + ArrayProxy const & timestamps, + Dispatch const & d ) const + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( timestampInfos.size() == timestamps.size() ); +# else + if ( timestampInfos.size() != timestamps.size() ) + { + throw LogicError( VULKAN_HPP_NAMESPACE_STRING + "::VkDevice::getCalibratedTimestampsEXT: timestampInfos.size() != timestamps.size()" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ + uint64_t maxDeviation; + Result result = static_cast( + d.vkGetCalibratedTimestampsEXT( m_device, + timestampInfos.size(), + reinterpret_cast( timestampInfos.data() ), + timestamps.data(), + &maxDeviation ) ); + return createResultValue( + result, maxDeviation, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" ); + } + + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType, uint64_t>>::type + Device::getCalibratedTimestampsEXT( + ArrayProxy const & timestampInfos, + Dispatch const & d ) const + { + std::pair, uint64_t> data( + std::piecewise_construct, std::forward_as_tuple( timestampInfos.size() ), std::forward_as_tuple( 0 ) ); + std::vector & timestamps = data.first; + uint64_t & maxDeviation = data.second; + Result result = static_cast( + d.vkGetCalibratedTimestampsEXT( m_device, + timestampInfos.size(), + reinterpret_cast( timestampInfos.data() ), + timestamps.data(), + &maxDeviation ) ); + return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType, uint64_t>>::type + Device::getCalibratedTimestampsEXT( + ArrayProxy const & timestampInfos, + Uint64_tAllocator & uint64_tAllocator, + Dispatch const & d ) const + { + std::pair, uint64_t> data( + std::piecewise_construct, + std::forward_as_tuple( timestampInfos.size(), uint64_tAllocator ), + std::forward_as_tuple( 0 ) ); + std::vector & timestamps = data.first; + uint64_t & maxDeviation = data.second; + Result result = static_cast( + d.vkGetCalibratedTimestampsEXT( m_device, + timestampInfos.size(), + reinterpret_cast( timestampInfos.data() ), + timestamps.data(), + &maxDeviation ) ); + return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE uint32_t Device::getDeferredOperationMaxConcurrencyKHR( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetDeferredOperationMaxConcurrencyKHR( m_device, static_cast( operation ) ); + } + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getDeferredOperationResultKHR( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetDeferredOperationResultKHR( m_device, static_cast( operation ) ) ); + } +#else + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getDeferredOperationResultKHR( + VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const + { + Result result = static_cast( + d.vkGetDeferredOperationResultKHR( m_device, static_cast( operation ) ) ); + return createResultValue( result, + VULKAN_HPP_NAMESPACE_STRING "::Device::getDeferredOperationResultKHR", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + Device::getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo, + VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport * pSupport, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetDescriptorSetLayoutSupport( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pSupport ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport + Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support; + d.vkGetDescriptorSetLayoutSupport( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( &support ) ); + return support; + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain + Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + StructureChain structureChain; + VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support = + structureChain.template get(); + d.vkGetDescriptorSetLayoutSupport( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( &support ) ); + return structureChain; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + Device::getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo, + VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport * pSupport, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetDescriptorSetLayoutSupportKHR( m_device, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pSupport ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport + Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support; + d.vkGetDescriptorSetLayoutSupportKHR( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( &support ) ); + return support; + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain + Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + StructureChain structureChain; + VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support = + structureChain.template get(); + d.vkGetDescriptorSetLayoutSupportKHR( m_device, + reinterpret_cast( &createInfo ), + reinterpret_cast( &support ) ); + return structureChain; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::getAccelerationStructureCompatibilityKHR( + const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR * pVersionInfo, + VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR * pCompatibility, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetDeviceAccelerationStructureCompatibilityKHR( + m_device, + reinterpret_cast( pVersionInfo ), + reinterpret_cast( pCompatibility ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR + Device::getAccelerationStructureCompatibilityKHR( const AccelerationStructureVersionInfoKHR & versionInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR compatibility; + d.vkGetDeviceAccelerationStructureCompatibilityKHR( + m_device, + reinterpret_cast( &versionInfo ), + reinterpret_cast( &compatibility ) ); + return compatibility; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + Device::getGroupPeerMemoryFeatures( uint32_t heapIndex, + uint32_t localDeviceIndex, + uint32_t remoteDeviceIndex, + VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags * pPeerMemoryFeatures, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetDeviceGroupPeerMemoryFeatures( m_device, + heapIndex, + localDeviceIndex, + remoteDeviceIndex, + reinterpret_cast( pPeerMemoryFeatures ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags + Device::getGroupPeerMemoryFeatures( uint32_t heapIndex, + uint32_t localDeviceIndex, + uint32_t remoteDeviceIndex, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures; + d.vkGetDeviceGroupPeerMemoryFeatures( m_device, + heapIndex, + localDeviceIndex, + remoteDeviceIndex, + reinterpret_cast( &peerMemoryFeatures ) ); + return peerMemoryFeatures; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + Device::getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, + uint32_t localDeviceIndex, + uint32_t remoteDeviceIndex, + VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags * pPeerMemoryFeatures, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device, + heapIndex, + localDeviceIndex, + remoteDeviceIndex, + reinterpret_cast( pPeerMemoryFeatures ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags + Device::getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, + uint32_t localDeviceIndex, + uint32_t remoteDeviceIndex, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures; + d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device, + heapIndex, + localDeviceIndex, + remoteDeviceIndex, + reinterpret_cast( &peerMemoryFeatures ) ); + return peerMemoryFeatures; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getGroupPresentCapabilitiesKHR( + VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetDeviceGroupPresentCapabilitiesKHR( + m_device, reinterpret_cast( pDeviceGroupPresentCapabilities ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::getGroupPresentCapabilitiesKHR( Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR deviceGroupPresentCapabilities; + Result result = static_cast( d.vkGetDeviceGroupPresentCapabilitiesKHR( + m_device, reinterpret_cast( &deviceGroupPresentCapabilities ) ) ); + return createResultValue( + result, deviceGroupPresentCapabilities, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupPresentCapabilitiesKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getGroupSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo, + VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR * pModes, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetDeviceGroupSurfacePresentModes2EXT( + m_device, + reinterpret_cast( pSurfaceInfo ), + reinterpret_cast( pModes ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes; + Result result = static_cast( d.vkGetDeviceGroupSurfacePresentModes2EXT( + m_device, + reinterpret_cast( &surfaceInfo ), + reinterpret_cast( &modes ) ) ); + return createResultValue( result, modes, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModes2EXT" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR * pModes, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetDeviceGroupSurfacePresentModesKHR( m_device, + static_cast( surface ), + reinterpret_cast( pModes ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes; + Result result = static_cast( + d.vkGetDeviceGroupSurfacePresentModesKHR( m_device, + static_cast( surface ), + reinterpret_cast( &modes ) ) ); + return createResultValue( result, modes, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModesKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, + VULKAN_HPP_NAMESPACE::DeviceSize * pCommittedMemoryInBytes, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetDeviceMemoryCommitment( + m_device, static_cast( memory ), reinterpret_cast( pCommittedMemoryInBytes ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize + Device::getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::DeviceSize committedMemoryInBytes; + d.vkGetDeviceMemoryCommitment( + m_device, static_cast( memory ), reinterpret_cast( &committedMemoryInBytes ) ); + return committedMemoryInBytes; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE uint64_t + Device::getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo * pInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetDeviceMemoryOpaqueCaptureAddress( + m_device, reinterpret_cast( pInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddress( const DeviceMemoryOpaqueCaptureAddressInfo & info, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetDeviceMemoryOpaqueCaptureAddress( + m_device, reinterpret_cast( &info ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE uint64_t + Device::getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo * pInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetDeviceMemoryOpaqueCaptureAddressKHR( + m_device, reinterpret_cast( pInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddressKHR( + const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetDeviceMemoryOpaqueCaptureAddressKHR( + m_device, reinterpret_cast( &info ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const char * pName, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetDeviceProcAddr( m_device, pName ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const std::string & name, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetDeviceProcAddr( m_device, name.c_str() ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::getQueue( uint32_t queueFamilyIndex, + uint32_t queueIndex, + VULKAN_HPP_NAMESPACE::Queue * pQueue, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast( pQueue ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Queue + Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::Queue queue; + d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast( &queue ) ); + return queue; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::getQueue2( const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 * pQueueInfo, + VULKAN_HPP_NAMESPACE::Queue * pQueue, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetDeviceQueue2( + m_device, reinterpret_cast( pQueueInfo ), reinterpret_cast( pQueue ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Queue + Device::getQueue2( const DeviceQueueInfo2 & queueInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::Queue queue; + d.vkGetDeviceQueue2( + m_device, reinterpret_cast( &queueInfo ), reinterpret_cast( &queue ) ); + return queue; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getEventStatus( VULKAN_HPP_NAMESPACE::Event event, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetEventStatus( m_device, static_cast( event ) ) ); + } +#else + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getEventStatus( VULKAN_HPP_NAMESPACE::Event event, + Dispatch const & d ) const + { + Result result = static_cast( d.vkGetEventStatus( m_device, static_cast( event ) ) ); + return createResultValue( result, + VULKAN_HPP_NAMESPACE_STRING "::Device::getEventStatus", + { VULKAN_HPP_NAMESPACE::Result::eEventSet, VULKAN_HPP_NAMESPACE::Result::eEventReset } ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getFenceFdKHR( const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR * pGetFdInfo, + int * pFd, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetFenceFdKHR( m_device, reinterpret_cast( pGetFdInfo ), pFd ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo, Dispatch const & d ) const + { + int fd; + Result result = static_cast( + d.vkGetFenceFdKHR( m_device, reinterpret_cast( &getFdInfo ), &fd ) ); + return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceFdKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetFenceStatus( m_device, static_cast( fence ) ) ); + } +#else + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, + Dispatch const & d ) const + { + Result result = static_cast( d.vkGetFenceStatus( m_device, static_cast( fence ) ) ); + return createResultValue( result, + VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceStatus", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR * pGetWin32HandleInfo, + HANDLE * pHandle, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetFenceWin32HandleKHR( + m_device, reinterpret_cast( pGetWin32HandleInfo ), pHandle ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d ) const + { + HANDLE handle; + Result result = static_cast( d.vkGetFenceWin32HandleKHR( + m_device, reinterpret_cast( &getWin32HandleInfo ), &handle ) ); + return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceWin32HandleKHR" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + template + VULKAN_HPP_INLINE void Device::getGeneratedCommandsMemoryRequirementsNV( + const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV * pInfo, + VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetGeneratedCommandsMemoryRequirementsNV( + m_device, + reinterpret_cast( pInfo ), + reinterpret_cast( pMemoryRequirements ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 + Device::getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; + d.vkGetGeneratedCommandsMemoryRequirementsNV( + m_device, + reinterpret_cast( &info ), + reinterpret_cast( &memoryRequirements ) ); + return memoryRequirements; + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain + Device::getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + StructureChain structureChain; + VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = + structureChain.template get(); + d.vkGetGeneratedCommandsMemoryRequirementsNV( + m_device, + reinterpret_cast( &info ), + reinterpret_cast( &memoryRequirements ) ); + return structureChain; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getImageDrmFormatModifierPropertiesEXT( + VULKAN_HPP_NAMESPACE::Image image, + VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT * pProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetImageDrmFormatModifierPropertiesEXT( + m_device, + static_cast( image ), + reinterpret_cast( pProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE typename ResultValueType::type + Device::getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT properties; + Result result = static_cast( d.vkGetImageDrmFormatModifierPropertiesEXT( + m_device, + static_cast( image ), + reinterpret_cast( &properties ) ) ); + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageDrmFormatModifierPropertiesEXT" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + Device::getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, + VULKAN_HPP_NAMESPACE::MemoryRequirements * pMemoryRequirements, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetImageMemoryRequirements( + m_device, static_cast( image ), reinterpret_cast( pMemoryRequirements ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements + Device::getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements; + d.vkGetImageMemoryRequirements( + m_device, static_cast( image ), reinterpret_cast( &memoryRequirements ) ); + return memoryRequirements; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + Device::getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 * pInfo, + VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetImageMemoryRequirements2( m_device, + reinterpret_cast( pInfo ), + reinterpret_cast( pMemoryRequirements ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 + Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; + d.vkGetImageMemoryRequirements2( m_device, + reinterpret_cast( &info ), + reinterpret_cast( &memoryRequirements ) ); + return memoryRequirements; + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain + Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + StructureChain structureChain; + VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = + structureChain.template get(); + d.vkGetImageMemoryRequirements2( m_device, + reinterpret_cast( &info ), + reinterpret_cast( &memoryRequirements ) ); + return structureChain; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + Device::getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 * pInfo, + VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetImageMemoryRequirements2KHR( m_device, + reinterpret_cast( pInfo ), + reinterpret_cast( pMemoryRequirements ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 + Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; + d.vkGetImageMemoryRequirements2KHR( m_device, + reinterpret_cast( &info ), + reinterpret_cast( &memoryRequirements ) ); + return memoryRequirements; + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain + Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + StructureChain structureChain; + VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = + structureChain.template get(); + d.vkGetImageMemoryRequirements2KHR( m_device, + reinterpret_cast( &info ), + reinterpret_cast( &memoryRequirements ) ); + return structureChain; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements( + VULKAN_HPP_NAMESPACE::Image image, + uint32_t * pSparseMemoryRequirementCount, + VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements * pSparseMemoryRequirements, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetImageSparseMemoryRequirements( + m_device, + static_cast( image ), + pSparseMemoryRequirementCount, + reinterpret_cast( pSparseMemoryRequirements ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD + VULKAN_HPP_INLINE std::vector + Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const + { + std::vector sparseMemoryRequirements; + uint32_t sparseMemoryRequirementCount; + d.vkGetImageSparseMemoryRequirements( + m_device, static_cast( image ), &sparseMemoryRequirementCount, nullptr ); + sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); + d.vkGetImageSparseMemoryRequirements( + m_device, + static_cast( image ), + &sparseMemoryRequirementCount, + reinterpret_cast( sparseMemoryRequirements.data() ) ); + VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); + return sparseMemoryRequirements; + } + + template < + typename SparseImageMemoryRequirementsAllocator, + typename Dispatch, + typename B, + typename std::enable_if::value, int>::type> + VULKAN_HPP_NODISCARD + VULKAN_HPP_INLINE std::vector + Device::getImageSparseMemoryRequirements( + VULKAN_HPP_NAMESPACE::Image image, + SparseImageMemoryRequirementsAllocator & sparseImageMemoryRequirementsAllocator, + Dispatch const & d ) const + { + std::vector sparseMemoryRequirements( + sparseImageMemoryRequirementsAllocator ); + uint32_t sparseMemoryRequirementCount; + d.vkGetImageSparseMemoryRequirements( + m_device, static_cast( image ), &sparseMemoryRequirementCount, nullptr ); + sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); + d.vkGetImageSparseMemoryRequirements( + m_device, + static_cast( image ), + &sparseMemoryRequirementCount, + reinterpret_cast( sparseMemoryRequirements.data() ) ); + VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); + return sparseMemoryRequirements; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements2( + const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 * pInfo, + uint32_t * pSparseMemoryRequirementCount, + VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 * pSparseMemoryRequirements, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetImageSparseMemoryRequirements2( + m_device, + reinterpret_cast( pInfo ), + pSparseMemoryRequirementCount, + reinterpret_cast( pSparseMemoryRequirements ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD + VULKAN_HPP_INLINE std::vector + Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, + Dispatch const & d ) const + { + std::vector sparseMemoryRequirements; + uint32_t sparseMemoryRequirementCount; + d.vkGetImageSparseMemoryRequirements2( m_device, + reinterpret_cast( &info ), + &sparseMemoryRequirementCount, + nullptr ); + sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); + d.vkGetImageSparseMemoryRequirements2( + m_device, + reinterpret_cast( &info ), + &sparseMemoryRequirementCount, + reinterpret_cast( sparseMemoryRequirements.data() ) ); + VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); + return sparseMemoryRequirements; + } + + template < + typename SparseImageMemoryRequirements2Allocator, + typename Dispatch, + typename B, + typename std::enable_if::value, int>::type> + VULKAN_HPP_NODISCARD + VULKAN_HPP_INLINE std::vector + Device::getImageSparseMemoryRequirements2( + const ImageSparseMemoryRequirementsInfo2 & info, + SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, + Dispatch const & d ) const + { + std::vector sparseMemoryRequirements( + sparseImageMemoryRequirements2Allocator ); + uint32_t sparseMemoryRequirementCount; + d.vkGetImageSparseMemoryRequirements2( m_device, + reinterpret_cast( &info ), + &sparseMemoryRequirementCount, + nullptr ); + sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); + d.vkGetImageSparseMemoryRequirements2( + m_device, + reinterpret_cast( &info ), + &sparseMemoryRequirementCount, + reinterpret_cast( sparseMemoryRequirements.data() ) ); + VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); + return sparseMemoryRequirements; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements2KHR( + const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 * pInfo, + uint32_t * pSparseMemoryRequirementCount, + VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 * pSparseMemoryRequirements, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetImageSparseMemoryRequirements2KHR( + m_device, + reinterpret_cast( pInfo ), + pSparseMemoryRequirementCount, + reinterpret_cast( pSparseMemoryRequirements ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD + VULKAN_HPP_INLINE std::vector + Device::getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, + Dispatch const & d ) const + { + std::vector sparseMemoryRequirements; + uint32_t sparseMemoryRequirementCount; + d.vkGetImageSparseMemoryRequirements2KHR( m_device, + reinterpret_cast( &info ), + &sparseMemoryRequirementCount, + nullptr ); + sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); + d.vkGetImageSparseMemoryRequirements2KHR( + m_device, + reinterpret_cast( &info ), + &sparseMemoryRequirementCount, + reinterpret_cast( sparseMemoryRequirements.data() ) ); + VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); + return sparseMemoryRequirements; + } + + template < + typename SparseImageMemoryRequirements2Allocator, + typename Dispatch, + typename B, + typename std::enable_if::value, int>::type> + VULKAN_HPP_NODISCARD + VULKAN_HPP_INLINE std::vector + Device::getImageSparseMemoryRequirements2KHR( + const ImageSparseMemoryRequirementsInfo2 & info, + SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, + Dispatch const & d ) const + { + std::vector sparseMemoryRequirements( + sparseImageMemoryRequirements2Allocator ); + uint32_t sparseMemoryRequirementCount; + d.vkGetImageSparseMemoryRequirements2KHR( m_device, + reinterpret_cast( &info ), + &sparseMemoryRequirementCount, + nullptr ); + sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); + d.vkGetImageSparseMemoryRequirements2KHR( + m_device, + reinterpret_cast( &info ), + &sparseMemoryRequirementCount, + reinterpret_cast( sparseMemoryRequirements.data() ) ); + VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); + return sparseMemoryRequirements; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, + const VULKAN_HPP_NAMESPACE::ImageSubresource * pSubresource, + VULKAN_HPP_NAMESPACE::SubresourceLayout * pLayout, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetImageSubresourceLayout( m_device, + static_cast( image ), + reinterpret_cast( pSubresource ), + reinterpret_cast( pLayout ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout + Device::getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, + const ImageSubresource & subresource, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::SubresourceLayout layout; + d.vkGetImageSubresourceLayout( m_device, + static_cast( image ), + reinterpret_cast( &subresource ), + reinterpret_cast( &layout ) ); + return layout; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getImageViewAddressNVX( VULKAN_HPP_NAMESPACE::ImageView imageView, + VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX * pProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetImageViewAddressNVX( m_device, + static_cast( imageView ), + reinterpret_cast( pProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::getImageViewAddressNVX( VULKAN_HPP_NAMESPACE::ImageView imageView, Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX properties; + Result result = static_cast( + d.vkGetImageViewAddressNVX( m_device, + static_cast( imageView ), + reinterpret_cast( &properties ) ) ); + return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageViewAddressNVX" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX * pInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast( pInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const ImageViewHandleInfoNVX & info, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast( &info ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryAndroidHardwareBufferANDROID( + const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID * pInfo, + struct AHardwareBuffer ** pBuffer, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetMemoryAndroidHardwareBufferANDROID( + m_device, reinterpret_cast( pInfo ), pBuffer ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, + Dispatch const & d ) const + { + struct AHardwareBuffer * buffer; + Result result = static_cast( d.vkGetMemoryAndroidHardwareBufferANDROID( + m_device, reinterpret_cast( &info ), &buffer ) ); + return createResultValue( + result, buffer, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryAndroidHardwareBufferANDROID" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getMemoryFdKHR( const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR * pGetFdInfo, + int * pFd, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetMemoryFdKHR( m_device, reinterpret_cast( pGetFdInfo ), pFd ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo, Dispatch const & d ) const + { + int fd; + Result result = static_cast( + d.vkGetMemoryFdKHR( m_device, reinterpret_cast( &getFdInfo ), &fd ) ); + return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, + int fd, + VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR * pMemoryFdProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetMemoryFdPropertiesKHR( m_device, + static_cast( handleType ), + fd, + reinterpret_cast( pMemoryFdProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, + int fd, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR memoryFdProperties; + Result result = static_cast( + d.vkGetMemoryFdPropertiesKHR( m_device, + static_cast( handleType ), + fd, + reinterpret_cast( &memoryFdProperties ) ) ); + return createResultValue( + result, memoryFdProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdPropertiesKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryHostPointerPropertiesEXT( + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, + const void * pHostPointer, + VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetMemoryHostPointerPropertiesEXT( + m_device, + static_cast( handleType ), + pHostPointer, + reinterpret_cast( pMemoryHostPointerProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, + const void * pHostPointer, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT memoryHostPointerProperties; + Result result = static_cast( d.vkGetMemoryHostPointerPropertiesEXT( + m_device, + static_cast( handleType ), + pHostPointer, + reinterpret_cast( &memoryHostPointerProperties ) ) ); + return createResultValue( + result, memoryHostPointerProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryHostPointerPropertiesEXT" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getMemoryWin32HandleKHR( const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo, + HANDLE * pHandle, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetMemoryWin32HandleKHR( + m_device, reinterpret_cast( pGetWin32HandleInfo ), pHandle ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d ) const + { + HANDLE handle; + Result result = static_cast( d.vkGetMemoryWin32HandleKHR( + m_device, reinterpret_cast( &getWin32HandleInfo ), &handle ) ); + return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleKHR" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory memory, + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, + HANDLE * pHandle, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetMemoryWin32HandleNV( m_device, + static_cast( memory ), + static_cast( handleType ), + pHandle ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory memory, + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, + Dispatch const & d ) const + { + HANDLE handle; + Result result = + static_cast( d.vkGetMemoryWin32HandleNV( m_device, + static_cast( memory ), + static_cast( handleType ), + &handle ) ); + return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleNV" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryWin32HandlePropertiesKHR( + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, + HANDLE handle, + VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetMemoryWin32HandlePropertiesKHR( + m_device, + static_cast( handleType ), + handle, + reinterpret_cast( pMemoryWin32HandleProperties ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, + HANDLE handle, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR memoryWin32HandleProperties; + Result result = static_cast( d.vkGetMemoryWin32HandlePropertiesKHR( + m_device, + static_cast( handleType ), + handle, + reinterpret_cast( &memoryWin32HandleProperties ) ) ); + return createResultValue( + result, memoryWin32HandleProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandlePropertiesKHR" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryZirconHandleFUCHSIA( + const VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo, + zx_handle_t * pZirconHandle, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetMemoryZirconHandleFUCHSIA( + m_device, reinterpret_cast( pGetZirconHandleInfo ), pZirconHandle ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::getMemoryZirconHandleFUCHSIA( const MemoryGetZirconHandleInfoFUCHSIA & getZirconHandleInfo, + Dispatch const & d ) const + { + zx_handle_t zirconHandle; + Result result = static_cast( d.vkGetMemoryZirconHandleFUCHSIA( + m_device, reinterpret_cast( &getZirconHandleInfo ), &zirconHandle ) ); + return createResultValue( + result, zirconHandle, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryZirconHandleFUCHSIA" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryZirconHandlePropertiesFUCHSIA( + VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, + zx_handle_t zirconHandle, + VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA * pMemoryZirconHandleProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetMemoryZirconHandlePropertiesFUCHSIA( + m_device, + static_cast( handleType ), + zirconHandle, + reinterpret_cast( pMemoryZirconHandleProperties ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE typename ResultValueType::type + Device::getMemoryZirconHandlePropertiesFUCHSIA( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, + zx_handle_t zirconHandle, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA memoryZirconHandleProperties; + Result result = static_cast( d.vkGetMemoryZirconHandlePropertiesFUCHSIA( + m_device, + static_cast( handleType ), + zirconHandle, + reinterpret_cast( &memoryZirconHandleProperties ) ) ); + return createResultValue( result, + memoryZirconHandleProperties, + VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryZirconHandlePropertiesFUCHSIA" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + uint32_t * pPresentationTimingCount, + VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE * pPresentationTimings, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetPastPresentationTimingGOOGLE( + m_device, + static_cast( swapchain ), + pPresentationTimingCount, + reinterpret_cast( pPresentationTimings ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const + { + std::vector presentationTimings; + uint32_t presentationTimingCount; + Result result; + do + { + result = static_cast( d.vkGetPastPresentationTimingGOOGLE( + m_device, static_cast( swapchain ), &presentationTimingCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && presentationTimingCount ) + { + presentationTimings.resize( presentationTimingCount ); + result = static_cast( d.vkGetPastPresentationTimingGOOGLE( + m_device, + static_cast( swapchain ), + &presentationTimingCount, + reinterpret_cast( presentationTimings.data() ) ) ); + VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( presentationTimingCount < presentationTimings.size() ) ) + { + presentationTimings.resize( presentationTimingCount ); + } + return createResultValue( + result, presentationTimings, VULKAN_HPP_NAMESPACE_STRING "::Device::getPastPresentationTimingGOOGLE" ); + } + + template < + typename PastPresentationTimingGOOGLEAllocator, + typename Dispatch, + typename B, + typename std::enable_if::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::getPastPresentationTimingGOOGLE( + VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + PastPresentationTimingGOOGLEAllocator & pastPresentationTimingGOOGLEAllocator, + Dispatch const & d ) const + { + std::vector presentationTimings( + pastPresentationTimingGOOGLEAllocator ); + uint32_t presentationTimingCount; + Result result; + do + { + result = static_cast( d.vkGetPastPresentationTimingGOOGLE( + m_device, static_cast( swapchain ), &presentationTimingCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && presentationTimingCount ) + { + presentationTimings.resize( presentationTimingCount ); + result = static_cast( d.vkGetPastPresentationTimingGOOGLE( + m_device, + static_cast( swapchain ), + &presentationTimingCount, + reinterpret_cast( presentationTimings.data() ) ) ); + VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( presentationTimingCount < presentationTimings.size() ) ) + { + presentationTimings.resize( presentationTimingCount ); + } + return createResultValue( + result, presentationTimings, VULKAN_HPP_NAMESPACE_STRING "::Device::getPastPresentationTimingGOOGLE" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, + VULKAN_HPP_NAMESPACE::PerformanceValueINTEL * pValue, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetPerformanceParameterINTEL( m_device, + static_cast( parameter ), + reinterpret_cast( pValue ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::PerformanceValueINTEL value; + Result result = + static_cast( d.vkGetPerformanceParameterINTEL( m_device, + static_cast( parameter ), + reinterpret_cast( &value ) ) ); + return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING "::Device::getPerformanceParameterINTEL" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + size_t * pDataSize, + void * pData, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetPipelineCacheData( m_device, static_cast( pipelineCache ), pDataSize, pData ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Dispatch const & d ) const + { + std::vector data; + size_t dataSize; + Result result; + do + { + result = static_cast( + d.vkGetPipelineCacheData( m_device, static_cast( pipelineCache ), &dataSize, nullptr ) ); + if ( ( result == Result::eSuccess ) && dataSize ) + { + data.resize( dataSize ); + result = static_cast( d.vkGetPipelineCacheData( m_device, + static_cast( pipelineCache ), + &dataSize, + reinterpret_cast( data.data() ) ) ); + VULKAN_HPP_ASSERT( dataSize <= data.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( dataSize < data.size() ) ) + { + data.resize( dataSize ); + } + return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineCacheData" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, + Uint8_tAllocator & uint8_tAllocator, + Dispatch const & d ) const + { + std::vector data( uint8_tAllocator ); + size_t dataSize; + Result result; + do + { + result = static_cast( + d.vkGetPipelineCacheData( m_device, static_cast( pipelineCache ), &dataSize, nullptr ) ); + if ( ( result == Result::eSuccess ) && dataSize ) + { + data.resize( dataSize ); + result = static_cast( d.vkGetPipelineCacheData( m_device, + static_cast( pipelineCache ), + &dataSize, + reinterpret_cast( data.data() ) ) ); + VULKAN_HPP_ASSERT( dataSize <= data.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( dataSize < data.size() ) ) + { + data.resize( dataSize ); + } + return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineCacheData" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPipelineExecutableInternalRepresentationsKHR( + const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR * pExecutableInfo, + uint32_t * pInternalRepresentationCount, + VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR * pInternalRepresentations, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetPipelineExecutableInternalRepresentationsKHR( + m_device, + reinterpret_cast( pExecutableInfo ), + pInternalRepresentationCount, + reinterpret_cast( pInternalRepresentations ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, + Dispatch const & d ) const + { + std::vector + internalRepresentations; + uint32_t internalRepresentationCount; + Result result; + do + { + result = static_cast( d.vkGetPipelineExecutableInternalRepresentationsKHR( + m_device, + reinterpret_cast( &executableInfo ), + &internalRepresentationCount, + nullptr ) ); + if ( ( result == Result::eSuccess ) && internalRepresentationCount ) + { + internalRepresentations.resize( internalRepresentationCount ); + result = static_cast( d.vkGetPipelineExecutableInternalRepresentationsKHR( + m_device, + reinterpret_cast( &executableInfo ), + &internalRepresentationCount, + reinterpret_cast( internalRepresentations.data() ) ) ); + VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( internalRepresentationCount < internalRepresentations.size() ) ) + { + internalRepresentations.resize( internalRepresentationCount ); + } + return createResultValue( result, + internalRepresentations, + VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableInternalRepresentationsKHR" ); + } + + template < + typename PipelineExecutableInternalRepresentationKHRAllocator, + typename Dispatch, + typename B, + typename std::enable_if::value, + int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::getPipelineExecutableInternalRepresentationsKHR( + const PipelineExecutableInfoKHR & executableInfo, + PipelineExecutableInternalRepresentationKHRAllocator & pipelineExecutableInternalRepresentationKHRAllocator, + Dispatch const & d ) const + { + std::vector + internalRepresentations( pipelineExecutableInternalRepresentationKHRAllocator ); + uint32_t internalRepresentationCount; + Result result; + do + { + result = static_cast( d.vkGetPipelineExecutableInternalRepresentationsKHR( + m_device, + reinterpret_cast( &executableInfo ), + &internalRepresentationCount, + nullptr ) ); + if ( ( result == Result::eSuccess ) && internalRepresentationCount ) + { + internalRepresentations.resize( internalRepresentationCount ); + result = static_cast( d.vkGetPipelineExecutableInternalRepresentationsKHR( + m_device, + reinterpret_cast( &executableInfo ), + &internalRepresentationCount, + reinterpret_cast( internalRepresentations.data() ) ) ); + VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( internalRepresentationCount < internalRepresentations.size() ) ) + { + internalRepresentations.resize( internalRepresentationCount ); + } + return createResultValue( result, + internalRepresentations, + VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableInternalRepresentationsKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getPipelineExecutablePropertiesKHR( const VULKAN_HPP_NAMESPACE::PipelineInfoKHR * pPipelineInfo, + uint32_t * pExecutableCount, + VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR * pProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetPipelineExecutablePropertiesKHR( m_device, + reinterpret_cast( pPipelineInfo ), + pExecutableCount, + reinterpret_cast( pProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType< + std::vector>::type + Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Dispatch const & d ) const + { + std::vector properties; + uint32_t executableCount; + Result result; + do + { + result = static_cast( d.vkGetPipelineExecutablePropertiesKHR( + m_device, reinterpret_cast( &pipelineInfo ), &executableCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && executableCount ) + { + properties.resize( executableCount ); + result = static_cast( d.vkGetPipelineExecutablePropertiesKHR( + m_device, + reinterpret_cast( &pipelineInfo ), + &executableCount, + reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( executableCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( executableCount < properties.size() ) ) + { + properties.resize( executableCount ); + } + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutablePropertiesKHR" ); + } + + template < + typename PipelineExecutablePropertiesKHRAllocator, + typename Dispatch, + typename B, + typename std::enable_if::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType< + std::vector>::type + Device::getPipelineExecutablePropertiesKHR( + const PipelineInfoKHR & pipelineInfo, + PipelineExecutablePropertiesKHRAllocator & pipelineExecutablePropertiesKHRAllocator, + Dispatch const & d ) const + { + std::vector properties( + pipelineExecutablePropertiesKHRAllocator ); + uint32_t executableCount; + Result result; + do + { + result = static_cast( d.vkGetPipelineExecutablePropertiesKHR( + m_device, reinterpret_cast( &pipelineInfo ), &executableCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && executableCount ) + { + properties.resize( executableCount ); + result = static_cast( d.vkGetPipelineExecutablePropertiesKHR( + m_device, + reinterpret_cast( &pipelineInfo ), + &executableCount, + reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( executableCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( executableCount < properties.size() ) ) + { + properties.resize( executableCount ); + } + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutablePropertiesKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getPipelineExecutableStatisticsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR * pExecutableInfo, + uint32_t * pStatisticCount, + VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR * pStatistics, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetPipelineExecutableStatisticsKHR( m_device, + reinterpret_cast( pExecutableInfo ), + pStatisticCount, + reinterpret_cast( pStatistics ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, + Dispatch const & d ) const + { + std::vector statistics; + uint32_t statisticCount; + Result result; + do + { + result = static_cast( d.vkGetPipelineExecutableStatisticsKHR( + m_device, + reinterpret_cast( &executableInfo ), + &statisticCount, + nullptr ) ); + if ( ( result == Result::eSuccess ) && statisticCount ) + { + statistics.resize( statisticCount ); + result = static_cast( d.vkGetPipelineExecutableStatisticsKHR( + m_device, + reinterpret_cast( &executableInfo ), + &statisticCount, + reinterpret_cast( statistics.data() ) ) ); + VULKAN_HPP_ASSERT( statisticCount <= statistics.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( statisticCount < statistics.size() ) ) + { + statistics.resize( statisticCount ); + } + return createResultValue( + result, statistics, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableStatisticsKHR" ); + } + + template < + typename PipelineExecutableStatisticKHRAllocator, + typename Dispatch, + typename B, + typename std::enable_if::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::getPipelineExecutableStatisticsKHR( + const PipelineExecutableInfoKHR & executableInfo, + PipelineExecutableStatisticKHRAllocator & pipelineExecutableStatisticKHRAllocator, + Dispatch const & d ) const + { + std::vector statistics( + pipelineExecutableStatisticKHRAllocator ); + uint32_t statisticCount; + Result result; + do + { + result = static_cast( d.vkGetPipelineExecutableStatisticsKHR( + m_device, + reinterpret_cast( &executableInfo ), + &statisticCount, + nullptr ) ); + if ( ( result == Result::eSuccess ) && statisticCount ) + { + statistics.resize( statisticCount ); + result = static_cast( d.vkGetPipelineExecutableStatisticsKHR( + m_device, + reinterpret_cast( &executableInfo ), + &statisticCount, + reinterpret_cast( statistics.data() ) ) ); + VULKAN_HPP_ASSERT( statisticCount <= statistics.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( statisticCount < statistics.size() ) ) + { + statistics.resize( statisticCount ); + } + return createResultValue( + result, statistics, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableStatisticsKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, + uint64_t objectHandle, + VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, + uint64_t * pData, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPrivateDataEXT( m_device, + static_cast( objectType ), + objectHandle, + static_cast( privateDataSlot ), + pData ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t + Device::getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, + uint64_t objectHandle, + VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + uint64_t data; + d.vkGetPrivateDataEXT( m_device, + static_cast( objectType ), + objectHandle, + static_cast( privateDataSlot ), + &data ); + return data; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount, + size_t dataSize, + void * pData, + VULKAN_HPP_NAMESPACE::DeviceSize stride, + VULKAN_HPP_NAMESPACE::QueryResultFlags flags, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetQueryPoolResults( m_device, + static_cast( queryPool ), + firstQuery, + queryCount, + dataSize, + pData, + static_cast( stride ), + static_cast( flags ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it." ) + VULKAN_HPP_NODISCARD + VULKAN_HPP_INLINE Result Device::getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount, + ArrayProxy const & data, + VULKAN_HPP_NAMESPACE::DeviceSize stride, + VULKAN_HPP_NAMESPACE::QueryResultFlags flags, + Dispatch const & d ) const + { + Result result = static_cast( d.vkGetQueryPoolResults( m_device, + static_cast( queryPool ), + firstQuery, + queryCount, + data.size() * sizeof( T ), + reinterpret_cast( data.data() ), + static_cast( stride ), + static_cast( flags ) ) ); + return createResultValue( + result, VULKAN_HPP_NAMESPACE_STRING "::Device::getQueryPoolResults", { Result::eSuccess, Result::eNotReady } ); + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> + Device::getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount, + size_t dataSize, + VULKAN_HPP_NAMESPACE::DeviceSize stride, + VULKAN_HPP_NAMESPACE::QueryResultFlags flags, + Dispatch const & d ) const + { + VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); + std::vector data( dataSize / sizeof( T ) ); + Result result = static_cast( d.vkGetQueryPoolResults( m_device, + static_cast( queryPool ), + firstQuery, + queryCount, + data.size() * sizeof( T ), + reinterpret_cast( data.data() ), + static_cast( stride ), + static_cast( flags ) ) ); + return createResultValue( result, + data, + VULKAN_HPP_NAMESPACE_STRING "::Device::getQueryPoolResults", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } ); + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue + Device::getQueryPoolResult( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount, + VULKAN_HPP_NAMESPACE::DeviceSize stride, + VULKAN_HPP_NAMESPACE::QueryResultFlags flags, + Dispatch const & d ) const + { + T data; + Result result = static_cast( d.vkGetQueryPoolResults( m_device, + static_cast( queryPool ), + firstQuery, + queryCount, + sizeof( T ), + reinterpret_cast( &data ), + static_cast( stride ), + static_cast( flags ) ) ); + return createResultValue( result, + data, + VULKAN_HPP_NAMESPACE_STRING "::Device::getQueryPoolResult", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void * pData, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( + m_device, static_cast( pipeline ), firstGroup, groupCount, dataSize, pData ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it." ) + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type Device::getRayTracingCaptureReplayShaderGroupHandlesKHR( + VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + ArrayProxy const & data, + Dispatch const & d ) const + { + Result result = static_cast( + d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, + static_cast( pipeline ), + firstGroup, + groupCount, + data.size() * sizeof( T ), + reinterpret_cast( data.data() ) ) ); + return createResultValue( result, + VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingCaptureReplayShaderGroupHandlesKHR" ); + } + + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type + Device::getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + Dispatch const & d ) const + { + VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); + std::vector data( dataSize / sizeof( T ) ); + Result result = static_cast( + d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, + static_cast( pipeline ), + firstGroup, + groupCount, + data.size() * sizeof( T ), + reinterpret_cast( data.data() ) ) ); + return createResultValue( + result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingCaptureReplayShaderGroupHandlesKHR" ); + } + + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::getRayTracingCaptureReplayShaderGroupHandleKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + Dispatch const & d ) const + { + T data; + Result result = + static_cast( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, + static_cast( pipeline ), + firstGroup, + groupCount, + sizeof( T ), + reinterpret_cast( &data ) ) ); + return createResultValue( + result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingCaptureReplayShaderGroupHandleKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void * pData, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetRayTracingShaderGroupHandlesKHR( + m_device, static_cast( pipeline ), firstGroup, groupCount, dataSize, pData ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it." ) + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type Device::getRayTracingShaderGroupHandlesKHR( + VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + ArrayProxy const & data, + Dispatch const & d ) const + { + Result result = + static_cast( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, + static_cast( pipeline ), + firstGroup, + groupCount, + data.size() * sizeof( T ), + reinterpret_cast( data.data() ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandlesKHR" ); + } + + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type + Device::getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + Dispatch const & d ) const + { + VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); + std::vector data( dataSize / sizeof( T ) ); + Result result = + static_cast( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, + static_cast( pipeline ), + firstGroup, + groupCount, + data.size() * sizeof( T ), + reinterpret_cast( data.data() ) ) ); + return createResultValue( + result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandlesKHR" ); + } + + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::getRayTracingShaderGroupHandleKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + Dispatch const & d ) const + { + T data; + Result result = static_cast( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, + static_cast( pipeline ), + firstGroup, + groupCount, + sizeof( T ), + reinterpret_cast( &data ) ) ); + return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandleKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void * pData, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetRayTracingShaderGroupHandlesNV( + m_device, static_cast( pipeline ), firstGroup, groupCount, dataSize, pData ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it." ) + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type Device::getRayTracingShaderGroupHandlesNV( + VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + ArrayProxy const & data, + Dispatch const & d ) const + { + Result result = + static_cast( d.vkGetRayTracingShaderGroupHandlesNV( m_device, + static_cast( pipeline ), + firstGroup, + groupCount, + data.size() * sizeof( T ), + reinterpret_cast( data.data() ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandlesNV" ); + } + + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type + Device::getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + Dispatch const & d ) const + { + VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); + std::vector data( dataSize / sizeof( T ) ); + Result result = + static_cast( d.vkGetRayTracingShaderGroupHandlesNV( m_device, + static_cast( pipeline ), + firstGroup, + groupCount, + data.size() * sizeof( T ), + reinterpret_cast( data.data() ) ) ); + return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandlesNV" ); + } + + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::getRayTracingShaderGroupHandleNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + Dispatch const & d ) const + { + T data; + Result result = static_cast( d.vkGetRayTracingShaderGroupHandlesNV( m_device, + static_cast( pipeline ), + firstGroup, + groupCount, + sizeof( T ), + reinterpret_cast( &data ) ) ); + return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandleNV" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE DeviceSize + Device::getRayTracingShaderGroupStackSizeKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + uint32_t group, + VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetRayTracingShaderGroupStackSizeKHR( + m_device, static_cast( pipeline ), group, static_cast( groupShader ) ) ); + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE * pDisplayTimingProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetRefreshCycleDurationGOOGLE( + m_device, + static_cast( swapchain ), + reinterpret_cast( pDisplayTimingProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Device::getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE displayTimingProperties; + Result result = static_cast( d.vkGetRefreshCycleDurationGOOGLE( + m_device, + static_cast( swapchain ), + reinterpret_cast( &displayTimingProperties ) ) ); + return createResultValue( + result, displayTimingProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getRefreshCycleDurationGOOGLE" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, + VULKAN_HPP_NAMESPACE::Extent2D * pGranularity, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetRenderAreaGranularity( + m_device, static_cast( renderPass ), reinterpret_cast( pGranularity ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Extent2D + Device::getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::Extent2D granularity; + d.vkGetRenderAreaGranularity( + m_device, static_cast( renderPass ), reinterpret_cast( &granularity ) ); + return granularity; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreCounterValue( + VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t * pValue, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetSemaphoreCounterValue( m_device, static_cast( semaphore ), pValue ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const & d ) const + { + uint64_t value; + Result result = + static_cast( d.vkGetSemaphoreCounterValue( m_device, static_cast( semaphore ), &value ) ); + return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreCounterValue" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreCounterValueKHR( + VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t * pValue, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetSemaphoreCounterValueKHR( m_device, static_cast( semaphore ), pValue ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const & d ) const + { + uint64_t value; + Result result = + static_cast( d.vkGetSemaphoreCounterValueKHR( m_device, static_cast( semaphore ), &value ) ); + return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreCounterValueKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR * pGetFdInfo, + int * pFd, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast( pGetFdInfo ), pFd ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo, Dispatch const & d ) const + { + int fd; + Result result = static_cast( + d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast( &getFdInfo ), &fd ) ); + return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreFdKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreWin32HandleKHR( + const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo, + HANDLE * pHandle, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetSemaphoreWin32HandleKHR( + m_device, reinterpret_cast( pGetWin32HandleInfo ), pHandle ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo, + Dispatch const & d ) const + { + HANDLE handle; + Result result = static_cast( d.vkGetSemaphoreWin32HandleKHR( + m_device, reinterpret_cast( &getWin32HandleInfo ), &handle ) ); + return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreWin32HandleKHR" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreZirconHandleFUCHSIA( + const VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo, + zx_handle_t * pZirconHandle, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetSemaphoreZirconHandleFUCHSIA( + m_device, + reinterpret_cast( pGetZirconHandleInfo ), + pZirconHandle ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::getSemaphoreZirconHandleFUCHSIA( const SemaphoreGetZirconHandleInfoFUCHSIA & getZirconHandleInfo, + Dispatch const & d ) const + { + zx_handle_t zirconHandle; + Result result = static_cast( d.vkGetSemaphoreZirconHandleFUCHSIA( + m_device, + reinterpret_cast( &getZirconHandleInfo ), + &zirconHandle ) ); + return createResultValue( + result, zirconHandle, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreZirconHandleFUCHSIA" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, + VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, + size_t * pInfoSize, + void * pInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetShaderInfoAMD( m_device, + static_cast( pipeline ), + static_cast( shaderStage ), + static_cast( infoType ), + pInfoSize, + pInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, + VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, + Dispatch const & d ) const + { + std::vector info; + size_t infoSize; + Result result; + do + { + result = static_cast( d.vkGetShaderInfoAMD( m_device, + static_cast( pipeline ), + static_cast( shaderStage ), + static_cast( infoType ), + &infoSize, + nullptr ) ); + if ( ( result == Result::eSuccess ) && infoSize ) + { + info.resize( infoSize ); + result = static_cast( d.vkGetShaderInfoAMD( m_device, + static_cast( pipeline ), + static_cast( shaderStage ), + static_cast( infoType ), + &infoSize, + reinterpret_cast( info.data() ) ) ); + VULKAN_HPP_ASSERT( infoSize <= info.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( infoSize < info.size() ) ) + { + info.resize( infoSize ); + } + return createResultValue( result, info, VULKAN_HPP_NAMESPACE_STRING "::Device::getShaderInfoAMD" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, + VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, + VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, + Uint8_tAllocator & uint8_tAllocator, + Dispatch const & d ) const + { + std::vector info( uint8_tAllocator ); + size_t infoSize; + Result result; + do + { + result = static_cast( d.vkGetShaderInfoAMD( m_device, + static_cast( pipeline ), + static_cast( shaderStage ), + static_cast( infoType ), + &infoSize, + nullptr ) ); + if ( ( result == Result::eSuccess ) && infoSize ) + { + info.resize( infoSize ); + result = static_cast( d.vkGetShaderInfoAMD( m_device, + static_cast( pipeline ), + static_cast( shaderStage ), + static_cast( infoType ), + &infoSize, + reinterpret_cast( info.data() ) ) ); + VULKAN_HPP_ASSERT( infoSize <= info.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( infoSize < info.size() ) ) + { + info.resize( infoSize ); + } + return createResultValue( result, info, VULKAN_HPP_NAMESPACE_STRING "::Device::getShaderInfoAMD" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, + uint64_t * pCounterValue, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetSwapchainCounterEXT( m_device, + static_cast( swapchain ), + static_cast( counter ), + pCounterValue ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, + Dispatch const & d ) const + { + uint64_t counterValue; + Result result = + static_cast( d.vkGetSwapchainCounterEXT( m_device, + static_cast( swapchain ), + static_cast( counter ), + &counterValue ) ); + return createResultValue( result, counterValue, VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainCounterEXT" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + uint32_t * pSwapchainImageCount, + VULKAN_HPP_NAMESPACE::Image * pSwapchainImages, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetSwapchainImagesKHR( m_device, + static_cast( swapchain ), + pSwapchainImageCount, + reinterpret_cast( pSwapchainImages ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const + { + std::vector swapchainImages; + uint32_t swapchainImageCount; + Result result; + do + { + result = static_cast( d.vkGetSwapchainImagesKHR( + m_device, static_cast( swapchain ), &swapchainImageCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && swapchainImageCount ) + { + swapchainImages.resize( swapchainImageCount ); + result = + static_cast( d.vkGetSwapchainImagesKHR( m_device, + static_cast( swapchain ), + &swapchainImageCount, + reinterpret_cast( swapchainImages.data() ) ) ); + VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( swapchainImageCount < swapchainImages.size() ) ) + { + swapchainImages.resize( swapchainImageCount ); + } + return createResultValue( result, swapchainImages, VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainImagesKHR" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, + ImageAllocator & imageAllocator, + Dispatch const & d ) const + { + std::vector swapchainImages( imageAllocator ); + uint32_t swapchainImageCount; + Result result; + do + { + result = static_cast( d.vkGetSwapchainImagesKHR( + m_device, static_cast( swapchain ), &swapchainImageCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && swapchainImageCount ) + { + swapchainImages.resize( swapchainImageCount ); + result = + static_cast( d.vkGetSwapchainImagesKHR( m_device, + static_cast( swapchain ), + &swapchainImageCount, + reinterpret_cast( swapchainImages.data() ) ) ); + VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( swapchainImageCount < swapchainImages.size() ) ) + { + swapchainImages.resize( swapchainImageCount ); + } + return createResultValue( result, swapchainImages, VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainImagesKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSwapchainStatusKHR( + VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetSwapchainStatusKHR( m_device, static_cast( swapchain ) ) ); + } +#else + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const + { + Result result = + static_cast( d.vkGetSwapchainStatusKHR( m_device, static_cast( swapchain ) ) ); + return createResultValue( + result, + VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainStatusKHR", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, + size_t * pDataSize, + void * pData, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetValidationCacheDataEXT( + m_device, static_cast( validationCache ), pDataSize, pData ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, + Dispatch const & d ) const + { + std::vector data; + size_t dataSize; + Result result; + do + { + result = static_cast( d.vkGetValidationCacheDataEXT( + m_device, static_cast( validationCache ), &dataSize, nullptr ) ); + if ( ( result == Result::eSuccess ) && dataSize ) + { + data.resize( dataSize ); + result = + static_cast( d.vkGetValidationCacheDataEXT( m_device, + static_cast( validationCache ), + &dataSize, + reinterpret_cast( data.data() ) ) ); + VULKAN_HPP_ASSERT( dataSize <= data.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( dataSize < data.size() ) ) + { + data.resize( dataSize ); + } + return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getValidationCacheDataEXT" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, + Uint8_tAllocator & uint8_tAllocator, + Dispatch const & d ) const + { + std::vector data( uint8_tAllocator ); + size_t dataSize; + Result result; + do + { + result = static_cast( d.vkGetValidationCacheDataEXT( + m_device, static_cast( validationCache ), &dataSize, nullptr ) ); + if ( ( result == Result::eSuccess ) && dataSize ) + { + data.resize( dataSize ); + result = + static_cast( d.vkGetValidationCacheDataEXT( m_device, + static_cast( validationCache ), + &dataSize, + reinterpret_cast( data.data() ) ) ); + VULKAN_HPP_ASSERT( dataSize <= data.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( dataSize < data.size() ) ) + { + data.resize( dataSize ); + } + return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getValidationCacheDataEXT" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getVideoSessionMemoryRequirementsKHR( + VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession, + uint32_t * pVideoSessionMemoryRequirementsCount, + VULKAN_HPP_NAMESPACE::VideoGetMemoryPropertiesKHR * pVideoSessionMemoryRequirements, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetVideoSessionMemoryRequirementsKHR( + m_device, + static_cast( videoSession ), + pVideoSessionMemoryRequirementsCount, + reinterpret_cast( pVideoSessionMemoryRequirements ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::getVideoSessionMemoryRequirementsKHR( VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession, + Dispatch const & d ) const + { + std::vector videoSessionMemoryRequirements; + uint32_t videoSessionMemoryRequirementsCount; + Result result; + do + { + result = static_cast( d.vkGetVideoSessionMemoryRequirementsKHR( + m_device, static_cast( videoSession ), &videoSessionMemoryRequirementsCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && videoSessionMemoryRequirementsCount ) + { + videoSessionMemoryRequirements.resize( videoSessionMemoryRequirementsCount ); + result = static_cast( d.vkGetVideoSessionMemoryRequirementsKHR( + m_device, + static_cast( videoSession ), + &videoSessionMemoryRequirementsCount, + reinterpret_cast( videoSessionMemoryRequirements.data() ) ) ); + VULKAN_HPP_ASSERT( videoSessionMemoryRequirementsCount <= videoSessionMemoryRequirements.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && + ( videoSessionMemoryRequirementsCount < videoSessionMemoryRequirements.size() ) ) + { + videoSessionMemoryRequirements.resize( videoSessionMemoryRequirementsCount ); + } + return createResultValue( result, + videoSessionMemoryRequirements, + VULKAN_HPP_NAMESPACE_STRING "::Device::getVideoSessionMemoryRequirementsKHR" ); + } + + template < + typename VideoGetMemoryPropertiesKHRAllocator, + typename Dispatch, + typename B, + typename std::enable_if::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + Device::getVideoSessionMemoryRequirementsKHR( + VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession, + VideoGetMemoryPropertiesKHRAllocator & videoGetMemoryPropertiesKHRAllocator, + Dispatch const & d ) const + { + std::vector videoSessionMemoryRequirements( + videoGetMemoryPropertiesKHRAllocator ); + uint32_t videoSessionMemoryRequirementsCount; + Result result; + do + { + result = static_cast( d.vkGetVideoSessionMemoryRequirementsKHR( + m_device, static_cast( videoSession ), &videoSessionMemoryRequirementsCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && videoSessionMemoryRequirementsCount ) + { + videoSessionMemoryRequirements.resize( videoSessionMemoryRequirementsCount ); + result = static_cast( d.vkGetVideoSessionMemoryRequirementsKHR( + m_device, + static_cast( videoSession ), + &videoSessionMemoryRequirementsCount, + reinterpret_cast( videoSessionMemoryRequirements.data() ) ) ); + VULKAN_HPP_ASSERT( videoSessionMemoryRequirementsCount <= videoSessionMemoryRequirements.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && + ( videoSessionMemoryRequirementsCount < videoSessionMemoryRequirements.size() ) ) + { + videoSessionMemoryRequirements.resize( videoSessionMemoryRequirementsCount ); + } + return createResultValue( result, + videoSessionMemoryRequirements, + VULKAN_HPP_NAMESPACE_STRING "::Device::getVideoSessionMemoryRequirementsKHR" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR * pImportFenceFdInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkImportFenceFdKHR( m_device, reinterpret_cast( pImportFenceFdInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo, Dispatch const & d ) const + { + Result result = static_cast( + d.vkImportFenceFdKHR( m_device, reinterpret_cast( &importFenceFdInfo ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceFdKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importFenceWin32HandleKHR( + const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkImportFenceWin32HandleKHR( + m_device, reinterpret_cast( pImportFenceWin32HandleInfo ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo, + Dispatch const & d ) const + { + Result result = static_cast( d.vkImportFenceWin32HandleKHR( + m_device, reinterpret_cast( &importFenceWin32HandleInfo ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceWin32HandleKHR" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkImportSemaphoreFdKHR( + m_device, reinterpret_cast( pImportSemaphoreFdInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, Dispatch const & d ) const + { + Result result = static_cast( d.vkImportSemaphoreFdKHR( + m_device, reinterpret_cast( &importSemaphoreFdInfo ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreFdKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importSemaphoreWin32HandleKHR( + const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkImportSemaphoreWin32HandleKHR( + m_device, reinterpret_cast( pImportSemaphoreWin32HandleInfo ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo, + Dispatch const & d ) const + { + Result result = static_cast( d.vkImportSemaphoreWin32HandleKHR( + m_device, reinterpret_cast( &importSemaphoreWin32HandleInfo ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreWin32HandleKHR" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importSemaphoreZirconHandleFUCHSIA( + const VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA * pImportSemaphoreZirconHandleInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkImportSemaphoreZirconHandleFUCHSIA( + m_device, + reinterpret_cast( pImportSemaphoreZirconHandleInfo ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::importSemaphoreZirconHandleFUCHSIA( + const ImportSemaphoreZirconHandleInfoFUCHSIA & importSemaphoreZirconHandleInfo, Dispatch const & d ) const + { + Result result = static_cast( d.vkImportSemaphoreZirconHandleFUCHSIA( + m_device, + reinterpret_cast( &importSemaphoreZirconHandleInfo ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreZirconHandleFUCHSIA" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::initializePerformanceApiINTEL( + const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL * pInitializeInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkInitializePerformanceApiINTEL( + m_device, reinterpret_cast( pInitializeInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo, + Dispatch const & d ) const + { + Result result = static_cast( d.vkInitializePerformanceApiINTEL( + m_device, reinterpret_cast( &initializeInfo ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::initializePerformanceApiINTEL" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::invalidateMappedMemoryRanges( uint32_t memoryRangeCount, + const VULKAN_HPP_NAMESPACE::MappedMemoryRange * pMemoryRanges, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkInvalidateMappedMemoryRanges( + m_device, memoryRangeCount, reinterpret_cast( pMemoryRanges ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::invalidateMappedMemoryRanges( + ArrayProxy const & memoryRanges, Dispatch const & d ) const + { + Result result = static_cast( d.vkInvalidateMappedMemoryRanges( + m_device, memoryRanges.size(), reinterpret_cast( memoryRanges.data() ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::invalidateMappedMemoryRanges" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::mapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, + VULKAN_HPP_NAMESPACE::DeviceSize offset, + VULKAN_HPP_NAMESPACE::DeviceSize size, + VULKAN_HPP_NAMESPACE::MemoryMapFlags flags, + void ** ppData, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkMapMemory( m_device, + static_cast( memory ), + static_cast( offset ), + static_cast( size ), + static_cast( flags ), + ppData ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::mapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, + VULKAN_HPP_NAMESPACE::DeviceSize offset, + VULKAN_HPP_NAMESPACE::DeviceSize size, + VULKAN_HPP_NAMESPACE::MemoryMapFlags flags, + Dispatch const & d ) const + { + void * pData; + Result result = static_cast( d.vkMapMemory( m_device, + static_cast( memory ), + static_cast( offset ), + static_cast( size ), + static_cast( flags ), + &pData ) ); + return createResultValue( result, pData, VULKAN_HPP_NAMESPACE_STRING "::Device::mapMemory" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache dstCache, + uint32_t srcCacheCount, + const VULKAN_HPP_NAMESPACE::PipelineCache * pSrcCaches, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkMergePipelineCaches( m_device, + static_cast( dstCache ), + srcCacheCount, + reinterpret_cast( pSrcCaches ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache dstCache, + ArrayProxy const & srcCaches, + Dispatch const & d ) const + { + Result result = + static_cast( d.vkMergePipelineCaches( m_device, + static_cast( dstCache ), + srcCaches.size(), + reinterpret_cast( srcCaches.data() ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mergePipelineCaches" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache, + uint32_t srcCacheCount, + const VULKAN_HPP_NAMESPACE::ValidationCacheEXT * pSrcCaches, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkMergeValidationCachesEXT( m_device, + static_cast( dstCache ), + srcCacheCount, + reinterpret_cast( pSrcCaches ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache, + ArrayProxy const & srcCaches, + Dispatch const & d ) const + { + Result result = static_cast( + d.vkMergeValidationCachesEXT( m_device, + static_cast( dstCache ), + srcCaches.size(), + reinterpret_cast( srcCaches.data() ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mergeValidationCachesEXT" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::registerEventEXT( const VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT * pDeviceEventInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Fence * pFence, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkRegisterDeviceEventEXT( m_device, + reinterpret_cast( pDeviceEventInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pFence ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE typename ResultValueType::type + Device::registerEventEXT( const DeviceEventInfoEXT & deviceEventInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::Fence fence; + Result result = static_cast( + d.vkRegisterDeviceEventEXT( m_device, + reinterpret_cast( &deviceEventInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &fence ) ) ); + return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerEventEXT" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_INLINE typename ResultValueType>::type + Device::registerEventEXTUnique( const DeviceEventInfoEXT & deviceEventInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::Fence fence; + Result result = static_cast( + d.vkRegisterDeviceEventEXT( m_device, + reinterpret_cast( &deviceEventInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &fence ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerEventEXTUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, + const VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT * pDisplayEventInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Fence * pFence, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkRegisterDisplayEventEXT( m_device, + static_cast( display ), + reinterpret_cast( pDisplayEventInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pFence ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE typename ResultValueType::type + Device::registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, + const DisplayEventInfoEXT & displayEventInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::Fence fence; + Result result = static_cast( + d.vkRegisterDisplayEventEXT( m_device, + static_cast( display ), + reinterpret_cast( &displayEventInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &fence ) ) ); + return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerDisplayEventEXT" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_INLINE typename ResultValueType>::type + Device::registerDisplayEventEXTUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, + const DisplayEventInfoEXT & displayEventInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::Fence fence; + Result result = static_cast( + d.vkRegisterDisplayEventEXT( m_device, + static_cast( display ), + reinterpret_cast( &displayEventInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &fence ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerDisplayEventEXTUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) +# ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::releaseFullScreenExclusiveModeEXT( + VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast( swapchain ) ) ); + } +# else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const + { + Result result = static_cast( + d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast( swapchain ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releaseFullScreenExclusiveModeEXT" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::releasePerformanceConfigurationINTEL( + VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkReleasePerformanceConfigurationINTEL( + m_device, static_cast( configuration ) ) ); + } +#else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, + Dispatch const & d ) const + { + Result result = static_cast( d.vkReleasePerformanceConfigurationINTEL( + m_device, static_cast( configuration ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releasePerformanceConfigurationINTEL" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::release( + VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkReleasePerformanceConfigurationINTEL( + m_device, static_cast( configuration ) ) ); + } +#else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const + { + Result result = static_cast( d.vkReleasePerformanceConfigurationINTEL( + m_device, static_cast( configuration ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::release" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::releaseProfilingLockKHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkReleaseProfilingLockKHR( m_device ); + } + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, + VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkResetCommandPool( + m_device, static_cast( commandPool ), static_cast( flags ) ) ); + } +#else + template + VULKAN_HPP_INLINE typename ResultValueType::type + Device::resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, + VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, + Dispatch const & d ) const + { + Result result = static_cast( d.vkResetCommandPool( + m_device, static_cast( commandPool ), static_cast( flags ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetCommandPool" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE Result Device::resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, + VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkResetDescriptorPool( + m_device, static_cast( descriptorPool ), static_cast( flags ) ) ); + } +#else + template + VULKAN_HPP_INLINE typename ResultValueType::type + Device::resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, + VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags, + Dispatch const & d ) const + { + Result result = static_cast( d.vkResetDescriptorPool( + m_device, static_cast( descriptorPool ), static_cast( flags ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetDescriptorPool" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::resetEvent( VULKAN_HPP_NAMESPACE::Event event, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkResetEvent( m_device, static_cast( event ) ) ); + } +#else + template + VULKAN_HPP_INLINE typename ResultValueType::type Device::resetEvent( VULKAN_HPP_NAMESPACE::Event event, + Dispatch const & d ) const + { + Result result = static_cast( d.vkResetEvent( m_device, static_cast( event ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetEvent" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::resetFences( uint32_t fenceCount, + const VULKAN_HPP_NAMESPACE::Fence * pFences, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkResetFences( m_device, fenceCount, reinterpret_cast( pFences ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE typename ResultValueType::type + Device::resetFences( ArrayProxy const & fences, Dispatch const & d ) const + { + Result result = static_cast( + d.vkResetFences( m_device, fences.size(), reinterpret_cast( fences.data() ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetFences" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkResetQueryPool( m_device, static_cast( queryPool ), firstQuery, queryCount ); + } + + template + VULKAN_HPP_INLINE void Device::resetQueryPoolEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkResetQueryPoolEXT( m_device, static_cast( queryPool ), firstQuery, queryCount ); + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectNameEXT( + const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pNameInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkSetDebugUtilsObjectNameEXT( + m_device, reinterpret_cast( pNameInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo, Dispatch const & d ) const + { + Result result = static_cast( d.vkSetDebugUtilsObjectNameEXT( + m_device, reinterpret_cast( &nameInfo ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectNameEXT" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectTagEXT( + const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT * pTagInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast( pTagInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo, Dispatch const & d ) const + { + Result result = static_cast( + d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast( &tagInfo ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectTagEXT" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setEvent( VULKAN_HPP_NAMESPACE::Event event, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkSetEvent( m_device, static_cast( event ) ) ); + } +#else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const + { + Result result = static_cast( d.vkSetEvent( m_device, static_cast( event ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setEvent" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::setHdrMetadataEXT( uint32_t swapchainCount, + const VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains, + const VULKAN_HPP_NAMESPACE::HdrMetadataEXT * pMetadata, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkSetHdrMetadataEXT( m_device, + swapchainCount, + reinterpret_cast( pSwapchains ), + reinterpret_cast( pMetadata ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + Device::setHdrMetadataEXT( ArrayProxy const & swapchains, + ArrayProxy const & metadata, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS + { +# ifdef VULKAN_HPP_NO_EXCEPTIONS + VULKAN_HPP_ASSERT( swapchains.size() == metadata.size() ); +# else + if ( swapchains.size() != metadata.size() ) + { + throw LogicError( VULKAN_HPP_NAMESPACE_STRING + "::Device::setHdrMetadataEXT: swapchains.size() != metadata.size()" ); + } +# endif /*VULKAN_HPP_NO_EXCEPTIONS*/ + + d.vkSetHdrMetadataEXT( m_device, + swapchains.size(), + reinterpret_cast( swapchains.data() ), + reinterpret_cast( metadata.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain, + VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkSetLocalDimmingAMD( + m_device, static_cast( swapChain ), static_cast( localDimmingEnable ) ); + } + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, + uint64_t objectHandle, + VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, + uint64_t data, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkSetPrivateDataEXT( m_device, + static_cast( objectType ), + objectHandle, + static_cast( privateDataSlot ), + data ) ); + } +#else + template + VULKAN_HPP_INLINE typename ResultValueType::type + Device::setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, + uint64_t objectHandle, + VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, + uint64_t data, + Dispatch const & d ) const + { + Result result = static_cast( d.vkSetPrivateDataEXT( m_device, + static_cast( objectType ), + objectHandle, + static_cast( privateDataSlot ), + data ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateDataEXT" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::signalSemaphore( + const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo * pSignalInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkSignalSemaphore( m_device, reinterpret_cast( pSignalInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::signalSemaphore( const SemaphoreSignalInfo & signalInfo, Dispatch const & d ) const + { + Result result = static_cast( + d.vkSignalSemaphore( m_device, reinterpret_cast( &signalInfo ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphore" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::signalSemaphoreKHR( + const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo * pSignalInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkSignalSemaphoreKHR( m_device, reinterpret_cast( pSignalInfo ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::signalSemaphoreKHR( const SemaphoreSignalInfo & signalInfo, Dispatch const & d ) const + { + Result result = static_cast( + d.vkSignalSemaphoreKHR( m_device, reinterpret_cast( &signalInfo ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphoreKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Device::trimCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, + VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkTrimCommandPool( + m_device, static_cast( commandPool ), static_cast( flags ) ); + } + + template + VULKAN_HPP_INLINE void Device::trimCommandPoolKHR( VULKAN_HPP_NAMESPACE::CommandPool commandPool, + VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkTrimCommandPoolKHR( + m_device, static_cast( commandPool ), static_cast( flags ) ); + } + + template + VULKAN_HPP_INLINE void Device::uninitializePerformanceApiINTEL( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkUninitializePerformanceApiINTEL( m_device ); + } + + template + VULKAN_HPP_INLINE void Device::unmapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkUnmapMemory( m_device, static_cast( memory ) ); + } + + template + VULKAN_HPP_INLINE void + Device::updateDescriptorSetWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, + const void * pData, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkUpdateDescriptorSetWithTemplate( m_device, + static_cast( descriptorSet ), + static_cast( descriptorUpdateTemplate ), + pData ); + } + + template + VULKAN_HPP_INLINE void + Device::updateDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, + VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, + const void * pData, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkUpdateDescriptorSetWithTemplateKHR( m_device, + static_cast( descriptorSet ), + static_cast( descriptorUpdateTemplate ), + pData ); + } + + template + VULKAN_HPP_INLINE void + Device::updateDescriptorSets( uint32_t descriptorWriteCount, + const VULKAN_HPP_NAMESPACE::WriteDescriptorSet * pDescriptorWrites, + uint32_t descriptorCopyCount, + const VULKAN_HPP_NAMESPACE::CopyDescriptorSet * pDescriptorCopies, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkUpdateDescriptorSets( m_device, + descriptorWriteCount, + reinterpret_cast( pDescriptorWrites ), + descriptorCopyCount, + reinterpret_cast( pDescriptorCopies ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + Device::updateDescriptorSets( ArrayProxy const & descriptorWrites, + ArrayProxy const & descriptorCopies, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkUpdateDescriptorSets( m_device, + descriptorWrites.size(), + reinterpret_cast( descriptorWrites.data() ), + descriptorCopies.size(), + reinterpret_cast( descriptorCopies.data() ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::updateVideoSessionParametersKHR( + VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters, + const VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR * pUpdateInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkUpdateVideoSessionParametersKHR( + m_device, + static_cast( videoSessionParameters ), + reinterpret_cast( pUpdateInfo ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::updateVideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters, + const VideoSessionParametersUpdateInfoKHR & updateInfo, + Dispatch const & d ) const + { + Result result = static_cast( d.vkUpdateVideoSessionParametersKHR( + m_device, + static_cast( videoSessionParameters ), + reinterpret_cast( &updateInfo ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::updateVideoSessionParametersKHR" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitForFences( uint32_t fenceCount, + const VULKAN_HPP_NAMESPACE::Fence * pFences, + VULKAN_HPP_NAMESPACE::Bool32 waitAll, + uint64_t timeout, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkWaitForFences( + m_device, fenceCount, reinterpret_cast( pFences ), static_cast( waitAll ), timeout ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::waitForFences( ArrayProxy const & fences, + VULKAN_HPP_NAMESPACE::Bool32 waitAll, + uint64_t timeout, + Dispatch const & d ) const + { + Result result = static_cast( d.vkWaitForFences( m_device, + fences.size(), + reinterpret_cast( fences.data() ), + static_cast( waitAll ), + timeout ) ); + return createResultValue( result, + VULKAN_HPP_NAMESPACE_STRING "::Device::waitForFences", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::waitSemaphores( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo * pWaitInfo, + uint64_t timeout, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkWaitSemaphores( m_device, reinterpret_cast( pWaitInfo ), timeout ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitSemaphores( const SemaphoreWaitInfo & waitInfo, + uint64_t timeout, + Dispatch const & d ) const + { + Result result = static_cast( + d.vkWaitSemaphores( m_device, reinterpret_cast( &waitInfo ), timeout ) ); + return createResultValue( result, + VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphores", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Device::waitSemaphoresKHR( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo * pWaitInfo, + uint64_t timeout, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkWaitSemaphoresKHR( m_device, reinterpret_cast( pWaitInfo ), timeout ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitSemaphoresKHR( const SemaphoreWaitInfo & waitInfo, + uint64_t timeout, + Dispatch const & d ) const + { + Result result = static_cast( + d.vkWaitSemaphoresKHR( m_device, reinterpret_cast( &waitInfo ), timeout ) ); + return createResultValue( result, + VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphoresKHR", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::writeAccelerationStructuresPropertiesKHR( + uint32_t accelerationStructureCount, + const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures, + VULKAN_HPP_NAMESPACE::QueryType queryType, + size_t dataSize, + void * pData, + size_t stride, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkWriteAccelerationStructuresPropertiesKHR( + m_device, + accelerationStructureCount, + reinterpret_cast( pAccelerationStructures ), + static_cast( queryType ), + dataSize, + pData, + stride ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it." ) + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type Device::writeAccelerationStructuresPropertiesKHR( + ArrayProxy const & accelerationStructures, + VULKAN_HPP_NAMESPACE::QueryType queryType, + ArrayProxy const & data, + size_t stride, + Dispatch const & d ) const + { + Result result = static_cast( d.vkWriteAccelerationStructuresPropertiesKHR( + m_device, + accelerationStructures.size(), + reinterpret_cast( accelerationStructures.data() ), + static_cast( queryType ), + data.size() * sizeof( T ), + reinterpret_cast( data.data() ), + stride ) ); + return createResultValue( result, + VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertiesKHR" ); + } + + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type + Device::writeAccelerationStructuresPropertiesKHR( + ArrayProxy const & accelerationStructures, + VULKAN_HPP_NAMESPACE::QueryType queryType, + size_t dataSize, + size_t stride, + Dispatch const & d ) const + { + VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); + std::vector data( dataSize / sizeof( T ) ); + Result result = static_cast( d.vkWriteAccelerationStructuresPropertiesKHR( + m_device, + accelerationStructures.size(), + reinterpret_cast( accelerationStructures.data() ), + static_cast( queryType ), + data.size() * sizeof( T ), + reinterpret_cast( data.data() ), + stride ) ); + return createResultValue( + result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertiesKHR" ); + } + + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Device::writeAccelerationStructuresPropertyKHR( + ArrayProxy const & accelerationStructures, + VULKAN_HPP_NAMESPACE::QueryType queryType, + size_t stride, + Dispatch const & d ) const + { + T data; + Result result = static_cast( d.vkWriteAccelerationStructuresPropertiesKHR( + m_device, + accelerationStructures.size(), + reinterpret_cast( accelerationStructures.data() ), + static_cast( queryType ), + sizeof( T ), + reinterpret_cast( &data ), + stride ) ); + return createResultValue( + result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertyKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Instance::createAndroidSurfaceKHR( const VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateAndroidSurfaceKHR( m_instance, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pSurface ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Instance::createAndroidSurfaceKHR( const AndroidSurfaceCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateAndroidSurfaceKHR( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createAndroidSurfaceKHR" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Instance::createAndroidSurfaceKHRUnique( const AndroidSurfaceCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateAndroidSurfaceKHR( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createAndroidSurfaceKHRUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Instance::createDebugReportCallbackEXT( const VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT * pCallback, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateDebugReportCallbackEXT( m_instance, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pCallback ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE typename ResultValueType::type + Instance::createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback; + Result result = static_cast( + d.vkCreateDebugReportCallbackEXT( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &callback ) ) ); + return createResultValue( + result, callback, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugReportCallbackEXT" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_INLINE typename ResultValueType>::type + Instance::createDebugReportCallbackEXTUnique( const DebugReportCallbackCreateInfoEXT & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback; + Result result = static_cast( + d.vkCreateDebugReportCallbackEXT( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &callback ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, callback, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugReportCallbackEXTUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Instance::createDebugUtilsMessengerEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT * pMessenger, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateDebugUtilsMessengerEXT( m_instance, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pMessenger ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE typename ResultValueType::type + Instance::createDebugUtilsMessengerEXT( const DebugUtilsMessengerCreateInfoEXT & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger; + Result result = static_cast( + d.vkCreateDebugUtilsMessengerEXT( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &messenger ) ) ); + return createResultValue( + result, messenger, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugUtilsMessengerEXT" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_INLINE typename ResultValueType>::type + Instance::createDebugUtilsMessengerEXTUnique( const DebugUtilsMessengerCreateInfoEXT & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger; + Result result = static_cast( + d.vkCreateDebugUtilsMessengerEXT( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &messenger ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, messenger, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugUtilsMessengerEXTUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Instance::createDirectFBSurfaceEXT( const VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateDirectFBSurfaceEXT( m_instance, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pSurface ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Instance::createDirectFBSurfaceEXT( const DirectFBSurfaceCreateInfoEXT & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateDirectFBSurfaceEXT( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDirectFBSurfaceEXT" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Instance::createDirectFBSurfaceEXTUnique( const DirectFBSurfaceCreateInfoEXT & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateDirectFBSurfaceEXT( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDirectFBSurfaceEXTUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Instance::createDisplayPlaneSurfaceKHR( const VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateDisplayPlaneSurfaceKHR( m_instance, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pSurface ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Instance::createDisplayPlaneSurfaceKHR( const DisplaySurfaceCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateDisplayPlaneSurfaceKHR( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDisplayPlaneSurfaceKHR" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Instance::createDisplayPlaneSurfaceKHRUnique( const DisplaySurfaceCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateDisplayPlaneSurfaceKHR( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDisplayPlaneSurfaceKHRUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Instance::createHeadlessSurfaceEXT( const VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateHeadlessSurfaceEXT( m_instance, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pSurface ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Instance::createHeadlessSurfaceEXT( const HeadlessSurfaceCreateInfoEXT & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateHeadlessSurfaceEXT( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createHeadlessSurfaceEXT" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Instance::createHeadlessSurfaceEXTUnique( const HeadlessSurfaceCreateInfoEXT & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateHeadlessSurfaceEXT( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createHeadlessSurfaceEXTUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_IOS_MVK ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Instance::createIOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateIOSSurfaceMVK( m_instance, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pSurface ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Instance::createIOSSurfaceMVK( const IOSSurfaceCreateInfoMVK & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateIOSSurfaceMVK( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createIOSSurfaceMVK" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Instance::createIOSSurfaceMVKUnique( const IOSSurfaceCreateInfoMVK & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateIOSSurfaceMVK( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createIOSSurfaceMVKUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_IOS_MVK*/ + +#if defined( VK_USE_PLATFORM_FUCHSIA ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createImagePipeSurfaceFUCHSIA( + const VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pSurface ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Instance::createImagePipeSurfaceFUCHSIA( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( d.vkCreateImagePipeSurfaceFUCHSIA( + m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + return createResultValue( + result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createImagePipeSurfaceFUCHSIA" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Instance::createImagePipeSurfaceFUCHSIAUnique( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( d.vkCreateImagePipeSurfaceFUCHSIA( + m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createImagePipeSurfaceFUCHSIAUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + +#if defined( VK_USE_PLATFORM_MACOS_MVK ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Instance::createMacOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateMacOSSurfaceMVK( m_instance, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pSurface ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Instance::createMacOSSurfaceMVK( const MacOSSurfaceCreateInfoMVK & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateMacOSSurfaceMVK( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMacOSSurfaceMVK" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Instance::createMacOSSurfaceMVKUnique( const MacOSSurfaceCreateInfoMVK & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateMacOSSurfaceMVK( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMacOSSurfaceMVKUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_MACOS_MVK*/ + +#if defined( VK_USE_PLATFORM_METAL_EXT ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Instance::createMetalSurfaceEXT( const VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateMetalSurfaceEXT( m_instance, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pSurface ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Instance::createMetalSurfaceEXT( const MetalSurfaceCreateInfoEXT & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateMetalSurfaceEXT( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMetalSurfaceEXT" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Instance::createMetalSurfaceEXTUnique( const MetalSurfaceCreateInfoEXT & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateMetalSurfaceEXT( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMetalSurfaceEXTUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_METAL_EXT*/ + +#if defined( VK_USE_PLATFORM_SCREEN_QNX ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Instance::createScreenSurfaceQNX( const VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateScreenSurfaceQNX( m_instance, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pSurface ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Instance::createScreenSurfaceQNX( const ScreenSurfaceCreateInfoQNX & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateScreenSurfaceQNX( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createScreenSurfaceQNX" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Instance::createScreenSurfaceQNXUnique( const ScreenSurfaceCreateInfoQNX & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateScreenSurfaceQNX( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createScreenSurfaceQNXUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + +#if defined( VK_USE_PLATFORM_GGP ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createStreamDescriptorSurfaceGGP( + const VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCreateStreamDescriptorSurfaceGGP( + m_instance, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pSurface ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Instance::createStreamDescriptorSurfaceGGP( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( d.vkCreateStreamDescriptorSurfaceGGP( + m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + return createResultValue( + result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createStreamDescriptorSurfaceGGP" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Instance::createStreamDescriptorSurfaceGGPUnique( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( d.vkCreateStreamDescriptorSurfaceGGP( + m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createStreamDescriptorSurfaceGGPUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_GGP*/ + +#if defined( VK_USE_PLATFORM_VI_NN ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Instance::createViSurfaceNN( const VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCreateViSurfaceNN( m_instance, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pSurface ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Instance::createViSurfaceNN( const ViSurfaceCreateInfoNN & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateViSurfaceNN( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createViSurfaceNN" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Instance::createViSurfaceNNUnique( const ViSurfaceCreateInfoNN & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateViSurfaceNN( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createViSurfaceNNUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_VI_NN*/ + +#if defined( VK_USE_PLATFORM_WAYLAND_KHR ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Instance::createWaylandSurfaceKHR( const VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateWaylandSurfaceKHR( m_instance, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pSurface ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Instance::createWaylandSurfaceKHR( const WaylandSurfaceCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateWaylandSurfaceKHR( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWaylandSurfaceKHR" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Instance::createWaylandSurfaceKHRUnique( const WaylandSurfaceCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateWaylandSurfaceKHR( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWaylandSurfaceKHRUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Instance::createWin32SurfaceKHR( const VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateWin32SurfaceKHR( m_instance, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pSurface ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Instance::createWin32SurfaceKHR( const Win32SurfaceCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateWin32SurfaceKHR( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWin32SurfaceKHR" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Instance::createWin32SurfaceKHRUnique( const Win32SurfaceCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateWin32SurfaceKHR( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWin32SurfaceKHRUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_XCB_KHR ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Instance::createXcbSurfaceKHR( const VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateXcbSurfaceKHR( m_instance, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pSurface ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Instance::createXcbSurfaceKHR( const XcbSurfaceCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateXcbSurfaceKHR( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXcbSurfaceKHR" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Instance::createXcbSurfaceKHRUnique( const XcbSurfaceCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateXcbSurfaceKHR( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXcbSurfaceKHRUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_XCB_KHR*/ + +#if defined( VK_USE_PLATFORM_XLIB_KHR ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Instance::createXlibSurfaceKHR( const VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateXlibSurfaceKHR( m_instance, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pSurface ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + Instance::createXlibSurfaceKHR( const XlibSurfaceCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateXlibSurfaceKHR( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXlibSurfaceKHR" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + Instance::createXlibSurfaceKHRUnique( const XlibSurfaceCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceKHR surface; + Result result = static_cast( + d.vkCreateXlibSurfaceKHR( m_instance, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &surface ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXlibSurfaceKHRUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_XLIB_KHR*/ + + template + 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 char * pLayerPrefix, + const char * pMessage, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDebugReportMessageEXT( m_instance, + static_cast( flags ), + static_cast( objectType ), + object, + location, + messageCode, + pLayerPrefix, + pMessage ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + 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, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDebugReportMessageEXT( m_instance, + static_cast( flags ), + static_cast( objectType ), + object, + location, + messageCode, + layerPrefix.c_str(), + message.c_str() ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + Instance::destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDebugReportCallbackEXT( m_instance, + static_cast( callback ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Instance::destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDebugReportCallbackEXT( + m_instance, + static_cast( callback ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDebugReportCallbackEXT( m_instance, + static_cast( callback ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDebugReportCallbackEXT( + m_instance, + static_cast( callback ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + Instance::destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDebugUtilsMessengerEXT( m_instance, + static_cast( messenger ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + Instance::destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDebugUtilsMessengerEXT( + m_instance, + static_cast( messenger ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDebugUtilsMessengerEXT( m_instance, + static_cast( messenger ), + reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyDebugUtilsMessengerEXT( + m_instance, + static_cast( messenger ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Instance::destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyInstance( m_instance, reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Instance::destroy( Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroyInstance( m_instance, + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroySurfaceKHR( + m_instance, static_cast( surface ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroySurfaceKHR( m_instance, + static_cast( surface ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroySurfaceKHR( + m_instance, static_cast( surface ), reinterpret_cast( pAllocator ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + Optional allocator, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkDestroySurfaceKHR( m_instance, + static_cast( surface ), + reinterpret_cast( + static_cast( allocator ) ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDeviceGroups( + uint32_t * pPhysicalDeviceGroupCount, + VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkEnumeratePhysicalDeviceGroups( + m_instance, + pPhysicalDeviceGroupCount, + reinterpret_cast( pPhysicalDeviceGroupProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + Instance::enumeratePhysicalDeviceGroups( Dispatch const & d ) const + { + std::vector physicalDeviceGroupProperties; + uint32_t physicalDeviceGroupCount; + Result result; + do + { + result = + static_cast( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount ) + { + physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); + result = static_cast( d.vkEnumeratePhysicalDeviceGroups( + m_instance, + &physicalDeviceGroupCount, + reinterpret_cast( physicalDeviceGroupProperties.data() ) ) ); + VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) ) + { + physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); + } + return createResultValue( + result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroups" ); + } + + template < + typename PhysicalDeviceGroupPropertiesAllocator, + typename Dispatch, + typename B, + typename std::enable_if::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + Instance::enumeratePhysicalDeviceGroups( + PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d ) const + { + std::vector physicalDeviceGroupProperties( + physicalDeviceGroupPropertiesAllocator ); + uint32_t physicalDeviceGroupCount; + Result result; + do + { + result = + static_cast( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount ) + { + physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); + result = static_cast( d.vkEnumeratePhysicalDeviceGroups( + m_instance, + &physicalDeviceGroupCount, + reinterpret_cast( physicalDeviceGroupProperties.data() ) ) ); + VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) ) + { + physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); + } + return createResultValue( + result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroups" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDeviceGroupsKHR( + uint32_t * pPhysicalDeviceGroupCount, + VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkEnumeratePhysicalDeviceGroupsKHR( + m_instance, + pPhysicalDeviceGroupCount, + reinterpret_cast( pPhysicalDeviceGroupProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + Instance::enumeratePhysicalDeviceGroupsKHR( Dispatch const & d ) const + { + std::vector physicalDeviceGroupProperties; + uint32_t physicalDeviceGroupCount; + Result result; + do + { + result = + static_cast( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount ) + { + physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); + result = static_cast( d.vkEnumeratePhysicalDeviceGroupsKHR( + m_instance, + &physicalDeviceGroupCount, + reinterpret_cast( physicalDeviceGroupProperties.data() ) ) ); + VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) ) + { + physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); + } + return createResultValue( result, + physicalDeviceGroupProperties, + VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroupsKHR" ); + } + + template < + typename PhysicalDeviceGroupPropertiesAllocator, + typename Dispatch, + typename B, + typename std::enable_if::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + Instance::enumeratePhysicalDeviceGroupsKHR( + PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d ) const + { + std::vector physicalDeviceGroupProperties( + physicalDeviceGroupPropertiesAllocator ); + uint32_t physicalDeviceGroupCount; + Result result; + do + { + result = + static_cast( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount ) + { + physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); + result = static_cast( d.vkEnumeratePhysicalDeviceGroupsKHR( + m_instance, + &physicalDeviceGroupCount, + reinterpret_cast( physicalDeviceGroupProperties.data() ) ) ); + VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) ) + { + physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); + } + return createResultValue( result, + physicalDeviceGroupProperties, + VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroupsKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Instance::enumeratePhysicalDevices( uint32_t * pPhysicalDeviceCount, + VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkEnumeratePhysicalDevices( + m_instance, pPhysicalDeviceCount, reinterpret_cast( pPhysicalDevices ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + Instance::enumeratePhysicalDevices( Dispatch const & d ) const + { + std::vector physicalDevices; + uint32_t physicalDeviceCount; + Result result; + do + { + result = static_cast( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && physicalDeviceCount ) + { + physicalDevices.resize( physicalDeviceCount ); + result = static_cast( d.vkEnumeratePhysicalDevices( + m_instance, &physicalDeviceCount, reinterpret_cast( physicalDevices.data() ) ) ); + VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( physicalDeviceCount < physicalDevices.size() ) ) + { + physicalDevices.resize( physicalDeviceCount ); + } + return createResultValue( + result, physicalDevices, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDevices" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + Instance::enumeratePhysicalDevices( PhysicalDeviceAllocator & physicalDeviceAllocator, Dispatch const & d ) const + { + std::vector physicalDevices( physicalDeviceAllocator ); + uint32_t physicalDeviceCount; + Result result; + do + { + result = static_cast( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && physicalDeviceCount ) + { + physicalDevices.resize( physicalDeviceCount ); + result = static_cast( d.vkEnumeratePhysicalDevices( + m_instance, &physicalDeviceCount, reinterpret_cast( physicalDevices.data() ) ) ); + VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( physicalDeviceCount < physicalDevices.size() ) ) + { + physicalDevices.resize( physicalDeviceCount ); + } + return createResultValue( + result, physicalDevices, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDevices" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const char * pName, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetInstanceProcAddr( m_instance, pName ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const std::string & name, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetInstanceProcAddr( m_instance, name.c_str() ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Instance::submitDebugUtilsMessageEXT( + VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, + VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, + const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT * pCallbackData, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkSubmitDebugUtilsMessageEXT( m_instance, + static_cast( messageSeverity ), + static_cast( messageTypes ), + reinterpret_cast( pCallbackData ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void + Instance::submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, + VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, + const DebugUtilsMessengerCallbackDataEXT & callbackData, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkSubmitDebugUtilsMessageEXT( m_instance, + static_cast( messageSeverity ), + static_cast( messageTypes ), + reinterpret_cast( &callbackData ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) +# ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::acquireWinrtDisplayNV( + VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkAcquireWinrtDisplayNV( m_physicalDevice, static_cast( display ) ) ); + } +# else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + PhysicalDevice::acquireWinrtDisplayNV( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const + { + Result result = + static_cast( d.vkAcquireWinrtDisplayNV( m_physicalDevice, static_cast( display ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireWinrtDisplayNV" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::acquireXlibDisplayEXT( + Display * dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkAcquireXlibDisplayEXT( m_physicalDevice, dpy, static_cast( display ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + PhysicalDevice::acquireXlibDisplayEXT( Display & dpy, + VULKAN_HPP_NAMESPACE::DisplayKHR display, + Dispatch const & d ) const + { + Result result = + static_cast( d.vkAcquireXlibDisplayEXT( m_physicalDevice, &dpy, static_cast( display ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireXlibDisplayEXT" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::createDevice( const VULKAN_HPP_NAMESPACE::DeviceCreateInfo * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::Device * pDevice, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkCreateDevice( m_physicalDevice, + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pDevice ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + PhysicalDevice::createDevice( const DeviceCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::Device device; + Result result = static_cast( + d.vkCreateDevice( m_physicalDevice, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &device ) ) ); + return createResultValue( result, device, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDevice" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::createDeviceUnique( const DeviceCreateInfo & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::Device device; + Result result = static_cast( + d.vkCreateDevice( m_physicalDevice, + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &device ) ) ); + ObjectDestroy deleter( allocator, d ); + return createResultValue( + result, device, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDeviceUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::createDisplayModeKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, + const VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR * pCreateInfo, + const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, + VULKAN_HPP_NAMESPACE::DisplayModeKHR * pMode, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkCreateDisplayModeKHR( m_physicalDevice, + static_cast( display ), + reinterpret_cast( pCreateInfo ), + reinterpret_cast( pAllocator ), + reinterpret_cast( pMode ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + PhysicalDevice::createDisplayModeKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, + const DisplayModeCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DisplayModeKHR mode; + Result result = static_cast( + d.vkCreateDisplayModeKHR( m_physicalDevice, + static_cast( display ), + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &mode ) ) ); + return createResultValue( result, mode, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDisplayModeKHR" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::createDisplayModeKHRUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, + const DisplayModeCreateInfoKHR & createInfo, + Optional allocator, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DisplayModeKHR mode; + Result result = static_cast( + d.vkCreateDisplayModeKHR( m_physicalDevice, + static_cast( display ), + reinterpret_cast( &createInfo ), + reinterpret_cast( + static_cast( allocator ) ), + reinterpret_cast( &mode ) ) ); + ObjectDestroy deleter( *this, allocator, d ); + return createResultValue( + result, mode, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDisplayModeKHRUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::enumerateDeviceExtensionProperties( const char * pLayerName, + uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::ExtensionProperties * pProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkEnumerateDeviceExtensionProperties( + m_physicalDevice, pLayerName, pPropertyCount, reinterpret_cast( pProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::enumerateDeviceExtensionProperties( Optional layerName, + Dispatch const & d ) const + { + std::vector properties; + uint32_t propertyCount; + Result result; + do + { + result = static_cast( d.vkEnumerateDeviceExtensionProperties( + m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && propertyCount ) + { + properties.resize( propertyCount ); + result = static_cast( + d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, + layerName ? layerName->c_str() : nullptr, + &propertyCount, + reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) + { + properties.resize( propertyCount ); + } + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceExtensionProperties" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::enumerateDeviceExtensionProperties( Optional layerName, + ExtensionPropertiesAllocator & extensionPropertiesAllocator, + Dispatch const & d ) const + { + std::vector properties( extensionPropertiesAllocator ); + uint32_t propertyCount; + Result result; + do + { + result = static_cast( d.vkEnumerateDeviceExtensionProperties( + m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && propertyCount ) + { + properties.resize( propertyCount ); + result = static_cast( + d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, + layerName ? layerName->c_str() : nullptr, + &propertyCount, + reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) + { + properties.resize( propertyCount ); + } + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceExtensionProperties" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::enumerateDeviceLayerProperties( uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::LayerProperties * pProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkEnumerateDeviceLayerProperties( + m_physicalDevice, pPropertyCount, reinterpret_cast( pProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::enumerateDeviceLayerProperties( Dispatch const & d ) const + { + std::vector properties; + uint32_t propertyCount; + Result result; + do + { + result = static_cast( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && propertyCount ) + { + properties.resize( propertyCount ); + result = static_cast( d.vkEnumerateDeviceLayerProperties( + m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) + { + properties.resize( propertyCount ); + } + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceLayerProperties" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::enumerateDeviceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, + Dispatch const & d ) const + { + std::vector properties( layerPropertiesAllocator ); + uint32_t propertyCount; + Result result; + do + { + result = static_cast( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && propertyCount ) + { + properties.resize( propertyCount ); + result = static_cast( d.vkEnumerateDeviceLayerProperties( + m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) + { + properties.resize( propertyCount ); + } + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceLayerProperties" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( + uint32_t queueFamilyIndex, + uint32_t * pCounterCount, + VULKAN_HPP_NAMESPACE::PerformanceCounterKHR * pCounters, + VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR * pCounterDescriptions, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( + m_physicalDevice, + queueFamilyIndex, + pCounterCount, + reinterpret_cast( pCounters ), + reinterpret_cast( pCounterDescriptions ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it." ) + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( + uint32_t queueFamilyIndex, + ArrayProxy const & counters, + Dispatch const & d ) const + { + std::vector counterDescriptions; + uint32_t counterCount; + Result result; + do + { + result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( + m_physicalDevice, + queueFamilyIndex, + counters.size(), + reinterpret_cast( counters.data() ), + nullptr ) ); + if ( ( result == Result::eSuccess ) && counterCount ) + { + counterDescriptions.resize( counterCount ); + result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( + m_physicalDevice, + queueFamilyIndex, + counters.size(), + reinterpret_cast( counters.data() ), + reinterpret_cast( counterDescriptions.data() ) ) ); + } + } while ( result == Result::eIncomplete ); + if ( result == Result::eSuccess ) + { + VULKAN_HPP_ASSERT( counterCount <= counterDescriptions.size() ); + counterDescriptions.resize( counterCount ); + } + return createResultValue( result, + counterDescriptions, + VULKAN_HPP_NAMESPACE_STRING + "::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" ); + } + + template < + typename Allocator, + typename Dispatch, + typename B, + typename std::enable_if::value, int>::type> + VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it." ) + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( + uint32_t queueFamilyIndex, + ArrayProxy const & counters, + Allocator const & vectorAllocator, + Dispatch const & d ) const + { + std::vector counterDescriptions( vectorAllocator ); + uint32_t counterCount; + Result result; + do + { + result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( + m_physicalDevice, + queueFamilyIndex, + counters.size(), + reinterpret_cast( counters.data() ), + nullptr ) ); + if ( ( result == Result::eSuccess ) && counterCount ) + { + counterDescriptions.resize( counterCount ); + result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( + m_physicalDevice, + queueFamilyIndex, + counters.size(), + reinterpret_cast( counters.data() ), + reinterpret_cast( counterDescriptions.data() ) ) ); + } + } while ( result == Result::eIncomplete ); + if ( result == Result::eSuccess ) + { + VULKAN_HPP_ASSERT( counterCount <= counterDescriptions.size() ); + counterDescriptions.resize( counterCount ); + } + return createResultValue( result, + counterDescriptions, + VULKAN_HPP_NAMESPACE_STRING + "::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" ); + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType< + std::pair, + std::vector>>::type + PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, + Dispatch const & d ) const + { + std::pair, + std::vector> + data; + std::vector & counters = data.first; + std::vector & counterDescriptions = + data.second; + uint32_t counterCount; + Result result; + do + { + result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( + m_physicalDevice, queueFamilyIndex, &counterCount, nullptr, nullptr ) ); + if ( ( result == Result::eSuccess ) && counterCount ) + { + counters.resize( counterCount ); + counterDescriptions.resize( counterCount ); + result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( + m_physicalDevice, + queueFamilyIndex, + &counterCount, + reinterpret_cast( counters.data() ), + reinterpret_cast( counterDescriptions.data() ) ) ); + VULKAN_HPP_ASSERT( counterCount <= counters.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( counterCount < counters.size() ) ) + { + counters.resize( counterCount ); + counterDescriptions.resize( counterCount ); + } + return createResultValue( + result, data, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" ); + } + + template ::value && + std::is_same::value, + int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType< + std::pair, + std::vector>>::type + PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( + uint32_t queueFamilyIndex, + PerformanceCounterKHRAllocator & performanceCounterKHRAllocator, + PerformanceCounterDescriptionKHRAllocator & performanceCounterDescriptionKHRAllocator, + Dispatch const & d ) const + { + std::pair, + std::vector> + data( std::piecewise_construct, + std::forward_as_tuple( performanceCounterKHRAllocator ), + std::forward_as_tuple( performanceCounterDescriptionKHRAllocator ) ); + std::vector & counters = data.first; + std::vector & counterDescriptions = + data.second; + uint32_t counterCount; + Result result; + do + { + result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( + m_physicalDevice, queueFamilyIndex, &counterCount, nullptr, nullptr ) ); + if ( ( result == Result::eSuccess ) && counterCount ) + { + counters.resize( counterCount ); + counterDescriptions.resize( counterCount ); + result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( + m_physicalDevice, + queueFamilyIndex, + &counterCount, + reinterpret_cast( counters.data() ), + reinterpret_cast( counterDescriptions.data() ) ) ); + VULKAN_HPP_ASSERT( counterCount <= counters.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( counterCount < counters.size() ) ) + { + counters.resize( counterCount ); + counterDescriptions.resize( counterCount ); + } + return createResultValue( + result, data, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, + uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR * pProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetDisplayModeProperties2KHR( m_physicalDevice, + static_cast( display ), + pPropertyCount, + reinterpret_cast( pProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const + { + std::vector properties; + uint32_t propertyCount; + Result result; + do + { + result = static_cast( d.vkGetDisplayModeProperties2KHR( + m_physicalDevice, static_cast( display ), &propertyCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && propertyCount ) + { + properties.resize( propertyCount ); + result = static_cast( + d.vkGetDisplayModeProperties2KHR( m_physicalDevice, + static_cast( display ), + &propertyCount, + reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) + { + properties.resize( propertyCount ); + } + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayModeProperties2KHR" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getDisplayModeProperties2KHR( + VULKAN_HPP_NAMESPACE::DisplayKHR display, + DisplayModeProperties2KHRAllocator & displayModeProperties2KHRAllocator, + Dispatch const & d ) const + { + std::vector properties( + displayModeProperties2KHRAllocator ); + uint32_t propertyCount; + Result result; + do + { + result = static_cast( d.vkGetDisplayModeProperties2KHR( + m_physicalDevice, static_cast( display ), &propertyCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && propertyCount ) + { + properties.resize( propertyCount ); + result = static_cast( + d.vkGetDisplayModeProperties2KHR( m_physicalDevice, + static_cast( display ), + &propertyCount, + reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) + { + properties.resize( propertyCount ); + } + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayModeProperties2KHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, + uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR * pProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetDisplayModePropertiesKHR( m_physicalDevice, + static_cast( display ), + pPropertyCount, + reinterpret_cast( pProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const + { + std::vector properties; + uint32_t propertyCount; + Result result; + do + { + result = static_cast( d.vkGetDisplayModePropertiesKHR( + m_physicalDevice, static_cast( display ), &propertyCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && propertyCount ) + { + properties.resize( propertyCount ); + result = static_cast( + d.vkGetDisplayModePropertiesKHR( m_physicalDevice, + static_cast( display ), + &propertyCount, + reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) + { + properties.resize( propertyCount ); + } + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayModePropertiesKHR" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, + DisplayModePropertiesKHRAllocator & displayModePropertiesKHRAllocator, + Dispatch const & d ) const + { + std::vector properties( + displayModePropertiesKHRAllocator ); + uint32_t propertyCount; + Result result; + do + { + result = static_cast( d.vkGetDisplayModePropertiesKHR( + m_physicalDevice, static_cast( display ), &propertyCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && propertyCount ) + { + properties.resize( propertyCount ); + result = static_cast( + d.vkGetDisplayModePropertiesKHR( m_physicalDevice, + static_cast( display ), + &propertyCount, + reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) + { + properties.resize( propertyCount ); + } + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayModePropertiesKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneCapabilities2KHR( + const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR * pDisplayPlaneInfo, + VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR * pCapabilities, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice, + reinterpret_cast( pDisplayPlaneInfo ), + reinterpret_cast( pCapabilities ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + PhysicalDevice::getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR capabilities; + Result result = static_cast( + d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice, + reinterpret_cast( &displayPlaneInfo ), + reinterpret_cast( &capabilities ) ) ); + return createResultValue( + result, capabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilities2KHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, + uint32_t planeIndex, + VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR * pCapabilities, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice, + static_cast( mode ), + planeIndex, + reinterpret_cast( pCapabilities ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + PhysicalDevice::getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, + uint32_t planeIndex, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities; + Result result = static_cast( + d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice, + static_cast( mode ), + planeIndex, + reinterpret_cast( &capabilities ) ) ); + return createResultValue( + result, capabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilitiesKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, + uint32_t * pDisplayCount, + VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplays, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetDisplayPlaneSupportedDisplaysKHR( + m_physicalDevice, planeIndex, pDisplayCount, reinterpret_cast( pDisplays ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const & d ) const + { + std::vector displays; + uint32_t displayCount; + Result result; + do + { + result = static_cast( + d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && displayCount ) + { + displays.resize( displayCount ); + result = static_cast( d.vkGetDisplayPlaneSupportedDisplaysKHR( + m_physicalDevice, planeIndex, &displayCount, reinterpret_cast( displays.data() ) ) ); + VULKAN_HPP_ASSERT( displayCount <= displays.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( displayCount < displays.size() ) ) + { + displays.resize( displayCount ); + } + return createResultValue( + result, displays, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, + DisplayKHRAllocator & displayKHRAllocator, + Dispatch const & d ) const + { + std::vector displays( displayKHRAllocator ); + uint32_t displayCount; + Result result; + do + { + result = static_cast( + d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && displayCount ) + { + displays.resize( displayCount ); + result = static_cast( d.vkGetDisplayPlaneSupportedDisplaysKHR( + m_physicalDevice, planeIndex, &displayCount, reinterpret_cast( displays.data() ) ) ); + VULKAN_HPP_ASSERT( displayCount <= displays.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( displayCount < displays.size() ) ) + { + displays.resize( displayCount ); + } + return createResultValue( + result, displays, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::getCalibrateableTimeDomainsEXT( uint32_t * pTimeDomainCount, + VULKAN_HPP_NAMESPACE::TimeDomainEXT * pTimeDomains, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( + m_physicalDevice, pTimeDomainCount, reinterpret_cast( pTimeDomains ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getCalibrateableTimeDomainsEXT( Dispatch const & d ) const + { + std::vector timeDomains; + uint32_t timeDomainCount; + Result result; + do + { + result = static_cast( + d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && timeDomainCount ) + { + timeDomains.resize( timeDomainCount ); + result = static_cast( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( + m_physicalDevice, &timeDomainCount, reinterpret_cast( timeDomains.data() ) ) ); + VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( timeDomainCount < timeDomains.size() ) ) + { + timeDomains.resize( timeDomainCount ); + } + return createResultValue( + result, timeDomains, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsEXT" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getCalibrateableTimeDomainsEXT( TimeDomainEXTAllocator & timeDomainEXTAllocator, + Dispatch const & d ) const + { + std::vector timeDomains( timeDomainEXTAllocator ); + uint32_t timeDomainCount; + Result result; + do + { + result = static_cast( + d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && timeDomainCount ) + { + timeDomains.resize( timeDomainCount ); + result = static_cast( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( + m_physicalDevice, &timeDomainCount, reinterpret_cast( timeDomains.data() ) ) ); + VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( timeDomainCount < timeDomains.size() ) ) + { + timeDomains.resize( timeDomainCount ); + } + return createResultValue( + result, timeDomains, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsEXT" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::getCooperativeMatrixPropertiesNV( uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV * pProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( + m_physicalDevice, pPropertyCount, reinterpret_cast( pProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getCooperativeMatrixPropertiesNV( Dispatch const & d ) const + { + std::vector properties; + uint32_t propertyCount; + Result result; + do + { + result = static_cast( + d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && propertyCount ) + { + properties.resize( propertyCount ); + result = static_cast( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( + m_physicalDevice, + &propertyCount, + reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) + { + properties.resize( propertyCount ); + } + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesNV" ); + } + + template < + typename CooperativeMatrixPropertiesNVAllocator, + typename Dispatch, + typename B, + typename std::enable_if::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getCooperativeMatrixPropertiesNV( + CooperativeMatrixPropertiesNVAllocator & cooperativeMatrixPropertiesNVAllocator, Dispatch const & d ) const + { + std::vector properties( + cooperativeMatrixPropertiesNVAllocator ); + uint32_t propertyCount; + Result result; + do + { + result = static_cast( + d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && propertyCount ) + { + properties.resize( propertyCount ); + result = static_cast( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( + m_physicalDevice, + &propertyCount, + reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) + { + properties.resize( propertyCount ); + } + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesNV" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) + template + VULKAN_HPP_INLINE Bool32 PhysicalDevice::getDirectFBPresentationSupportEXT( + uint32_t queueFamilyIndex, IDirectFB * dfb, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetPhysicalDeviceDirectFBPresentationSupportEXT( m_physicalDevice, queueFamilyIndex, dfb ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE Bool32 PhysicalDevice::getDirectFBPresentationSupportEXT( + uint32_t queueFamilyIndex, IDirectFB & dfb, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetPhysicalDeviceDirectFBPresentationSupportEXT( m_physicalDevice, queueFamilyIndex, &dfb ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::getDisplayPlaneProperties2KHR( uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR * pProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( + m_physicalDevice, pPropertyCount, reinterpret_cast( pProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getDisplayPlaneProperties2KHR( Dispatch const & d ) const + { + std::vector properties; + uint32_t propertyCount; + Result result; + do + { + result = static_cast( + d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && propertyCount ) + { + properties.resize( propertyCount ); + result = static_cast( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( + m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) + { + properties.resize( propertyCount ); + } + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneProperties2KHR" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getDisplayPlaneProperties2KHR( + DisplayPlaneProperties2KHRAllocator & displayPlaneProperties2KHRAllocator, Dispatch const & d ) const + { + std::vector properties( + displayPlaneProperties2KHRAllocator ); + uint32_t propertyCount; + Result result; + do + { + result = static_cast( + d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && propertyCount ) + { + properties.resize( propertyCount ); + result = static_cast( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( + m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) + { + properties.resize( propertyCount ); + } + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneProperties2KHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::getDisplayPlanePropertiesKHR( uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR * pProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( + m_physicalDevice, pPropertyCount, reinterpret_cast( pProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getDisplayPlanePropertiesKHR( Dispatch const & d ) const + { + std::vector properties; + uint32_t propertyCount; + Result result; + do + { + result = static_cast( + d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && propertyCount ) + { + properties.resize( propertyCount ); + result = static_cast( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( + m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) + { + properties.resize( propertyCount ); + } + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlanePropertiesKHR" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getDisplayPlanePropertiesKHR( + DisplayPlanePropertiesKHRAllocator & displayPlanePropertiesKHRAllocator, Dispatch const & d ) const + { + std::vector properties( + displayPlanePropertiesKHRAllocator ); + uint32_t propertyCount; + Result result; + do + { + result = static_cast( + d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && propertyCount ) + { + properties.resize( propertyCount ); + result = static_cast( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( + m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) + { + properties.resize( propertyCount ); + } + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlanePropertiesKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::getDisplayProperties2KHR( uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::DisplayProperties2KHR * pProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetPhysicalDeviceDisplayProperties2KHR( + m_physicalDevice, pPropertyCount, reinterpret_cast( pProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getDisplayProperties2KHR( Dispatch const & d ) const + { + std::vector properties; + uint32_t propertyCount; + Result result; + do + { + result = + static_cast( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && propertyCount ) + { + properties.resize( propertyCount ); + result = static_cast( d.vkGetPhysicalDeviceDisplayProperties2KHR( + m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) + { + properties.resize( propertyCount ); + } + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayProperties2KHR" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getDisplayProperties2KHR( DisplayProperties2KHRAllocator & displayProperties2KHRAllocator, + Dispatch const & d ) const + { + std::vector properties( displayProperties2KHRAllocator ); + uint32_t propertyCount; + Result result; + do + { + result = + static_cast( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && propertyCount ) + { + properties.resize( propertyCount ); + result = static_cast( d.vkGetPhysicalDeviceDisplayProperties2KHR( + m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) + { + properties.resize( propertyCount ); + } + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayProperties2KHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::getDisplayPropertiesKHR( uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR * pProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetPhysicalDeviceDisplayPropertiesKHR( + m_physicalDevice, pPropertyCount, reinterpret_cast( pProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getDisplayPropertiesKHR( Dispatch const & d ) const + { + std::vector properties; + uint32_t propertyCount; + Result result; + do + { + result = + static_cast( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && propertyCount ) + { + properties.resize( propertyCount ); + result = static_cast( d.vkGetPhysicalDeviceDisplayPropertiesKHR( + m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) + { + properties.resize( propertyCount ); + } + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPropertiesKHR" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getDisplayPropertiesKHR( DisplayPropertiesKHRAllocator & displayPropertiesKHRAllocator, + Dispatch const & d ) const + { + std::vector properties( displayPropertiesKHRAllocator ); + uint32_t propertyCount; + Result result; + do + { + result = + static_cast( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && propertyCount ) + { + properties.resize( propertyCount ); + result = static_cast( d.vkGetPhysicalDeviceDisplayPropertiesKHR( + m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) + { + properties.resize( propertyCount ); + } + return createResultValue( + result, properties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPropertiesKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferProperties( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo * pExternalBufferInfo, + VULKAN_HPP_NAMESPACE::ExternalBufferProperties * pExternalBufferProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceExternalBufferProperties( + m_physicalDevice, + reinterpret_cast( pExternalBufferInfo ), + reinterpret_cast( pExternalBufferProperties ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties + PhysicalDevice::getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties; + d.vkGetPhysicalDeviceExternalBufferProperties( + m_physicalDevice, + reinterpret_cast( &externalBufferInfo ), + reinterpret_cast( &externalBufferProperties ) ); + return externalBufferProperties; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferPropertiesKHR( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo * pExternalBufferInfo, + VULKAN_HPP_NAMESPACE::ExternalBufferProperties * pExternalBufferProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( + m_physicalDevice, + reinterpret_cast( pExternalBufferInfo ), + reinterpret_cast( pExternalBufferProperties ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties + PhysicalDevice::getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties; + d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( + m_physicalDevice, + reinterpret_cast( &externalBufferInfo ), + reinterpret_cast( &externalBufferProperties ) ); + return externalBufferProperties; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void PhysicalDevice::getExternalFenceProperties( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo * pExternalFenceInfo, + VULKAN_HPP_NAMESPACE::ExternalFenceProperties * pExternalFenceProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceExternalFenceProperties( + m_physicalDevice, + reinterpret_cast( pExternalFenceInfo ), + reinterpret_cast( pExternalFenceProperties ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties + PhysicalDevice::getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties; + d.vkGetPhysicalDeviceExternalFenceProperties( + m_physicalDevice, + reinterpret_cast( &externalFenceInfo ), + reinterpret_cast( &externalFenceProperties ) ); + return externalFenceProperties; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void PhysicalDevice::getExternalFencePropertiesKHR( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo * pExternalFenceInfo, + VULKAN_HPP_NAMESPACE::ExternalFenceProperties * pExternalFenceProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceExternalFencePropertiesKHR( + m_physicalDevice, + reinterpret_cast( pExternalFenceInfo ), + reinterpret_cast( pExternalFenceProperties ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties + PhysicalDevice::getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties; + d.vkGetPhysicalDeviceExternalFencePropertiesKHR( + m_physicalDevice, + reinterpret_cast( &externalFenceInfo ), + reinterpret_cast( &externalFenceProperties ) ); + return externalFenceProperties; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result 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, + VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV * pExternalImageFormatProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetPhysicalDeviceExternalImageFormatPropertiesNV( + m_physicalDevice, + static_cast( format ), + static_cast( type ), + static_cast( tiling ), + static_cast( usage ), + static_cast( flags ), + static_cast( externalHandleType ), + reinterpret_cast( pExternalImageFormatProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + 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, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV externalImageFormatProperties; + Result result = static_cast( d.vkGetPhysicalDeviceExternalImageFormatPropertiesNV( + m_physicalDevice, + static_cast( format ), + static_cast( type ), + static_cast( tiling ), + static_cast( usage ), + static_cast( flags ), + static_cast( externalHandleType ), + reinterpret_cast( &externalImageFormatProperties ) ) ); + return createResultValue( result, + externalImageFormatProperties, + VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getExternalImageFormatPropertiesNV" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void PhysicalDevice::getExternalSemaphoreProperties( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo, + VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties * pExternalSemaphoreProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceExternalSemaphoreProperties( + m_physicalDevice, + reinterpret_cast( pExternalSemaphoreInfo ), + reinterpret_cast( pExternalSemaphoreProperties ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties + PhysicalDevice::getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties; + d.vkGetPhysicalDeviceExternalSemaphoreProperties( + m_physicalDevice, + reinterpret_cast( &externalSemaphoreInfo ), + reinterpret_cast( &externalSemaphoreProperties ) ); + return externalSemaphoreProperties; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void PhysicalDevice::getExternalSemaphorePropertiesKHR( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo, + VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties * pExternalSemaphoreProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( + m_physicalDevice, + reinterpret_cast( pExternalSemaphoreInfo ), + reinterpret_cast( pExternalSemaphoreProperties ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties + PhysicalDevice::getExternalSemaphorePropertiesKHR( + const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties; + d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( + m_physicalDevice, + reinterpret_cast( &externalSemaphoreInfo ), + reinterpret_cast( &externalSemaphoreProperties ) ); + return externalSemaphoreProperties; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void PhysicalDevice::getFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pFeatures, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast( pFeatures ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures + PhysicalDevice::getFeatures( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features; + d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast( &features ) ); + return features; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 * pFeatures, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast( pFeatures ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 + PhysicalDevice::getFeatures2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features; + d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast( &features ) ); + return features; + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain + PhysicalDevice::getFeatures2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + StructureChain structureChain; + VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & features = + structureChain.template get(); + d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast( &features ) ); + return structureChain; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 * pFeatures, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast( pFeatures ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 + PhysicalDevice::getFeatures2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features; + d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast( &features ) ); + return features; + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain + PhysicalDevice::getFeatures2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + StructureChain structureChain; + VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & features = + structureChain.template get(); + d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast( &features ) ); + return structureChain; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, + VULKAN_HPP_NAMESPACE::FormatProperties * pFormatProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceFormatProperties( + m_physicalDevice, static_cast( format ), reinterpret_cast( pFormatProperties ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties + PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::FormatProperties formatProperties; + d.vkGetPhysicalDeviceFormatProperties( + m_physicalDevice, static_cast( format ), reinterpret_cast( &formatProperties ) ); + return formatProperties; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, + VULKAN_HPP_NAMESPACE::FormatProperties2 * pFormatProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceFormatProperties2( + m_physicalDevice, static_cast( format ), reinterpret_cast( pFormatProperties ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2 + PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties; + d.vkGetPhysicalDeviceFormatProperties2( + m_physicalDevice, static_cast( format ), reinterpret_cast( &formatProperties ) ); + return formatProperties; + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain + PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + StructureChain structureChain; + VULKAN_HPP_NAMESPACE::FormatProperties2 & formatProperties = + structureChain.template get(); + d.vkGetPhysicalDeviceFormatProperties2( + m_physicalDevice, static_cast( format ), reinterpret_cast( &formatProperties ) ); + return structureChain; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, + VULKAN_HPP_NAMESPACE::FormatProperties2 * pFormatProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceFormatProperties2KHR( + m_physicalDevice, static_cast( format ), reinterpret_cast( pFormatProperties ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2 + PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties; + d.vkGetPhysicalDeviceFormatProperties2KHR( + m_physicalDevice, static_cast( format ), reinterpret_cast( &formatProperties ) ); + return formatProperties; + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain + PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + StructureChain structureChain; + VULKAN_HPP_NAMESPACE::FormatProperties2 & formatProperties = + structureChain.template get(); + d.vkGetPhysicalDeviceFormatProperties2KHR( + m_physicalDevice, static_cast( format ), reinterpret_cast( &formatProperties ) ); + return structureChain; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getFragmentShadingRatesKHR( + uint32_t * pFragmentShadingRateCount, + VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( + m_physicalDevice, + pFragmentShadingRateCount, + reinterpret_cast( pFragmentShadingRates ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType< + std::vector>::type + PhysicalDevice::getFragmentShadingRatesKHR( Dispatch const & d ) const + { + std::vector + fragmentShadingRates; + uint32_t fragmentShadingRateCount; + Result result; + do + { + result = static_cast( + d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && fragmentShadingRateCount ) + { + fragmentShadingRates.resize( fragmentShadingRateCount ); + result = static_cast( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( + m_physicalDevice, + &fragmentShadingRateCount, + reinterpret_cast( fragmentShadingRates.data() ) ) ); + VULKAN_HPP_ASSERT( fragmentShadingRateCount <= fragmentShadingRates.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( fragmentShadingRateCount < fragmentShadingRates.size() ) ) + { + fragmentShadingRates.resize( fragmentShadingRateCount ); + } + return createResultValue( + result, fragmentShadingRates, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getFragmentShadingRatesKHR" ); + } + + template ::value, + int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType< + std::vector>::type + PhysicalDevice::getFragmentShadingRatesKHR( + PhysicalDeviceFragmentShadingRateKHRAllocator & physicalDeviceFragmentShadingRateKHRAllocator, + Dispatch const & d ) const + { + std::vector + fragmentShadingRates( physicalDeviceFragmentShadingRateKHRAllocator ); + uint32_t fragmentShadingRateCount; + Result result; + do + { + result = static_cast( + d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && fragmentShadingRateCount ) + { + fragmentShadingRates.resize( fragmentShadingRateCount ); + result = static_cast( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( + m_physicalDevice, + &fragmentShadingRateCount, + reinterpret_cast( fragmentShadingRates.data() ) ) ); + VULKAN_HPP_ASSERT( fragmentShadingRateCount <= fragmentShadingRates.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( fragmentShadingRateCount < fragmentShadingRates.size() ) ) + { + fragmentShadingRates.resize( fragmentShadingRateCount ); + } + return createResultValue( + result, fragmentShadingRates, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getFragmentShadingRatesKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + 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, + VULKAN_HPP_NAMESPACE::ImageFormatProperties * pImageFormatProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetPhysicalDeviceImageFormatProperties( + m_physicalDevice, + static_cast( format ), + static_cast( type ), + static_cast( tiling ), + static_cast( usage ), + static_cast( flags ), + reinterpret_cast( pImageFormatProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + 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, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties; + Result result = static_cast( d.vkGetPhysicalDeviceImageFormatProperties( + m_physicalDevice, + static_cast( format ), + static_cast( type ), + static_cast( tiling ), + static_cast( usage ), + static_cast( flags ), + reinterpret_cast( &imageFormatProperties ) ) ); + return createResultValue( + result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getImageFormatProperties2( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 * pImageFormatInfo, + VULKAN_HPP_NAMESPACE::ImageFormatProperties2 * pImageFormatProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetPhysicalDeviceImageFormatProperties2( + m_physicalDevice, + reinterpret_cast( pImageFormatInfo ), + reinterpret_cast( pImageFormatProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties; + Result result = static_cast( d.vkGetPhysicalDeviceImageFormatProperties2( + m_physicalDevice, + reinterpret_cast( &imageFormatInfo ), + reinterpret_cast( &imageFormatProperties ) ) ); + return createResultValue( + result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" ); + } + + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, + Dispatch const & d ) const + { + StructureChain structureChain; + VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties = + structureChain.template get(); + Result result = static_cast( d.vkGetPhysicalDeviceImageFormatProperties2( + m_physicalDevice, + reinterpret_cast( &imageFormatInfo ), + reinterpret_cast( &imageFormatProperties ) ) ); + return createResultValue( + result, structureChain, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getImageFormatProperties2KHR( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 * pImageFormatInfo, + VULKAN_HPP_NAMESPACE::ImageFormatProperties2 * pImageFormatProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetPhysicalDeviceImageFormatProperties2KHR( + m_physicalDevice, + reinterpret_cast( pImageFormatInfo ), + reinterpret_cast( pImageFormatProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties; + Result result = static_cast( d.vkGetPhysicalDeviceImageFormatProperties2KHR( + m_physicalDevice, + reinterpret_cast( &imageFormatInfo ), + reinterpret_cast( &imageFormatProperties ) ) ); + return createResultValue( + result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" ); + } + + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, + Dispatch const & d ) const + { + StructureChain structureChain; + VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties = + structureChain.template get(); + Result result = static_cast( d.vkGetPhysicalDeviceImageFormatProperties2KHR( + m_physicalDevice, + reinterpret_cast( &imageFormatInfo ), + reinterpret_cast( &imageFormatProperties ) ) ); + return createResultValue( + result, structureChain, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + PhysicalDevice::getMemoryProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties * pMemoryProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, + reinterpret_cast( pMemoryProperties ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties + PhysicalDevice::getMemoryProperties( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties; + d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, + reinterpret_cast( &memoryProperties ) ); + return memoryProperties; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + PhysicalDevice::getMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 * pMemoryProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceMemoryProperties2( + m_physicalDevice, reinterpret_cast( pMemoryProperties ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 + PhysicalDevice::getMemoryProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties; + d.vkGetPhysicalDeviceMemoryProperties2( + m_physicalDevice, reinterpret_cast( &memoryProperties ) ); + return memoryProperties; + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain + PhysicalDevice::getMemoryProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + StructureChain structureChain; + VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties = + structureChain.template get(); + d.vkGetPhysicalDeviceMemoryProperties2( + m_physicalDevice, reinterpret_cast( &memoryProperties ) ); + return structureChain; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + PhysicalDevice::getMemoryProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 * pMemoryProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceMemoryProperties2KHR( + m_physicalDevice, reinterpret_cast( pMemoryProperties ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 + PhysicalDevice::getMemoryProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties; + d.vkGetPhysicalDeviceMemoryProperties2KHR( + m_physicalDevice, reinterpret_cast( &memoryProperties ) ); + return memoryProperties; + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain + PhysicalDevice::getMemoryProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + StructureChain structureChain; + VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties = + structureChain.template get(); + d.vkGetPhysicalDeviceMemoryProperties2KHR( + m_physicalDevice, reinterpret_cast( &memoryProperties ) ); + return structureChain; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void PhysicalDevice::getMultisamplePropertiesEXT( + VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, + VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT * pMultisampleProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceMultisamplePropertiesEXT( + m_physicalDevice, + static_cast( samples ), + reinterpret_cast( pMultisampleProperties ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT + PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT multisampleProperties; + d.vkGetPhysicalDeviceMultisamplePropertiesEXT( + m_physicalDevice, + static_cast( samples ), + reinterpret_cast( &multisampleProperties ) ); + return multisampleProperties; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + uint32_t * pRectCount, + VULKAN_HPP_NAMESPACE::Rect2D * pRects, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetPhysicalDevicePresentRectanglesKHR( + m_physicalDevice, static_cast( surface ), pRectCount, reinterpret_cast( pRects ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const + { + std::vector rects; + uint32_t rectCount; + Result result; + do + { + result = static_cast( d.vkGetPhysicalDevicePresentRectanglesKHR( + m_physicalDevice, static_cast( surface ), &rectCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && rectCount ) + { + rects.resize( rectCount ); + result = static_cast( + d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, + static_cast( surface ), + &rectCount, + reinterpret_cast( rects.data() ) ) ); + VULKAN_HPP_ASSERT( rectCount <= rects.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( rectCount < rects.size() ) ) + { + rects.resize( rectCount ); + } + return createResultValue( result, rects, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getPresentRectanglesKHR" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + Rect2DAllocator & rect2DAllocator, + Dispatch const & d ) const + { + std::vector rects( rect2DAllocator ); + uint32_t rectCount; + Result result; + do + { + result = static_cast( d.vkGetPhysicalDevicePresentRectanglesKHR( + m_physicalDevice, static_cast( surface ), &rectCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && rectCount ) + { + rects.resize( rectCount ); + result = static_cast( + d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, + static_cast( surface ), + &rectCount, + reinterpret_cast( rects.data() ) ) ); + VULKAN_HPP_ASSERT( rectCount <= rects.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( rectCount < rects.size() ) ) + { + rects.resize( rectCount ); + } + return createResultValue( result, rects, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getPresentRectanglesKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void PhysicalDevice::getProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties * pProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast( pProperties ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties + PhysicalDevice::getProperties( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties; + d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast( &properties ) ); + return properties; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void PhysicalDevice::getProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 * pProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceProperties2( m_physicalDevice, + reinterpret_cast( pProperties ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 + PhysicalDevice::getProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties; + d.vkGetPhysicalDeviceProperties2( m_physicalDevice, + reinterpret_cast( &properties ) ); + return properties; + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain + PhysicalDevice::getProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + StructureChain structureChain; + VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties = + structureChain.template get(); + d.vkGetPhysicalDeviceProperties2( m_physicalDevice, + reinterpret_cast( &properties ) ); + return structureChain; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + PhysicalDevice::getProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 * pProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, + reinterpret_cast( pProperties ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 + PhysicalDevice::getProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties; + d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, + reinterpret_cast( &properties ) ); + return properties; + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain + PhysicalDevice::getProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + StructureChain structureChain; + VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties = + structureChain.template get(); + d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, + reinterpret_cast( &properties ) ); + return structureChain; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( + const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo, + uint32_t * pNumPasses, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( + m_physicalDevice, + reinterpret_cast( pPerformanceQueryCreateInfo ), + pNumPasses ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( + const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + uint32_t numPasses; + d.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( + m_physicalDevice, + reinterpret_cast( &performanceQueryCreateInfo ), + &numPasses ); + return numPasses; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + PhysicalDevice::getQueueFamilyProperties( uint32_t * pQueueFamilyPropertyCount, + VULKAN_HPP_NAMESPACE::QueueFamilyProperties * pQueueFamilyProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, + pQueueFamilyPropertyCount, + reinterpret_cast( pQueueFamilyProperties ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector + PhysicalDevice::getQueueFamilyProperties( Dispatch const & d ) const + { + std::vector queueFamilyProperties; + uint32_t queueFamilyPropertyCount; + d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); + queueFamilyProperties.resize( queueFamilyPropertyCount ); + d.vkGetPhysicalDeviceQueueFamilyProperties( + m_physicalDevice, + &queueFamilyPropertyCount, + reinterpret_cast( queueFamilyProperties.data() ) ); + VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); + return queueFamilyProperties; + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector + PhysicalDevice::getQueueFamilyProperties( QueueFamilyPropertiesAllocator & queueFamilyPropertiesAllocator, + Dispatch const & d ) const + { + std::vector queueFamilyProperties( + queueFamilyPropertiesAllocator ); + uint32_t queueFamilyPropertyCount; + d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); + queueFamilyProperties.resize( queueFamilyPropertyCount ); + d.vkGetPhysicalDeviceQueueFamilyProperties( + m_physicalDevice, + &queueFamilyPropertyCount, + reinterpret_cast( queueFamilyProperties.data() ) ); + VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); + return queueFamilyProperties; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + PhysicalDevice::getQueueFamilyProperties2( uint32_t * pQueueFamilyPropertyCount, + VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 * pQueueFamilyProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceQueueFamilyProperties2( + m_physicalDevice, + pQueueFamilyPropertyCount, + reinterpret_cast( pQueueFamilyProperties ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector + PhysicalDevice::getQueueFamilyProperties2( Dispatch const & d ) const + { + std::vector queueFamilyProperties; + uint32_t queueFamilyPropertyCount; + d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); + queueFamilyProperties.resize( queueFamilyPropertyCount ); + d.vkGetPhysicalDeviceQueueFamilyProperties2( + m_physicalDevice, + &queueFamilyPropertyCount, + reinterpret_cast( queueFamilyProperties.data() ) ); + VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); + return queueFamilyProperties; + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector + PhysicalDevice::getQueueFamilyProperties2( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, + Dispatch const & d ) const + { + std::vector queueFamilyProperties( + queueFamilyProperties2Allocator ); + uint32_t queueFamilyPropertyCount; + d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); + queueFamilyProperties.resize( queueFamilyPropertyCount ); + d.vkGetPhysicalDeviceQueueFamilyProperties2( + m_physicalDevice, + &queueFamilyPropertyCount, + reinterpret_cast( queueFamilyProperties.data() ) ); + VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); + return queueFamilyProperties; + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector + PhysicalDevice::getQueueFamilyProperties2( Dispatch const & d ) const + { + uint32_t queueFamilyPropertyCount; + d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); + std::vector returnVector( queueFamilyPropertyCount ); + std::vector queueFamilyProperties( queueFamilyPropertyCount ); + for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) + { + queueFamilyProperties[i].pNext = + returnVector[i].template get().pNext; + } + d.vkGetPhysicalDeviceQueueFamilyProperties2( + m_physicalDevice, + &queueFamilyPropertyCount, + reinterpret_cast( queueFamilyProperties.data() ) ); + VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); + for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) + { + returnVector[i].template get() = queueFamilyProperties[i]; + } + return returnVector; + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector + PhysicalDevice::getQueueFamilyProperties2( StructureChainAllocator & structureChainAllocator, + Dispatch const & d ) const + { + uint32_t queueFamilyPropertyCount; + d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); + std::vector returnVector( queueFamilyPropertyCount, + structureChainAllocator ); + std::vector queueFamilyProperties( queueFamilyPropertyCount ); + for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) + { + queueFamilyProperties[i].pNext = + returnVector[i].template get().pNext; + } + d.vkGetPhysicalDeviceQueueFamilyProperties2( + m_physicalDevice, + &queueFamilyPropertyCount, + reinterpret_cast( queueFamilyProperties.data() ) ); + VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); + for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) + { + returnVector[i].template get() = queueFamilyProperties[i]; + } + return returnVector; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void + PhysicalDevice::getQueueFamilyProperties2KHR( uint32_t * pQueueFamilyPropertyCount, + VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 * pQueueFamilyProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( + m_physicalDevice, + pQueueFamilyPropertyCount, + reinterpret_cast( pQueueFamilyProperties ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector + PhysicalDevice::getQueueFamilyProperties2KHR( Dispatch const & d ) const + { + std::vector queueFamilyProperties; + uint32_t queueFamilyPropertyCount; + d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); + queueFamilyProperties.resize( queueFamilyPropertyCount ); + d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( + m_physicalDevice, + &queueFamilyPropertyCount, + reinterpret_cast( queueFamilyProperties.data() ) ); + VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); + return queueFamilyProperties; + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector + PhysicalDevice::getQueueFamilyProperties2KHR( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, + Dispatch const & d ) const + { + std::vector queueFamilyProperties( + queueFamilyProperties2Allocator ); + uint32_t queueFamilyPropertyCount; + d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); + queueFamilyProperties.resize( queueFamilyPropertyCount ); + d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( + m_physicalDevice, + &queueFamilyPropertyCount, + reinterpret_cast( queueFamilyProperties.data() ) ); + VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); + return queueFamilyProperties; + } + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector + PhysicalDevice::getQueueFamilyProperties2KHR( Dispatch const & d ) const + { + uint32_t queueFamilyPropertyCount; + d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); + std::vector returnVector( queueFamilyPropertyCount ); + std::vector queueFamilyProperties( queueFamilyPropertyCount ); + for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) + { + queueFamilyProperties[i].pNext = + returnVector[i].template get().pNext; + } + d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( + m_physicalDevice, + &queueFamilyPropertyCount, + reinterpret_cast( queueFamilyProperties.data() ) ); + VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); + for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) + { + returnVector[i].template get() = queueFamilyProperties[i]; + } + return returnVector; + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector + PhysicalDevice::getQueueFamilyProperties2KHR( StructureChainAllocator & structureChainAllocator, + Dispatch const & d ) const + { + uint32_t queueFamilyPropertyCount; + d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); + std::vector returnVector( queueFamilyPropertyCount, + structureChainAllocator ); + std::vector queueFamilyProperties( queueFamilyPropertyCount ); + for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) + { + queueFamilyProperties[i].pNext = + returnVector[i].template get().pNext; + } + d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( + m_physicalDevice, + &queueFamilyPropertyCount, + reinterpret_cast( queueFamilyProperties.data() ) ); + VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); + for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) + { + returnVector[i].template get() = queueFamilyProperties[i]; + } + return returnVector; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_SCREEN_QNX ) + template + VULKAN_HPP_INLINE Bool32 PhysicalDevice::getScreenPresentationSupportQNX( + uint32_t queueFamilyIndex, struct _screen_window * window, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetPhysicalDeviceScreenPresentationSupportQNX( m_physicalDevice, queueFamilyIndex, window ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE Bool32 PhysicalDevice::getScreenPresentationSupportQNX( + uint32_t queueFamilyIndex, struct _screen_window & window, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetPhysicalDeviceScreenPresentationSupportQNX( m_physicalDevice, queueFamilyIndex, &window ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + + template + VULKAN_HPP_INLINE void + 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, + uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::SparseImageFormatProperties * pProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceSparseImageFormatProperties( + m_physicalDevice, + static_cast( format ), + static_cast( type ), + static_cast( samples ), + static_cast( usage ), + static_cast( tiling ), + pPropertyCount, + reinterpret_cast( pProperties ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector + 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, + Dispatch const & d ) const + { + std::vector properties; + uint32_t propertyCount; + d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, + static_cast( format ), + static_cast( type ), + static_cast( samples ), + static_cast( usage ), + static_cast( tiling ), + &propertyCount, + nullptr ); + properties.resize( propertyCount ); + d.vkGetPhysicalDeviceSparseImageFormatProperties( + m_physicalDevice, + static_cast( format ), + static_cast( type ), + static_cast( samples ), + static_cast( usage ), + static_cast( tiling ), + &propertyCount, + reinterpret_cast( properties.data() ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + return properties; + } + + template < + typename SparseImageFormatPropertiesAllocator, + typename Dispatch, + typename B, + typename std::enable_if::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector + 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, + SparseImageFormatPropertiesAllocator & sparseImageFormatPropertiesAllocator, + Dispatch const & d ) const + { + std::vector properties( + sparseImageFormatPropertiesAllocator ); + uint32_t propertyCount; + d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, + static_cast( format ), + static_cast( type ), + static_cast( samples ), + static_cast( usage ), + static_cast( tiling ), + &propertyCount, + nullptr ); + properties.resize( propertyCount ); + d.vkGetPhysicalDeviceSparseImageFormatProperties( + m_physicalDevice, + static_cast( format ), + static_cast( type ), + static_cast( samples ), + static_cast( usage ), + static_cast( tiling ), + &propertyCount, + reinterpret_cast( properties.data() ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + return properties; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void PhysicalDevice::getSparseImageFormatProperties2( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 * pFormatInfo, + uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 * pProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceSparseImageFormatProperties2( + m_physicalDevice, + reinterpret_cast( pFormatInfo ), + pPropertyCount, + reinterpret_cast( pProperties ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD + VULKAN_HPP_INLINE std::vector + PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, + Dispatch const & d ) const + { + std::vector properties; + uint32_t propertyCount; + d.vkGetPhysicalDeviceSparseImageFormatProperties2( + m_physicalDevice, + reinterpret_cast( &formatInfo ), + &propertyCount, + nullptr ); + properties.resize( propertyCount ); + d.vkGetPhysicalDeviceSparseImageFormatProperties2( + m_physicalDevice, + reinterpret_cast( &formatInfo ), + &propertyCount, + reinterpret_cast( properties.data() ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + return properties; + } + + template < + typename SparseImageFormatProperties2Allocator, + typename Dispatch, + typename B, + typename std::enable_if::value, int>::type> + VULKAN_HPP_NODISCARD + VULKAN_HPP_INLINE std::vector + PhysicalDevice::getSparseImageFormatProperties2( + const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, + SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, + Dispatch const & d ) const + { + std::vector properties( + sparseImageFormatProperties2Allocator ); + uint32_t propertyCount; + d.vkGetPhysicalDeviceSparseImageFormatProperties2( + m_physicalDevice, + reinterpret_cast( &formatInfo ), + &propertyCount, + nullptr ); + properties.resize( propertyCount ); + d.vkGetPhysicalDeviceSparseImageFormatProperties2( + m_physicalDevice, + reinterpret_cast( &formatInfo ), + &propertyCount, + reinterpret_cast( properties.data() ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + return properties; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void PhysicalDevice::getSparseImageFormatProperties2KHR( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 * pFormatInfo, + uint32_t * pPropertyCount, + VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 * pProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( + m_physicalDevice, + reinterpret_cast( pFormatInfo ), + pPropertyCount, + reinterpret_cast( pProperties ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD + VULKAN_HPP_INLINE std::vector + PhysicalDevice::getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, + Dispatch const & d ) const + { + std::vector properties; + uint32_t propertyCount; + d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( + m_physicalDevice, + reinterpret_cast( &formatInfo ), + &propertyCount, + nullptr ); + properties.resize( propertyCount ); + d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( + m_physicalDevice, + reinterpret_cast( &formatInfo ), + &propertyCount, + reinterpret_cast( properties.data() ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + return properties; + } + + template < + typename SparseImageFormatProperties2Allocator, + typename Dispatch, + typename B, + typename std::enable_if::value, int>::type> + VULKAN_HPP_NODISCARD + VULKAN_HPP_INLINE std::vector + PhysicalDevice::getSparseImageFormatProperties2KHR( + const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, + SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, + Dispatch const & d ) const + { + std::vector properties( + sparseImageFormatProperties2Allocator ); + uint32_t propertyCount; + d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( + m_physicalDevice, + reinterpret_cast( &formatInfo ), + &propertyCount, + nullptr ); + properties.resize( propertyCount ); + d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( + m_physicalDevice, + reinterpret_cast( &formatInfo ), + &propertyCount, + reinterpret_cast( properties.data() ) ); + VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); + return properties; + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV( + uint32_t * pCombinationCount, + VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV * pCombinations, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( + m_physicalDevice, + pCombinationCount, + reinterpret_cast( pCombinations ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType< + std::vector>::type + PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV( Dispatch const & d ) const + { + std::vector combinations; + uint32_t combinationCount; + Result result; + do + { + result = static_cast( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( + m_physicalDevice, &combinationCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && combinationCount ) + { + combinations.resize( combinationCount ); + result = static_cast( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( + m_physicalDevice, + &combinationCount, + reinterpret_cast( combinations.data() ) ) ); + VULKAN_HPP_ASSERT( combinationCount <= combinations.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( combinationCount < combinations.size() ) ) + { + combinations.resize( combinationCount ); + } + return createResultValue( result, + combinations, + VULKAN_HPP_NAMESPACE_STRING + "::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" ); + } + + template ::value, + int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType< + std::vector>::type + PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV( + FramebufferMixedSamplesCombinationNVAllocator & framebufferMixedSamplesCombinationNVAllocator, + Dispatch const & d ) const + { + std::vector combinations( + framebufferMixedSamplesCombinationNVAllocator ); + uint32_t combinationCount; + Result result; + do + { + result = static_cast( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( + m_physicalDevice, &combinationCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && combinationCount ) + { + combinations.resize( combinationCount ); + result = static_cast( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( + m_physicalDevice, + &combinationCount, + reinterpret_cast( combinations.data() ) ) ); + VULKAN_HPP_ASSERT( combinationCount <= combinations.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( combinationCount < combinations.size() ) ) + { + combinations.resize( combinationCount ); + } + return createResultValue( result, + combinations, + VULKAN_HPP_NAMESPACE_STRING + "::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT * pSurfaceCapabilities, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT( + m_physicalDevice, + static_cast( surface ), + reinterpret_cast( pSurfaceCapabilities ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + PhysicalDevice::getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT surfaceCapabilities; + Result result = static_cast( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT( + m_physicalDevice, + static_cast( surface ), + reinterpret_cast( &surfaceCapabilities ) ) ); + return createResultValue( + result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2EXT" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceCapabilities2KHR( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo, + VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR * pSurfaceCapabilities, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( + m_physicalDevice, + reinterpret_cast( pSurfaceInfo ), + reinterpret_cast( pSurfaceCapabilities ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR surfaceCapabilities; + Result result = static_cast( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( + m_physicalDevice, + reinterpret_cast( &surfaceInfo ), + reinterpret_cast( &surfaceCapabilities ) ) ); + return createResultValue( + result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" ); + } + + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, + Dispatch const & d ) const + { + StructureChain structureChain; + VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR & surfaceCapabilities = + structureChain.template get(); + Result result = static_cast( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( + m_physicalDevice, + reinterpret_cast( &surfaceInfo ), + reinterpret_cast( &surfaceCapabilities ) ) ); + return createResultValue( + result, structureChain, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR * pSurfaceCapabilities, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( + m_physicalDevice, + static_cast( surface ), + reinterpret_cast( pSurfaceCapabilities ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + PhysicalDevice::getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities; + Result result = static_cast( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( + m_physicalDevice, + static_cast( surface ), + reinterpret_cast( &surfaceCapabilities ) ) ); + return createResultValue( + result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilitiesKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo, + uint32_t * pSurfaceFormatCount, + VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR * pSurfaceFormats, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetPhysicalDeviceSurfaceFormats2KHR( + m_physicalDevice, + reinterpret_cast( pSurfaceInfo ), + pSurfaceFormatCount, + reinterpret_cast( pSurfaceFormats ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const + { + std::vector surfaceFormats; + uint32_t surfaceFormatCount; + Result result; + do + { + result = static_cast( d.vkGetPhysicalDeviceSurfaceFormats2KHR( + m_physicalDevice, + reinterpret_cast( &surfaceInfo ), + &surfaceFormatCount, + nullptr ) ); + if ( ( result == Result::eSuccess ) && surfaceFormatCount ) + { + surfaceFormats.resize( surfaceFormatCount ); + result = static_cast( d.vkGetPhysicalDeviceSurfaceFormats2KHR( + m_physicalDevice, + reinterpret_cast( &surfaceInfo ), + &surfaceFormatCount, + reinterpret_cast( surfaceFormats.data() ) ) ); + VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) ) + { + surfaceFormats.resize( surfaceFormatCount ); + } + return createResultValue( + result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, + SurfaceFormat2KHRAllocator & surfaceFormat2KHRAllocator, + Dispatch const & d ) const + { + std::vector surfaceFormats( surfaceFormat2KHRAllocator ); + uint32_t surfaceFormatCount; + Result result; + do + { + result = static_cast( d.vkGetPhysicalDeviceSurfaceFormats2KHR( + m_physicalDevice, + reinterpret_cast( &surfaceInfo ), + &surfaceFormatCount, + nullptr ) ); + if ( ( result == Result::eSuccess ) && surfaceFormatCount ) + { + surfaceFormats.resize( surfaceFormatCount ); + result = static_cast( d.vkGetPhysicalDeviceSurfaceFormats2KHR( + m_physicalDevice, + reinterpret_cast( &surfaceInfo ), + &surfaceFormatCount, + reinterpret_cast( surfaceFormats.data() ) ) ); + VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) ) + { + surfaceFormats.resize( surfaceFormatCount ); + } + return createResultValue( + result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + uint32_t * pSurfaceFormatCount, + VULKAN_HPP_NAMESPACE::SurfaceFormatKHR * pSurfaceFormats, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, + static_cast( surface ), + pSurfaceFormatCount, + reinterpret_cast( pSurfaceFormats ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const + { + std::vector surfaceFormats; + uint32_t surfaceFormatCount; + Result result; + do + { + result = static_cast( d.vkGetPhysicalDeviceSurfaceFormatsKHR( + m_physicalDevice, static_cast( surface ), &surfaceFormatCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && surfaceFormatCount ) + { + surfaceFormats.resize( surfaceFormatCount ); + result = static_cast( + d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, + static_cast( surface ), + &surfaceFormatCount, + reinterpret_cast( surfaceFormats.data() ) ) ); + VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) ) + { + surfaceFormats.resize( surfaceFormatCount ); + } + return createResultValue( + result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormatsKHR" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + SurfaceFormatKHRAllocator & surfaceFormatKHRAllocator, + Dispatch const & d ) const + { + std::vector surfaceFormats( surfaceFormatKHRAllocator ); + uint32_t surfaceFormatCount; + Result result; + do + { + result = static_cast( d.vkGetPhysicalDeviceSurfaceFormatsKHR( + m_physicalDevice, static_cast( surface ), &surfaceFormatCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && surfaceFormatCount ) + { + surfaceFormats.resize( surfaceFormatCount ); + result = static_cast( + d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, + static_cast( surface ), + &surfaceFormatCount, + reinterpret_cast( surfaceFormats.data() ) ) ); + VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) ) + { + surfaceFormats.resize( surfaceFormatCount ); + } + return createResultValue( + result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormatsKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfacePresentModes2EXT( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo, + uint32_t * pPresentModeCount, + VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( + m_physicalDevice, + reinterpret_cast( pSurfaceInfo ), + pPresentModeCount, + reinterpret_cast( pPresentModes ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, + Dispatch const & d ) const + { + std::vector presentModes; + uint32_t presentModeCount; + Result result; + do + { + result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( + m_physicalDevice, + reinterpret_cast( &surfaceInfo ), + &presentModeCount, + nullptr ) ); + if ( ( result == Result::eSuccess ) && presentModeCount ) + { + presentModes.resize( presentModeCount ); + result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( + m_physicalDevice, + reinterpret_cast( &surfaceInfo ), + &presentModeCount, + reinterpret_cast( presentModes.data() ) ) ); + VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( presentModeCount < presentModes.size() ) ) + { + presentModes.resize( presentModeCount ); + } + return createResultValue( + result, presentModes, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModes2EXT" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, + PresentModeKHRAllocator & presentModeKHRAllocator, + Dispatch const & d ) const + { + std::vector presentModes( presentModeKHRAllocator ); + uint32_t presentModeCount; + Result result; + do + { + result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( + m_physicalDevice, + reinterpret_cast( &surfaceInfo ), + &presentModeCount, + nullptr ) ); + if ( ( result == Result::eSuccess ) && presentModeCount ) + { + presentModes.resize( presentModeCount ); + result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( + m_physicalDevice, + reinterpret_cast( &surfaceInfo ), + &presentModeCount, + reinterpret_cast( presentModes.data() ) ) ); + VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( presentModeCount < presentModes.size() ) ) + { + presentModes.resize( presentModeCount ); + } + return createResultValue( + result, presentModes, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModes2EXT" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + uint32_t * pPresentModeCount, + VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, + static_cast( surface ), + pPresentModeCount, + reinterpret_cast( pPresentModes ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const + { + std::vector presentModes; + uint32_t presentModeCount; + Result result; + do + { + result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModesKHR( + m_physicalDevice, static_cast( surface ), &presentModeCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && presentModeCount ) + { + presentModes.resize( presentModeCount ); + result = static_cast( + d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, + static_cast( surface ), + &presentModeCount, + reinterpret_cast( presentModes.data() ) ) ); + VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( presentModeCount < presentModes.size() ) ) + { + presentModes.resize( presentModeCount ); + } + return createResultValue( + result, presentModes, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModesKHR" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + PresentModeKHRAllocator & presentModeKHRAllocator, + Dispatch const & d ) const + { + std::vector presentModes( presentModeKHRAllocator ); + uint32_t presentModeCount; + Result result; + do + { + result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModesKHR( + m_physicalDevice, static_cast( surface ), &presentModeCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && presentModeCount ) + { + presentModes.resize( presentModeCount ); + result = static_cast( + d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, + static_cast( surface ), + &presentModeCount, + reinterpret_cast( presentModes.data() ) ) ); + VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( presentModeCount < presentModes.size() ) ) + { + presentModes.resize( presentModeCount ); + } + return createResultValue( + result, presentModes, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModesKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::getSurfaceSupportKHR( uint32_t queueFamilyIndex, + VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + VULKAN_HPP_NAMESPACE::Bool32 * pSupported, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice, + queueFamilyIndex, + static_cast( surface ), + reinterpret_cast( pSupported ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + PhysicalDevice::getSurfaceSupportKHR( uint32_t queueFamilyIndex, + VULKAN_HPP_NAMESPACE::SurfaceKHR surface, + Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::Bool32 supported; + Result result = + static_cast( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice, + queueFamilyIndex, + static_cast( surface ), + reinterpret_cast( &supported ) ) ); + return createResultValue( result, supported, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceSupportKHR" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::getToolPropertiesEXT( uint32_t * pToolCount, + VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT * pToolProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetPhysicalDeviceToolPropertiesEXT( + m_physicalDevice, pToolCount, reinterpret_cast( pToolProperties ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType< + std::vector>::type + PhysicalDevice::getToolPropertiesEXT( Dispatch const & d ) const + { + std::vector toolProperties; + uint32_t toolCount; + Result result; + do + { + result = static_cast( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && toolCount ) + { + toolProperties.resize( toolCount ); + result = static_cast( d.vkGetPhysicalDeviceToolPropertiesEXT( + m_physicalDevice, + &toolCount, + reinterpret_cast( toolProperties.data() ) ) ); + VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( toolCount < toolProperties.size() ) ) + { + toolProperties.resize( toolCount ); + } + return createResultValue( + result, toolProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolPropertiesEXT" ); + } + + template < + typename PhysicalDeviceToolPropertiesEXTAllocator, + typename Dispatch, + typename B, + typename std::enable_if::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType< + std::vector>::type + PhysicalDevice::getToolPropertiesEXT( + PhysicalDeviceToolPropertiesEXTAllocator & physicalDeviceToolPropertiesEXTAllocator, Dispatch const & d ) const + { + std::vector toolProperties( + physicalDeviceToolPropertiesEXTAllocator ); + uint32_t toolCount; + Result result; + do + { + result = static_cast( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr ) ); + if ( ( result == Result::eSuccess ) && toolCount ) + { + toolProperties.resize( toolCount ); + result = static_cast( d.vkGetPhysicalDeviceToolPropertiesEXT( + m_physicalDevice, + &toolCount, + reinterpret_cast( toolProperties.data() ) ) ); + VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( toolCount < toolProperties.size() ) ) + { + toolProperties.resize( toolCount ); + } + return createResultValue( + result, toolProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolPropertiesEXT" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::getVideoCapabilitiesKHR( const VULKAN_HPP_NAMESPACE::VideoProfileKHR * pVideoProfile, + VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR * pCapabilities, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetPhysicalDeviceVideoCapabilitiesKHR( m_physicalDevice, + reinterpret_cast( pVideoProfile ), + reinterpret_cast( pCapabilities ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + PhysicalDevice::getVideoCapabilitiesKHR( const VideoProfileKHR & videoProfile, Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR capabilities; + Result result = static_cast( + d.vkGetPhysicalDeviceVideoCapabilitiesKHR( m_physicalDevice, + reinterpret_cast( &videoProfile ), + reinterpret_cast( &capabilities ) ) ); + return createResultValue( + result, capabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoCapabilitiesKHR" ); + } + + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getVideoCapabilitiesKHR( const VideoProfileKHR & videoProfile, Dispatch const & d ) const + { + StructureChain structureChain; + VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR & capabilities = + structureChain.template get(); + Result result = static_cast( + d.vkGetPhysicalDeviceVideoCapabilitiesKHR( m_physicalDevice, + reinterpret_cast( &videoProfile ), + reinterpret_cast( &capabilities ) ) ); + return createResultValue( + result, structureChain, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoCapabilitiesKHR" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getVideoFormatPropertiesKHR( + const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo, + uint32_t * pVideoFormatPropertyCount, + VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR * pVideoFormatProperties, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkGetPhysicalDeviceVideoFormatPropertiesKHR( + m_physicalDevice, + reinterpret_cast( pVideoFormatInfo ), + pVideoFormatPropertyCount, + reinterpret_cast( pVideoFormatProperties ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getVideoFormatPropertiesKHR( const PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo, + Dispatch const & d ) const + { + std::vector videoFormatProperties; + uint32_t videoFormatPropertyCount; + Result result; + do + { + result = static_cast( d.vkGetPhysicalDeviceVideoFormatPropertiesKHR( + m_physicalDevice, + reinterpret_cast( &videoFormatInfo ), + &videoFormatPropertyCount, + nullptr ) ); + if ( ( result == Result::eSuccess ) && videoFormatPropertyCount ) + { + videoFormatProperties.resize( videoFormatPropertyCount ); + result = static_cast( d.vkGetPhysicalDeviceVideoFormatPropertiesKHR( + m_physicalDevice, + reinterpret_cast( &videoFormatInfo ), + &videoFormatPropertyCount, + reinterpret_cast( videoFormatProperties.data() ) ) ); + VULKAN_HPP_ASSERT( videoFormatPropertyCount <= videoFormatProperties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( videoFormatPropertyCount < videoFormatProperties.size() ) ) + { + videoFormatProperties.resize( videoFormatPropertyCount ); + } + return createResultValue( + result, videoFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoFormatPropertiesKHR" ); + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getVideoFormatPropertiesKHR( const PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo, + VideoFormatPropertiesKHRAllocator & videoFormatPropertiesKHRAllocator, + Dispatch const & d ) const + { + std::vector videoFormatProperties( + videoFormatPropertiesKHRAllocator ); + uint32_t videoFormatPropertyCount; + Result result; + do + { + result = static_cast( d.vkGetPhysicalDeviceVideoFormatPropertiesKHR( + m_physicalDevice, + reinterpret_cast( &videoFormatInfo ), + &videoFormatPropertyCount, + nullptr ) ); + if ( ( result == Result::eSuccess ) && videoFormatPropertyCount ) + { + videoFormatProperties.resize( videoFormatPropertyCount ); + result = static_cast( d.vkGetPhysicalDeviceVideoFormatPropertiesKHR( + m_physicalDevice, + reinterpret_cast( &videoFormatInfo ), + &videoFormatPropertyCount, + reinterpret_cast( videoFormatProperties.data() ) ) ); + VULKAN_HPP_ASSERT( videoFormatPropertyCount <= videoFormatProperties.size() ); + } + } while ( result == Result::eIncomplete ); + if ( ( result == Result::eSuccess ) && ( videoFormatPropertyCount < videoFormatProperties.size() ) ) + { + videoFormatProperties.resize( videoFormatPropertyCount ); + } + return createResultValue( + result, videoFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoFormatPropertiesKHR" ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + +#if defined( VK_USE_PLATFORM_WAYLAND_KHR ) + template + VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( + uint32_t queueFamilyIndex, struct wl_display * display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, display ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( + uint32_t queueFamilyIndex, struct wl_display & display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &display ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWin32PresentationSupportKHR( + uint32_t queueFamilyIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetPhysicalDeviceWin32PresentationSupportKHR( m_physicalDevice, queueFamilyIndex ) ); + } +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#if defined( VK_USE_PLATFORM_XCB_KHR ) + template + VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, + xcb_connection_t * connection, + xcb_visualid_t visual_id, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, connection, visual_id ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, + xcb_connection_t & connection, + xcb_visualid_t visual_id, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &connection, visual_id ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_XCB_KHR*/ + +#if defined( VK_USE_PLATFORM_XLIB_KHR ) + template + VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, + Display * dpy, + VisualID visualID, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, dpy, visualID ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, + Display & dpy, + VisualID visualID, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &dpy, visualID ); + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_XLIB_KHR*/ + +#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::getRandROutputDisplayEXT( Display * dpy, + RROutput rrOutput, + VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplay, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetRandROutputDisplayEXT( m_physicalDevice, dpy, rrOutput, reinterpret_cast( pDisplay ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE typename ResultValueType::type + PhysicalDevice::getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput, Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DisplayKHR display; + Result result = static_cast( + d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast( &display ) ) ); + return createResultValue( + result, display, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getRandROutputDisplayEXT" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getRandROutputDisplayEXTUnique( Display & dpy, RROutput rrOutput, Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DisplayKHR display; + Result result = static_cast( + d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast( &display ) ) ); + ObjectRelease deleter( *this, d ); + return createResultValue( + result, display, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getRandROutputDisplayEXTUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + PhysicalDevice::getWinrtDisplayNV( uint32_t deviceRelativeId, + VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplay, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( + d.vkGetWinrtDisplayNV( m_physicalDevice, deviceRelativeId, reinterpret_cast( pDisplay ) ) ); + } + +# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType::type + PhysicalDevice::getWinrtDisplayNV( uint32_t deviceRelativeId, Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DisplayKHR display; + Result result = static_cast( + d.vkGetWinrtDisplayNV( m_physicalDevice, deviceRelativeId, reinterpret_cast( &display ) ) ); + return createResultValue( result, display, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getWinrtDisplayNV" ); + } + +# ifndef VULKAN_HPP_NO_SMART_HANDLE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE + typename ResultValueType>::type + PhysicalDevice::getWinrtDisplayNVUnique( uint32_t deviceRelativeId, Dispatch const & d ) const + { + VULKAN_HPP_NAMESPACE::DisplayKHR display; + Result result = static_cast( + d.vkGetWinrtDisplayNV( m_physicalDevice, deviceRelativeId, reinterpret_cast( &display ) ) ); + ObjectRelease deleter( *this, d ); + return createResultValue( + result, display, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getWinrtDisplayNVUnique", deleter ); + } +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + +#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE Result PhysicalDevice::releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast( display ) ) ); + } +#else + template + VULKAN_HPP_INLINE typename ResultValueType::type + PhysicalDevice::releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const + { + Result result = + static_cast( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast( display ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::releaseDisplayEXT" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_INLINE void Queue::getCheckpointData2NV( uint32_t * pCheckpointDataCount, + VULKAN_HPP_NAMESPACE::CheckpointData2NV * pCheckpointData, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkGetQueueCheckpointData2NV( + m_queue, pCheckpointDataCount, reinterpret_cast( pCheckpointData ) ); + } - template - VULKAN_HPP_INLINE Result Device::resetFences( uint32_t fenceCount, const VULKAN_HPP_NAMESPACE::Fence* pFences, Dispatch const &d) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkResetFences( m_device, fenceCount, reinterpret_cast( pFences ) ) ); - } #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::resetFences( ArrayProxy fences, Dispatch const &d ) const + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector + Queue::getCheckpointData2NV( Dispatch const & d ) const + { + std::vector checkpointData; + uint32_t checkpointDataCount; + d.vkGetQueueCheckpointData2NV( m_queue, &checkpointDataCount, nullptr ); + checkpointData.resize( checkpointDataCount ); + d.vkGetQueueCheckpointData2NV( + m_queue, &checkpointDataCount, reinterpret_cast( checkpointData.data() ) ); + VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() ); + return checkpointData; + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector + Queue::getCheckpointData2NV( CheckpointData2NVAllocator & checkpointData2NVAllocator, Dispatch const & d ) const { - Result result = static_cast( d.vkResetFences( m_device, fences.size() , reinterpret_cast( fences.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::resetFences" ); + std::vector checkpointData( checkpointData2NVAllocator ); + uint32_t checkpointDataCount; + d.vkGetQueueCheckpointData2NV( m_queue, &checkpointDataCount, nullptr ); + checkpointData.resize( checkpointDataCount ); + d.vkGetQueueCheckpointData2NV( + m_queue, &checkpointDataCount, reinterpret_cast( checkpointData.data() ) ); + VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() ); + return checkpointData; } #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + template + VULKAN_HPP_INLINE void Queue::getCheckpointDataNV( uint32_t * pCheckpointDataCount, + VULKAN_HPP_NAMESPACE::CheckpointDataNV * pCheckpointData, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { - d.vkResetQueryPool( m_device, static_cast( queryPool ), firstQuery, queryCount ); + d.vkGetQueueCheckpointDataNV( + m_queue, pCheckpointDataCount, reinterpret_cast( pCheckpointData ) ); } -#else - template - VULKAN_HPP_INLINE void Device::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector + Queue::getCheckpointDataNV( Dispatch const & d ) const { - d.vkResetQueryPool( m_device, static_cast( queryPool ), firstQuery, queryCount ); + std::vector checkpointData; + uint32_t checkpointDataCount; + d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr ); + checkpointData.resize( checkpointDataCount ); + d.vkGetQueueCheckpointDataNV( + m_queue, &checkpointDataCount, reinterpret_cast( checkpointData.data() ) ); + VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() ); + return checkpointData; + } + + template ::value, int>::type> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector + Queue::getCheckpointDataNV( CheckpointDataNVAllocator & checkpointDataNVAllocator, Dispatch const & d ) const + { + std::vector checkpointData( checkpointDataNVAllocator ); + uint32_t checkpointDataCount; + d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr ); + checkpointData.resize( checkpointDataCount ); + d.vkGetQueueCheckpointDataNV( + m_queue, &checkpointDataCount, reinterpret_cast( checkpointData.data() ) ); + VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() ); + return checkpointData; } #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::resetQueryPoolEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + template + VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { - d.vkResetQueryPoolEXT( m_device, static_cast( queryPool ), firstQuery, queryCount ); + d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast( pLabelInfo ) ); } -#else - template - VULKAN_HPP_INLINE void Device::resetQueryPoolEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { - d.vkResetQueryPoolEXT( m_device, static_cast( queryPool ), firstQuery, queryCount ); + d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast( &labelInfo ) ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Queue::bindSparse( uint32_t bindInfoCount, + const VULKAN_HPP_NAMESPACE::BindSparseInfo * pBindInfo, + VULKAN_HPP_NAMESPACE::Fence fence, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkQueueBindSparse( m_queue, + bindInfoCount, + reinterpret_cast( pBindInfo ), + static_cast( fence ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Queue::bindSparse( ArrayProxy const & bindInfo, + VULKAN_HPP_NAMESPACE::Fence fence, + Dispatch const & d ) const + { + Result result = + static_cast( d.vkQueueBindSparse( m_queue, + bindInfo.size(), + reinterpret_cast( bindInfo.data() ), + static_cast( fence ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::bindSparse" ); } #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - template - VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pNameInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + template + VULKAN_HPP_INLINE void Queue::endDebugUtilsLabelEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + d.vkQueueEndDebugUtilsLabelEXT( m_queue ); + } + + template + VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { - return static_cast( d.vkSetDebugUtilsObjectNameEXT( m_device, reinterpret_cast( pNameInfo ) ) ); + d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast( pLabelInfo ) ); } + #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo, Dispatch const &d ) const + template + VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { - Result result = static_cast( d.vkSetDebugUtilsObjectNameEXT( m_device, reinterpret_cast( &nameInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::setDebugUtilsObjectNameEXT" ); + d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast( &labelInfo ) ); } #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - template - VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT* pTagInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::presentKHR( + const VULKAN_HPP_NAMESPACE::PresentInfoKHR * pPresentInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { - return static_cast( d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast( pTagInfo ) ) ); + return static_cast( + d.vkQueuePresentKHR( m_queue, reinterpret_cast( pPresentInfo ) ) ); } + #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo, Dispatch const &d ) const + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::presentKHR( const PresentInfoKHR & presentInfo, + Dispatch const & d ) const { - Result result = static_cast( d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast( &tagInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::setDebugUtilsObjectTagEXT" ); + Result result = + static_cast( d.vkQueuePresentKHR( m_queue, reinterpret_cast( &presentInfo ) ) ); + return createResultValue( + result, + VULKAN_HPP_NAMESPACE_STRING "::Queue::presentKHR", + { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } ); } #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Device::setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::setPerformanceConfigurationINTEL( + VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { - return static_cast( d.vkSetEvent( m_device, static_cast( event ) ) ); + return static_cast( d.vkQueueSetPerformanceConfigurationINTEL( + m_queue, static_cast( configuration ) ) ); } #else - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const &d ) const + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, + Dispatch const & d ) const { - Result result = static_cast( d.vkSetEvent( m_device, static_cast( event ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::setEvent" ); + Result result = static_cast( d.vkQueueSetPerformanceConfigurationINTEL( + m_queue, static_cast( configuration ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::setPerformanceConfigurationINTEL" ); } #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - template - VULKAN_HPP_INLINE void Device::setHdrMetadataEXT( uint32_t swapchainCount, const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains, const VULKAN_HPP_NAMESPACE::HdrMetadataEXT* pMetadata, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::submit( uint32_t submitCount, + const VULKAN_HPP_NAMESPACE::SubmitInfo * pSubmits, + VULKAN_HPP_NAMESPACE::Fence fence, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { - d.vkSetHdrMetadataEXT( m_device, swapchainCount, reinterpret_cast( pSwapchains ), reinterpret_cast( pMetadata ) ); + return static_cast( d.vkQueueSubmit( + m_queue, submitCount, reinterpret_cast( pSubmits ), static_cast( fence ) ) ); } + #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::setHdrMetadataEXT( ArrayProxy swapchains, ArrayProxy metadata, Dispatch const &d ) const + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Queue::submit( ArrayProxy const & submits, + VULKAN_HPP_NAMESPACE::Fence fence, + Dispatch const & d ) const { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( swapchains.size() == metadata.size() ); -#else - if ( swapchains.size() != metadata.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkDevice::setHdrMetadataEXT: swapchains.size() != metadata.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - d.vkSetHdrMetadataEXT( m_device, swapchains.size() , reinterpret_cast( swapchains.data() ), reinterpret_cast( metadata.data() ) ); + Result result = static_cast( d.vkQueueSubmit( m_queue, + submits.size(), + reinterpret_cast( submits.data() ), + static_cast( fence ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result + Queue::submit2KHR( uint32_t submitCount, + const VULKAN_HPP_NAMESPACE::SubmitInfo2KHR * pSubmits, + VULKAN_HPP_NAMESPACE::Fence fence, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkQueueSubmit2KHR( + m_queue, submitCount, reinterpret_cast( pSubmits ), static_cast( fence ) ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Queue::submit2KHR( ArrayProxy const & submits, + VULKAN_HPP_NAMESPACE::Fence fence, + Dispatch const & d ) const + { + Result result = + static_cast( d.vkQueueSubmit2KHR( m_queue, + submits.size(), + reinterpret_cast( submits.data() ), + static_cast( fence ) ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit2KHR" ); } #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain, VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + template + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::waitIdle( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + return static_cast( d.vkQueueWaitIdle( m_queue ) ); + } +#else + template + VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type + Queue::waitIdle( Dispatch const & d ) const + { + Result result = static_cast( d.vkQueueWaitIdle( m_queue ) ); + return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::waitIdle" ); + } +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkSetLocalDimmingAMD( m_device, static_cast( swapChain ), static_cast( localDimmingEnable ) ); - } -#else - template - VULKAN_HPP_INLINE void Device::setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain, VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + template <> + struct StructExtends { - d.vkSetLocalDimmingAMD( m_device, static_cast( swapChain ), static_cast( localDimmingEnable ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result Device::signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + template <> + struct StructExtends { - return static_cast( d.vkSignalSemaphore( m_device, reinterpret_cast( pSignalInfo ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::signalSemaphore( const SemaphoreSignalInfo & signalInfo, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - Result result = static_cast( d.vkSignalSemaphore( m_device, reinterpret_cast( &signalInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::signalSemaphore" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result Device::signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template <> + struct StructExtends { - return static_cast( d.vkSignalSemaphoreKHR( m_device, reinterpret_cast( pSignalInfo ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::signalSemaphoreKHR( const SemaphoreSignalInfo & signalInfo, Dispatch const &d ) const + enum + { + value = true + }; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template <> + struct StructExtends { - Result result = static_cast( d.vkSignalSemaphoreKHR( m_device, reinterpret_cast( &signalInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::signalSemaphoreKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::trimCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ +#if defined( VK_USE_PLATFORM_FUCHSIA ) + template <> + struct StructExtends { - d.vkTrimCommandPool( m_device, static_cast( commandPool ), static_cast( flags ) ); - } -#else - template - VULKAN_HPP_INLINE void Device::trimCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + template <> + struct StructExtends { - d.vkTrimCommandPool( m_device, static_cast( commandPool ), static_cast( flags ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::trimCommandPoolKHR( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkTrimCommandPoolKHR( m_device, static_cast( commandPool ), static_cast( flags ) ); - } -#else - template - VULKAN_HPP_INLINE void Device::trimCommandPoolKHR( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkTrimCommandPoolKHR( m_device, static_cast( commandPool ), static_cast( flags ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::uninitializePerformanceApiINTEL(Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkUninitializePerformanceApiINTEL( m_device ); - } -#else - template - VULKAN_HPP_INLINE void Device::uninitializePerformanceApiINTEL(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkUninitializePerformanceApiINTEL( m_device ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::unmapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkUnmapMemory( m_device, static_cast( memory ) ); - } -#else - template - VULKAN_HPP_INLINE void Device::unmapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkUnmapMemory( m_device, static_cast( memory ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result Device::unregisterObjectsNVX( VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable, uint32_t objectCount, const VULKAN_HPP_NAMESPACE::ObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkUnregisterObjectsNVX( m_device, static_cast( objectTable ), objectCount, reinterpret_cast( pObjectEntryTypes ), pObjectIndices ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::unregisterObjectsNVX( VULKAN_HPP_NAMESPACE::ObjectTableNVX objectTable, ArrayProxy objectEntryTypes, ArrayProxy objectIndices, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( objectEntryTypes.size() == objectIndices.size() ); -#else - if ( objectEntryTypes.size() != objectIndices.size() ) + enum { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkDevice::unregisterObjectsNVX: objectEntryTypes.size() != objectIndices.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - Result result = static_cast( d.vkUnregisterObjectsNVX( m_device, static_cast( objectTable ), objectEntryTypes.size() , reinterpret_cast( objectEntryTypes.data() ), objectIndices.data() ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::unregisterObjectsNVX" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::updateDescriptorSetWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; + template <> + struct StructExtends { - d.vkUpdateDescriptorSetWithTemplate( m_device, static_cast( descriptorSet ), static_cast( descriptorUpdateTemplate ), pData ); - } -#else - template - VULKAN_HPP_INLINE void Device::updateDescriptorSetWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkUpdateDescriptorSetWithTemplate( m_device, static_cast( descriptorSet ), static_cast( descriptorUpdateTemplate ), pData ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::updateDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkUpdateDescriptorSetWithTemplateKHR( m_device, static_cast( descriptorSet ), static_cast( descriptorUpdateTemplate ), pData ); - } -#else - template - VULKAN_HPP_INLINE void Device::updateDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkUpdateDescriptorSetWithTemplateKHR( m_device, static_cast( descriptorSet ), static_cast( descriptorUpdateTemplate ), pData ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Device::updateDescriptorSets( uint32_t descriptorWriteCount, const VULKAN_HPP_NAMESPACE::WriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VULKAN_HPP_NAMESPACE::CopyDescriptorSet* pDescriptorCopies, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkUpdateDescriptorSets( m_device, descriptorWriteCount, reinterpret_cast( pDescriptorWrites ), descriptorCopyCount, reinterpret_cast( pDescriptorCopies ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::updateDescriptorSets( ArrayProxy descriptorWrites, ArrayProxy descriptorCopies, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkUpdateDescriptorSets( m_device, descriptorWrites.size() , reinterpret_cast( descriptorWrites.data() ), descriptorCopies.size() , reinterpret_cast( descriptorCopies.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result Device::waitForFences( uint32_t fenceCount, const VULKAN_HPP_NAMESPACE::Fence* pFences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkWaitForFences( m_device, fenceCount, reinterpret_cast( pFences ), static_cast( waitAll ), timeout ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Device::waitForFences( ArrayProxy fences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - Result result = static_cast( d.vkWaitForFences( m_device, fences.size() , reinterpret_cast( fences.data() ), static_cast( waitAll ), timeout ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::waitForFences", { Result::eSuccess, Result::eTimeout } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result Device::waitSemaphores( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo* pWaitInfo, uint64_t timeout, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkWaitSemaphores( m_device, reinterpret_cast( pWaitInfo ), timeout ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Device::waitSemaphores( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - Result result = static_cast( d.vkWaitSemaphores( m_device, reinterpret_cast( &waitInfo ), timeout ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::waitSemaphores", { Result::eSuccess, Result::eTimeout } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result Device::waitSemaphoresKHR( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo* pWaitInfo, uint64_t timeout, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkWaitSemaphoresKHR( m_device, reinterpret_cast( pWaitInfo ), timeout ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Device::waitSemaphoresKHR( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - Result result = static_cast( d.vkWaitSemaphoresKHR( m_device, reinterpret_cast( &waitInfo ), timeout ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::waitSemaphoresKHR", { Result::eSuccess, Result::eTimeout } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template - VULKAN_HPP_INLINE Result Instance::createAndroidSurfaceKHR( const VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Instance::createAndroidSurfaceKHR( const AndroidSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createAndroidSurfaceKHR" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createAndroidSurfaceKHRUnique( const AndroidSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createAndroidSurfaceKHRUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - template - VULKAN_HPP_INLINE Result Instance::createDebugReportCallbackEXT( const VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT* pCallback, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pCallback ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Instance::createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback; - Result result = static_cast( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &callback ) ) ); - return createResultValue( result, callback, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugReportCallbackEXT" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createDebugReportCallbackEXTUnique( const DebugReportCallbackCreateInfoEXT & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback; - Result result = static_cast( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &callback ) ) ); - - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, callback, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugReportCallbackEXTUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result Instance::createDebugUtilsMessengerEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT* pMessenger, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pMessenger ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Instance::createDebugUtilsMessengerEXT( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger; - Result result = static_cast( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &messenger ) ) ); - return createResultValue( result, messenger, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugUtilsMessengerEXT" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createDebugUtilsMessengerEXTUnique( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger; - Result result = static_cast( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &messenger ) ) ); - - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, messenger, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugUtilsMessengerEXTUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result Instance::createDisplayPlaneSurfaceKHR( const VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Instance::createDisplayPlaneSurfaceKHR( const DisplaySurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDisplayPlaneSurfaceKHR" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createDisplayPlaneSurfaceKHRUnique( const DisplaySurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDisplayPlaneSurfaceKHRUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result Instance::createHeadlessSurfaceEXT( const VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Instance::createHeadlessSurfaceEXT( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createHeadlessSurfaceEXT" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createHeadlessSurfaceEXTUnique( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createHeadlessSurfaceEXTUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - -#ifdef VK_USE_PLATFORM_IOS_MVK - template - VULKAN_HPP_INLINE Result Instance::createIOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Instance::createIOSSurfaceMVK( const IOSSurfaceCreateInfoMVK & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createIOSSurfaceMVK" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createIOSSurfaceMVKUnique( const IOSSurfaceCreateInfoMVK & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createIOSSurfaceMVKUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_IOS_MVK*/ - -#ifdef VK_USE_PLATFORM_FUCHSIA - template - VULKAN_HPP_INLINE Result Instance::createImagePipeSurfaceFUCHSIA( const VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Instance::createImagePipeSurfaceFUCHSIA( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createImagePipeSurfaceFUCHSIA" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createImagePipeSurfaceFUCHSIAUnique( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createImagePipeSurfaceFUCHSIAUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_FUCHSIA*/ - -#ifdef VK_USE_PLATFORM_MACOS_MVK - template - VULKAN_HPP_INLINE Result Instance::createMacOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Instance::createMacOSSurfaceMVK( const MacOSSurfaceCreateInfoMVK & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMacOSSurfaceMVK" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createMacOSSurfaceMVKUnique( const MacOSSurfaceCreateInfoMVK & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMacOSSurfaceMVKUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_MACOS_MVK*/ - -#ifdef VK_USE_PLATFORM_METAL_EXT - template - VULKAN_HPP_INLINE Result Instance::createMetalSurfaceEXT( const VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Instance::createMetalSurfaceEXT( const MetalSurfaceCreateInfoEXT & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMetalSurfaceEXT" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createMetalSurfaceEXTUnique( const MetalSurfaceCreateInfoEXT & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMetalSurfaceEXTUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_METAL_EXT*/ - -#ifdef VK_USE_PLATFORM_GGP - template - VULKAN_HPP_INLINE Result Instance::createStreamDescriptorSurfaceGGP( const VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Instance::createStreamDescriptorSurfaceGGP( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createStreamDescriptorSurfaceGGP" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createStreamDescriptorSurfaceGGPUnique( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createStreamDescriptorSurfaceGGPUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_GGP*/ - -#ifdef VK_USE_PLATFORM_VI_NN - template - VULKAN_HPP_INLINE Result Instance::createViSurfaceNN( const VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Instance::createViSurfaceNN( const ViSurfaceCreateInfoNN & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createViSurfaceNN" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createViSurfaceNNUnique( const ViSurfaceCreateInfoNN & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createViSurfaceNNUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_VI_NN*/ - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - template - VULKAN_HPP_INLINE Result Instance::createWaylandSurfaceKHR( const VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Instance::createWaylandSurfaceKHR( const WaylandSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWaylandSurfaceKHR" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createWaylandSurfaceKHRUnique( const WaylandSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWaylandSurfaceKHRUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_INLINE Result Instance::createWin32SurfaceKHR( const VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Instance::createWin32SurfaceKHR( const Win32SurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWin32SurfaceKHR" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createWin32SurfaceKHRUnique( const Win32SurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWin32SurfaceKHRUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_XCB_KHR - template - VULKAN_HPP_INLINE Result Instance::createXcbSurfaceKHR( const VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Instance::createXcbSurfaceKHR( const XcbSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXcbSurfaceKHR" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createXcbSurfaceKHRUnique( const XcbSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXcbSurfaceKHRUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XCB_KHR*/ - -#ifdef VK_USE_PLATFORM_XLIB_KHR - template - VULKAN_HPP_INLINE Result Instance::createXlibSurfaceKHR( const VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Instance::createXlibSurfaceKHR( const XlibSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXlibSurfaceKHR" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createXlibSurfaceKHRUnique( const XlibSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXlibSurfaceKHRUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - - template - 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 char* pLayerPrefix, const char* pMessage, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkDebugReportMessageEXT( m_instance, static_cast( flags ), static_cast( objectType ), object, location, messageCode, pLayerPrefix, pMessage ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - 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, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( layerPrefix.size() == message.size() ); -#else - if ( layerPrefix.size() != message.size() ) + enum { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkInstance::debugReportMessageEXT: layerPrefix.size() != message.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - d.vkDebugReportMessageEXT( m_instance, static_cast( flags ), static_cast( objectType ), object, location, messageCode, layerPrefix.c_str(), message.c_str() ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Instance::destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; + template <> + struct StructExtends { - d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast( callback ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast( callback ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast( callback ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast( callback ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Instance::destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast( messenger ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast( messenger ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast( messenger ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast( messenger ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Instance::destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkDestroyInstance( m_instance, reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::destroy( Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkDestroyInstance( m_instance, reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkDestroySurfaceKHR( m_instance, static_cast( surface ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkDestroySurfaceKHR( m_instance, static_cast( surface ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkDestroySurfaceKHR( m_instance, static_cast( surface ), reinterpret_cast( pAllocator ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional allocator, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkDestroySurfaceKHR( m_instance, static_cast( surface ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDeviceGroups( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkEnumeratePhysicalDeviceGroups( m_instance, pPhysicalDeviceGroupCount, reinterpret_cast( pPhysicalDeviceGroupProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::enumeratePhysicalDeviceGroups(Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector physicalDeviceGroupProperties; - uint32_t physicalDeviceGroupCount; - Result result; - do + enum { - result = static_cast( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount ) - { - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - result = static_cast( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, reinterpret_cast( physicalDeviceGroupProperties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() ); - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - } - return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroups" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::enumeratePhysicalDeviceGroups(Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; + template <> + struct StructExtends { - std::vector physicalDeviceGroupProperties( vectorAllocator ); - uint32_t physicalDeviceGroupCount; - Result result; - do + enum { - result = static_cast( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount ) - { - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - result = static_cast( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, reinterpret_cast( physicalDeviceGroupProperties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() ); - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - } - return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroups" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDeviceGroupsKHR( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, pPhysicalDeviceGroupCount, reinterpret_cast( pPhysicalDeviceGroupProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::enumeratePhysicalDeviceGroupsKHR(Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector physicalDeviceGroupProperties; - uint32_t physicalDeviceGroupCount; - Result result; - do + enum { - result = static_cast( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount ) - { - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - result = static_cast( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, reinterpret_cast( physicalDeviceGroupProperties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() ); - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - } - return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroupsKHR" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::enumeratePhysicalDeviceGroupsKHR(Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; + template <> + struct StructExtends { - std::vector physicalDeviceGroupProperties( vectorAllocator ); - uint32_t physicalDeviceGroupCount; - Result result; - do + enum { - result = static_cast( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount ) - { - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - result = static_cast( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, reinterpret_cast( physicalDeviceGroupProperties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() ); - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - } - return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroupsKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDevices( uint32_t* pPhysicalDeviceCount, VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkEnumeratePhysicalDevices( m_instance, pPhysicalDeviceCount, reinterpret_cast( pPhysicalDevices ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::enumeratePhysicalDevices(Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector physicalDevices; - uint32_t physicalDeviceCount; - Result result; - do + enum { - result = static_cast( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && physicalDeviceCount ) - { - physicalDevices.resize( physicalDeviceCount ); - result = static_cast( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast( physicalDevices.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() ); - physicalDevices.resize( physicalDeviceCount ); - } - return createResultValue( result, physicalDevices, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDevices" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::enumeratePhysicalDevices(Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; + template <> + struct StructExtends { - std::vector physicalDevices( vectorAllocator ); - uint32_t physicalDeviceCount; - Result result; - do + enum { - result = static_cast( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && physicalDeviceCount ) - { - physicalDevices.resize( physicalDeviceCount ); - result = static_cast( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast( physicalDevices.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() ); - physicalDevices.resize( physicalDeviceCount ); - } - return createResultValue( result, physicalDevices, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDevices" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const char* pName, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; + template <> + struct StructExtends { - return d.vkGetInstanceProcAddr( m_instance, pName ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const std::string & name, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return d.vkGetInstanceProcAddr( m_instance, name.c_str() ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Instance::submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT* pCallbackData, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkSubmitDebugUtilsMessageEXT( m_instance, static_cast( messageSeverity ), static_cast( messageTypes ), reinterpret_cast( pCallbackData ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, const DebugUtilsMessengerCallbackDataEXT & callbackData, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkSubmitDebugUtilsMessageEXT( m_instance, static_cast( messageSeverity ), static_cast( messageTypes ), reinterpret_cast( &callbackData ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - template - VULKAN_HPP_INLINE Result PhysicalDevice::acquireXlibDisplayEXT( Display* dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkAcquireXlibDisplayEXT( m_physicalDevice, dpy, static_cast( display ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::acquireXlibDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - Display dpy; - Result result = static_cast( d.vkAcquireXlibDisplayEXT( m_physicalDevice, &dpy, static_cast( display ) ) ); - return createResultValue( result, dpy, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::acquireXlibDisplayEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::createDevice( const VULKAN_HPP_NAMESPACE::DeviceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Device* pDevice, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkCreateDevice( m_physicalDevice, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pDevice ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::createDevice( const DeviceCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::Device device; - Result result = static_cast( d.vkCreateDevice( m_physicalDevice, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &device ) ) ); - return createResultValue( result, device, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::createDevice" ); - } -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::createDeviceUnique( const DeviceCreateInfo & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::Device device; - Result result = static_cast( d.vkCreateDevice( m_physicalDevice, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &device ) ) ); - - ObjectDestroy deleter( allocator, d ); - return createResultValue( result, device, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::createDeviceUnique", deleter ); - } -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::createDisplayModeKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DisplayModeKHR* pMode, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkCreateDisplayModeKHR( m_physicalDevice, static_cast( display ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pMode ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::createDisplayModeKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayModeCreateInfoKHR & createInfo, Optional allocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::DisplayModeKHR mode; - Result result = static_cast( d.vkCreateDisplayModeKHR( m_physicalDevice, static_cast( display ), reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &mode ) ) ); - return createResultValue( result, mode, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::createDisplayModeKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::enumerateDeviceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::ExtensionProperties* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, pLayerName, pPropertyCount, reinterpret_cast( pProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::enumerateDeviceExtensionProperties( Optional layerName, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector properties; - uint32_t propertyCount; - Result result; - do + enum { - result = static_cast( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceExtensionProperties" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::enumerateDeviceExtensionProperties( Optional layerName, Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; + template <> + struct StructExtends { - std::vector properties( vectorAllocator ); - uint32_t propertyCount; - Result result; - do + enum { - result = static_cast( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceExtensionProperties" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::enumerateDeviceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, pPropertyCount, reinterpret_cast( pProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::enumerateDeviceLayerProperties(Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector properties; - uint32_t propertyCount; - Result result; - do + enum { - result = static_cast( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceLayerProperties" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::enumerateDeviceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; + template <> + struct StructExtends { - std::vector properties( vectorAllocator ); - uint32_t propertyCount; - Result result; - do + enum { - result = static_cast( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceLayerProperties" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, uint32_t* pCounterCount, VULKAN_HPP_NAMESPACE::PerformanceCounterKHR* pCounters, VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR* pCounterDescriptions, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, pCounterCount, reinterpret_cast( pCounters ), reinterpret_cast( pCounterDescriptions ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, ArrayProxy counters, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector counterDescriptions; - uint32_t counterCount; - Result result; - do + enum { - result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast( counters.data() ), nullptr ) ); - if ( ( result == Result::eSuccess ) && counterCount ) - { - counterDescriptions.resize( counterCount ); - result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast( counters.data() ), reinterpret_cast( counterDescriptions.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( counterCount <= counterDescriptions.size() ); - counterDescriptions.resize( counterCount ); - } - return createResultValue( result, counterDescriptions, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, ArrayProxy counters, Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; + template <> + struct StructExtends { - std::vector counterDescriptions( vectorAllocator ); - uint32_t counterCount; - Result result; - do + enum { - result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast( counters.data() ), nullptr ) ); - if ( ( result == Result::eSuccess ) && counterCount ) - { - counterDescriptions.resize( counterCount ); - result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast( counters.data() ), reinterpret_cast( counterDescriptions.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( counterCount <= counterDescriptions.size() ); - counterDescriptions.resize( counterCount ); - } - return createResultValue( result, counterDescriptions, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast( display ), pPropertyCount, reinterpret_cast( pProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector properties; - uint32_t propertyCount; - Result result; - do + enum { - result = static_cast( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast( display ), &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast( display ), &propertyCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModeProperties2KHR" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; + template <> + struct StructExtends { - std::vector properties( vectorAllocator ); - uint32_t propertyCount; - Result result; - do + enum { - result = static_cast( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast( display ), &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast( display ), &propertyCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModeProperties2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast( display ), pPropertyCount, reinterpret_cast( pProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector properties; - uint32_t propertyCount; - Result result; - do + enum { - result = static_cast( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast( display ), &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast( display ), &propertyCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModePropertiesKHR" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; + template <> + struct StructExtends { - std::vector properties( vectorAllocator ); - uint32_t propertyCount; - Result result; - do + enum { - result = static_cast( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast( display ), &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast( display ), &propertyCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModePropertiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneCapabilities2KHR( const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR* pDisplayPlaneInfo, VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR* pCapabilities, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + template <> + struct StructExtends { - return static_cast( d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice, reinterpret_cast( pDisplayPlaneInfo ), reinterpret_cast( pCapabilities ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR capabilities; - Result result = static_cast( d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice, reinterpret_cast( &displayPlaneInfo ), reinterpret_cast( &capabilities ) ) ); - return createResultValue( result, capabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneCapabilities2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, uint32_t planeIndex, VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR* pCapabilities, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice, static_cast( mode ), planeIndex, reinterpret_cast( pCapabilities ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, uint32_t planeIndex, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities; - Result result = static_cast( d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice, static_cast( mode ), planeIndex, reinterpret_cast( &capabilities ) ) ); - return createResultValue( result, capabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneCapabilitiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, uint32_t* pDisplayCount, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplays, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, pDisplayCount, reinterpret_cast( pDisplays ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector displays; - uint32_t displayCount; - Result result; - do + enum { - result = static_cast( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && displayCount ) - { - displays.resize( displayCount ); - result = static_cast( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast( displays.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( displayCount <= displays.size() ); - displays.resize( displayCount ); - } - return createResultValue( result, displays, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; + template <> + struct StructExtends { - std::vector displays( vectorAllocator ); - uint32_t displayCount; - Result result; - do + enum { - result = static_cast( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && displayCount ) - { - displays.resize( displayCount ); - result = static_cast( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast( displays.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( displayCount <= displays.size() ); - displays.resize( displayCount ); - } - return createResultValue( result, displays, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::getCalibrateableTimeDomainsEXT( uint32_t* pTimeDomainCount, VULKAN_HPP_NAMESPACE::TimeDomainEXT* pTimeDomains, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, pTimeDomainCount, reinterpret_cast( pTimeDomains ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getCalibrateableTimeDomainsEXT(Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector timeDomains; - uint32_t timeDomainCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && timeDomainCount ) - { - timeDomains.resize( timeDomainCount ); - result = static_cast( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast( timeDomains.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() ); - timeDomains.resize( timeDomainCount ); - } - return createResultValue( result, timeDomains, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCalibrateableTimeDomainsEXT" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getCalibrateableTimeDomainsEXT(Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; + template <> + struct StructExtends { - std::vector timeDomains( vectorAllocator ); - uint32_t timeDomainCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && timeDomainCount ) - { - timeDomains.resize( timeDomainCount ); - result = static_cast( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast( timeDomains.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() ); - timeDomains.resize( timeDomainCount ); - } - return createResultValue( result, timeDomains, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCalibrateableTimeDomainsEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::getCooperativeMatrixPropertiesNV( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, pPropertyCount, reinterpret_cast( pProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getCooperativeMatrixPropertiesNV(Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector properties; - uint32_t propertyCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCooperativeMatrixPropertiesNV" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getCooperativeMatrixPropertiesNV(Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; + template <> + struct StructExtends { - std::vector properties( vectorAllocator ); - uint32_t propertyCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCooperativeMatrixPropertiesNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, pPropertyCount, reinterpret_cast( pProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPlaneProperties2KHR(Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector properties; - uint32_t propertyCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneProperties2KHR" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPlaneProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; + template <> + struct StructExtends { - std::vector properties( vectorAllocator ); - uint32_t propertyCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneProperties2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlanePropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, pPropertyCount, reinterpret_cast( pProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPlanePropertiesKHR(Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector properties; - uint32_t propertyCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlanePropertiesKHR" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPlanePropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; + template <> + struct StructExtends { - std::vector properties( vectorAllocator ); - uint32_t propertyCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlanePropertiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayProperties2KHR* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, pPropertyCount, reinterpret_cast( pProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayProperties2KHR(Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector properties; - uint32_t propertyCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayProperties2KHR" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; + template <> + struct StructExtends { - std::vector properties( vectorAllocator ); - uint32_t propertyCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayProperties2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, pPropertyCount, reinterpret_cast( pProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPropertiesKHR(Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector properties; - uint32_t propertyCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPropertiesKHR" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; + template <> + struct StructExtends { - std::vector properties( vectorAllocator ); - uint32_t propertyCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPropertiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceExternalBufferProperties( m_physicalDevice, reinterpret_cast( pExternalBufferInfo ), reinterpret_cast( pExternalBufferProperties ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties PhysicalDevice::getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties; - d.vkGetPhysicalDeviceExternalBufferProperties( m_physicalDevice, reinterpret_cast( &externalBufferInfo ), reinterpret_cast( &externalBufferProperties ) ); - return externalBufferProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( m_physicalDevice, reinterpret_cast( pExternalBufferInfo ), reinterpret_cast( pExternalBufferProperties ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties PhysicalDevice::getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties; - d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( m_physicalDevice, reinterpret_cast( &externalBufferInfo ), reinterpret_cast( &externalBufferProperties ) ); - return externalBufferProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getExternalFenceProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceExternalFenceProperties( m_physicalDevice, reinterpret_cast( pExternalFenceInfo ), reinterpret_cast( pExternalFenceProperties ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties PhysicalDevice::getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties; - d.vkGetPhysicalDeviceExternalFenceProperties( m_physicalDevice, reinterpret_cast( &externalFenceInfo ), reinterpret_cast( &externalFenceProperties ) ); - return externalFenceProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getExternalFencePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceExternalFencePropertiesKHR( m_physicalDevice, reinterpret_cast( pExternalFenceInfo ), reinterpret_cast( pExternalFenceProperties ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties PhysicalDevice::getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties; - d.vkGetPhysicalDeviceExternalFencePropertiesKHR( m_physicalDevice, reinterpret_cast( &externalFenceInfo ), reinterpret_cast( &externalFenceProperties ) ); - return externalFenceProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result 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, VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV* pExternalImageFormatProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceExternalImageFormatPropertiesNV( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( tiling ), static_cast( usage ), static_cast( flags ), static_cast( externalHandleType ), reinterpret_cast( pExternalImageFormatProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type 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, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV externalImageFormatProperties; - Result result = static_cast( d.vkGetPhysicalDeviceExternalImageFormatPropertiesNV( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( tiling ), static_cast( usage ), static_cast( flags ), static_cast( externalHandleType ), reinterpret_cast( &externalImageFormatProperties ) ) ); - return createResultValue( result, externalImageFormatProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getExternalImageFormatPropertiesNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getExternalSemaphoreProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceExternalSemaphoreProperties( m_physicalDevice, reinterpret_cast( pExternalSemaphoreInfo ), reinterpret_cast( pExternalSemaphoreProperties ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties; - d.vkGetPhysicalDeviceExternalSemaphoreProperties( m_physicalDevice, reinterpret_cast( &externalSemaphoreInfo ), reinterpret_cast( &externalSemaphoreProperties ) ); - return externalSemaphoreProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getExternalSemaphorePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( m_physicalDevice, reinterpret_cast( pExternalSemaphoreInfo ), reinterpret_cast( pExternalSemaphoreProperties ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphorePropertiesKHR( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties; - d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( m_physicalDevice, reinterpret_cast( &externalSemaphoreInfo ), reinterpret_cast( &externalSemaphoreProperties ) ); - return externalSemaphoreProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pFeatures, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast( pFeatures ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures PhysicalDevice::getFeatures(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features; - d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast( &features ) ); - return features; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast( pFeatures ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features; - d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast( &features ) ); - return features; - } - template - VULKAN_HPP_INLINE StructureChain PhysicalDevice::getFeatures2(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2& features = structureChain.template get(); - d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast( &features ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast( pFeatures ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2KHR(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features; - d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast( &features ) ); - return features; - } - template - VULKAN_HPP_INLINE StructureChain PhysicalDevice::getFeatures2KHR(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2& features = structureChain.template get(); - d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast( &features ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties* pFormatProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast( format ), reinterpret_cast( pFormatProperties ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::FormatProperties formatProperties; - d.vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast( format ), reinterpret_cast( &formatProperties ) ); - return formatProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast( format ), reinterpret_cast( pFormatProperties ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2 PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties; - d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast( format ), reinterpret_cast( &formatProperties ) ); - return formatProperties; - } - template - VULKAN_HPP_INLINE StructureChain PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::FormatProperties2& formatProperties = structureChain.template get(); - d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast( format ), reinterpret_cast( &formatProperties ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast( format ), reinterpret_cast( pFormatProperties ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2 PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties; - d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast( format ), reinterpret_cast( &formatProperties ) ); - return formatProperties; - } - template - VULKAN_HPP_INLINE StructureChain PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::FormatProperties2& formatProperties = structureChain.template get(); - d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast( format ), reinterpret_cast( &formatProperties ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getGeneratedCommandsPropertiesNVX( VULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsFeaturesNVX* pFeatures, VULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsLimitsNVX* pLimits, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( m_physicalDevice, reinterpret_cast( pFeatures ), reinterpret_cast( pLimits ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsLimitsNVX PhysicalDevice::getGeneratedCommandsPropertiesNVX( DeviceGeneratedCommandsFeaturesNVX & features, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::DeviceGeneratedCommandsLimitsNVX limits; - d.vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( m_physicalDevice, reinterpret_cast( &features ), reinterpret_cast( &limits ) ); - return limits; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result 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, VULKAN_HPP_NAMESPACE::ImageFormatProperties* pImageFormatProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( tiling ), static_cast( usage ), static_cast( flags ), reinterpret_cast( pImageFormatProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type 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, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties; - Result result = static_cast( d.vkGetPhysicalDeviceImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( tiling ), static_cast( usage ), static_cast( flags ), reinterpret_cast( &imageFormatProperties ) ) ); - return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, VULKAN_HPP_NAMESPACE::ImageFormatProperties2* pImageFormatProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast( pImageFormatInfo ), reinterpret_cast( pImageFormatProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties; - Result result = static_cast( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast( &imageFormatInfo ), reinterpret_cast( &imageFormatProperties ) ) ); - return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::ImageFormatProperties2& imageFormatProperties = structureChain.template get(); - Result result = static_cast( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast( &imageFormatInfo ), reinterpret_cast( &imageFormatProperties ) ) ); - return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, VULKAN_HPP_NAMESPACE::ImageFormatProperties2* pImageFormatProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( pImageFormatInfo ), reinterpret_cast( pImageFormatProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties; - Result result = static_cast( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( &imageFormatInfo ), reinterpret_cast( &imageFormatProperties ) ) ); - return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2KHR" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::ImageFormatProperties2& imageFormatProperties = structureChain.template get(); - Result result = static_cast( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( &imageFormatInfo ), reinterpret_cast( &imageFormatProperties ) ) ); - return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties* pMemoryProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast( pMemoryProperties ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties PhysicalDevice::getMemoryProperties(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties; - d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast( &memoryProperties ) ); - return memoryProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast( pMemoryProperties ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 PhysicalDevice::getMemoryProperties2(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties; - d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast( &memoryProperties ) ); - return memoryProperties; - } - template - VULKAN_HPP_INLINE StructureChain PhysicalDevice::getMemoryProperties2(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2& memoryProperties = structureChain.template get(); - d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast( &memoryProperties ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast( pMemoryProperties ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 PhysicalDevice::getMemoryProperties2KHR(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties; - d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast( &memoryProperties ) ); - return memoryProperties; - } - template - VULKAN_HPP_INLINE StructureChain PhysicalDevice::getMemoryProperties2KHR(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2& memoryProperties = structureChain.template get(); - d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast( &memoryProperties ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT* pMultisampleProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceMultisamplePropertiesEXT( m_physicalDevice, static_cast( samples ), reinterpret_cast( pMultisampleProperties ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT multisampleProperties; - d.vkGetPhysicalDeviceMultisamplePropertiesEXT( m_physicalDevice, static_cast( samples ), reinterpret_cast( &multisampleProperties ) ); - return multisampleProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pRectCount, VULKAN_HPP_NAMESPACE::Rect2D* pRects, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast( surface ), pRectCount, reinterpret_cast( pRects ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector rects; - uint32_t rectCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast( surface ), &rectCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && rectCount ) - { - rects.resize( rectCount ); - result = static_cast( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast( surface ), &rectCount, reinterpret_cast( rects.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( rectCount <= rects.size() ); - rects.resize( rectCount ); - } - return createResultValue( result, rects, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getPresentRectanglesKHR" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; + template <> + struct StructExtends { - std::vector rects( vectorAllocator ); - uint32_t rectCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast( surface ), &rectCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && rectCount ) - { - rects.resize( rectCount ); - result = static_cast( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast( surface ), &rectCount, reinterpret_cast( rects.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( rectCount <= rects.size() ); - rects.resize( rectCount ); - } - return createResultValue( result, rects, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getPresentRectanglesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast( pProperties ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties PhysicalDevice::getProperties(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties; - d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast( &properties ) ); - return properties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast( pProperties ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 PhysicalDevice::getProperties2(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties; - d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast( &properties ) ); - return properties; - } - template - VULKAN_HPP_INLINE StructureChain PhysicalDevice::getProperties2(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2& properties = structureChain.template get(); - d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast( &properties ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast( pProperties ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 PhysicalDevice::getProperties2KHR(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties; - d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast( &properties ) ); - return properties; - } - template - VULKAN_HPP_INLINE StructureChain PhysicalDevice::getProperties2KHR(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2& properties = structureChain.template get(); - d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast( &properties ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( m_physicalDevice, reinterpret_cast( pPerformanceQueryCreateInfo ), pNumPasses ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE uint32_t PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - uint32_t numPasses; - d.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( m_physicalDevice, reinterpret_cast( &performanceQueryCreateInfo ), &numPasses ); - return numPasses; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties* pQueueFamilyProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast( pQueueFamilyProperties ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties(Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector queueFamilyProperties; - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - queueFamilyProperties.resize( queueFamilyPropertyCount ); - d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - return queueFamilyProperties; - } - template - VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties(Allocator const& vectorAllocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector queueFamilyProperties( vectorAllocator ); - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - queueFamilyProperties.resize( queueFamilyPropertyCount ); - d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - return queueFamilyProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties2( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast( pQueueFamilyProperties ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2(Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector queueFamilyProperties; - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - queueFamilyProperties.resize( queueFamilyPropertyCount ); - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - return queueFamilyProperties; - } - template - VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector queueFamilyProperties( vectorAllocator ); - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - queueFamilyProperties.resize( queueFamilyPropertyCount ); - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - return queueFamilyProperties; - } - template - VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2(Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector queueFamilyProperties; - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - queueFamilyProperties.resize( queueFamilyPropertyCount ); - std::vector localVector( queueFamilyPropertyCount ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ ) + enum { - localVector[i].pNext = queueFamilyProperties[i].template get().pNext; - } - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( localVector.data() ) ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - queueFamilyProperties[i].template get() = localVector[i]; - } - return queueFamilyProperties; - } - template - VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; + template <> + struct StructExtends { - std::vector queueFamilyProperties( vectorAllocator ); - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - queueFamilyProperties.resize( queueFamilyPropertyCount ); - std::vector localVector( queueFamilyPropertyCount ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ ) + enum { - localVector[i].pNext = queueFamilyProperties[i].template get().pNext; - } - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( localVector.data() ) ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - queueFamilyProperties[i].template get() = localVector[i]; - } - return queueFamilyProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties2KHR( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast( pQueueFamilyProperties ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2KHR(Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector queueFamilyProperties; - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - queueFamilyProperties.resize( queueFamilyPropertyCount ); - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - return queueFamilyProperties; - } - template - VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector queueFamilyProperties( vectorAllocator ); - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - queueFamilyProperties.resize( queueFamilyPropertyCount ); - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - return queueFamilyProperties; - } - template - VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2KHR(Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector queueFamilyProperties; - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - queueFamilyProperties.resize( queueFamilyPropertyCount ); - std::vector localVector( queueFamilyPropertyCount ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ ) + enum { - localVector[i].pNext = queueFamilyProperties[i].template get().pNext; - } - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( localVector.data() ) ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - queueFamilyProperties[i].template get() = localVector[i]; - } - return queueFamilyProperties; - } - template - VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; + template <> + struct StructExtends { - std::vector queueFamilyProperties( vectorAllocator ); - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - queueFamilyProperties.resize( queueFamilyPropertyCount ); - std::vector localVector( queueFamilyPropertyCount ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ ) + enum { - localVector[i].pNext = queueFamilyProperties[i].template get().pNext; - } - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( localVector.data() ) ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount ; i++ ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - queueFamilyProperties[i].template get() = localVector[i]; - } - return queueFamilyProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void 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, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( samples ), static_cast( usage ), static_cast( tiling ), pPropertyCount, reinterpret_cast( pProperties ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE std::vector 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, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector properties; - uint32_t propertyCount; - d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( samples ), static_cast( usage ), static_cast( tiling ), &propertyCount, nullptr ); - properties.resize( propertyCount ); - d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( samples ), static_cast( usage ), static_cast( tiling ), &propertyCount, reinterpret_cast( properties.data() ) ); - return properties; - } - template - VULKAN_HPP_INLINE std::vector 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, Allocator const& vectorAllocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector properties( vectorAllocator ); - uint32_t propertyCount; - d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( samples ), static_cast( usage ), static_cast( tiling ), &propertyCount, nullptr ); - properties.resize( propertyCount ); - d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( samples ), static_cast( usage ), static_cast( tiling ), &propertyCount, reinterpret_cast( properties.data() ) ); - return properties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getSparseImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast( pFormatInfo ), pPropertyCount, reinterpret_cast( pProperties ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE std::vector PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const &d ) const + enum + { + value = true + }; + }; +#if defined( VK_USE_PLATFORM_GGP ) + template <> + struct StructExtends { - std::vector properties; - uint32_t propertyCount; - d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, nullptr ); - properties.resize( propertyCount ); - d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, reinterpret_cast( properties.data() ) ); - return properties; - } - template - VULKAN_HPP_INLINE std::vector PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Allocator const& vectorAllocator, Dispatch const &d ) const + enum + { + value = true + }; + }; +#endif /*VK_USE_PLATFORM_GGP*/ + template <> + struct StructExtends { - std::vector properties( vectorAllocator ); - uint32_t propertyCount; - d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, nullptr ); - properties.resize( propertyCount ); - d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, reinterpret_cast( properties.data() ) ); - return properties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getSparseImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( pFormatInfo ), pPropertyCount, reinterpret_cast( pProperties ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE std::vector PhysicalDevice::getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector properties; - uint32_t propertyCount; - d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, nullptr ); - properties.resize( propertyCount ); - d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, reinterpret_cast( properties.data() ) ); - return properties; - } - template - VULKAN_HPP_INLINE std::vector PhysicalDevice::getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Allocator const& vectorAllocator, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector properties( vectorAllocator ); - uint32_t propertyCount; - d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, nullptr ); - properties.resize( propertyCount ); - d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, reinterpret_cast( properties.data() ) ); - return properties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV( uint32_t* pCombinationCount, VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV* pCombinations, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, pCombinationCount, reinterpret_cast( pCombinations ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV(Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector combinations; - uint32_t combinationCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && combinationCount ) - { - combinations.resize( combinationCount ); - result = static_cast( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, reinterpret_cast( combinations.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( combinationCount <= combinations.size() ); - combinations.resize( combinationCount ); - } - return createResultValue( result, combinations, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV(Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; + template <> + struct StructExtends { - std::vector combinations( vectorAllocator ); - uint32_t combinationCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && combinationCount ) - { - combinations.resize( combinationCount ); - result = static_cast( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, reinterpret_cast( combinations.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( combinationCount <= combinations.size() ); - combinations.resize( combinationCount ); - } - return createResultValue( result, combinations, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT* pSurfaceCapabilities, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT( m_physicalDevice, static_cast( surface ), reinterpret_cast( pSurfaceCapabilities ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT surfaceCapabilities; - Result result = static_cast( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT( m_physicalDevice, static_cast( surface ), reinterpret_cast( &surfaceCapabilities ) ) ); - return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilities2EXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR* pSurfaceCapabilities, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast( pSurfaceInfo ), reinterpret_cast( pSurfaceCapabilities ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR surfaceCapabilities; - Result result = static_cast( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast( &surfaceInfo ), reinterpret_cast( &surfaceCapabilities ) ) ); - return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilities2KHR" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR& surfaceCapabilities = structureChain.template get(); - Result result = static_cast( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast( &surfaceInfo ), reinterpret_cast( &surfaceCapabilities ) ) ); - return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilities2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR* pSurfaceCapabilities, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( m_physicalDevice, static_cast( surface ), reinterpret_cast( pSurfaceCapabilities ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities; - Result result = static_cast( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( m_physicalDevice, static_cast( surface ), reinterpret_cast( &surfaceCapabilities ) ) ); - return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilitiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR* pSurfaceFormats, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast( pSurfaceInfo ), pSurfaceFormatCount, reinterpret_cast( pSurfaceFormats ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector surfaceFormats; - uint32_t surfaceFormatCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &surfaceFormatCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && surfaceFormatCount ) - { - surfaceFormats.resize( surfaceFormatCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &surfaceFormatCount, reinterpret_cast( surfaceFormats.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); - surfaceFormats.resize( surfaceFormatCount ); - } - return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormats2KHR" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector surfaceFormats( vectorAllocator ); - uint32_t surfaceFormatCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &surfaceFormatCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && surfaceFormatCount ) - { - surfaceFormats.resize( surfaceFormatCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &surfaceFormatCount, reinterpret_cast( surfaceFormats.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + enum { - VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); - surfaceFormats.resize( surfaceFormatCount ); - } - return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormats2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pSurfaceFormatCount, VULKAN_HPP_NAMESPACE::SurfaceFormatKHR* pSurfaceFormats, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast( surface ), pSurfaceFormatCount, reinterpret_cast( pSurfaceFormats ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector surfaceFormats; - uint32_t surfaceFormatCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast( surface ), &surfaceFormatCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && surfaceFormatCount ) - { - surfaceFormats.resize( surfaceFormatCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast( surface ), &surfaceFormatCount, reinterpret_cast( surfaceFormats.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); - surfaceFormats.resize( surfaceFormatCount ); - } - return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormatsKHR" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; + template <> + struct StructExtends { - std::vector surfaceFormats( vectorAllocator ); - uint32_t surfaceFormatCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast( surface ), &surfaceFormatCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && surfaceFormatCount ) - { - surfaceFormats.resize( surfaceFormatCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast( surface ), &surfaceFormatCount, reinterpret_cast( surfaceFormats.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); - surfaceFormats.resize( surfaceFormatCount ); - } - return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormatsKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_INLINE Result PhysicalDevice::getSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VULKAN_HPP_NAMESPACE::PresentModeKHR* pPresentModes, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast( pSurfaceInfo ), pPresentModeCount, reinterpret_cast( pPresentModes ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const + enum + { + value = true + }; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template <> + struct StructExtends { - std::vector presentModes; - uint32_t presentModeCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &presentModeCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && presentModeCount ) - { - presentModes.resize( presentModeCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &presentModeCount, reinterpret_cast( presentModes.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); - presentModes.resize( presentModeCount ); - } - return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModes2EXT" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template <> + struct StructExtends { - std::vector presentModes( vectorAllocator ); - uint32_t presentModeCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &presentModeCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && presentModeCount ) - { - presentModes.resize( presentModeCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &presentModeCount, reinterpret_cast( presentModes.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); - presentModes.resize( presentModeCount ); - } - return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModes2EXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + value = true + }; + }; #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pPresentModeCount, VULKAN_HPP_NAMESPACE::PresentModeKHR* pPresentModes, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast( surface ), pPresentModeCount, reinterpret_cast( pPresentModes ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - std::vector presentModes; - uint32_t presentModeCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast( surface ), &presentModeCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && presentModeCount ) - { - presentModes.resize( presentModeCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast( surface ), &presentModeCount, reinterpret_cast( presentModes.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); - presentModes.resize( presentModeCount ); - } - return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModesKHR" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; + template <> + struct StructExtends { - std::vector presentModes( vectorAllocator ); - uint32_t presentModeCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast( surface ), &presentModeCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && presentModeCount ) - { - presentModes.resize( presentModeCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast( surface ), &presentModeCount, reinterpret_cast( presentModes.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); - presentModes.resize( presentModeCount ); - } - return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::Bool32* pSupported, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice, queueFamilyIndex, static_cast( surface ), reinterpret_cast( pSupported ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::Bool32 supported; - Result result = static_cast( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice, queueFamilyIndex, static_cast( surface ), reinterpret_cast( &supported ) ) ); - return createResultValue( result, supported, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceSupportKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result PhysicalDevice::getToolPropertiesEXT( uint32_t* pToolCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT* pToolProperties, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, pToolCount, reinterpret_cast( pToolProperties ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getToolPropertiesEXT(Dispatch const &d ) const + enum + { + value = true + }; + }; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - std::vector toolProperties; - uint32_t toolCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && toolCount ) - { - toolProperties.resize( toolCount ); - result = static_cast( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, reinterpret_cast( toolProperties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() ); - toolProperties.resize( toolCount ); - } - return createResultValue( result, toolProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getToolPropertiesEXT" ); - } - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getToolPropertiesEXT(Allocator const& vectorAllocator, Dispatch const &d ) const + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - std::vector toolProperties( vectorAllocator ); - uint32_t toolCount; - Result result; - do + enum { - result = static_cast( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && toolCount ) - { - toolProperties.resize( toolCount ); - result = static_cast( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, reinterpret_cast( toolProperties.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends + { + enum { - VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() ); - toolProperties.resize( toolCount ); - } - return createResultValue( result, toolProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getToolPropertiesEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display* display, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, display ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - return d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &display ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceWin32PresentationSupportKHR( m_physicalDevice, queueFamilyIndex ) ); - } -#else - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - return d.vkGetPhysicalDeviceWin32PresentationSupportKHR( m_physicalDevice, queueFamilyIndex ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_XCB_KHR - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, connection, visual_id ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t & connection, xcb_visualid_t visual_id, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - return d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &connection, visual_id ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XCB_KHR*/ - -#ifdef VK_USE_PLATFORM_XLIB_KHR - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display* dpy, VisualID visualID, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - return static_cast( d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, dpy, visualID ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - return d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &dpy, visualID ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - template - VULKAN_HPP_INLINE Result PhysicalDevice::getRandROutputDisplayEXT( Display* dpy, RROutput rrOutput, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplay, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - return static_cast( d.vkGetRandROutputDisplayEXT( m_physicalDevice, dpy, rrOutput, reinterpret_cast( pDisplay ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput, Dispatch const &d ) const + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - VULKAN_HPP_NAMESPACE::DisplayKHR display; - Result result = static_cast( d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast( &display ) ) ); - return createResultValue( result, display, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getRandROutputDisplayEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result PhysicalDevice::releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - return static_cast( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast( display ) ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const &d ) const + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - Result result = static_cast( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast( display ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::releaseDisplayEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Queue::getCheckpointDataNV( uint32_t* pCheckpointDataCount, VULKAN_HPP_NAMESPACE::CheckpointDataNV* pCheckpointData, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - d.vkGetQueueCheckpointDataNV( m_queue, pCheckpointDataCount, reinterpret_cast( pCheckpointData ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE std::vector Queue::getCheckpointDataNV(Dispatch const &d ) const + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - std::vector checkpointData; - uint32_t checkpointDataCount; - d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr ); - checkpointData.resize( checkpointDataCount ); - d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, reinterpret_cast( checkpointData.data() ) ); - return checkpointData; - } - template - VULKAN_HPP_INLINE std::vector Queue::getCheckpointDataNV(Allocator const& vectorAllocator, Dispatch const &d ) const + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - std::vector checkpointData( vectorAllocator ); - uint32_t checkpointDataCount; - d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr ); - checkpointData.resize( checkpointDataCount ); - d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, reinterpret_cast( checkpointData.data() ) ); - return checkpointData; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast( pLabelInfo ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast( &labelInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result Queue::bindSparse( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindSparseInfo* pBindInfo, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - return static_cast( d.vkQueueBindSparse( m_queue, bindInfoCount, reinterpret_cast( pBindInfo ), static_cast( fence ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Queue::bindSparse( ArrayProxy bindInfo, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d ) const + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - Result result = static_cast( d.vkQueueBindSparse( m_queue, bindInfo.size() , reinterpret_cast( bindInfo.data() ), static_cast( fence ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Queue::bindSparse" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Queue::endDebugUtilsLabelEXT(Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - d.vkQueueEndDebugUtilsLabelEXT( m_queue ); - } -#else - template - VULKAN_HPP_INLINE void Queue::endDebugUtilsLabelEXT(Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkQueueEndDebugUtilsLabelEXT( m_queue ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast( pLabelInfo ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d ) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast( &labelInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result Queue::presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR* pPresentInfo, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkQueuePresentKHR( m_queue, reinterpret_cast( pPresentInfo ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Queue::presentKHR( const PresentInfoKHR & presentInfo, Dispatch const &d ) const + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - Result result = static_cast( d.vkQueuePresentKHR( m_queue, reinterpret_cast( &presentInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Queue::presentKHR", { Result::eSuccess, Result::eSuboptimalKHR } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkQueueSetPerformanceConfigurationINTEL( m_queue, static_cast( configuration ) ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - Result result = static_cast( d.vkQueueSetPerformanceConfigurationINTEL( m_queue, static_cast( configuration ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Queue::setPerformanceConfigurationINTEL" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE Result Queue::submit( uint32_t submitCount, const VULKAN_HPP_NAMESPACE::SubmitInfo* pSubmits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; + template <> + struct StructExtends { - return static_cast( d.vkQueueSubmit( m_queue, submitCount, reinterpret_cast( pSubmits ), static_cast( fence ) ) ); - } -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Queue::submit( ArrayProxy submits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const &d ) const + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends { - Result result = static_cast( d.vkQueueSubmit( m_queue, submits.size() , reinterpret_cast( submits.data() ), static_cast( fence ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Queue::submit" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Queue::waitIdle(Dispatch const &d) const VULKAN_HPP_NOEXCEPT + enum + { + value = true + }; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template <> + struct StructExtends { - return static_cast( d.vkQueueWaitIdle( m_queue ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type Queue::waitIdle(Dispatch const &d ) const + enum + { + value = true + }; + }; + template <> + struct StructExtends { - Result result = static_cast( d.vkQueueWaitIdle( m_queue ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Queue::waitIdle" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template <> struct isStructureChainValid{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template <> struct isStructureChainValid{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct isStructureChainValid{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct isStructureChainValid{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct isStructureChainValid{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct isStructureChainValid{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - template <> struct isStructureChainValid{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct isStructureChainValid{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template <> struct isStructureChainValid{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct isStructureChainValid{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct isStructureChainValid{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_GGP - template <> struct isStructureChainValid{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_GGP*/ - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct isStructureChainValid{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct isStructureChainValid{ enum { value = true }; }; + enum + { + value = true + }; + }; #endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct isStructureChainValid{ enum { value = true }; }; +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - template <> struct isStructureChainValid{ enum { value = true }; }; - template <> struct isStructureChainValid{ enum { value = true }; }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL class DynamicLoader { public: -#ifdef VULKAN_HPP_NO_EXCEPTIONS - DynamicLoader() VULKAN_HPP_NOEXCEPT : m_success( false ) -#else - DynamicLoader() : m_success( false ) -#endif +# ifdef VULKAN_HPP_NO_EXCEPTIONS + DynamicLoader( std::string const & vulkanLibraryName = {} ) VULKAN_HPP_NOEXCEPT +# else + DynamicLoader( std::string const & vulkanLibraryName = {} ) +# endif { -#if defined(__linux__) - m_library = dlopen( "libvulkan.so", RTLD_NOW | RTLD_LOCAL ); -#elif defined(__APPLE__) - m_library = dlopen( "libvulkan.dylib", RTLD_NOW | RTLD_LOCAL ); -#elif defined(_WIN32) - m_library = LoadLibrary( TEXT( "vulkan-1.dll" ) ); -#else - assert( false && "unsupported platform" ); -#endif + if ( !vulkanLibraryName.empty() ) + { +# if defined( __linux__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ ) + m_library = dlopen( vulkanLibraryName.c_str(), RTLD_NOW | RTLD_LOCAL ); +# elif defined( _WIN32 ) + m_library = ::LoadLibraryA( vulkanLibraryName.c_str() ); +# else +# error unsupported platform +# endif + } + else + { +# if defined( __linux__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ ) + m_library = dlopen( "libvulkan.so", RTLD_NOW | RTLD_LOCAL ); + if ( m_library == nullptr ) + { + m_library = dlopen( "libvulkan.so.1", RTLD_NOW | RTLD_LOCAL ); + } +# elif defined( __APPLE__ ) + m_library = dlopen( "libvulkan.dylib", RTLD_NOW | RTLD_LOCAL ); +# elif defined( _WIN32 ) + m_library = ::LoadLibraryA( "vulkan-1.dll" ); +# else +# error unsupported platform +# endif + } - m_success = m_library != 0; -#ifndef VULKAN_HPP_NO_EXCEPTIONS - if ( !m_success ) +# ifndef VULKAN_HPP_NO_EXCEPTIONS + if ( m_library == nullptr ) { - // NOTE there should be an InitializationFailedError, but msvc insists on the symbol does not exist within the scope of this function. + // NOTE there should be an InitializationFailedError, but msvc insists on the symbol does not exist within the + // scope of this function. throw std::runtime_error( "Failed to load vulkan library!" ); } -#endif +# endif + } + + DynamicLoader( DynamicLoader const & ) = delete; + + DynamicLoader( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT : m_library( other.m_library ) + { + other.m_library = nullptr; + } + + DynamicLoader & operator=( DynamicLoader const & ) = delete; + + DynamicLoader & operator=( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT + { + std::swap( m_library, other.m_library ); + return *this; } ~DynamicLoader() VULKAN_HPP_NOEXCEPT { if ( m_library ) { -#if defined(__linux__) || defined(__APPLE__) +# if defined( __linux__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ ) dlclose( m_library ); -#elif defined(_WIN32) - FreeLibrary( m_library ); -#endif +# elif defined( _WIN32 ) + ::FreeLibrary( m_library ); +# else +# error unsupported platform +# endif } } template - T getProcAddress( const char* function ) const VULKAN_HPP_NOEXCEPT + T getProcAddress( const char * function ) const VULKAN_HPP_NOEXCEPT { -#if defined(__linux__) || defined(__APPLE__) +# if defined( __linux__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ ) return (T)dlsym( m_library, function ); -#elif defined(_WIN32) - return (T)GetProcAddress( m_library, function ); -#endif +# elif defined( _WIN32 ) + return ( T )::GetProcAddress( m_library, function ); +# else +# error unsupported platform +# endif } - bool success() const VULKAN_HPP_NOEXCEPT { return m_success; } + bool success() const VULKAN_HPP_NOEXCEPT + { + return m_library != nullptr; + } private: - bool m_success; -#if defined(__linux__) || defined(__APPLE__) - void *m_library; -#elif defined(_WIN32) - HMODULE m_library; -#else -#error unsupported platform -#endif +# if defined( __linux__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ ) + void * m_library; +# elif defined( _WIN32 ) + ::HINSTANCE m_library; +# else +# error unsupported platform +# endif }; #endif class DispatchLoaderDynamic { public: - PFN_vkCreateInstance vkCreateInstance = 0; - PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties = 0; - PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties = 0; - PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion = 0; - PFN_vkBeginCommandBuffer vkBeginCommandBuffer = 0; - PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0; - PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT = 0; - PFN_vkCmdBeginQuery vkCmdBeginQuery = 0; - PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT = 0; - PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass = 0; - PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2 = 0; - PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0; - PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT = 0; - PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets = 0; - PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer = 0; - PFN_vkCmdBindPipeline vkCmdBindPipeline = 0; - PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV = 0; - PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0; - PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0; - PFN_vkCmdBlitImage vkCmdBlitImage = 0; - PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV = 0; - PFN_vkCmdClearAttachments vkCmdClearAttachments = 0; - PFN_vkCmdClearColorImage vkCmdClearColorImage = 0; - PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage = 0; - PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV = 0; - PFN_vkCmdCopyBuffer vkCmdCopyBuffer = 0; - PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = 0; - PFN_vkCmdCopyImage vkCmdCopyImage = 0; - PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer = 0; - PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults = 0; - PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT = 0; - PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT = 0; - PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT = 0; - PFN_vkCmdDispatch vkCmdDispatch = 0; - PFN_vkCmdDispatchBase vkCmdDispatchBase = 0; - PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR = 0; - PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect = 0; - PFN_vkCmdDraw vkCmdDraw = 0; - PFN_vkCmdDrawIndexed vkCmdDrawIndexed = 0; - PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect = 0; - PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount = 0; - PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD = 0; - PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0; - PFN_vkCmdDrawIndirect vkCmdDrawIndirect = 0; - PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT = 0; - PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount = 0; - PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD = 0; - PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR = 0; - PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0; - PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV = 0; - PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV = 0; - PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT = 0; - PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT = 0; - PFN_vkCmdEndQuery vkCmdEndQuery = 0; - PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT = 0; - PFN_vkCmdEndRenderPass vkCmdEndRenderPass = 0; - PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2 = 0; - PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR = 0; - PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT = 0; - PFN_vkCmdExecuteCommands vkCmdExecuteCommands = 0; - PFN_vkCmdFillBuffer vkCmdFillBuffer = 0; - PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT = 0; - PFN_vkCmdNextSubpass vkCmdNextSubpass = 0; - PFN_vkCmdNextSubpass2 vkCmdNextSubpass2 = 0; - PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR = 0; - PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier = 0; - PFN_vkCmdProcessCommandsNVX vkCmdProcessCommandsNVX = 0; - PFN_vkCmdPushConstants vkCmdPushConstants = 0; - PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR = 0; - PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0; - PFN_vkCmdReserveSpaceForCommandsNVX vkCmdReserveSpaceForCommandsNVX = 0; - PFN_vkCmdResetEvent vkCmdResetEvent = 0; - PFN_vkCmdResetQueryPool vkCmdResetQueryPool = 0; - PFN_vkCmdResolveImage vkCmdResolveImage = 0; - PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants = 0; - PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV = 0; - PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV = 0; - PFN_vkCmdSetDepthBias vkCmdSetDepthBias = 0; - PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds = 0; - PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask = 0; - PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR = 0; - PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0; - PFN_vkCmdSetEvent vkCmdSetEvent = 0; - PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0; - PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0; - PFN_vkCmdSetLineWidth vkCmdSetLineWidth = 0; - PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL = 0; - PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL = 0; - PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL = 0; - PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT = 0; - PFN_vkCmdSetScissor vkCmdSetScissor = 0; - PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask = 0; - PFN_vkCmdSetStencilReference vkCmdSetStencilReference = 0; - PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask = 0; - PFN_vkCmdSetViewport vkCmdSetViewport = 0; - PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0; - PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0; - PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV = 0; - PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer = 0; - PFN_vkCmdWaitEvents vkCmdWaitEvents = 0; - PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV = 0; - PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0; - PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp = 0; - PFN_vkEndCommandBuffer vkEndCommandBuffer = 0; - PFN_vkResetCommandBuffer vkResetCommandBuffer = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR + using PFN_dummy = void ( * )(); + +#if defined( VK_USE_PLATFORM_WIN32_KHR ) PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT = 0; +#else + PFN_dummy placeholder_dont_call_vkAcquireFullScreenExclusiveModeEXT = 0; #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR = 0; - PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR = 0; + PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR = 0; + PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR = 0; PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL = 0; - PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR = 0; - PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers = 0; - PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets = 0; - PFN_vkAllocateMemory vkAllocateMemory = 0; + PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR = 0; +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + PFN_vkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNV = 0; +#else + PFN_dummy placeholder_dont_call_vkAcquireWinrtDisplayNV = 0; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ +#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) + PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT = 0; +#else + PFN_dummy placeholder_dont_call_vkAcquireXlibDisplayEXT = 0; +#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ + PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers = 0; + PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets = 0; + PFN_vkAllocateMemory vkAllocateMemory = 0; + PFN_vkBeginCommandBuffer vkBeginCommandBuffer = 0; PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV = 0; - PFN_vkBindBufferMemory vkBindBufferMemory = 0; - PFN_vkBindBufferMemory2 vkBindBufferMemory2 = 0; - PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0; - PFN_vkBindImageMemory vkBindImageMemory = 0; - PFN_vkBindImageMemory2 vkBindImageMemory2 = 0; - PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR = 0; - PFN_vkCompileDeferredNV vkCompileDeferredNV = 0; - PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV = 0; - PFN_vkCreateBuffer vkCreateBuffer = 0; - PFN_vkCreateBufferView vkCreateBufferView = 0; - PFN_vkCreateCommandPool vkCreateCommandPool = 0; - PFN_vkCreateComputePipelines vkCreateComputePipelines = 0; - PFN_vkCreateDescriptorPool vkCreateDescriptorPool = 0; - PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout = 0; - PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate = 0; + PFN_vkBindBufferMemory vkBindBufferMemory = 0; + PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0; + PFN_vkBindBufferMemory2 vkBindBufferMemory2 = 0; + PFN_vkBindImageMemory vkBindImageMemory = 0; + PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR = 0; + PFN_vkBindImageMemory2 vkBindImageMemory2 = 0; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + PFN_vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkBindVideoSessionMemoryKHR = 0; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR = 0; + PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0; + PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT = 0; + PFN_vkCmdBeginQuery vkCmdBeginQuery = 0; + PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT = 0; + PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass = 0; + PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0; + PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2 = 0; + PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT = 0; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + PFN_vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkCmdBeginVideoCodingKHR = 0; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets = 0; + PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer = 0; + PFN_vkCmdBindPipeline vkCmdBindPipeline = 0; + PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV = 0; + PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV = 0; + PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0; + PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0; + PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT = 0; + PFN_vkCmdBlitImage vkCmdBlitImage = 0; + PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR = 0; + PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV = 0; + PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR = 0; + PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR = 0; + PFN_vkCmdClearAttachments vkCmdClearAttachments = 0; + PFN_vkCmdClearColorImage vkCmdClearColorImage = 0; + PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage = 0; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + PFN_vkCmdControlVideoCodingKHR vkCmdControlVideoCodingKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkCmdControlVideoCodingKHR = 0; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR = 0; + PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV = 0; + PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR = 0; + PFN_vkCmdCopyBuffer vkCmdCopyBuffer = 0; + PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR = 0; + PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = 0; + PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR = 0; + PFN_vkCmdCopyImage vkCmdCopyImage = 0; + PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR = 0; + PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer = 0; + PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR = 0; + PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR = 0; + PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults = 0; + PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT = 0; + PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT = 0; + PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT = 0; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkCmdDecodeVideoKHR = 0; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + PFN_vkCmdDispatch vkCmdDispatch = 0; + PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR = 0; + PFN_vkCmdDispatchBase vkCmdDispatchBase = 0; + PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect = 0; + PFN_vkCmdDraw vkCmdDraw = 0; + PFN_vkCmdDrawIndexed vkCmdDrawIndexed = 0; + PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect = 0; + PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD = 0; + PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0; + PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount = 0; + PFN_vkCmdDrawIndirect vkCmdDrawIndirect = 0; + PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT = 0; + PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD = 0; + PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR = 0; + PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount = 0; + PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0; + PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV = 0; + PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV = 0; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkCmdEncodeVideoKHR = 0; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT = 0; + PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT = 0; + PFN_vkCmdEndQuery vkCmdEndQuery = 0; + PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT = 0; + PFN_vkCmdEndRenderPass vkCmdEndRenderPass = 0; + PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR = 0; + PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2 = 0; + PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT = 0; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + PFN_vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkCmdEndVideoCodingKHR = 0; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + PFN_vkCmdExecuteCommands vkCmdExecuteCommands = 0; + PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV = 0; + PFN_vkCmdFillBuffer vkCmdFillBuffer = 0; + PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT = 0; + PFN_vkCmdNextSubpass vkCmdNextSubpass = 0; + PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR = 0; + PFN_vkCmdNextSubpass2 vkCmdNextSubpass2 = 0; + PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier = 0; + PFN_vkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHR = 0; + PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV = 0; + PFN_vkCmdPushConstants vkCmdPushConstants = 0; + PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR = 0; + PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0; + PFN_vkCmdResetEvent vkCmdResetEvent = 0; + PFN_vkCmdResetEvent2KHR vkCmdResetEvent2KHR = 0; + PFN_vkCmdResetQueryPool vkCmdResetQueryPool = 0; + PFN_vkCmdResolveImage vkCmdResolveImage = 0; + PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR = 0; + PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants = 0; + PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV = 0; + PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV = 0; + PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT = 0; + PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT = 0; + PFN_vkCmdSetDepthBias vkCmdSetDepthBias = 0; + PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT = 0; + PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds = 0; + PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT = 0; + PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT = 0; + PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT = 0; + PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT = 0; + PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR = 0; + PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask = 0; + PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0; + PFN_vkCmdSetEvent vkCmdSetEvent = 0; + PFN_vkCmdSetEvent2KHR vkCmdSetEvent2KHR = 0; + PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0; + PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV = 0; + PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR = 0; + PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT = 0; + PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0; + PFN_vkCmdSetLineWidth vkCmdSetLineWidth = 0; + PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT = 0; + PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT = 0; + PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL = 0; + PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL = 0; + PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL = 0; + PFN_vkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXT = 0; + PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT = 0; + PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT = 0; + PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR = 0; + PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT = 0; + PFN_vkCmdSetScissor vkCmdSetScissor = 0; + PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT = 0; + PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask = 0; + PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT = 0; + PFN_vkCmdSetStencilReference vkCmdSetStencilReference = 0; + PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT = 0; + PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask = 0; + PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT = 0; + PFN_vkCmdSetViewport vkCmdSetViewport = 0; + PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0; + PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0; + PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT = 0; + PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR = 0; + PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR = 0; + PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV = 0; + PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer = 0; + PFN_vkCmdWaitEvents vkCmdWaitEvents = 0; + PFN_vkCmdWaitEvents2KHR vkCmdWaitEvents2KHR = 0; + PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR = 0; + PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV = 0; + PFN_vkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMD = 0; + PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0; + PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp = 0; + PFN_vkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHR = 0; + PFN_vkCompileDeferredNV vkCompileDeferredNV = 0; + PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR = 0; + PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR = 0; + PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR = 0; + PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR = 0; + PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV = 0; +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkCreateAndroidSurfaceKHR = 0; +#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ + PFN_vkCreateBuffer vkCreateBuffer = 0; + PFN_vkCreateBufferView vkCreateBufferView = 0; + PFN_vkCreateCommandPool vkCreateCommandPool = 0; + PFN_vkCreateComputePipelines vkCreateComputePipelines = 0; + PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0; + PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT = 0; + PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR = 0; + PFN_vkCreateDescriptorPool vkCreateDescriptorPool = 0; + PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout = 0; PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR = 0; - PFN_vkCreateEvent vkCreateEvent = 0; - PFN_vkCreateFence vkCreateFence = 0; - PFN_vkCreateFramebuffer vkCreateFramebuffer = 0; - PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines = 0; + PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate = 0; + PFN_vkCreateDevice vkCreateDevice = 0; +#if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) + PFN_vkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXT = 0; +#else + PFN_dummy placeholder_dont_call_vkCreateDirectFBSurfaceEXT = 0; +#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ + PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR = 0; + PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR = 0; + PFN_vkCreateEvent vkCreateEvent = 0; + PFN_vkCreateFence vkCreateFence = 0; + PFN_vkCreateFramebuffer vkCreateFramebuffer = 0; + PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines = 0; + PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0; +#if defined( VK_USE_PLATFORM_IOS_MVK ) + PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0; +#else + PFN_dummy placeholder_dont_call_vkCreateIOSSurfaceMVK = 0; +#endif /*VK_USE_PLATFORM_IOS_MVK*/ PFN_vkCreateImage vkCreateImage = 0; - PFN_vkCreateImageView vkCreateImageView = 0; - PFN_vkCreateIndirectCommandsLayoutNVX vkCreateIndirectCommandsLayoutNVX = 0; - PFN_vkCreateObjectTableNVX vkCreateObjectTableNVX = 0; - PFN_vkCreatePipelineCache vkCreatePipelineCache = 0; - PFN_vkCreatePipelineLayout vkCreatePipelineLayout = 0; - PFN_vkCreateQueryPool vkCreateQueryPool = 0; - PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV = 0; - PFN_vkCreateRenderPass vkCreateRenderPass = 0; - PFN_vkCreateRenderPass2 vkCreateRenderPass2 = 0; - PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR = 0; - PFN_vkCreateSampler vkCreateSampler = 0; - PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion = 0; +#if defined( VK_USE_PLATFORM_FUCHSIA ) + PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0; +#else + PFN_dummy placeholder_dont_call_vkCreateImagePipeSurfaceFUCHSIA = 0; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + PFN_vkCreateImageView vkCreateImageView = 0; + PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV = 0; + PFN_vkCreateInstance vkCreateInstance = 0; +#if defined( VK_USE_PLATFORM_MACOS_MVK ) + PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK = 0; +#else + PFN_dummy placeholder_dont_call_vkCreateMacOSSurfaceMVK = 0; +#endif /*VK_USE_PLATFORM_MACOS_MVK*/ +#if defined( VK_USE_PLATFORM_METAL_EXT ) + PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0; +#else + PFN_dummy placeholder_dont_call_vkCreateMetalSurfaceEXT = 0; +#endif /*VK_USE_PLATFORM_METAL_EXT*/ + PFN_vkCreatePipelineCache vkCreatePipelineCache = 0; + PFN_vkCreatePipelineLayout vkCreatePipelineLayout = 0; + PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT = 0; + PFN_vkCreateQueryPool vkCreateQueryPool = 0; + PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR = 0; + PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV = 0; + PFN_vkCreateRenderPass vkCreateRenderPass = 0; + PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR = 0; + PFN_vkCreateRenderPass2 vkCreateRenderPass2 = 0; + PFN_vkCreateSampler vkCreateSampler = 0; PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR = 0; - PFN_vkCreateSemaphore vkCreateSemaphore = 0; - PFN_vkCreateShaderModule vkCreateShaderModule = 0; + PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion = 0; +#if defined( VK_USE_PLATFORM_SCREEN_QNX ) + PFN_vkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNX = 0; +#else + PFN_dummy placeholder_dont_call_vkCreateScreenSurfaceQNX = 0; +#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + PFN_vkCreateSemaphore vkCreateSemaphore = 0; + PFN_vkCreateShaderModule vkCreateShaderModule = 0; PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0; - PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR = 0; +#if defined( VK_USE_PLATFORM_GGP ) + PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP = 0; +#else + PFN_dummy placeholder_dont_call_vkCreateStreamDescriptorSurfaceGGP = 0; +#endif /*VK_USE_PLATFORM_GGP*/ + PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR = 0; PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT = 0; - PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0; - PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT = 0; - PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV = 0; - PFN_vkDestroyBuffer vkDestroyBuffer = 0; - PFN_vkDestroyBufferView vkDestroyBufferView = 0; - PFN_vkDestroyCommandPool vkDestroyCommandPool = 0; - PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool = 0; - PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout = 0; - PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate = 0; +#if defined( VK_USE_PLATFORM_VI_NN ) + PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN = 0; +#else + PFN_dummy placeholder_dont_call_vkCreateViSurfaceNN = 0; +#endif /*VK_USE_PLATFORM_VI_NN*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + PFN_vkCreateVideoSessionKHR vkCreateVideoSessionKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkCreateVideoSessionKHR = 0; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + PFN_vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkCreateVideoSessionParametersKHR = 0; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_USE_PLATFORM_WAYLAND_KHR ) + PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkCreateWaylandSurfaceKHR = 0; +#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkCreateWin32SurfaceKHR = 0; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ +#if defined( VK_USE_PLATFORM_XCB_KHR ) + PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkCreateXcbSurfaceKHR = 0; +#endif /*VK_USE_PLATFORM_XCB_KHR*/ +#if defined( VK_USE_PLATFORM_XLIB_KHR ) + PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkCreateXlibSurfaceKHR = 0; +#endif /*VK_USE_PLATFORM_XLIB_KHR*/ + PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0; + PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT = 0; + PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT = 0; + PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR = 0; + PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR = 0; + PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV = 0; + PFN_vkDestroyBuffer vkDestroyBuffer = 0; + PFN_vkDestroyBufferView vkDestroyBufferView = 0; + PFN_vkDestroyCommandPool vkDestroyCommandPool = 0; + PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0; + PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0; + PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR = 0; + PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool = 0; + PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout = 0; PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR = 0; - PFN_vkDestroyDevice vkDestroyDevice = 0; - PFN_vkDestroyEvent vkDestroyEvent = 0; - PFN_vkDestroyFence vkDestroyFence = 0; - PFN_vkDestroyFramebuffer vkDestroyFramebuffer = 0; - PFN_vkDestroyImage vkDestroyImage = 0; - PFN_vkDestroyImageView vkDestroyImageView = 0; - PFN_vkDestroyIndirectCommandsLayoutNVX vkDestroyIndirectCommandsLayoutNVX = 0; - PFN_vkDestroyObjectTableNVX vkDestroyObjectTableNVX = 0; - PFN_vkDestroyPipeline vkDestroyPipeline = 0; - PFN_vkDestroyPipelineCache vkDestroyPipelineCache = 0; - PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout = 0; - PFN_vkDestroyQueryPool vkDestroyQueryPool = 0; - PFN_vkDestroyRenderPass vkDestroyRenderPass = 0; - PFN_vkDestroySampler vkDestroySampler = 0; - PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion = 0; - PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0; - PFN_vkDestroySemaphore vkDestroySemaphore = 0; - PFN_vkDestroyShaderModule vkDestroyShaderModule = 0; - PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR = 0; - PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0; - PFN_vkDeviceWaitIdle vkDeviceWaitIdle = 0; - PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT = 0; - PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges = 0; - PFN_vkFreeCommandBuffers vkFreeCommandBuffers = 0; - PFN_vkFreeDescriptorSets vkFreeDescriptorSets = 0; - PFN_vkFreeMemory vkFreeMemory = 0; - PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV = 0; + PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate = 0; + PFN_vkDestroyDevice vkDestroyDevice = 0; + PFN_vkDestroyEvent vkDestroyEvent = 0; + PFN_vkDestroyFence vkDestroyFence = 0; + PFN_vkDestroyFramebuffer vkDestroyFramebuffer = 0; + PFN_vkDestroyImage vkDestroyImage = 0; + PFN_vkDestroyImageView vkDestroyImageView = 0; + PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV = 0; + PFN_vkDestroyInstance vkDestroyInstance = 0; + PFN_vkDestroyPipeline vkDestroyPipeline = 0; + PFN_vkDestroyPipelineCache vkDestroyPipelineCache = 0; + PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout = 0; + PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT = 0; + PFN_vkDestroyQueryPool vkDestroyQueryPool = 0; + PFN_vkDestroyRenderPass vkDestroyRenderPass = 0; + PFN_vkDestroySampler vkDestroySampler = 0; + PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0; + PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion = 0; + PFN_vkDestroySemaphore vkDestroySemaphore = 0; + PFN_vkDestroyShaderModule vkDestroyShaderModule = 0; + PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR = 0; + PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR = 0; + PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + PFN_vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkDestroyVideoSessionKHR = 0; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + PFN_vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkDestroyVideoSessionParametersKHR = 0; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + PFN_vkDeviceWaitIdle vkDeviceWaitIdle = 0; + PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT = 0; + PFN_vkEndCommandBuffer vkEndCommandBuffer = 0; + PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties = 0; + PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties = 0; + PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties = 0; + PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties = 0; + PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion = 0; + PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0; + PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups = 0; + PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR + vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 0; + PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices = 0; + PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges = 0; + PFN_vkFreeCommandBuffers vkFreeCommandBuffers = 0; + PFN_vkFreeDescriptorSets vkFreeDescriptorSets = 0; + PFN_vkFreeMemory vkFreeMemory = 0; + PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR = 0; + PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR = 0; + PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV = 0; PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0; -#ifdef VK_USE_PLATFORM_ANDROID_KHR +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0; +#else + PFN_dummy placeholder_dont_call_vkGetAndroidHardwareBufferPropertiesANDROID = 0; #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress = 0; - PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0; - PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR = 0; - PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements = 0; - PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 = 0; - PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR = 0; - PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress = 0; - PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR = 0; - PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT = 0; - PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport = 0; - PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0; - PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures = 0; - PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0; - PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR + PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0; + PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR = 0; + PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress = 0; + PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements = 0; + PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR = 0; + PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 = 0; + PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR = 0; + PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress = 0; + PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT = 0; + PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR = 0; + PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR = 0; + PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0; + PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport = 0; + PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR = 0; + PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0; + PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures = 0; + PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR = 0; +#if defined( VK_USE_PLATFORM_WIN32_KHR ) PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT = 0; +#else + PFN_dummy placeholder_dont_call_vkGetDeviceGroupSurfacePresentModes2EXT = 0; #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR = 0; - PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment = 0; - PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress = 0; + PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR = 0; + PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment = 0; PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR = 0; - PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0; - PFN_vkGetDeviceQueue vkGetDeviceQueue = 0; - PFN_vkGetDeviceQueue2 vkGetDeviceQueue2 = 0; - PFN_vkGetEventStatus vkGetEventStatus = 0; - PFN_vkGetFenceFdKHR vkGetFenceFdKHR = 0; - PFN_vkGetFenceStatus vkGetFenceStatus = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR + PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress = 0; + PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0; + PFN_vkGetDeviceQueue vkGetDeviceQueue = 0; + PFN_vkGetDeviceQueue2 vkGetDeviceQueue2 = 0; + PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR = 0; + PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR = 0; + PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR = 0; + PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR = 0; + PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR = 0; + PFN_vkGetEventStatus vkGetEventStatus = 0; + PFN_vkGetFenceFdKHR vkGetFenceFdKHR = 0; + PFN_vkGetFenceStatus vkGetFenceStatus = 0; +#if defined( VK_USE_PLATFORM_WIN32_KHR ) PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkGetFenceWin32HandleKHR = 0; #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0; - PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements = 0; - PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 = 0; - PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR = 0; - PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements = 0; - PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 = 0; - PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0; - PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout = 0; - PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX = 0; -#ifdef VK_USE_PLATFORM_ANDROID_KHR + PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV = 0; + PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0; + PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements = 0; + PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR = 0; + PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 = 0; + PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements = 0; + PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0; + PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 = 0; + PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout = 0; + PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX = 0; + PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX = 0; + PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0; +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID = 0; +#else + PFN_dummy placeholder_dont_call_vkGetMemoryAndroidHardwareBufferANDROID = 0; #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR = 0; - PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0; + PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR = 0; + PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0; PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR +#if defined( VK_USE_PLATFORM_WIN32_KHR ) PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkGetMemoryWin32HandleKHR = 0; #endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR +#if defined( VK_USE_PLATFORM_WIN32_KHR ) PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0; +#else + PFN_dummy placeholder_dont_call_vkGetMemoryWin32HandleNV = 0; #endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR +#if defined( VK_USE_PLATFORM_WIN32_KHR ) PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkGetMemoryWin32HandlePropertiesKHR = 0; #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0; - PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL = 0; - PFN_vkGetPipelineCacheData vkGetPipelineCacheData = 0; - PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0; - PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR = 0; - PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR = 0; - PFN_vkGetQueryPoolResults vkGetQueryPoolResults = 0; - PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV = 0; - PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE = 0; - PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity = 0; - PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue = 0; - PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR = 0; - PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0; - PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT = 0; - PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR = 0; - PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0; - PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0; - PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL = 0; - PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges = 0; - PFN_vkMapMemory vkMapMemory = 0; - PFN_vkMergePipelineCaches vkMergePipelineCaches = 0; - PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT = 0; - PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT = 0; - PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0; - PFN_vkRegisterObjectsNVX vkRegisterObjectsNVX = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL = 0; - PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR = 0; - PFN_vkResetCommandPool vkResetCommandPool = 0; - PFN_vkResetDescriptorPool vkResetDescriptorPool = 0; - PFN_vkResetEvent vkResetEvent = 0; - PFN_vkResetFences vkResetFences = 0; - PFN_vkResetQueryPool vkResetQueryPool = 0; - PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0; - PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT = 0; - PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT = 0; - PFN_vkSetEvent vkSetEvent = 0; - PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0; - PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0; - PFN_vkSignalSemaphore vkSignalSemaphore = 0; - PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR = 0; - PFN_vkTrimCommandPool vkTrimCommandPool = 0; - PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0; - PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL = 0; - PFN_vkUnmapMemory vkUnmapMemory = 0; - PFN_vkUnregisterObjectsNVX vkUnregisterObjectsNVX = 0; - PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate = 0; - PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0; - PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets = 0; - PFN_vkWaitForFences vkWaitForFences = 0; - PFN_vkWaitSemaphores vkWaitSemaphores = 0; - PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR = 0; -#ifdef VK_USE_PLATFORM_ANDROID_KHR - PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0; - PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT = 0; - PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR = 0; - PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0; -#ifdef VK_USE_PLATFORM_IOS_MVK - PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0; -#endif /*VK_USE_PLATFORM_IOS_MVK*/ -#ifdef VK_USE_PLATFORM_FUCHSIA - PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0; +#if defined( VK_USE_PLATFORM_FUCHSIA ) + PFN_vkGetMemoryZirconHandleFUCHSIA vkGetMemoryZirconHandleFUCHSIA = 0; +#else + PFN_dummy placeholder_dont_call_vkGetMemoryZirconHandleFUCHSIA = 0; #endif /*VK_USE_PLATFORM_FUCHSIA*/ -#ifdef VK_USE_PLATFORM_MACOS_MVK - PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK = 0; -#endif /*VK_USE_PLATFORM_MACOS_MVK*/ -#ifdef VK_USE_PLATFORM_METAL_EXT - PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0; -#endif /*VK_USE_PLATFORM_METAL_EXT*/ -#ifdef VK_USE_PLATFORM_GGP - PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP = 0; -#endif /*VK_USE_PLATFORM_GGP*/ -#ifdef VK_USE_PLATFORM_VI_NN - PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN = 0; -#endif /*VK_USE_PLATFORM_VI_NN*/ -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR = 0; -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_XCB_KHR - PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR = 0; -#endif /*VK_USE_PLATFORM_XCB_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_KHR - PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR = 0; -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT = 0; - PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0; - PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0; - PFN_vkDestroyInstance vkDestroyInstance = 0; - PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR = 0; - PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups = 0; - PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0; - PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices = 0; - PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0; - PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT = 0; -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT = 0; -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - PFN_vkCreateDevice vkCreateDevice = 0; - PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR = 0; - PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties = 0; - PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties = 0; - PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 0; - PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR = 0; - PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR = 0; - PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR = 0; - PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR = 0; - PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR = 0; - PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0; +#if defined( VK_USE_PLATFORM_FUCHSIA ) + PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA = 0; +#else + PFN_dummy placeholder_dont_call_vkGetMemoryZirconHandlePropertiesFUCHSIA = 0; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0; + PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL = 0; + PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0; PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 0; - PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0; - PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0; - PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR = 0; - PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR = 0; - PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties = 0; - PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0; - PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties = 0; - PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0; +#if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) + PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0; +#else + PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0; +#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ + PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0; + PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0; + PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR = 0; + PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR = 0; + PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0; + PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties = 0; + PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0; + PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties = 0; PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0; - PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties = 0; - PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0; - PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures = 0; - PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 = 0; - PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR = 0; - PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties = 0; - PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 = 0; - PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR = 0; - PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX = 0; - PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties = 0; - PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 = 0; - PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR = 0; - PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties = 0; - PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 = 0; - PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR = 0; - PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0; - PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0; - PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties = 0; - PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 = 0; - PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR = 0; - PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = 0; - PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = 0; - PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 = 0; - PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR = 0; - PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties = 0; - PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 = 0; + PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0; + PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties = 0; + PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures = 0; + PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR = 0; + PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 = 0; + PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties = 0; + PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR = 0; + PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 = 0; + PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR = 0; + PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties = 0; + PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR = 0; + PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 = 0; + PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties = 0; + PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR = 0; + PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 = 0; + PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0; + PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0; + PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties = 0; + PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR = 0; + PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 = 0; + PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR + vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = 0; + PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = 0; + PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR = 0; + PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 = 0; +#if defined( VK_USE_PLATFORM_SCREEN_QNX ) + PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX = 0; +#else + PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceScreenPresentationSupportQNX = 0; +#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties = 0; PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 0; - PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0; + PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 = 0; + PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV + vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0; PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0; PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR = 0; - PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0; - PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR = 0; - PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR + PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0; + PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR = 0; + PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR = 0; +#if defined( VK_USE_PLATFORM_WIN32_KHR ) PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT = 0; +#else + PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceSurfacePresentModes2EXT = 0; #endif /*VK_USE_PLATFORM_WIN32_KHR*/ PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0; - PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR = 0; - PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT = 0; -#ifdef VK_USE_PLATFORM_WAYLAND_KHR + PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR = 0; + PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT = 0; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceVideoCapabilitiesKHR = 0; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceVideoFormatPropertiesKHR = 0; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_USE_PLATFORM_WAYLAND_KHR ) PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0; #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR +#if defined( VK_USE_PLATFORM_WIN32_KHR ) PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceWin32PresentationSupportKHR = 0; #endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_XCB_KHR +#if defined( VK_USE_PLATFORM_XCB_KHR ) PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceXcbPresentationSupportKHR = 0; #endif /*VK_USE_PLATFORM_XCB_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_KHR +#if defined( VK_USE_PLATFORM_XLIB_KHR ) PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkGetPhysicalDeviceXlibPresentationSupportKHR = 0; #endif /*VK_USE_PLATFORM_XLIB_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT + PFN_vkGetPipelineCacheData vkGetPipelineCacheData = 0; + PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0; + PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR = 0; + PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR = 0; + PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT = 0; + PFN_vkGetQueryPoolResults vkGetQueryPoolResults = 0; + PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV = 0; + PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0; +#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0; +#else + PFN_dummy placeholder_dont_call_vkGetRandROutputDisplayEXT = 0; #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0; - PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0; - PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT = 0; - PFN_vkQueueBindSparse vkQueueBindSparse = 0; - PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT = 0; - PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT = 0; - PFN_vkQueuePresentKHR vkQueuePresentKHR = 0; + PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0; + PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV = 0; + PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR = 0; + PFN_vkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHR = 0; + PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE = 0; + PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity = 0; + PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR = 0; + PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue = 0; + PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR = 0; +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkGetSemaphoreWin32HandleKHR = 0; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ +#if defined( VK_USE_PLATFORM_FUCHSIA ) + PFN_vkGetSemaphoreZirconHandleFUCHSIA vkGetSemaphoreZirconHandleFUCHSIA = 0; +#else + PFN_dummy placeholder_dont_call_vkGetSemaphoreZirconHandleFUCHSIA = 0; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0; + PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT = 0; + PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR = 0; + PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0; + PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + PFN_vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkGetVideoSessionMemoryRequirementsKHR = 0; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + PFN_vkGetWinrtDisplayNV vkGetWinrtDisplayNV = 0; +#else + PFN_dummy placeholder_dont_call_vkGetWinrtDisplayNV = 0; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0; +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkImportFenceWin32HandleKHR = 0; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0; +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkImportSemaphoreWin32HandleKHR = 0; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ +#if defined( VK_USE_PLATFORM_FUCHSIA ) + PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA = 0; +#else + PFN_dummy placeholder_dont_call_vkImportSemaphoreZirconHandleFUCHSIA = 0; +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL = 0; + PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges = 0; + PFN_vkMapMemory vkMapMemory = 0; + PFN_vkMergePipelineCaches vkMergePipelineCaches = 0; + PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT = 0; + PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT = 0; + PFN_vkQueueBindSparse vkQueueBindSparse = 0; + PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT = 0; + PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT = 0; + PFN_vkQueuePresentKHR vkQueuePresentKHR = 0; PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0; - PFN_vkQueueSubmit vkQueueSubmit = 0; - PFN_vkQueueWaitIdle vkQueueWaitIdle = 0; - - public: - DispatchLoaderDynamic() VULKAN_HPP_NOEXCEPT = default; - -#if !defined(VK_NO_PROTOTYPES) - // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library. - DispatchLoaderDynamic(VULKAN_HPP_NAMESPACE::Instance const& instance, VULKAN_HPP_NAMESPACE::Device const& device) VULKAN_HPP_NOEXCEPT - { - init(instance, device); - } - - // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library. - void init(VULKAN_HPP_NAMESPACE::Instance const& instance, VULKAN_HPP_NAMESPACE::Device const& device) VULKAN_HPP_NOEXCEPT + PFN_vkQueueSubmit vkQueueSubmit = 0; + PFN_vkQueueSubmit2KHR vkQueueSubmit2KHR = 0; + PFN_vkQueueWaitIdle vkQueueWaitIdle = 0; + PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT = 0; + PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0; + PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0; +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT = 0; +#else + PFN_dummy placeholder_dont_call_vkReleaseFullScreenExclusiveModeEXT = 0; +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL = 0; + PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR = 0; + PFN_vkResetCommandBuffer vkResetCommandBuffer = 0; + PFN_vkResetCommandPool vkResetCommandPool = 0; + PFN_vkResetDescriptorPool vkResetDescriptorPool = 0; + PFN_vkResetEvent vkResetEvent = 0; + PFN_vkResetFences vkResetFences = 0; + PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0; + PFN_vkResetQueryPool vkResetQueryPool = 0; + PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT = 0; + PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT = 0; + PFN_vkSetEvent vkSetEvent = 0; + PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0; + PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0; + PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT = 0; + PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR = 0; + PFN_vkSignalSemaphore vkSignalSemaphore = 0; + PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT = 0; + PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0; + PFN_vkTrimCommandPool vkTrimCommandPool = 0; + PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL = 0; + PFN_vkUnmapMemory vkUnmapMemory = 0; + PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0; + PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate = 0; + PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets = 0; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + PFN_vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR = 0; +#else + PFN_dummy placeholder_dont_call_vkUpdateVideoSessionParametersKHR = 0; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + PFN_vkWaitForFences vkWaitForFences = 0; + PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR = 0; + PFN_vkWaitSemaphores vkWaitSemaphores = 0; + PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR = 0; + + public: + DispatchLoaderDynamic() VULKAN_HPP_NOEXCEPT = default; + DispatchLoaderDynamic( DispatchLoaderDynamic const & rhs ) VULKAN_HPP_NOEXCEPT = default; + +#if !defined( VK_NO_PROTOTYPES ) + // This interface is designed to be used for per-device function pointers in combination with a linked vulkan + // library. + template + void init( VULKAN_HPP_NAMESPACE::Instance const & instance, + VULKAN_HPP_NAMESPACE::Device const & device, + DynamicLoader const & dl ) VULKAN_HPP_NOEXCEPT + { + PFN_vkGetInstanceProcAddr getInstanceProcAddr = + dl.template getProcAddress( "vkGetInstanceProcAddr" ); + PFN_vkGetDeviceProcAddr getDeviceProcAddr = + dl.template getProcAddress( "vkGetDeviceProcAddr" ); + init( static_cast( instance ), + getInstanceProcAddr, + static_cast( device ), + device ? getDeviceProcAddr : nullptr ); + } + + // This interface is designed to be used for per-device function pointers in combination with a linked vulkan + // library. + template + void init( VULKAN_HPP_NAMESPACE::Instance const & instance, + VULKAN_HPP_NAMESPACE::Device const & device ) VULKAN_HPP_NOEXCEPT { - static vk::DynamicLoader dl; - PFN_vkGetInstanceProcAddr getInstanceProcAddr = dl.getProcAddress("vkGetInstanceProcAddr"); - PFN_vkGetDeviceProcAddr getDeviceProcAddr = dl.getProcAddress("vkGetDeviceProcAddr"); - init(static_cast(instance), getInstanceProcAddr, static_cast(device), device ? getDeviceProcAddr : nullptr); + static DynamicLoader dl; + init( instance, device, dl ); } -#endif // !defined(VK_NO_PROTOTYPES) +#endif // !defined( VK_NO_PROTOTYPES ) - DispatchLoaderDynamic(PFN_vkGetInstanceProcAddr getInstanceProcAddr) VULKAN_HPP_NOEXCEPT + DispatchLoaderDynamic( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) VULKAN_HPP_NOEXCEPT { - init(getInstanceProcAddr); + init( getInstanceProcAddr ); } void init( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT(getInstanceProcAddr); + VULKAN_HPP_ASSERT( getInstanceProcAddr ); vkGetInstanceProcAddr = getInstanceProcAddr; - vkCreateInstance = PFN_vkCreateInstance( vkGetInstanceProcAddr( NULL, "vkCreateInstance" ) ); - vkEnumerateInstanceExtensionProperties = PFN_vkEnumerateInstanceExtensionProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceExtensionProperties" ) ); - vkEnumerateInstanceLayerProperties = PFN_vkEnumerateInstanceLayerProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceLayerProperties" ) ); - vkEnumerateInstanceVersion = PFN_vkEnumerateInstanceVersion( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceVersion" ) ); + vkCreateInstance = PFN_vkCreateInstance( vkGetInstanceProcAddr( NULL, "vkCreateInstance" ) ); + vkEnumerateInstanceExtensionProperties = PFN_vkEnumerateInstanceExtensionProperties( + vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceExtensionProperties" ) ); + vkEnumerateInstanceLayerProperties = + PFN_vkEnumerateInstanceLayerProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceLayerProperties" ) ); + vkEnumerateInstanceVersion = + PFN_vkEnumerateInstanceVersion( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceVersion" ) ); } // This interface does not require a linked vulkan library. - DispatchLoaderDynamic( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device = VK_NULL_HANDLE, PFN_vkGetDeviceProcAddr getDeviceProcAddr = nullptr ) VULKAN_HPP_NOEXCEPT + DispatchLoaderDynamic( VkInstance instance, + PFN_vkGetInstanceProcAddr getInstanceProcAddr, + VkDevice device = {}, + PFN_vkGetDeviceProcAddr getDeviceProcAddr = nullptr ) VULKAN_HPP_NOEXCEPT { init( instance, getInstanceProcAddr, device, getDeviceProcAddr ); } // This interface does not require a linked vulkan library. - void init( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device = VK_NULL_HANDLE, PFN_vkGetDeviceProcAddr /*getDeviceProcAddr*/ = nullptr ) VULKAN_HPP_NOEXCEPT + void init( VkInstance instance, + PFN_vkGetInstanceProcAddr getInstanceProcAddr, + VkDevice device = {}, + PFN_vkGetDeviceProcAddr /*getDeviceProcAddr*/ = nullptr ) VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT(instance && getInstanceProcAddr); + VULKAN_HPP_ASSERT( instance && getInstanceProcAddr ); vkGetInstanceProcAddr = getInstanceProcAddr; - init( VULKAN_HPP_NAMESPACE::Instance(instance) ); - if (device) { - init( VULKAN_HPP_NAMESPACE::Device(device) ); + init( VULKAN_HPP_NAMESPACE::Instance( instance ) ); + if ( device ) + { + init( VULKAN_HPP_NAMESPACE::Device( device ) ); } } void init( VULKAN_HPP_NAMESPACE::Instance instanceCpp ) VULKAN_HPP_NOEXCEPT { - VkInstance instance = static_cast(instanceCpp); -#ifdef VK_USE_PLATFORM_ANDROID_KHR - vkCreateAndroidSurfaceKHR = PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) ); + VkInstance instance = static_cast( instanceCpp ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkAcquireWinrtDisplayNV = + PFN_vkAcquireWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkAcquireWinrtDisplayNV" ) ); +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ +#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) + vkAcquireXlibDisplayEXT = + PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) ); +#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + vkCreateAndroidSurfaceKHR = + PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) ); #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - vkCreateDebugReportCallbackEXT = PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) ); - vkCreateDebugUtilsMessengerEXT = PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) ); - vkCreateDisplayPlaneSurfaceKHR = PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) ); - vkCreateHeadlessSurfaceEXT = PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) ); -#ifdef VK_USE_PLATFORM_IOS_MVK + vkCreateDebugReportCallbackEXT = + PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) ); + vkCreateDebugUtilsMessengerEXT = + PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) ); + vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) ); +#if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) + vkCreateDirectFBSurfaceEXT = + PFN_vkCreateDirectFBSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateDirectFBSurfaceEXT" ) ); +#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ + vkCreateDisplayModeKHR = + PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) ); + vkCreateDisplayPlaneSurfaceKHR = + PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) ); + vkCreateHeadlessSurfaceEXT = + PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) ); +#if defined( VK_USE_PLATFORM_IOS_MVK ) vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ) ); #endif /*VK_USE_PLATFORM_IOS_MVK*/ -#ifdef VK_USE_PLATFORM_FUCHSIA - vkCreateImagePipeSurfaceFUCHSIA = PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) ); +#if defined( VK_USE_PLATFORM_FUCHSIA ) + vkCreateImagePipeSurfaceFUCHSIA = + PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) ); #endif /*VK_USE_PLATFORM_FUCHSIA*/ -#ifdef VK_USE_PLATFORM_MACOS_MVK - vkCreateMacOSSurfaceMVK = PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) ); +#if defined( VK_USE_PLATFORM_MACOS_MVK ) + vkCreateMacOSSurfaceMVK = + PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) ); #endif /*VK_USE_PLATFORM_MACOS_MVK*/ -#ifdef VK_USE_PLATFORM_METAL_EXT - vkCreateMetalSurfaceEXT = PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) ); +#if defined( VK_USE_PLATFORM_METAL_EXT ) + vkCreateMetalSurfaceEXT = + PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) ); #endif /*VK_USE_PLATFORM_METAL_EXT*/ -#ifdef VK_USE_PLATFORM_GGP - vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP( vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) ); +#if defined( VK_USE_PLATFORM_SCREEN_QNX ) + vkCreateScreenSurfaceQNX = + PFN_vkCreateScreenSurfaceQNX( vkGetInstanceProcAddr( instance, "vkCreateScreenSurfaceQNX" ) ); +#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ +#if defined( VK_USE_PLATFORM_GGP ) + vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP( + vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) ); #endif /*VK_USE_PLATFORM_GGP*/ -#ifdef VK_USE_PLATFORM_VI_NN +#if defined( VK_USE_PLATFORM_VI_NN ) vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) ); #endif /*VK_USE_PLATFORM_VI_NN*/ -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - vkCreateWaylandSurfaceKHR = PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) ); +#if defined( VK_USE_PLATFORM_WAYLAND_KHR ) + vkCreateWaylandSurfaceKHR = + PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) ); #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkCreateWin32SurfaceKHR = PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkCreateWin32SurfaceKHR = + PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_XCB_KHR +#if defined( VK_USE_PLATFORM_XCB_KHR ) vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) ); #endif /*VK_USE_PLATFORM_XCB_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_KHR - vkCreateXlibSurfaceKHR = PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) ); +#if defined( VK_USE_PLATFORM_XLIB_KHR ) + vkCreateXlibSurfaceKHR = + PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) ); #endif /*VK_USE_PLATFORM_XLIB_KHR*/ - vkDebugReportMessageEXT = PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) ); - vkDestroyDebugReportCallbackEXT = PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) ); - vkDestroyDebugUtilsMessengerEXT = PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) ); - vkDestroyInstance = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) ); + vkDebugReportMessageEXT = + PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) ); + vkDestroyDebugReportCallbackEXT = + PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) ); + vkDestroyDebugUtilsMessengerEXT = + PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) ); + vkDestroyInstance = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) ); vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) ); - vkEnumeratePhysicalDeviceGroups = PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) ); - vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) ); - vkEnumeratePhysicalDevices = PFN_vkEnumeratePhysicalDevices( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ) ); - vkSubmitDebugUtilsMessageEXT = PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) ); -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - vkAcquireXlibDisplayEXT = PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) ); -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) ); - vkCreateDisplayModeKHR = PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) ); - vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) ); - vkEnumerateDeviceLayerProperties = PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) ); - vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" ) ); - vkGetDisplayModeProperties2KHR = PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) ); - vkGetDisplayModePropertiesKHR = PFN_vkGetDisplayModePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ) ); - vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) ); - vkGetDisplayPlaneCapabilitiesKHR = PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) ); - vkGetDisplayPlaneSupportedDisplaysKHR = PFN_vkGetDisplayPlaneSupportedDisplaysKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) ); - vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) ); - vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) ); - vkGetPhysicalDeviceDisplayPlaneProperties2KHR = PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) ); - vkGetPhysicalDeviceDisplayPlanePropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) ); - vkGetPhysicalDeviceDisplayProperties2KHR = PFN_vkGetPhysicalDeviceDisplayProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) ); - vkGetPhysicalDeviceDisplayPropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) ); - vkGetPhysicalDeviceExternalBufferProperties = PFN_vkGetPhysicalDeviceExternalBufferProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) ); - vkGetPhysicalDeviceExternalBufferPropertiesKHR = PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) ); - vkGetPhysicalDeviceExternalFenceProperties = PFN_vkGetPhysicalDeviceExternalFenceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) ); - vkGetPhysicalDeviceExternalFencePropertiesKHR = PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) ); - vkGetPhysicalDeviceExternalImageFormatPropertiesNV = PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) ); - vkGetPhysicalDeviceExternalSemaphoreProperties = PFN_vkGetPhysicalDeviceExternalSemaphoreProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) ); - vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) ); - vkGetPhysicalDeviceFeatures = PFN_vkGetPhysicalDeviceFeatures( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ) ); - vkGetPhysicalDeviceFeatures2 = PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) ); - vkGetPhysicalDeviceFeatures2KHR = PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) ); - vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ) ); - vkGetPhysicalDeviceFormatProperties2 = PFN_vkGetPhysicalDeviceFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) ); - vkGetPhysicalDeviceFormatProperties2KHR = PFN_vkGetPhysicalDeviceFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ) ); - vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX = PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX" ) ); - vkGetPhysicalDeviceImageFormatProperties = PFN_vkGetPhysicalDeviceImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ) ); - vkGetPhysicalDeviceImageFormatProperties2 = PFN_vkGetPhysicalDeviceImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) ); - vkGetPhysicalDeviceImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ) ); - vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) ); - vkGetPhysicalDeviceMemoryProperties2 = PFN_vkGetPhysicalDeviceMemoryProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) ); - vkGetPhysicalDeviceMemoryProperties2KHR = PFN_vkGetPhysicalDeviceMemoryProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) ); - vkGetPhysicalDeviceMultisamplePropertiesEXT = PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) ); - vkGetPhysicalDevicePresentRectanglesKHR = PFN_vkGetPhysicalDevicePresentRectanglesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) ); - vkGetPhysicalDeviceProperties = PFN_vkGetPhysicalDeviceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ) ); - vkGetPhysicalDeviceProperties2 = PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) ); - vkGetPhysicalDeviceProperties2KHR = PFN_vkGetPhysicalDeviceProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) ); - vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" ) ); - vkGetPhysicalDeviceQueueFamilyProperties = PFN_vkGetPhysicalDeviceQueueFamilyProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) ); - vkGetPhysicalDeviceQueueFamilyProperties2 = PFN_vkGetPhysicalDeviceQueueFamilyProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) ); - vkGetPhysicalDeviceQueueFamilyProperties2KHR = PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ) ); - vkGetPhysicalDeviceSparseImageFormatProperties = PFN_vkGetPhysicalDeviceSparseImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ) ); - vkGetPhysicalDeviceSparseImageFormatProperties2 = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ) ); - vkGetPhysicalDeviceSparseImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ) ); - vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) ); - vkGetPhysicalDeviceSurfaceCapabilities2EXT = PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) ); - vkGetPhysicalDeviceSurfaceCapabilities2KHR = PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) ); - vkGetPhysicalDeviceSurfaceCapabilitiesKHR = PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) ); - vkGetPhysicalDeviceSurfaceFormats2KHR = PFN_vkGetPhysicalDeviceSurfaceFormats2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) ); - vkGetPhysicalDeviceSurfaceFormatsKHR = PFN_vkGetPhysicalDeviceSurfaceFormatsKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetPhysicalDeviceSurfacePresentModes2EXT = PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) ); + vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties( + vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) ); + vkEnumerateDeviceLayerProperties = + PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) ); + vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR( + vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) ); + vkEnumeratePhysicalDeviceGroups = + PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) ); + if ( !vkEnumeratePhysicalDeviceGroups ) + vkEnumeratePhysicalDeviceGroups = vkEnumeratePhysicalDeviceGroupsKHR; + vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = + PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( + vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" ) ); + vkEnumeratePhysicalDevices = + PFN_vkEnumeratePhysicalDevices( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ) ); + vkGetDisplayModeProperties2KHR = + PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) ); + vkGetDisplayModePropertiesKHR = + PFN_vkGetDisplayModePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ) ); + vkGetDisplayPlaneCapabilities2KHR = + PFN_vkGetDisplayPlaneCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) ); + vkGetDisplayPlaneCapabilitiesKHR = + PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) ); + vkGetDisplayPlaneSupportedDisplaysKHR = PFN_vkGetDisplayPlaneSupportedDisplaysKHR( + vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) ); + vkGetInstanceProcAddr = PFN_vkGetInstanceProcAddr( vkGetInstanceProcAddr( instance, "vkGetInstanceProcAddr" ) ); + vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) ); + vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) ); +#if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) + vkGetPhysicalDeviceDirectFBPresentationSupportEXT = PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" ) ); +#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ + vkGetPhysicalDeviceDisplayPlaneProperties2KHR = PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) ); + vkGetPhysicalDeviceDisplayPlanePropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) ); + vkGetPhysicalDeviceDisplayProperties2KHR = PFN_vkGetPhysicalDeviceDisplayProperties2KHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) ); + vkGetPhysicalDeviceDisplayPropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPropertiesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) ); + vkGetPhysicalDeviceExternalBufferPropertiesKHR = PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) ); + vkGetPhysicalDeviceExternalBufferProperties = PFN_vkGetPhysicalDeviceExternalBufferProperties( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) ); + if ( !vkGetPhysicalDeviceExternalBufferProperties ) + vkGetPhysicalDeviceExternalBufferProperties = vkGetPhysicalDeviceExternalBufferPropertiesKHR; + vkGetPhysicalDeviceExternalFencePropertiesKHR = PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) ); + vkGetPhysicalDeviceExternalFenceProperties = PFN_vkGetPhysicalDeviceExternalFenceProperties( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) ); + if ( !vkGetPhysicalDeviceExternalFenceProperties ) + vkGetPhysicalDeviceExternalFenceProperties = vkGetPhysicalDeviceExternalFencePropertiesKHR; + vkGetPhysicalDeviceExternalImageFormatPropertiesNV = PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) ); + vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) ); + vkGetPhysicalDeviceExternalSemaphoreProperties = PFN_vkGetPhysicalDeviceExternalSemaphoreProperties( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) ); + if ( !vkGetPhysicalDeviceExternalSemaphoreProperties ) + vkGetPhysicalDeviceExternalSemaphoreProperties = vkGetPhysicalDeviceExternalSemaphorePropertiesKHR; + vkGetPhysicalDeviceFeatures = + PFN_vkGetPhysicalDeviceFeatures( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ) ); + vkGetPhysicalDeviceFeatures2KHR = + PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) ); + vkGetPhysicalDeviceFeatures2 = + PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) ); + if ( !vkGetPhysicalDeviceFeatures2 ) + vkGetPhysicalDeviceFeatures2 = vkGetPhysicalDeviceFeatures2KHR; + vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ) ); + vkGetPhysicalDeviceFormatProperties2KHR = PFN_vkGetPhysicalDeviceFormatProperties2KHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ) ); + vkGetPhysicalDeviceFormatProperties2 = PFN_vkGetPhysicalDeviceFormatProperties2( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) ); + if ( !vkGetPhysicalDeviceFormatProperties2 ) + vkGetPhysicalDeviceFormatProperties2 = vkGetPhysicalDeviceFormatProperties2KHR; + vkGetPhysicalDeviceFragmentShadingRatesKHR = PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR" ) ); + vkGetPhysicalDeviceImageFormatProperties = PFN_vkGetPhysicalDeviceImageFormatProperties( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ) ); + vkGetPhysicalDeviceImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceImageFormatProperties2KHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ) ); + vkGetPhysicalDeviceImageFormatProperties2 = PFN_vkGetPhysicalDeviceImageFormatProperties2( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) ); + if ( !vkGetPhysicalDeviceImageFormatProperties2 ) + vkGetPhysicalDeviceImageFormatProperties2 = vkGetPhysicalDeviceImageFormatProperties2KHR; + vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) ); + vkGetPhysicalDeviceMemoryProperties2KHR = PFN_vkGetPhysicalDeviceMemoryProperties2KHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) ); + vkGetPhysicalDeviceMemoryProperties2 = PFN_vkGetPhysicalDeviceMemoryProperties2( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) ); + if ( !vkGetPhysicalDeviceMemoryProperties2 ) + vkGetPhysicalDeviceMemoryProperties2 = vkGetPhysicalDeviceMemoryProperties2KHR; + vkGetPhysicalDeviceMultisamplePropertiesEXT = PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) ); + vkGetPhysicalDevicePresentRectanglesKHR = PFN_vkGetPhysicalDevicePresentRectanglesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) ); + vkGetPhysicalDeviceProperties = + PFN_vkGetPhysicalDeviceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ) ); + vkGetPhysicalDeviceProperties2KHR = + PFN_vkGetPhysicalDeviceProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) ); + vkGetPhysicalDeviceProperties2 = + PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) ); + if ( !vkGetPhysicalDeviceProperties2 ) + vkGetPhysicalDeviceProperties2 = vkGetPhysicalDeviceProperties2KHR; + vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = + PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" ) ); + vkGetPhysicalDeviceQueueFamilyProperties = PFN_vkGetPhysicalDeviceQueueFamilyProperties( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) ); + vkGetPhysicalDeviceQueueFamilyProperties2KHR = PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ) ); + vkGetPhysicalDeviceQueueFamilyProperties2 = PFN_vkGetPhysicalDeviceQueueFamilyProperties2( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) ); + if ( !vkGetPhysicalDeviceQueueFamilyProperties2 ) + vkGetPhysicalDeviceQueueFamilyProperties2 = vkGetPhysicalDeviceQueueFamilyProperties2KHR; +#if defined( VK_USE_PLATFORM_SCREEN_QNX ) + vkGetPhysicalDeviceScreenPresentationSupportQNX = PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceScreenPresentationSupportQNX" ) ); +#endif /*VK_USE_PLATFORM_SCREEN_QNX*/ + vkGetPhysicalDeviceSparseImageFormatProperties = PFN_vkGetPhysicalDeviceSparseImageFormatProperties( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ) ); + vkGetPhysicalDeviceSparseImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ) ); + vkGetPhysicalDeviceSparseImageFormatProperties2 = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ) ); + if ( !vkGetPhysicalDeviceSparseImageFormatProperties2 ) + vkGetPhysicalDeviceSparseImageFormatProperties2 = vkGetPhysicalDeviceSparseImageFormatProperties2KHR; + vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = + PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) ); + vkGetPhysicalDeviceSurfaceCapabilities2EXT = PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) ); + vkGetPhysicalDeviceSurfaceCapabilities2KHR = PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) ); + vkGetPhysicalDeviceSurfaceCapabilitiesKHR = PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) ); + vkGetPhysicalDeviceSurfaceFormats2KHR = PFN_vkGetPhysicalDeviceSurfaceFormats2KHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) ); + vkGetPhysicalDeviceSurfaceFormatsKHR = PFN_vkGetPhysicalDeviceSurfaceFormatsKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkGetPhysicalDeviceSurfacePresentModes2EXT = PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetPhysicalDeviceSurfacePresentModesKHR = PFN_vkGetPhysicalDeviceSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) ); - vkGetPhysicalDeviceSurfaceSupportKHR = PFN_vkGetPhysicalDeviceSurfaceSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) ); - vkGetPhysicalDeviceToolPropertiesEXT = PFN_vkGetPhysicalDeviceToolPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) ); -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - vkGetPhysicalDeviceWaylandPresentationSupportKHR = PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) ); + vkGetPhysicalDeviceSurfacePresentModesKHR = PFN_vkGetPhysicalDeviceSurfacePresentModesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) ); + vkGetPhysicalDeviceSurfaceSupportKHR = PFN_vkGetPhysicalDeviceSurfaceSupportKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) ); + vkGetPhysicalDeviceToolPropertiesEXT = PFN_vkGetPhysicalDeviceToolPropertiesEXT( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) ); +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkGetPhysicalDeviceVideoCapabilitiesKHR = PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoCapabilitiesKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkGetPhysicalDeviceVideoFormatPropertiesKHR = PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoFormatPropertiesKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_USE_PLATFORM_WAYLAND_KHR ) + vkGetPhysicalDeviceWaylandPresentationSupportKHR = PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) ); #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetPhysicalDeviceWin32PresentationSupportKHR = PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkGetPhysicalDeviceWin32PresentationSupportKHR = PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_XCB_KHR - vkGetPhysicalDeviceXcbPresentationSupportKHR = PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) ); +#if defined( VK_USE_PLATFORM_XCB_KHR ) + vkGetPhysicalDeviceXcbPresentationSupportKHR = PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) ); #endif /*VK_USE_PLATFORM_XCB_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_KHR - vkGetPhysicalDeviceXlibPresentationSupportKHR = PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) ); +#if defined( VK_USE_PLATFORM_XLIB_KHR ) + vkGetPhysicalDeviceXlibPresentationSupportKHR = PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR( + vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) ); #endif /*VK_USE_PLATFORM_XLIB_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - vkGetRandROutputDisplayEXT = PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) ); +#if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) + vkGetRandROutputDisplayEXT = + PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) ); #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkGetWinrtDisplayNV = PFN_vkGetWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkGetWinrtDisplayNV" ) ); +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) ); + vkSubmitDebugUtilsMessageEXT = + PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( + vkGetInstanceProcAddr( instance, "vkAcquireFullScreenExclusiveModeEXT" ) ); +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + vkAcquireNextImage2KHR = + PFN_vkAcquireNextImage2KHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImage2KHR" ) ); + vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImageKHR" ) ); + vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( + vkGetInstanceProcAddr( instance, "vkAcquirePerformanceConfigurationINTEL" ) ); + vkAcquireProfilingLockKHR = + PFN_vkAcquireProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkAcquireProfilingLockKHR" ) ); + vkAllocateCommandBuffers = + PFN_vkAllocateCommandBuffers( vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers" ) ); + vkAllocateDescriptorSets = + PFN_vkAllocateDescriptorSets( vkGetInstanceProcAddr( instance, "vkAllocateDescriptorSets" ) ); + vkAllocateMemory = PFN_vkAllocateMemory( vkGetInstanceProcAddr( instance, "vkAllocateMemory" ) ); vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetInstanceProcAddr( instance, "vkBeginCommandBuffer" ) ); - vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginConditionalRenderingEXT" ) ); - vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginDebugUtilsLabelEXT" ) ); + vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( + vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryNV" ) ); + vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetInstanceProcAddr( instance, "vkBindBufferMemory" ) ); + vkBindBufferMemory2KHR = + PFN_vkBindBufferMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2KHR" ) ); + vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2" ) ); + if ( !vkBindBufferMemory2 ) + vkBindBufferMemory2 = vkBindBufferMemory2KHR; + vkBindImageMemory = PFN_vkBindImageMemory( vkGetInstanceProcAddr( instance, "vkBindImageMemory" ) ); + vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindImageMemory2KHR" ) ); + vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetInstanceProcAddr( instance, "vkBindImageMemory2" ) ); + if ( !vkBindImageMemory2 ) + vkBindImageMemory2 = vkBindImageMemory2KHR; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkBindVideoSessionMemoryKHR = + PFN_vkBindVideoSessionMemoryKHR( vkGetInstanceProcAddr( instance, "vkBindVideoSessionMemoryKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + vkBuildAccelerationStructuresKHR = + PFN_vkBuildAccelerationStructuresKHR( vkGetInstanceProcAddr( instance, "vkBuildAccelerationStructuresKHR" ) ); + vkCmdBeginConditionalRenderingEXT = + PFN_vkCmdBeginConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginConditionalRenderingEXT" ) ); + vkCmdBeginDebugUtilsLabelEXT = + PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginDebugUtilsLabelEXT" ) ); vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetInstanceProcAddr( instance, "vkCmdBeginQuery" ) ); - vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginQueryIndexedEXT" ) ); + vkCmdBeginQueryIndexedEXT = + PFN_vkCmdBeginQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginQueryIndexedEXT" ) ); vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass" ) ); + vkCmdBeginRenderPass2KHR = + PFN_vkCmdBeginRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2KHR" ) ); vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2" ) ); - vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2KHR" ) ); - vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginTransformFeedbackEXT" ) ); - vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets" ) ); + if ( !vkCmdBeginRenderPass2 ) + vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR; + vkCmdBeginTransformFeedbackEXT = + PFN_vkCmdBeginTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginTransformFeedbackEXT" ) ); +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkCmdBeginVideoCodingKHR = + PFN_vkCmdBeginVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdBeginVideoCodingKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + vkCmdBindDescriptorSets = + PFN_vkCmdBindDescriptorSets( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets" ) ); vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer" ) ); - vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetInstanceProcAddr( instance, "vkCmdBindPipeline" ) ); - vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetInstanceProcAddr( instance, "vkCmdBindShadingRateImageNV" ) ); - vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetInstanceProcAddr( instance, "vkCmdBindTransformFeedbackBuffersEXT" ) ); - vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers" ) ); - vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetInstanceProcAddr( instance, "vkCmdBlitImage" ) ); - vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureNV" ) ); + vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetInstanceProcAddr( instance, "vkCmdBindPipeline" ) ); + vkCmdBindPipelineShaderGroupNV = + PFN_vkCmdBindPipelineShaderGroupNV( vkGetInstanceProcAddr( instance, "vkCmdBindPipelineShaderGroupNV" ) ); + vkCmdBindShadingRateImageNV = + PFN_vkCmdBindShadingRateImageNV( vkGetInstanceProcAddr( instance, "vkCmdBindShadingRateImageNV" ) ); + vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( + vkGetInstanceProcAddr( instance, "vkCmdBindTransformFeedbackBuffersEXT" ) ); + vkCmdBindVertexBuffers = + PFN_vkCmdBindVertexBuffers( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers" ) ); + vkCmdBindVertexBuffers2EXT = + PFN_vkCmdBindVertexBuffers2EXT( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers2EXT" ) ); + vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetInstanceProcAddr( instance, "vkCmdBlitImage" ) ); + vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdBlitImage2KHR" ) ); + vkCmdBuildAccelerationStructureNV = + PFN_vkCmdBuildAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureNV" ) ); + vkCmdBuildAccelerationStructuresIndirectKHR = PFN_vkCmdBuildAccelerationStructuresIndirectKHR( + vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresIndirectKHR" ) ); + vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR( + vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresKHR" ) ); vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetInstanceProcAddr( instance, "vkCmdClearAttachments" ) ); - vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetInstanceProcAddr( instance, "vkCmdClearColorImage" ) ); - vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( vkGetInstanceProcAddr( instance, "vkCmdClearDepthStencilImage" ) ); - vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureNV" ) ); - vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer" ) ); - vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage" ) ); - vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetInstanceProcAddr( instance, "vkCmdCopyImage" ) ); - vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer" ) ); - vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( vkGetInstanceProcAddr( instance, "vkCmdCopyQueryPoolResults" ) ); - vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerBeginEXT" ) ); - vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" ) ); - vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" ) ); - vkCmdDispatch = PFN_vkCmdDispatch( vkGetInstanceProcAddr( instance, "vkCmdDispatch" ) ); - vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetInstanceProcAddr( instance, "vkCmdDispatchBase" ) ); + vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetInstanceProcAddr( instance, "vkCmdClearColorImage" ) ); + vkCmdClearDepthStencilImage = + PFN_vkCmdClearDepthStencilImage( vkGetInstanceProcAddr( instance, "vkCmdClearDepthStencilImage" ) ); +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkCmdControlVideoCodingKHR = + PFN_vkCmdControlVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdControlVideoCodingKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + vkCmdCopyAccelerationStructureKHR = + PFN_vkCmdCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureKHR" ) ); + vkCmdCopyAccelerationStructureNV = + PFN_vkCmdCopyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureNV" ) ); + vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR( + vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureToMemoryKHR" ) ); + vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer" ) ); + vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer2KHR" ) ); + vkCmdCopyBufferToImage = + PFN_vkCmdCopyBufferToImage( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage" ) ); + vkCmdCopyBufferToImage2KHR = + PFN_vkCmdCopyBufferToImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage2KHR" ) ); + vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetInstanceProcAddr( instance, "vkCmdCopyImage" ) ); + vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImage2KHR" ) ); + vkCmdCopyImageToBuffer = + PFN_vkCmdCopyImageToBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer" ) ); + vkCmdCopyImageToBuffer2KHR = + PFN_vkCmdCopyImageToBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer2KHR" ) ); + vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR( + vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToAccelerationStructureKHR" ) ); + vkCmdCopyQueryPoolResults = + PFN_vkCmdCopyQueryPoolResults( vkGetInstanceProcAddr( instance, "vkCmdCopyQueryPoolResults" ) ); + vkCmdDebugMarkerBeginEXT = + PFN_vkCmdDebugMarkerBeginEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerBeginEXT" ) ); + vkCmdDebugMarkerEndEXT = + PFN_vkCmdDebugMarkerEndEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" ) ); + vkCmdDebugMarkerInsertEXT = + PFN_vkCmdDebugMarkerInsertEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" ) ); +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkCmdDecodeVideoKHR = PFN_vkCmdDecodeVideoKHR( vkGetInstanceProcAddr( instance, "vkCmdDecodeVideoKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + vkCmdDispatch = PFN_vkCmdDispatch( vkGetInstanceProcAddr( instance, "vkCmdDispatch" ) ); vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetInstanceProcAddr( instance, "vkCmdDispatchBaseKHR" ) ); + vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetInstanceProcAddr( instance, "vkCmdDispatchBase" ) ); + if ( !vkCmdDispatchBase ) + vkCmdDispatchBase = vkCmdDispatchBaseKHR; vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetInstanceProcAddr( instance, "vkCmdDispatchIndirect" ) ); - vkCmdDraw = PFN_vkCmdDraw( vkGetInstanceProcAddr( instance, "vkCmdDraw" ) ); - vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexed" ) ); - vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirect" ) ); - vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCount" ) ); - vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountAMD" ) ); - vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountKHR" ) ); + vkCmdDraw = PFN_vkCmdDraw( vkGetInstanceProcAddr( instance, "vkCmdDraw" ) ); + vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexed" ) ); + vkCmdDrawIndexedIndirect = + PFN_vkCmdDrawIndexedIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirect" ) ); + vkCmdDrawIndexedIndirectCountAMD = + PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountAMD" ) ); + vkCmdDrawIndexedIndirectCountKHR = + PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountKHR" ) ); + vkCmdDrawIndexedIndirectCount = + PFN_vkCmdDrawIndexedIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCount" ) ); + if ( !vkCmdDrawIndexedIndirectCount ) + vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR; + if ( !vkCmdDrawIndexedIndirectCount ) + vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD; vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirect" ) ); - vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectByteCountEXT" ) ); - vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCount" ) ); - vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountAMD" ) ); - vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountKHR" ) ); - vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountNV" ) ); - vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectNV" ) ); + vkCmdDrawIndirectByteCountEXT = + PFN_vkCmdDrawIndirectByteCountEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectByteCountEXT" ) ); + vkCmdDrawIndirectCountAMD = + PFN_vkCmdDrawIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountAMD" ) ); + vkCmdDrawIndirectCountKHR = + PFN_vkCmdDrawIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountKHR" ) ); + vkCmdDrawIndirectCount = + PFN_vkCmdDrawIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCount" ) ); + if ( !vkCmdDrawIndirectCount ) + vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR; + if ( !vkCmdDrawIndirectCount ) + vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD; + vkCmdDrawMeshTasksIndirectCountNV = + PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountNV" ) ); + vkCmdDrawMeshTasksIndirectNV = + PFN_vkCmdDrawMeshTasksIndirectNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectNV" ) ); vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksNV" ) ); - vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdEndConditionalRenderingEXT" ) ); - vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdEndDebugUtilsLabelEXT" ) ); +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetInstanceProcAddr( instance, "vkCmdEncodeVideoKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + vkCmdEndConditionalRenderingEXT = + PFN_vkCmdEndConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdEndConditionalRenderingEXT" ) ); + vkCmdEndDebugUtilsLabelEXT = + PFN_vkCmdEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdEndDebugUtilsLabelEXT" ) ); vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetInstanceProcAddr( instance, "vkCmdEndQuery" ) ); - vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdEndQueryIndexedEXT" ) ); + vkCmdEndQueryIndexedEXT = + PFN_vkCmdEndQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdEndQueryIndexedEXT" ) ); vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass" ) ); + vkCmdEndRenderPass2KHR = + PFN_vkCmdEndRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2KHR" ) ); vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2" ) ); - vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2KHR" ) ); - vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdEndTransformFeedbackEXT" ) ); + if ( !vkCmdEndRenderPass2 ) + vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR; + vkCmdEndTransformFeedbackEXT = + PFN_vkCmdEndTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdEndTransformFeedbackEXT" ) ); +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkCmdEndVideoCodingKHR = + PFN_vkCmdEndVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdEndVideoCodingKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetInstanceProcAddr( instance, "vkCmdExecuteCommands" ) ); + vkCmdExecuteGeneratedCommandsNV = + PFN_vkCmdExecuteGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdExecuteGeneratedCommandsNV" ) ); vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetInstanceProcAddr( instance, "vkCmdFillBuffer" ) ); - vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdInsertDebugUtilsLabelEXT" ) ); - vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass" ) ); - vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2" ) ); + vkCmdInsertDebugUtilsLabelEXT = + PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdInsertDebugUtilsLabelEXT" ) ); + vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass" ) ); vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2KHR" ) ); + vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2" ) ); + if ( !vkCmdNextSubpass2 ) + vkCmdNextSubpass2 = vkCmdNextSubpass2KHR; vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier" ) ); - vkCmdProcessCommandsNVX = PFN_vkCmdProcessCommandsNVX( vkGetInstanceProcAddr( instance, "vkCmdProcessCommandsNVX" ) ); + vkCmdPipelineBarrier2KHR = + PFN_vkCmdPipelineBarrier2KHR( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier2KHR" ) ); + vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( + vkGetInstanceProcAddr( instance, "vkCmdPreprocessGeneratedCommandsNV" ) ); vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetInstanceProcAddr( instance, "vkCmdPushConstants" ) ); - vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetKHR" ) ); - vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplateKHR" ) ); - vkCmdReserveSpaceForCommandsNVX = PFN_vkCmdReserveSpaceForCommandsNVX( vkGetInstanceProcAddr( instance, "vkCmdReserveSpaceForCommandsNVX" ) ); - vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetInstanceProcAddr( instance, "vkCmdResetEvent" ) ); - vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetInstanceProcAddr( instance, "vkCmdResetQueryPool" ) ); - vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetInstanceProcAddr( instance, "vkCmdResolveImage" ) ); - vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetInstanceProcAddr( instance, "vkCmdSetBlendConstants" ) ); + vkCmdPushDescriptorSetKHR = + PFN_vkCmdPushDescriptorSetKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetKHR" ) ); + vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( + vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplateKHR" ) ); + vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetInstanceProcAddr( instance, "vkCmdResetEvent" ) ); + vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetInstanceProcAddr( instance, "vkCmdResetEvent2KHR" ) ); + vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetInstanceProcAddr( instance, "vkCmdResetQueryPool" ) ); + vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetInstanceProcAddr( instance, "vkCmdResolveImage" ) ); + vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdResolveImage2KHR" ) ); + vkCmdSetBlendConstants = + PFN_vkCmdSetBlendConstants( vkGetInstanceProcAddr( instance, "vkCmdSetBlendConstants" ) ); vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetInstanceProcAddr( instance, "vkCmdSetCheckpointNV" ) ); - vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoarseSampleOrderNV" ) ); - vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias" ) ); + vkCmdSetCoarseSampleOrderNV = + PFN_vkCmdSetCoarseSampleOrderNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoarseSampleOrderNV" ) ); + vkCmdSetColorWriteEnableEXT = + PFN_vkCmdSetColorWriteEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetColorWriteEnableEXT" ) ); + vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetCullModeEXT" ) ); + vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias" ) ); + vkCmdSetDepthBiasEnableEXT = + PFN_vkCmdSetDepthBiasEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBiasEnableEXT" ) ); vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBounds" ) ); - vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMask" ) ); + vkCmdSetDepthBoundsTestEnableEXT = + PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBoundsTestEnableEXT" ) ); + vkCmdSetDepthCompareOpEXT = + PFN_vkCmdSetDepthCompareOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthCompareOpEXT" ) ); + vkCmdSetDepthTestEnableEXT = + PFN_vkCmdSetDepthTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthTestEnableEXT" ) ); + vkCmdSetDepthWriteEnableEXT = + PFN_vkCmdSetDepthWriteEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthWriteEnableEXT" ) ); vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMaskKHR" ) ); - vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ) ); - vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetInstanceProcAddr( instance, "vkCmdSetEvent" ) ); - vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" ) ); - vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLineStippleEXT" ) ); - vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetInstanceProcAddr( instance, "vkCmdSetLineWidth" ) ); - vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceMarkerINTEL" ) ); - vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceOverrideINTEL" ) ); - vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceStreamMarkerINTEL" ) ); - vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEXT" ) ); + vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMask" ) ); + if ( !vkCmdSetDeviceMask ) + vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR; + vkCmdSetDiscardRectangleEXT = + PFN_vkCmdSetDiscardRectangleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ) ); + vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetInstanceProcAddr( instance, "vkCmdSetEvent" ) ); + vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetInstanceProcAddr( instance, "vkCmdSetEvent2KHR" ) ); + vkCmdSetExclusiveScissorNV = + PFN_vkCmdSetExclusiveScissorNV( vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" ) ); + vkCmdSetFragmentShadingRateEnumNV = + PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateEnumNV" ) ); + vkCmdSetFragmentShadingRateKHR = + PFN_vkCmdSetFragmentShadingRateKHR( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateKHR" ) ); + vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetInstanceProcAddr( instance, "vkCmdSetFrontFaceEXT" ) ); + vkCmdSetLineStippleEXT = + PFN_vkCmdSetLineStippleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLineStippleEXT" ) ); + vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetInstanceProcAddr( instance, "vkCmdSetLineWidth" ) ); + vkCmdSetLogicOpEXT = PFN_vkCmdSetLogicOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLogicOpEXT" ) ); + vkCmdSetPatchControlPointsEXT = + PFN_vkCmdSetPatchControlPointsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPatchControlPointsEXT" ) ); + vkCmdSetPerformanceMarkerINTEL = + PFN_vkCmdSetPerformanceMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceMarkerINTEL" ) ); + vkCmdSetPerformanceOverrideINTEL = + PFN_vkCmdSetPerformanceOverrideINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceOverrideINTEL" ) ); + vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( + vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceStreamMarkerINTEL" ) ); + vkCmdSetPrimitiveRestartEnableEXT = + PFN_vkCmdSetPrimitiveRestartEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveRestartEnableEXT" ) ); + vkCmdSetPrimitiveTopologyEXT = + PFN_vkCmdSetPrimitiveTopologyEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveTopologyEXT" ) ); + vkCmdSetRasterizerDiscardEnableEXT = PFN_vkCmdSetRasterizerDiscardEnableEXT( + vkGetInstanceProcAddr( instance, "vkCmdSetRasterizerDiscardEnableEXT" ) ); + vkCmdSetRayTracingPipelineStackSizeKHR = PFN_vkCmdSetRayTracingPipelineStackSizeKHR( + vkGetInstanceProcAddr( instance, "vkCmdSetRayTracingPipelineStackSizeKHR" ) ); + vkCmdSetSampleLocationsEXT = + PFN_vkCmdSetSampleLocationsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEXT" ) ); vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetInstanceProcAddr( instance, "vkCmdSetScissor" ) ); - vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilCompareMask" ) ); - vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( vkGetInstanceProcAddr( instance, "vkCmdSetStencilReference" ) ); - vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilWriteMask" ) ); + vkCmdSetScissorWithCountEXT = + PFN_vkCmdSetScissorWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetScissorWithCountEXT" ) ); + vkCmdSetStencilCompareMask = + PFN_vkCmdSetStencilCompareMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilCompareMask" ) ); + vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilOpEXT" ) ); + vkCmdSetStencilReference = + PFN_vkCmdSetStencilReference( vkGetInstanceProcAddr( instance, "vkCmdSetStencilReference" ) ); + vkCmdSetStencilTestEnableEXT = + PFN_vkCmdSetStencilTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilTestEnableEXT" ) ); + vkCmdSetStencilWriteMask = + PFN_vkCmdSetStencilWriteMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilWriteMask" ) ); + vkCmdSetVertexInputEXT = + PFN_vkCmdSetVertexInputEXT( vkGetInstanceProcAddr( instance, "vkCmdSetVertexInputEXT" ) ); vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetInstanceProcAddr( instance, "vkCmdSetViewport" ) ); - vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportShadingRatePaletteNV" ) ); - vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingNV" ) ); - vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysNV" ) ); - vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetInstanceProcAddr( instance, "vkCmdUpdateBuffer" ) ); - vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents" ) ); - vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesNV" ) ); - vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarkerAMD" ) ); + vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( + vkGetInstanceProcAddr( instance, "vkCmdSetViewportShadingRatePaletteNV" ) ); + vkCmdSetViewportWScalingNV = + PFN_vkCmdSetViewportWScalingNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingNV" ) ); + vkCmdSetViewportWithCountEXT = + PFN_vkCmdSetViewportWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWithCountEXT" ) ); + vkCmdTraceRaysIndirectKHR = + PFN_vkCmdTraceRaysIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirectKHR" ) ); + vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysKHR" ) ); + vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysNV" ) ); + vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetInstanceProcAddr( instance, "vkCmdUpdateBuffer" ) ); + vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents" ) ); + vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents2KHR" ) ); + vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( + vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) ); + vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( + vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesNV" ) ); + vkCmdWriteBufferMarker2AMD = + PFN_vkCmdWriteBufferMarker2AMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarker2AMD" ) ); + vkCmdWriteBufferMarkerAMD = + PFN_vkCmdWriteBufferMarkerAMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarkerAMD" ) ); vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp" ) ); - vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetInstanceProcAddr( instance, "vkEndCommandBuffer" ) ); - vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetInstanceProcAddr( instance, "vkResetCommandBuffer" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkAcquireFullScreenExclusiveModeEXT" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImage2KHR" ) ); - vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImageKHR" ) ); - vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkAcquirePerformanceConfigurationINTEL" ) ); - vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkAcquireProfilingLockKHR" ) ); - vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers" ) ); - vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( vkGetInstanceProcAddr( instance, "vkAllocateDescriptorSets" ) ); - vkAllocateMemory = PFN_vkAllocateMemory( vkGetInstanceProcAddr( instance, "vkAllocateMemory" ) ); - vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryNV" ) ); - vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetInstanceProcAddr( instance, "vkBindBufferMemory" ) ); - vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2" ) ); - vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2KHR" ) ); - vkBindImageMemory = PFN_vkBindImageMemory( vkGetInstanceProcAddr( instance, "vkBindImageMemory" ) ); - vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetInstanceProcAddr( instance, "vkBindImageMemory2" ) ); - vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindImageMemory2KHR" ) ); + vkCmdWriteTimestamp2KHR = + PFN_vkCmdWriteTimestamp2KHR( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp2KHR" ) ); vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetInstanceProcAddr( instance, "vkCompileDeferredNV" ) ); - vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureNV" ) ); - vkCreateBuffer = PFN_vkCreateBuffer( vkGetInstanceProcAddr( instance, "vkCreateBuffer" ) ); - vkCreateBufferView = PFN_vkCreateBufferView( vkGetInstanceProcAddr( instance, "vkCreateBufferView" ) ); + vkCopyAccelerationStructureKHR = + PFN_vkCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureKHR" ) ); + vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR( + vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureToMemoryKHR" ) ); + vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR( + vkGetInstanceProcAddr( instance, "vkCopyMemoryToAccelerationStructureKHR" ) ); + vkCreateAccelerationStructureKHR = + PFN_vkCreateAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureKHR" ) ); + vkCreateAccelerationStructureNV = + PFN_vkCreateAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureNV" ) ); + vkCreateBuffer = PFN_vkCreateBuffer( vkGetInstanceProcAddr( instance, "vkCreateBuffer" ) ); + vkCreateBufferView = PFN_vkCreateBufferView( vkGetInstanceProcAddr( instance, "vkCreateBufferView" ) ); vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetInstanceProcAddr( instance, "vkCreateCommandPool" ) ); - vkCreateComputePipelines = PFN_vkCreateComputePipelines( vkGetInstanceProcAddr( instance, "vkCreateComputePipelines" ) ); - vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetInstanceProcAddr( instance, "vkCreateDescriptorPool" ) ); - vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkCreateDescriptorSetLayout" ) ); - vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplate" ) ); - vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplateKHR" ) ); - vkCreateEvent = PFN_vkCreateEvent( vkGetInstanceProcAddr( instance, "vkCreateEvent" ) ); - vkCreateFence = PFN_vkCreateFence( vkGetInstanceProcAddr( instance, "vkCreateFence" ) ); + vkCreateComputePipelines = + PFN_vkCreateComputePipelines( vkGetInstanceProcAddr( instance, "vkCreateComputePipelines" ) ); + vkCreateDeferredOperationKHR = + PFN_vkCreateDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkCreateDeferredOperationKHR" ) ); + vkCreateDescriptorPool = + PFN_vkCreateDescriptorPool( vkGetInstanceProcAddr( instance, "vkCreateDescriptorPool" ) ); + vkCreateDescriptorSetLayout = + PFN_vkCreateDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkCreateDescriptorSetLayout" ) ); + vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( + vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplateKHR" ) ); + vkCreateDescriptorUpdateTemplate = + PFN_vkCreateDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplate" ) ); + if ( !vkCreateDescriptorUpdateTemplate ) + vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR; + vkCreateEvent = PFN_vkCreateEvent( vkGetInstanceProcAddr( instance, "vkCreateEvent" ) ); + vkCreateFence = PFN_vkCreateFence( vkGetInstanceProcAddr( instance, "vkCreateFence" ) ); vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetInstanceProcAddr( instance, "vkCreateFramebuffer" ) ); - vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( vkGetInstanceProcAddr( instance, "vkCreateGraphicsPipelines" ) ); - vkCreateImage = PFN_vkCreateImage( vkGetInstanceProcAddr( instance, "vkCreateImage" ) ); + vkCreateGraphicsPipelines = + PFN_vkCreateGraphicsPipelines( vkGetInstanceProcAddr( instance, "vkCreateGraphicsPipelines" ) ); + vkCreateImage = PFN_vkCreateImage( vkGetInstanceProcAddr( instance, "vkCreateImage" ) ); vkCreateImageView = PFN_vkCreateImageView( vkGetInstanceProcAddr( instance, "vkCreateImageView" ) ); - vkCreateIndirectCommandsLayoutNVX = PFN_vkCreateIndirectCommandsLayoutNVX( vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNVX" ) ); - vkCreateObjectTableNVX = PFN_vkCreateObjectTableNVX( vkGetInstanceProcAddr( instance, "vkCreateObjectTableNVX" ) ); + vkCreateIndirectCommandsLayoutNV = + PFN_vkCreateIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNV" ) ); vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetInstanceProcAddr( instance, "vkCreatePipelineCache" ) ); - vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetInstanceProcAddr( instance, "vkCreatePipelineLayout" ) ); + vkCreatePipelineLayout = + PFN_vkCreatePipelineLayout( vkGetInstanceProcAddr( instance, "vkCreatePipelineLayout" ) ); + vkCreatePrivateDataSlotEXT = + PFN_vkCreatePrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkCreatePrivateDataSlotEXT" ) ); vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetInstanceProcAddr( instance, "vkCreateQueryPool" ) ); - vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesNV" ) ); + vkCreateRayTracingPipelinesKHR = + PFN_vkCreateRayTracingPipelinesKHR( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesKHR" ) ); + vkCreateRayTracingPipelinesNV = + PFN_vkCreateRayTracingPipelinesNV( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesNV" ) ); vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetInstanceProcAddr( instance, "vkCreateRenderPass" ) ); + vkCreateRenderPass2KHR = + PFN_vkCreateRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2KHR" ) ); vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2" ) ); - vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2KHR" ) ); + if ( !vkCreateRenderPass2 ) + vkCreateRenderPass2 = vkCreateRenderPass2KHR; vkCreateSampler = PFN_vkCreateSampler( vkGetInstanceProcAddr( instance, "vkCreateSampler" ) ); - vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversion" ) ); - vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversionKHR" ) ); - vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetInstanceProcAddr( instance, "vkCreateSemaphore" ) ); + vkCreateSamplerYcbcrConversionKHR = + PFN_vkCreateSamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversionKHR" ) ); + vkCreateSamplerYcbcrConversion = + PFN_vkCreateSamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversion" ) ); + if ( !vkCreateSamplerYcbcrConversion ) + vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR; + vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetInstanceProcAddr( instance, "vkCreateSemaphore" ) ); vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetInstanceProcAddr( instance, "vkCreateShaderModule" ) ); - vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetInstanceProcAddr( instance, "vkCreateSharedSwapchainsKHR" ) ); + vkCreateSharedSwapchainsKHR = + PFN_vkCreateSharedSwapchainsKHR( vkGetInstanceProcAddr( instance, "vkCreateSharedSwapchainsKHR" ) ); vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetInstanceProcAddr( instance, "vkCreateSwapchainKHR" ) ); - vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkCreateValidationCacheEXT" ) ); - vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectNameEXT" ) ); - vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectTagEXT" ) ); - vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureNV" ) ); - vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetInstanceProcAddr( instance, "vkDestroyBuffer" ) ); - vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetInstanceProcAddr( instance, "vkDestroyBufferView" ) ); + vkCreateValidationCacheEXT = + PFN_vkCreateValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkCreateValidationCacheEXT" ) ); +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkCreateVideoSessionKHR = + PFN_vkCreateVideoSessionKHR( vkGetInstanceProcAddr( instance, "vkCreateVideoSessionKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkCreateVideoSessionParametersKHR = + PFN_vkCreateVideoSessionParametersKHR( vkGetInstanceProcAddr( instance, "vkCreateVideoSessionParametersKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + vkDebugMarkerSetObjectNameEXT = + PFN_vkDebugMarkerSetObjectNameEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectNameEXT" ) ); + vkDebugMarkerSetObjectTagEXT = + PFN_vkDebugMarkerSetObjectTagEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectTagEXT" ) ); + vkDeferredOperationJoinKHR = + PFN_vkDeferredOperationJoinKHR( vkGetInstanceProcAddr( instance, "vkDeferredOperationJoinKHR" ) ); + vkDestroyAccelerationStructureKHR = + PFN_vkDestroyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureKHR" ) ); + vkDestroyAccelerationStructureNV = + PFN_vkDestroyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureNV" ) ); + vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetInstanceProcAddr( instance, "vkDestroyBuffer" ) ); + vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetInstanceProcAddr( instance, "vkDestroyBufferView" ) ); vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetInstanceProcAddr( instance, "vkDestroyCommandPool" ) ); - vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorPool" ) ); - vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorSetLayout" ) ); - vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplate" ) ); - vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplateKHR" ) ); - vkDestroyDevice = PFN_vkDestroyDevice( vkGetInstanceProcAddr( instance, "vkDestroyDevice" ) ); - vkDestroyEvent = PFN_vkDestroyEvent( vkGetInstanceProcAddr( instance, "vkDestroyEvent" ) ); - vkDestroyFence = PFN_vkDestroyFence( vkGetInstanceProcAddr( instance, "vkDestroyFence" ) ); + vkDestroyDeferredOperationKHR = + PFN_vkDestroyDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkDestroyDeferredOperationKHR" ) ); + vkDestroyDescriptorPool = + PFN_vkDestroyDescriptorPool( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorPool" ) ); + vkDestroyDescriptorSetLayout = + PFN_vkDestroyDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorSetLayout" ) ); + vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( + vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplateKHR" ) ); + vkDestroyDescriptorUpdateTemplate = + PFN_vkDestroyDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplate" ) ); + if ( !vkDestroyDescriptorUpdateTemplate ) + vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR; + vkDestroyDevice = PFN_vkDestroyDevice( vkGetInstanceProcAddr( instance, "vkDestroyDevice" ) ); + vkDestroyEvent = PFN_vkDestroyEvent( vkGetInstanceProcAddr( instance, "vkDestroyEvent" ) ); + vkDestroyFence = PFN_vkDestroyFence( vkGetInstanceProcAddr( instance, "vkDestroyFence" ) ); vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetInstanceProcAddr( instance, "vkDestroyFramebuffer" ) ); - vkDestroyImage = PFN_vkDestroyImage( vkGetInstanceProcAddr( instance, "vkDestroyImage" ) ); - vkDestroyImageView = PFN_vkDestroyImageView( vkGetInstanceProcAddr( instance, "vkDestroyImageView" ) ); - vkDestroyIndirectCommandsLayoutNVX = PFN_vkDestroyIndirectCommandsLayoutNVX( vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNVX" ) ); - vkDestroyObjectTableNVX = PFN_vkDestroyObjectTableNVX( vkGetInstanceProcAddr( instance, "vkDestroyObjectTableNVX" ) ); + vkDestroyImage = PFN_vkDestroyImage( vkGetInstanceProcAddr( instance, "vkDestroyImage" ) ); + vkDestroyImageView = PFN_vkDestroyImageView( vkGetInstanceProcAddr( instance, "vkDestroyImageView" ) ); + vkDestroyIndirectCommandsLayoutNV = + PFN_vkDestroyIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNV" ) ); vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetInstanceProcAddr( instance, "vkDestroyPipeline" ) ); - vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetInstanceProcAddr( instance, "vkDestroyPipelineCache" ) ); - vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetInstanceProcAddr( instance, "vkDestroyPipelineLayout" ) ); - vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetInstanceProcAddr( instance, "vkDestroyQueryPool" ) ); + vkDestroyPipelineCache = + PFN_vkDestroyPipelineCache( vkGetInstanceProcAddr( instance, "vkDestroyPipelineCache" ) ); + vkDestroyPipelineLayout = + PFN_vkDestroyPipelineLayout( vkGetInstanceProcAddr( instance, "vkDestroyPipelineLayout" ) ); + vkDestroyPrivateDataSlotEXT = + PFN_vkDestroyPrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkDestroyPrivateDataSlotEXT" ) ); + vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetInstanceProcAddr( instance, "vkDestroyQueryPool" ) ); vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetInstanceProcAddr( instance, "vkDestroyRenderPass" ) ); - vkDestroySampler = PFN_vkDestroySampler( vkGetInstanceProcAddr( instance, "vkDestroySampler" ) ); - vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversion" ) ); - vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversionKHR" ) ); - vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetInstanceProcAddr( instance, "vkDestroySemaphore" ) ); + vkDestroySampler = PFN_vkDestroySampler( vkGetInstanceProcAddr( instance, "vkDestroySampler" ) ); + vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( + vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversionKHR" ) ); + vkDestroySamplerYcbcrConversion = + PFN_vkDestroySamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversion" ) ); + if ( !vkDestroySamplerYcbcrConversion ) + vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR; + vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetInstanceProcAddr( instance, "vkDestroySemaphore" ) ); vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetInstanceProcAddr( instance, "vkDestroyShaderModule" ) ); vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetInstanceProcAddr( instance, "vkDestroySwapchainKHR" ) ); - vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkDestroyValidationCacheEXT" ) ); + vkDestroyValidationCacheEXT = + PFN_vkDestroyValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkDestroyValidationCacheEXT" ) ); +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkDestroyVideoSessionKHR = + PFN_vkDestroyVideoSessionKHR( vkGetInstanceProcAddr( instance, "vkDestroyVideoSessionKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkDestroyVideoSessionParametersKHR = PFN_vkDestroyVideoSessionParametersKHR( + vkGetInstanceProcAddr( instance, "vkDestroyVideoSessionParametersKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetInstanceProcAddr( instance, "vkDeviceWaitIdle" ) ); - vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( vkGetInstanceProcAddr( instance, "vkDisplayPowerControlEXT" ) ); - vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkFlushMappedMemoryRanges" ) ); + vkDisplayPowerControlEXT = + PFN_vkDisplayPowerControlEXT( vkGetInstanceProcAddr( instance, "vkDisplayPowerControlEXT" ) ); + vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetInstanceProcAddr( instance, "vkEndCommandBuffer" ) ); + vkFlushMappedMemoryRanges = + PFN_vkFlushMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkFlushMappedMemoryRanges" ) ); vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetInstanceProcAddr( instance, "vkFreeCommandBuffers" ) ); vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetInstanceProcAddr( instance, "vkFreeDescriptorSets" ) ); - vkFreeMemory = PFN_vkFreeMemory( vkGetInstanceProcAddr( instance, "vkFreeMemory" ) ); - vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureHandleNV" ) ); - vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsNV" ) ); -#ifdef VK_USE_PLATFORM_ANDROID_KHR - vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetInstanceProcAddr( instance, "vkGetAndroidHardwareBufferPropertiesANDROID" ) ); + vkFreeMemory = PFN_vkFreeMemory( vkGetInstanceProcAddr( instance, "vkFreeMemory" ) ); + vkGetAccelerationStructureBuildSizesKHR = PFN_vkGetAccelerationStructureBuildSizesKHR( + vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureBuildSizesKHR" ) ); + vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR( + vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureDeviceAddressKHR" ) ); + vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( + vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureHandleNV" ) ); + vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( + vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsNV" ) ); +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( + vkGetInstanceProcAddr( instance, "vkGetAndroidHardwareBufferPropertiesANDROID" ) ); #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddress" ) ); - vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressEXT" ) ); - vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressKHR" ) ); - vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements" ) ); - vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2" ) ); - vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2KHR" ) ); - vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddress" ) ); - vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddressKHR" ) ); - vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsEXT" ) ); - vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupport" ) ); - vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupportKHR" ) ); - vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeatures" ) ); - vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) ); - vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPresentCapabilitiesKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModes2EXT" ) ); + vkGetBufferDeviceAddressEXT = + PFN_vkGetBufferDeviceAddressEXT( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressEXT" ) ); + vkGetBufferDeviceAddressKHR = + PFN_vkGetBufferDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressKHR" ) ); + vkGetBufferDeviceAddress = + PFN_vkGetBufferDeviceAddress( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddress" ) ); + if ( !vkGetBufferDeviceAddress ) + vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR; + if ( !vkGetBufferDeviceAddress ) + vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT; + vkGetBufferMemoryRequirements = + PFN_vkGetBufferMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements" ) ); + vkGetBufferMemoryRequirements2KHR = + PFN_vkGetBufferMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2KHR" ) ); + vkGetBufferMemoryRequirements2 = + PFN_vkGetBufferMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2" ) ); + if ( !vkGetBufferMemoryRequirements2 ) + vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR; + vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( + vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddressKHR" ) ); + vkGetBufferOpaqueCaptureAddress = + PFN_vkGetBufferOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddress" ) ); + if ( !vkGetBufferOpaqueCaptureAddress ) + vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR; + vkGetCalibratedTimestampsEXT = + PFN_vkGetCalibratedTimestampsEXT( vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsEXT" ) ); + vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR( + vkGetInstanceProcAddr( instance, "vkGetDeferredOperationMaxConcurrencyKHR" ) ); + vkGetDeferredOperationResultKHR = + PFN_vkGetDeferredOperationResultKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationResultKHR" ) ); + vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( + vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupportKHR" ) ); + vkGetDescriptorSetLayoutSupport = + PFN_vkGetDescriptorSetLayoutSupport( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupport" ) ); + if ( !vkGetDescriptorSetLayoutSupport ) + vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR; + vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( + vkGetInstanceProcAddr( instance, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) ); + vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( + vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) ); + vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( + vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeatures" ) ); + if ( !vkGetDeviceGroupPeerMemoryFeatures ) + vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR; + vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( + vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPresentCapabilitiesKHR" ) ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( + vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModes2EXT" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModesKHR" ) ); - vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryCommitment" ) ); - vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddress" ) ); - vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) ); + vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( + vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModesKHR" ) ); + vkGetDeviceMemoryCommitment = + PFN_vkGetDeviceMemoryCommitment( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryCommitment" ) ); + vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( + vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) ); + vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( + vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddress" ) ); + if ( !vkGetDeviceMemoryOpaqueCaptureAddress ) + vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR; vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ) ); - vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue" ) ); - vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue2" ) ); - vkGetEventStatus = PFN_vkGetEventStatus( vkGetInstanceProcAddr( instance, "vkGetEventStatus" ) ); - vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetInstanceProcAddr( instance, "vkGetFenceFdKHR" ) ); - vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetInstanceProcAddr( instance, "vkGetFenceStatus" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetFenceWin32HandleKHR" ) ); + vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue" ) ); + vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue2" ) ); + vkGetEventStatus = PFN_vkGetEventStatus( vkGetInstanceProcAddr( instance, "vkGetEventStatus" ) ); + vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetInstanceProcAddr( instance, "vkGetFenceFdKHR" ) ); + vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetInstanceProcAddr( instance, "vkGetFenceStatus" ) ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkGetFenceWin32HandleKHR = + PFN_vkGetFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetFenceWin32HandleKHR" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetImageDrmFormatModifierPropertiesEXT" ) ); - vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements" ) ); - vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2" ) ); - vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2KHR" ) ); - vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements" ) ); - vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2" ) ); - vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2KHR" ) ); - vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout" ) ); - vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewHandleNVX" ) ); -#ifdef VK_USE_PLATFORM_ANDROID_KHR - vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetInstanceProcAddr( instance, "vkGetMemoryAndroidHardwareBufferANDROID" ) ); + vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV( + vkGetInstanceProcAddr( instance, "vkGetGeneratedCommandsMemoryRequirementsNV" ) ); + vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( + vkGetInstanceProcAddr( instance, "vkGetImageDrmFormatModifierPropertiesEXT" ) ); + vkGetImageMemoryRequirements = + PFN_vkGetImageMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements" ) ); + vkGetImageMemoryRequirements2KHR = + PFN_vkGetImageMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2KHR" ) ); + vkGetImageMemoryRequirements2 = + PFN_vkGetImageMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2" ) ); + if ( !vkGetImageMemoryRequirements2 ) + vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR; + vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( + vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements" ) ); + vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( + vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2KHR" ) ); + vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( + vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2" ) ); + if ( !vkGetImageSparseMemoryRequirements2 ) + vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR; + vkGetImageSubresourceLayout = + PFN_vkGetImageSubresourceLayout( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout" ) ); + vkGetImageViewAddressNVX = + PFN_vkGetImageViewAddressNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewAddressNVX" ) ); + vkGetImageViewHandleNVX = + PFN_vkGetImageViewHandleNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewHandleNVX" ) ); +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( + vkGetInstanceProcAddr( instance, "vkGetMemoryAndroidHardwareBufferANDROID" ) ); #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdKHR" ) ); - vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdPropertiesKHR" ) ); - vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetMemoryHostPointerPropertiesEXT" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleKHR" ) ); + vkGetMemoryFdPropertiesKHR = + PFN_vkGetMemoryFdPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdPropertiesKHR" ) ); + vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( + vkGetInstanceProcAddr( instance, "vkGetMemoryHostPointerPropertiesEXT" ) ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkGetMemoryWin32HandleKHR = + PFN_vkGetMemoryWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleKHR" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleNV" ) ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkGetMemoryWin32HandleNV = + PFN_vkGetMemoryWin32HandleNV( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleNV" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandlePropertiesKHR" ) ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( + vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandlePropertiesKHR" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" ) ); - vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetInstanceProcAddr( instance, "vkGetPerformanceParameterINTEL" ) ); - vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetInstanceProcAddr( instance, "vkGetPipelineCacheData" ) ); - vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableInternalRepresentationsKHR" ) ); - vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutablePropertiesKHR" ) ); - vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableStatisticsKHR" ) ); +#if defined( VK_USE_PLATFORM_FUCHSIA ) + vkGetMemoryZirconHandleFUCHSIA = + PFN_vkGetMemoryZirconHandleFUCHSIA( vkGetInstanceProcAddr( instance, "vkGetMemoryZirconHandleFUCHSIA" ) ); +#endif /*VK_USE_PLATFORM_FUCHSIA*/ +#if defined( VK_USE_PLATFORM_FUCHSIA ) + vkGetMemoryZirconHandlePropertiesFUCHSIA = PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA( + vkGetInstanceProcAddr( instance, "vkGetMemoryZirconHandlePropertiesFUCHSIA" ) ); +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + vkGetPastPresentationTimingGOOGLE = + PFN_vkGetPastPresentationTimingGOOGLE( vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" ) ); + vkGetPerformanceParameterINTEL = + PFN_vkGetPerformanceParameterINTEL( vkGetInstanceProcAddr( instance, "vkGetPerformanceParameterINTEL" ) ); + vkGetPipelineCacheData = + PFN_vkGetPipelineCacheData( vkGetInstanceProcAddr( instance, "vkGetPipelineCacheData" ) ); + vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( + vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableInternalRepresentationsKHR" ) ); + vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( + vkGetInstanceProcAddr( instance, "vkGetPipelineExecutablePropertiesKHR" ) ); + vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( + vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableStatisticsKHR" ) ); + vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkGetPrivateDataEXT" ) ); vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetInstanceProcAddr( instance, "vkGetQueryPoolResults" ) ); - vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesNV" ) ); - vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetInstanceProcAddr( instance, "vkGetRefreshCycleDurationGOOGLE" ) ); - vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( vkGetInstanceProcAddr( instance, "vkGetRenderAreaGranularity" ) ); - vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValue" ) ); - vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValueKHR" ) ); + vkGetQueueCheckpointData2NV = + PFN_vkGetQueueCheckpointData2NV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointData2NV" ) ); + vkGetQueueCheckpointDataNV = + PFN_vkGetQueueCheckpointDataNV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointDataNV" ) ); + vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( + vkGetInstanceProcAddr( instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) ); + vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( + vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesNV" ) ); + vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( + vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesKHR" ) ); + if ( !vkGetRayTracingShaderGroupHandlesKHR ) + vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV; + vkGetRayTracingShaderGroupStackSizeKHR = PFN_vkGetRayTracingShaderGroupStackSizeKHR( + vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupStackSizeKHR" ) ); + vkGetRefreshCycleDurationGOOGLE = + PFN_vkGetRefreshCycleDurationGOOGLE( vkGetInstanceProcAddr( instance, "vkGetRefreshCycleDurationGOOGLE" ) ); + vkGetRenderAreaGranularity = + PFN_vkGetRenderAreaGranularity( vkGetInstanceProcAddr( instance, "vkGetRenderAreaGranularity" ) ); + vkGetSemaphoreCounterValueKHR = + PFN_vkGetSemaphoreCounterValueKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValueKHR" ) ); + vkGetSemaphoreCounterValue = + PFN_vkGetSemaphoreCounterValue( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValue" ) ); + if ( !vkGetSemaphoreCounterValue ) + vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR; vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreFdKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreWin32HandleKHR" ) ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkGetSemaphoreWin32HandleKHR = + PFN_vkGetSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreWin32HandleKHR" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ +#if defined( VK_USE_PLATFORM_FUCHSIA ) + vkGetSemaphoreZirconHandleFUCHSIA = + PFN_vkGetSemaphoreZirconHandleFUCHSIA( vkGetInstanceProcAddr( instance, "vkGetSemaphoreZirconHandleFUCHSIA" ) ); +#endif /*VK_USE_PLATFORM_FUCHSIA*/ vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetInstanceProcAddr( instance, "vkGetShaderInfoAMD" ) ); - vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( vkGetInstanceProcAddr( instance, "vkGetSwapchainCounterEXT" ) ); - vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainImagesKHR" ) ); - vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainStatusKHR" ) ); - vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetInstanceProcAddr( instance, "vkGetValidationCacheDataEXT" ) ); + vkGetSwapchainCounterEXT = + PFN_vkGetSwapchainCounterEXT( vkGetInstanceProcAddr( instance, "vkGetSwapchainCounterEXT" ) ); + vkGetSwapchainImagesKHR = + PFN_vkGetSwapchainImagesKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainImagesKHR" ) ); + vkGetSwapchainStatusKHR = + PFN_vkGetSwapchainStatusKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainStatusKHR" ) ); + vkGetValidationCacheDataEXT = + PFN_vkGetValidationCacheDataEXT( vkGetInstanceProcAddr( instance, "vkGetValidationCacheDataEXT" ) ); +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkGetVideoSessionMemoryRequirementsKHR = PFN_vkGetVideoSessionMemoryRequirementsKHR( + vkGetInstanceProcAddr( instance, "vkGetVideoSessionMemoryRequirementsKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetInstanceProcAddr( instance, "vkImportFenceFdKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportFenceWin32HandleKHR" ) ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkImportFenceWin32HandleKHR = + PFN_vkImportFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportFenceWin32HandleKHR" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreFdKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreWin32HandleKHR" ) ); + vkImportSemaphoreFdKHR = + PFN_vkImportSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreFdKHR" ) ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkImportSemaphoreWin32HandleKHR = + PFN_vkImportSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreWin32HandleKHR" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkInitializePerformanceApiINTEL" ) ); - vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkInvalidateMappedMemoryRanges" ) ); - vkMapMemory = PFN_vkMapMemory( vkGetInstanceProcAddr( instance, "vkMapMemory" ) ); +#if defined( VK_USE_PLATFORM_FUCHSIA ) + vkImportSemaphoreZirconHandleFUCHSIA = PFN_vkImportSemaphoreZirconHandleFUCHSIA( + vkGetInstanceProcAddr( instance, "vkImportSemaphoreZirconHandleFUCHSIA" ) ); +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + vkInitializePerformanceApiINTEL = + PFN_vkInitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkInitializePerformanceApiINTEL" ) ); + vkInvalidateMappedMemoryRanges = + PFN_vkInvalidateMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkInvalidateMappedMemoryRanges" ) ); + vkMapMemory = PFN_vkMapMemory( vkGetInstanceProcAddr( instance, "vkMapMemory" ) ); vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetInstanceProcAddr( instance, "vkMergePipelineCaches" ) ); - vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( vkGetInstanceProcAddr( instance, "vkMergeValidationCachesEXT" ) ); - vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDeviceEventEXT" ) ); - vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDisplayEventEXT" ) ); - vkRegisterObjectsNVX = PFN_vkRegisterObjectsNVX( vkGetInstanceProcAddr( instance, "vkRegisterObjectsNVX" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkReleaseFullScreenExclusiveModeEXT" ) ); + vkMergeValidationCachesEXT = + PFN_vkMergeValidationCachesEXT( vkGetInstanceProcAddr( instance, "vkMergeValidationCachesEXT" ) ); + vkQueueBeginDebugUtilsLabelEXT = + PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueBeginDebugUtilsLabelEXT" ) ); + vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetInstanceProcAddr( instance, "vkQueueBindSparse" ) ); + vkQueueEndDebugUtilsLabelEXT = + PFN_vkQueueEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueEndDebugUtilsLabelEXT" ) ); + vkQueueInsertDebugUtilsLabelEXT = + PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueInsertDebugUtilsLabelEXT" ) ); + vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetInstanceProcAddr( instance, "vkQueuePresentKHR" ) ); + vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( + vkGetInstanceProcAddr( instance, "vkQueueSetPerformanceConfigurationINTEL" ) ); + vkQueueSubmit = PFN_vkQueueSubmit( vkGetInstanceProcAddr( instance, "vkQueueSubmit" ) ); + vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetInstanceProcAddr( instance, "vkQueueSubmit2KHR" ) ); + vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetInstanceProcAddr( instance, "vkQueueWaitIdle" ) ); + vkRegisterDeviceEventEXT = + PFN_vkRegisterDeviceEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDeviceEventEXT" ) ); + vkRegisterDisplayEventEXT = + PFN_vkRegisterDisplayEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDisplayEventEXT" ) ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( + vkGetInstanceProcAddr( instance, "vkReleaseFullScreenExclusiveModeEXT" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkReleasePerformanceConfigurationINTEL" ) ); - vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkReleaseProfilingLockKHR" ) ); - vkResetCommandPool = PFN_vkResetCommandPool( vkGetInstanceProcAddr( instance, "vkResetCommandPool" ) ); + vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( + vkGetInstanceProcAddr( instance, "vkReleasePerformanceConfigurationINTEL" ) ); + vkReleaseProfilingLockKHR = + PFN_vkReleaseProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkReleaseProfilingLockKHR" ) ); + vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetInstanceProcAddr( instance, "vkResetCommandBuffer" ) ); + vkResetCommandPool = PFN_vkResetCommandPool( vkGetInstanceProcAddr( instance, "vkResetCommandPool" ) ); vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetInstanceProcAddr( instance, "vkResetDescriptorPool" ) ); - vkResetEvent = PFN_vkResetEvent( vkGetInstanceProcAddr( instance, "vkResetEvent" ) ); - vkResetFences = PFN_vkResetFences( vkGetInstanceProcAddr( instance, "vkResetFences" ) ); - vkResetQueryPool = PFN_vkResetQueryPool( vkGetInstanceProcAddr( instance, "vkResetQueryPool" ) ); - vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetInstanceProcAddr( instance, "vkResetQueryPoolEXT" ) ); - vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectNameEXT" ) ); - vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectTagEXT" ) ); - vkSetEvent = PFN_vkSetEvent( vkGetInstanceProcAddr( instance, "vkSetEvent" ) ); - vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" ) ); + vkResetEvent = PFN_vkResetEvent( vkGetInstanceProcAddr( instance, "vkResetEvent" ) ); + vkResetFences = PFN_vkResetFences( vkGetInstanceProcAddr( instance, "vkResetFences" ) ); + vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetInstanceProcAddr( instance, "vkResetQueryPoolEXT" ) ); + vkResetQueryPool = PFN_vkResetQueryPool( vkGetInstanceProcAddr( instance, "vkResetQueryPool" ) ); + if ( !vkResetQueryPool ) + vkResetQueryPool = vkResetQueryPoolEXT; + vkSetDebugUtilsObjectNameEXT = + PFN_vkSetDebugUtilsObjectNameEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectNameEXT" ) ); + vkSetDebugUtilsObjectTagEXT = + PFN_vkSetDebugUtilsObjectTagEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectTagEXT" ) ); + vkSetEvent = PFN_vkSetEvent( vkGetInstanceProcAddr( instance, "vkSetEvent" ) ); + vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" ) ); vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetInstanceProcAddr( instance, "vkSetLocalDimmingAMD" ) ); - vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetInstanceProcAddr( instance, "vkSignalSemaphore" ) ); + vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkSetPrivateDataEXT" ) ); vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetInstanceProcAddr( instance, "vkSignalSemaphoreKHR" ) ); - vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetInstanceProcAddr( instance, "vkTrimCommandPool" ) ); + vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetInstanceProcAddr( instance, "vkSignalSemaphore" ) ); + if ( !vkSignalSemaphore ) + vkSignalSemaphore = vkSignalSemaphoreKHR; vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetInstanceProcAddr( instance, "vkTrimCommandPoolKHR" ) ); - vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkUninitializePerformanceApiINTEL" ) ); - vkUnmapMemory = PFN_vkUnmapMemory( vkGetInstanceProcAddr( instance, "vkUnmapMemory" ) ); - vkUnregisterObjectsNVX = PFN_vkUnregisterObjectsNVX( vkGetInstanceProcAddr( instance, "vkUnregisterObjectsNVX" ) ); - vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplate" ) ); - vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplateKHR" ) ); - vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSets" ) ); - vkWaitForFences = PFN_vkWaitForFences( vkGetInstanceProcAddr( instance, "vkWaitForFences" ) ); - vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetInstanceProcAddr( instance, "vkWaitSemaphores" ) ); + vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetInstanceProcAddr( instance, "vkTrimCommandPool" ) ); + if ( !vkTrimCommandPool ) + vkTrimCommandPool = vkTrimCommandPoolKHR; + vkUninitializePerformanceApiINTEL = + PFN_vkUninitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkUninitializePerformanceApiINTEL" ) ); + vkUnmapMemory = PFN_vkUnmapMemory( vkGetInstanceProcAddr( instance, "vkUnmapMemory" ) ); + vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( + vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplateKHR" ) ); + vkUpdateDescriptorSetWithTemplate = + PFN_vkUpdateDescriptorSetWithTemplate( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplate" ) ); + if ( !vkUpdateDescriptorSetWithTemplate ) + vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR; + vkUpdateDescriptorSets = + PFN_vkUpdateDescriptorSets( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSets" ) ); +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkUpdateVideoSessionParametersKHR = + PFN_vkUpdateVideoSessionParametersKHR( vkGetInstanceProcAddr( instance, "vkUpdateVideoSessionParametersKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + vkWaitForFences = PFN_vkWaitForFences( vkGetInstanceProcAddr( instance, "vkWaitForFences" ) ); vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetInstanceProcAddr( instance, "vkWaitSemaphoresKHR" ) ); - vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointDataNV" ) ); - vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueBeginDebugUtilsLabelEXT" ) ); - vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetInstanceProcAddr( instance, "vkQueueBindSparse" ) ); - vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueEndDebugUtilsLabelEXT" ) ); - vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueInsertDebugUtilsLabelEXT" ) ); - vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetInstanceProcAddr( instance, "vkQueuePresentKHR" ) ); - vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkQueueSetPerformanceConfigurationINTEL" ) ); - vkQueueSubmit = PFN_vkQueueSubmit( vkGetInstanceProcAddr( instance, "vkQueueSubmit" ) ); - vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetInstanceProcAddr( instance, "vkQueueWaitIdle" ) ); + vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetInstanceProcAddr( instance, "vkWaitSemaphores" ) ); + if ( !vkWaitSemaphores ) + vkWaitSemaphores = vkWaitSemaphoresKHR; + vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR( + vkGetInstanceProcAddr( instance, "vkWriteAccelerationStructuresPropertiesKHR" ) ); } void init( VULKAN_HPP_NAMESPACE::Device deviceCpp ) VULKAN_HPP_NOEXCEPT { - VkDevice device = static_cast(deviceCpp); + VkDevice device = static_cast( deviceCpp ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkAcquireFullScreenExclusiveModeEXT = + PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) ); +#endif /*VK_USE_PLATFORM_WIN32_KHR*/ + vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) ); + vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) ); + vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( + vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) ); + vkAcquireProfilingLockKHR = + PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) ); + vkAllocateCommandBuffers = + PFN_vkAllocateCommandBuffers( vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) ); + vkAllocateDescriptorSets = + PFN_vkAllocateDescriptorSets( vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ) ); + vkAllocateMemory = PFN_vkAllocateMemory( vkGetDeviceProcAddr( device, "vkAllocateMemory" ) ); vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ) ); - vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) ); - vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) ); + vkBindAccelerationStructureMemoryNV = + PFN_vkBindAccelerationStructureMemoryNV( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) ); + vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetDeviceProcAddr( device, "vkBindBufferMemory" ) ); + vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) ); + vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) ); + if ( !vkBindBufferMemory2 ) + vkBindBufferMemory2 = vkBindBufferMemory2KHR; + vkBindImageMemory = PFN_vkBindImageMemory( vkGetDeviceProcAddr( device, "vkBindImageMemory" ) ); + vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) ); + vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) ); + if ( !vkBindImageMemory2 ) + vkBindImageMemory2 = vkBindImageMemory2KHR; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkBindVideoSessionMemoryKHR = + PFN_vkBindVideoSessionMemoryKHR( vkGetDeviceProcAddr( device, "vkBindVideoSessionMemoryKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + vkBuildAccelerationStructuresKHR = + PFN_vkBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkBuildAccelerationStructuresKHR" ) ); + vkCmdBeginConditionalRenderingEXT = + PFN_vkCmdBeginConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) ); + vkCmdBeginDebugUtilsLabelEXT = + PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) ); vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ) ); - vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) ); + vkCmdBeginQueryIndexedEXT = + PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) ); vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ) ); + vkCmdBeginRenderPass2KHR = + PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) ); vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2" ) ); - vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) ); - vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) ); + if ( !vkCmdBeginRenderPass2 ) + vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR; + vkCmdBeginTransformFeedbackEXT = + PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) ); +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkCmdBeginVideoCodingKHR = + PFN_vkCmdBeginVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdBeginVideoCodingKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ) ); - vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ) ); - vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) ); - vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) ); - vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) ); + vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ) ); + vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) ); + vkCmdBindPipelineShaderGroupNV = + PFN_vkCmdBindPipelineShaderGroupNV( vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ) ); + vkCmdBindShadingRateImageNV = + PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) ); + vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( + vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) ); vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ) ); - vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) ); - vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) ); + vkCmdBindVertexBuffers2EXT = + PFN_vkCmdBindVertexBuffers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2EXT" ) ); + vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) ); + vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetDeviceProcAddr( device, "vkCmdBlitImage2KHR" ) ); + vkCmdBuildAccelerationStructureNV = + PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) ); + vkCmdBuildAccelerationStructuresIndirectKHR = PFN_vkCmdBuildAccelerationStructuresIndirectKHR( + vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresIndirectKHR" ) ); + vkCmdBuildAccelerationStructuresKHR = + PFN_vkCmdBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresKHR" ) ); vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ) ); - vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) ); - vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) ); - vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) ); - vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ) ); + vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) ); + vkCmdClearDepthStencilImage = + PFN_vkCmdClearDepthStencilImage( vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) ); +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkCmdControlVideoCodingKHR = + PFN_vkCmdControlVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdControlVideoCodingKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + vkCmdCopyAccelerationStructureKHR = + PFN_vkCmdCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ) ); + vkCmdCopyAccelerationStructureNV = + PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) ); + vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR( + vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ) ); + vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ) ); + vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2KHR" ) ); vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ) ); - vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetDeviceProcAddr( device, "vkCmdCopyImage" ) ); + vkCmdCopyBufferToImage2KHR = + PFN_vkCmdCopyBufferToImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2KHR" ) ); + vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetDeviceProcAddr( device, "vkCmdCopyImage" ) ); + vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImage2KHR" ) ); vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ) ); - vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ) ); - vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) ); + vkCmdCopyImageToBuffer2KHR = + PFN_vkCmdCopyImageToBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2KHR" ) ); + vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR( + vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ) ); + vkCmdCopyQueryPoolResults = + PFN_vkCmdCopyQueryPoolResults( vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ) ); + vkCmdDebugMarkerBeginEXT = + PFN_vkCmdDebugMarkerBeginEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) ); vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) ); - vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) ); - vkCmdDispatch = PFN_vkCmdDispatch( vkGetDeviceProcAddr( device, "vkCmdDispatch" ) ); - vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) ); + vkCmdDebugMarkerInsertEXT = + PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) ); +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkCmdDecodeVideoKHR = PFN_vkCmdDecodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdDecodeVideoKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + vkCmdDispatch = PFN_vkCmdDispatch( vkGetDeviceProcAddr( device, "vkCmdDispatch" ) ); vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) ); + vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) ); + if ( !vkCmdDispatchBase ) + vkCmdDispatchBase = vkCmdDispatchBaseKHR; vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ) ); - vkCmdDraw = PFN_vkCmdDraw( vkGetDeviceProcAddr( device, "vkCmdDraw" ) ); - vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) ); - vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) ); - vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCount" ) ); - vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) ); - vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) ); + vkCmdDraw = PFN_vkCmdDraw( vkGetDeviceProcAddr( device, "vkCmdDraw" ) ); + vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) ); + vkCmdDrawIndexedIndirect = + PFN_vkCmdDrawIndexedIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) ); + vkCmdDrawIndexedIndirectCountAMD = + PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) ); + vkCmdDrawIndexedIndirectCountKHR = + PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) ); + vkCmdDrawIndexedIndirectCount = + PFN_vkCmdDrawIndexedIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCount" ) ); + if ( !vkCmdDrawIndexedIndirectCount ) + vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR; + if ( !vkCmdDrawIndexedIndirectCount ) + vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD; vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ) ); - vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) ); + vkCmdDrawIndirectByteCountEXT = + PFN_vkCmdDrawIndirectByteCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) ); + vkCmdDrawIndirectCountAMD = + PFN_vkCmdDrawIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ) ); + vkCmdDrawIndirectCountKHR = + PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) ); vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCount" ) ); - vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ) ); - vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) ); - vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) ); - vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) ); + if ( !vkCmdDrawIndirectCount ) + vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR; + if ( !vkCmdDrawIndirectCount ) + vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD; + vkCmdDrawMeshTasksIndirectCountNV = + PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) ); + vkCmdDrawMeshTasksIndirectNV = + PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) ); vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) ); - vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) ); - vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) ); - vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) ); +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdEncodeVideoKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + vkCmdEndConditionalRenderingEXT = + PFN_vkCmdEndConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) ); + vkCmdEndDebugUtilsLabelEXT = + PFN_vkCmdEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) ); + vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) ); vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) ); - vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) ); - vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" ) ); - vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) ); - vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) ); + vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) ); + vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) ); + vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" ) ); + if ( !vkCmdEndRenderPass2 ) + vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR; + vkCmdEndTransformFeedbackEXT = + PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) ); +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkCmdEndVideoCodingKHR = PFN_vkCmdEndVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdEndVideoCodingKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ) ); + vkCmdExecuteGeneratedCommandsNV = + PFN_vkCmdExecuteGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ) ); vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ) ); - vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) ); - vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) ); - vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" ) ); + vkCmdInsertDebugUtilsLabelEXT = + PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) ); + vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) ); vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) ); + vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" ) ); + if ( !vkCmdNextSubpass2 ) + vkCmdNextSubpass2 = vkCmdNextSubpass2KHR; vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ) ); - vkCmdProcessCommandsNVX = PFN_vkCmdProcessCommandsNVX( vkGetDeviceProcAddr( device, "vkCmdProcessCommandsNVX" ) ); + vkCmdPipelineBarrier2KHR = + PFN_vkCmdPipelineBarrier2KHR( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier2KHR" ) ); + vkCmdPreprocessGeneratedCommandsNV = + PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ) ); vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetDeviceProcAddr( device, "vkCmdPushConstants" ) ); - vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) ); - vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) ); - vkCmdReserveSpaceForCommandsNVX = PFN_vkCmdReserveSpaceForCommandsNVX( vkGetDeviceProcAddr( device, "vkCmdReserveSpaceForCommandsNVX" ) ); - vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) ); - vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) ); - vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) ); + vkCmdPushDescriptorSetKHR = + PFN_vkCmdPushDescriptorSetKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) ); + vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( + vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) ); + vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) ); + vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdResetEvent2KHR" ) ); + vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) ); + vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) ); + vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetDeviceProcAddr( device, "vkCmdResolveImage2KHR" ) ); vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ) ); - vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) ); - vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) ); - vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) ); + vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) ); + vkCmdSetCoarseSampleOrderNV = + PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) ); + vkCmdSetColorWriteEnableEXT = + PFN_vkCmdSetColorWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorWriteEnableEXT" ) ); + vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetCullModeEXT" ) ); + vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) ); + vkCmdSetDepthBiasEnableEXT = + PFN_vkCmdSetDepthBiasEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBiasEnableEXT" ) ); vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ) ); - vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ) ); + vkCmdSetDepthBoundsTestEnableEXT = + PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnableEXT" ) ); + vkCmdSetDepthCompareOpEXT = + PFN_vkCmdSetDepthCompareOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOpEXT" ) ); + vkCmdSetDepthTestEnableEXT = + PFN_vkCmdSetDepthTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthTestEnableEXT" ) ); + vkCmdSetDepthWriteEnableEXT = + PFN_vkCmdSetDepthWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthWriteEnableEXT" ) ); vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) ); - vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) ); - vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) ); - vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) ); + vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ) ); + if ( !vkCmdSetDeviceMask ) + vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR; + vkCmdSetDiscardRectangleEXT = + PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) ); + vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) ); + vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdSetEvent2KHR" ) ); + vkCmdSetExclusiveScissorNV = + PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) ); + vkCmdSetFragmentShadingRateEnumNV = + PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateEnumNV" ) ); + vkCmdSetFragmentShadingRateKHR = + PFN_vkCmdSetFragmentShadingRateKHR( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateKHR" ) ); + vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetDeviceProcAddr( device, "vkCmdSetFrontFaceEXT" ) ); vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) ); - vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) ); - vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) ); - vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) ); - vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) ); - vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) ); + vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) ); + vkCmdSetLogicOpEXT = PFN_vkCmdSetLogicOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetLogicOpEXT" ) ); + vkCmdSetPatchControlPointsEXT = + PFN_vkCmdSetPatchControlPointsEXT( vkGetDeviceProcAddr( device, "vkCmdSetPatchControlPointsEXT" ) ); + vkCmdSetPerformanceMarkerINTEL = + PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) ); + vkCmdSetPerformanceOverrideINTEL = + PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) ); + vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( + vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) ); + vkCmdSetPrimitiveRestartEnableEXT = + PFN_vkCmdSetPrimitiveRestartEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveRestartEnableEXT" ) ); + vkCmdSetPrimitiveTopologyEXT = + PFN_vkCmdSetPrimitiveTopologyEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopologyEXT" ) ); + vkCmdSetRasterizerDiscardEnableEXT = + PFN_vkCmdSetRasterizerDiscardEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetRasterizerDiscardEnableEXT" ) ); + vkCmdSetRayTracingPipelineStackSizeKHR = PFN_vkCmdSetRayTracingPipelineStackSizeKHR( + vkGetDeviceProcAddr( device, "vkCmdSetRayTracingPipelineStackSizeKHR" ) ); + vkCmdSetSampleLocationsEXT = + PFN_vkCmdSetSampleLocationsEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) ); vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetDeviceProcAddr( device, "vkCmdSetScissor" ) ); - vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) ); - vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) ); - vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) ); - vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) ); - vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) ); - vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) ); - vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) ); - vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) ); - vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) ); - vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) ); - vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) ); - vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) ); - vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) ); - vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) ); - vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) ); - vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) ); - vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) ); - vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) ); - vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ) ); - vkAllocateMemory = PFN_vkAllocateMemory( vkGetDeviceProcAddr( device, "vkAllocateMemory" ) ); - vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) ); - vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetDeviceProcAddr( device, "vkBindBufferMemory" ) ); - vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) ); - vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) ); - vkBindImageMemory = PFN_vkBindImageMemory( vkGetDeviceProcAddr( device, "vkBindImageMemory" ) ); - vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) ); - vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) ); - vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) ); - vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) ); - vkCreateBuffer = PFN_vkCreateBuffer( vkGetDeviceProcAddr( device, "vkCreateBuffer" ) ); - vkCreateBufferView = PFN_vkCreateBufferView( vkGetDeviceProcAddr( device, "vkCreateBufferView" ) ); + vkCmdSetScissorWithCountEXT = + PFN_vkCmdSetScissorWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCountEXT" ) ); + vkCmdSetStencilCompareMask = + PFN_vkCmdSetStencilCompareMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) ); + vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilOpEXT" ) ); + vkCmdSetStencilReference = + PFN_vkCmdSetStencilReference( vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) ); + vkCmdSetStencilTestEnableEXT = + PFN_vkCmdSetStencilTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnableEXT" ) ); + vkCmdSetStencilWriteMask = + PFN_vkCmdSetStencilWriteMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) ); + vkCmdSetVertexInputEXT = PFN_vkCmdSetVertexInputEXT( vkGetDeviceProcAddr( device, "vkCmdSetVertexInputEXT" ) ); + vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) ); + vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( + vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) ); + vkCmdSetViewportWScalingNV = + PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) ); + vkCmdSetViewportWithCountEXT = + PFN_vkCmdSetViewportWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCountEXT" ) ); + vkCmdTraceRaysIndirectKHR = + PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) ); + vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) ); + vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) ); + vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) ); + vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) ); + vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetDeviceProcAddr( device, "vkCmdWaitEvents2KHR" ) ); + vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( + vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) ); + vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( + vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) ); + vkCmdWriteBufferMarker2AMD = + PFN_vkCmdWriteBufferMarker2AMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarker2AMD" ) ); + vkCmdWriteBufferMarkerAMD = + PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) ); + vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) ); + vkCmdWriteTimestamp2KHR = PFN_vkCmdWriteTimestamp2KHR( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp2KHR" ) ); + vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) ); + vkCopyAccelerationStructureKHR = + PFN_vkCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureKHR" ) ); + vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR( + vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureToMemoryKHR" ) ); + vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR( + vkGetDeviceProcAddr( device, "vkCopyMemoryToAccelerationStructureKHR" ) ); + vkCreateAccelerationStructureKHR = + PFN_vkCreateAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ) ); + vkCreateAccelerationStructureNV = + PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) ); + vkCreateBuffer = PFN_vkCreateBuffer( vkGetDeviceProcAddr( device, "vkCreateBuffer" ) ); + vkCreateBufferView = PFN_vkCreateBufferView( vkGetDeviceProcAddr( device, "vkCreateBufferView" ) ); vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetDeviceProcAddr( device, "vkCreateCommandPool" ) ); - vkCreateComputePipelines = PFN_vkCreateComputePipelines( vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) ); + vkCreateComputePipelines = + PFN_vkCreateComputePipelines( vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) ); + vkCreateDeferredOperationKHR = + PFN_vkCreateDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ) ); vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ) ); - vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) ); - vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) ); - vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) ); - vkCreateEvent = PFN_vkCreateEvent( vkGetDeviceProcAddr( device, "vkCreateEvent" ) ); - vkCreateFence = PFN_vkCreateFence( vkGetDeviceProcAddr( device, "vkCreateFence" ) ); + vkCreateDescriptorSetLayout = + PFN_vkCreateDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) ); + vkCreateDescriptorUpdateTemplateKHR = + PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) ); + vkCreateDescriptorUpdateTemplate = + PFN_vkCreateDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) ); + if ( !vkCreateDescriptorUpdateTemplate ) + vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR; + vkCreateEvent = PFN_vkCreateEvent( vkGetDeviceProcAddr( device, "vkCreateEvent" ) ); + vkCreateFence = PFN_vkCreateFence( vkGetDeviceProcAddr( device, "vkCreateFence" ) ); vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ) ); - vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) ); - vkCreateImage = PFN_vkCreateImage( vkGetDeviceProcAddr( device, "vkCreateImage" ) ); + vkCreateGraphicsPipelines = + PFN_vkCreateGraphicsPipelines( vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) ); + vkCreateImage = PFN_vkCreateImage( vkGetDeviceProcAddr( device, "vkCreateImage" ) ); vkCreateImageView = PFN_vkCreateImageView( vkGetDeviceProcAddr( device, "vkCreateImageView" ) ); - vkCreateIndirectCommandsLayoutNVX = PFN_vkCreateIndirectCommandsLayoutNVX( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNVX" ) ); - vkCreateObjectTableNVX = PFN_vkCreateObjectTableNVX( vkGetDeviceProcAddr( device, "vkCreateObjectTableNVX" ) ); - vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) ); + vkCreateIndirectCommandsLayoutNV = + PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) ); + vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) ); vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ) ); + vkCreatePrivateDataSlotEXT = + PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) ); vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetDeviceProcAddr( device, "vkCreateQueryPool" ) ); - vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) ); - vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) ); - vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetDeviceProcAddr( device, "vkCreateRenderPass2" ) ); + vkCreateRayTracingPipelinesKHR = + PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) ); + vkCreateRayTracingPipelinesNV = + PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) ); + vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) ); vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) ); + vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetDeviceProcAddr( device, "vkCreateRenderPass2" ) ); + if ( !vkCreateRenderPass2 ) + vkCreateRenderPass2 = vkCreateRenderPass2KHR; vkCreateSampler = PFN_vkCreateSampler( vkGetDeviceProcAddr( device, "vkCreateSampler" ) ); - vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) ); - vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) ); - vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) ); + vkCreateSamplerYcbcrConversionKHR = + PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) ); + vkCreateSamplerYcbcrConversion = + PFN_vkCreateSamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) ); + if ( !vkCreateSamplerYcbcrConversion ) + vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR; + vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) ); vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetDeviceProcAddr( device, "vkCreateShaderModule" ) ); - vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) ); + vkCreateSharedSwapchainsKHR = + PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) ); vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) ); - vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) ); - vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) ); - vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) ); - vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) ); - vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) ); - vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) ); + vkCreateValidationCacheEXT = + PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) ); +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkCreateVideoSessionKHR = PFN_vkCreateVideoSessionKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkCreateVideoSessionParametersKHR = + PFN_vkCreateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionParametersKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + vkDebugMarkerSetObjectNameEXT = + PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) ); + vkDebugMarkerSetObjectTagEXT = + PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) ); + vkDeferredOperationJoinKHR = + PFN_vkDeferredOperationJoinKHR( vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ) ); + vkDestroyAccelerationStructureKHR = + PFN_vkDestroyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ) ); + vkDestroyAccelerationStructureNV = + PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) ); + vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) ); + vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) ); vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ) ); + vkDestroyDeferredOperationKHR = + PFN_vkDestroyDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ) ); vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ) ); - vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) ); - vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) ); - vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) ); - vkDestroyDevice = PFN_vkDestroyDevice( vkGetDeviceProcAddr( device, "vkDestroyDevice" ) ); - vkDestroyEvent = PFN_vkDestroyEvent( vkGetDeviceProcAddr( device, "vkDestroyEvent" ) ); - vkDestroyFence = PFN_vkDestroyFence( vkGetDeviceProcAddr( device, "vkDestroyFence" ) ); + vkDestroyDescriptorSetLayout = + PFN_vkDestroyDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) ); + vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( + vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) ); + vkDestroyDescriptorUpdateTemplate = + PFN_vkDestroyDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) ); + if ( !vkDestroyDescriptorUpdateTemplate ) + vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR; + vkDestroyDevice = PFN_vkDestroyDevice( vkGetDeviceProcAddr( device, "vkDestroyDevice" ) ); + vkDestroyEvent = PFN_vkDestroyEvent( vkGetDeviceProcAddr( device, "vkDestroyEvent" ) ); + vkDestroyFence = PFN_vkDestroyFence( vkGetDeviceProcAddr( device, "vkDestroyFence" ) ); vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ) ); - vkDestroyImage = PFN_vkDestroyImage( vkGetDeviceProcAddr( device, "vkDestroyImage" ) ); - vkDestroyImageView = PFN_vkDestroyImageView( vkGetDeviceProcAddr( device, "vkDestroyImageView" ) ); - vkDestroyIndirectCommandsLayoutNVX = PFN_vkDestroyIndirectCommandsLayoutNVX( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNVX" ) ); - vkDestroyObjectTableNVX = PFN_vkDestroyObjectTableNVX( vkGetDeviceProcAddr( device, "vkDestroyObjectTableNVX" ) ); - vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) ); - vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) ); + vkDestroyImage = PFN_vkDestroyImage( vkGetDeviceProcAddr( device, "vkDestroyImage" ) ); + vkDestroyImageView = PFN_vkDestroyImageView( vkGetDeviceProcAddr( device, "vkDestroyImageView" ) ); + vkDestroyIndirectCommandsLayoutNV = + PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) ); + vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) ); + vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) ); vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ) ); - vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) ); + vkDestroyPrivateDataSlotEXT = + PFN_vkDestroyPrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ) ); + vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) ); vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ) ); - vkDestroySampler = PFN_vkDestroySampler( vkGetDeviceProcAddr( device, "vkDestroySampler" ) ); - vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) ); - vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) ); - vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) ); + vkDestroySampler = PFN_vkDestroySampler( vkGetDeviceProcAddr( device, "vkDestroySampler" ) ); + vkDestroySamplerYcbcrConversionKHR = + PFN_vkDestroySamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) ); + vkDestroySamplerYcbcrConversion = + PFN_vkDestroySamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) ); + if ( !vkDestroySamplerYcbcrConversion ) + vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR; + vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) ); vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ) ); vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) ); - vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) ); + vkDestroyValidationCacheEXT = + PFN_vkDestroyValidationCacheEXT( vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) ); +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkDestroyVideoSessionKHR = + PFN_vkDestroyVideoSessionKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkDestroyVideoSessionParametersKHR = + PFN_vkDestroyVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionParametersKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ) ); - vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) ); - vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) ); + vkDisplayPowerControlEXT = + PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) ); + vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) ); + vkFlushMappedMemoryRanges = + PFN_vkFlushMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) ); vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ) ); vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ) ); - vkFreeMemory = PFN_vkFreeMemory( vkGetDeviceProcAddr( device, "vkFreeMemory" ) ); - vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) ); - vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) ); -#ifdef VK_USE_PLATFORM_ANDROID_KHR - vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) ); + vkFreeMemory = PFN_vkFreeMemory( vkGetDeviceProcAddr( device, "vkFreeMemory" ) ); + vkGetAccelerationStructureBuildSizesKHR = PFN_vkGetAccelerationStructureBuildSizesKHR( + vkGetDeviceProcAddr( device, "vkGetAccelerationStructureBuildSizesKHR" ) ); + vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR( + vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" ) ); + vkGetAccelerationStructureHandleNV = + PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) ); + vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( + vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) ); +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( + vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) ); #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" ) ); - vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) ); - vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressKHR" ) ); - vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) ); - vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) ); - vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) ); - vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" ) ); - vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddressKHR" ) ); - vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) ); - vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) ); - vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) ); - vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) ); - vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) ); - vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) ); + vkGetBufferDeviceAddressEXT = + PFN_vkGetBufferDeviceAddressEXT( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) ); + vkGetBufferDeviceAddressKHR = + PFN_vkGetBufferDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressKHR" ) ); + vkGetBufferDeviceAddress = + PFN_vkGetBufferDeviceAddress( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" ) ); + if ( !vkGetBufferDeviceAddress ) + vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR; + if ( !vkGetBufferDeviceAddress ) + vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT; + vkGetBufferMemoryRequirements = + PFN_vkGetBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) ); + vkGetBufferMemoryRequirements2KHR = + PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) ); + vkGetBufferMemoryRequirements2 = + PFN_vkGetBufferMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) ); + if ( !vkGetBufferMemoryRequirements2 ) + vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR; + vkGetBufferOpaqueCaptureAddressKHR = + PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddressKHR" ) ); + vkGetBufferOpaqueCaptureAddress = + PFN_vkGetBufferOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" ) ); + if ( !vkGetBufferOpaqueCaptureAddress ) + vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR; + vkGetCalibratedTimestampsEXT = + PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) ); + vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR( + vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" ) ); + vkGetDeferredOperationResultKHR = + PFN_vkGetDeferredOperationResultKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" ) ); + vkGetDescriptorSetLayoutSupportKHR = + PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) ); + vkGetDescriptorSetLayoutSupport = + PFN_vkGetDescriptorSetLayoutSupport( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) ); + if ( !vkGetDescriptorSetLayoutSupport ) + vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR; + vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( + vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) ); + vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( + vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) ); + vkGetDeviceGroupPeerMemoryFeatures = + PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) ); + if ( !vkGetDeviceGroupPeerMemoryFeatures ) + vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR; + vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( + vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( + vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) ); - vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) ); - vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" ) ); - vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) ); + vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( + vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) ); + vkGetDeviceMemoryCommitment = + PFN_vkGetDeviceMemoryCommitment( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) ); + vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( + vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) ); + vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( + vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" ) ); + if ( !vkGetDeviceMemoryOpaqueCaptureAddress ) + vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR; vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetDeviceProcAddr( device, "vkGetDeviceProcAddr" ) ); - vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) ); - vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) ); - vkGetEventStatus = PFN_vkGetEventStatus( vkGetDeviceProcAddr( device, "vkGetEventStatus" ) ); - vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) ); - vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) ); + vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) ); + vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) ); + vkGetEventStatus = PFN_vkGetEventStatus( vkGetDeviceProcAddr( device, "vkGetEventStatus" ) ); + vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) ); + vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkGetFenceWin32HandleKHR = + PFN_vkGetFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) ); - vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) ); - vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) ); - vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) ); - vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) ); - vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) ); - vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) ); - vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) ); + vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV( + vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ) ); + vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( + vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) ); + vkGetImageMemoryRequirements = + PFN_vkGetImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) ); + vkGetImageMemoryRequirements2KHR = + PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) ); + vkGetImageMemoryRequirements2 = + PFN_vkGetImageMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) ); + if ( !vkGetImageMemoryRequirements2 ) + vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR; + vkGetImageSparseMemoryRequirements = + PFN_vkGetImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) ); + vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( + vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) ); + vkGetImageSparseMemoryRequirements2 = + PFN_vkGetImageSparseMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) ); + if ( !vkGetImageSparseMemoryRequirements2 ) + vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR; + vkGetImageSubresourceLayout = + PFN_vkGetImageSubresourceLayout( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) ); + vkGetImageViewAddressNVX = + PFN_vkGetImageViewAddressNVX( vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ) ); vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) ); -#ifdef VK_USE_PLATFORM_ANDROID_KHR - vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) ); +#if defined( VK_USE_PLATFORM_ANDROID_KHR ) + vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( + vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) ); #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) ); - vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) ); - vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) ); + vkGetMemoryFdPropertiesKHR = + PFN_vkGetMemoryFdPropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) ); + vkGetMemoryHostPointerPropertiesEXT = + PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkGetMemoryWin32HandleKHR = + PFN_vkGetMemoryWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkGetMemoryWin32HandleNV = + PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkGetMemoryWin32HandlePropertiesKHR = + PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) ); - vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) ); +#if defined( VK_USE_PLATFORM_FUCHSIA ) + vkGetMemoryZirconHandleFUCHSIA = + PFN_vkGetMemoryZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandleFUCHSIA" ) ); +#endif /*VK_USE_PLATFORM_FUCHSIA*/ +#if defined( VK_USE_PLATFORM_FUCHSIA ) + vkGetMemoryZirconHandlePropertiesFUCHSIA = PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA( + vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandlePropertiesFUCHSIA" ) ); +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + vkGetPastPresentationTimingGOOGLE = + PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) ); + vkGetPerformanceParameterINTEL = + PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) ); vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ) ); - vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) ); - vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ) ); - vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ) ); + vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( + vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) ); + vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( + vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ) ); + vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( + vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ) ); + vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ) ); vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ) ); - vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) ); - vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) ); - vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) ); - vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" ) ); - vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValueKHR" ) ); + vkGetQueueCheckpointData2NV = + PFN_vkGetQueueCheckpointData2NV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointData2NV" ) ); + vkGetQueueCheckpointDataNV = + PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) ); + vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( + vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) ); + vkGetRayTracingShaderGroupHandlesNV = + PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) ); + vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( + vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ) ); + if ( !vkGetRayTracingShaderGroupHandlesKHR ) + vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV; + vkGetRayTracingShaderGroupStackSizeKHR = PFN_vkGetRayTracingShaderGroupStackSizeKHR( + vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupStackSizeKHR" ) ); + vkGetRefreshCycleDurationGOOGLE = + PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) ); + vkGetRenderAreaGranularity = + PFN_vkGetRenderAreaGranularity( vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) ); + vkGetSemaphoreCounterValueKHR = + PFN_vkGetSemaphoreCounterValueKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValueKHR" ) ); + vkGetSemaphoreCounterValue = + PFN_vkGetSemaphoreCounterValue( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" ) ); + if ( !vkGetSemaphoreCounterValue ) + vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR; vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkGetSemaphoreWin32HandleKHR = + PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ +#if defined( VK_USE_PLATFORM_FUCHSIA ) + vkGetSemaphoreZirconHandleFUCHSIA = + PFN_vkGetSemaphoreZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetSemaphoreZirconHandleFUCHSIA" ) ); +#endif /*VK_USE_PLATFORM_FUCHSIA*/ vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) ); - vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) ); + vkGetSwapchainCounterEXT = + PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) ); vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) ); vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) ); - vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) ); + vkGetValidationCacheDataEXT = + PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) ); +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkGetVideoSessionMemoryRequirementsKHR = PFN_vkGetVideoSessionMemoryRequirementsKHR( + vkGetDeviceProcAddr( device, "vkGetVideoSessionMemoryRequirementsKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkImportFenceWin32HandleKHR = + PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkImportSemaphoreWin32HandleKHR = + PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) ); - vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) ); - vkMapMemory = PFN_vkMapMemory( vkGetDeviceProcAddr( device, "vkMapMemory" ) ); +#if defined( VK_USE_PLATFORM_FUCHSIA ) + vkImportSemaphoreZirconHandleFUCHSIA = PFN_vkImportSemaphoreZirconHandleFUCHSIA( + vkGetDeviceProcAddr( device, "vkImportSemaphoreZirconHandleFUCHSIA" ) ); +#endif /*VK_USE_PLATFORM_FUCHSIA*/ + vkInitializePerformanceApiINTEL = + PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) ); + vkInvalidateMappedMemoryRanges = + PFN_vkInvalidateMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) ); + vkMapMemory = PFN_vkMapMemory( vkGetDeviceProcAddr( device, "vkMapMemory" ) ); vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ) ); - vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) ); - vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) ); - vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) ); - vkRegisterObjectsNVX = PFN_vkRegisterObjectsNVX( vkGetDeviceProcAddr( device, "vkRegisterObjectsNVX" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) ); + vkMergeValidationCachesEXT = + PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) ); + vkQueueBeginDebugUtilsLabelEXT = + PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) ); + vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) ); + vkQueueEndDebugUtilsLabelEXT = + PFN_vkQueueEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) ); + vkQueueInsertDebugUtilsLabelEXT = + PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) ); + vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) ); + vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( + vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) ); + vkQueueSubmit = PFN_vkQueueSubmit( vkGetDeviceProcAddr( device, "vkQueueSubmit" ) ); + vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetDeviceProcAddr( device, "vkQueueSubmit2KHR" ) ); + vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) ); + vkRegisterDeviceEventEXT = + PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) ); + vkRegisterDisplayEventEXT = + PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) ); +#if defined( VK_USE_PLATFORM_WIN32_KHR ) + vkReleaseFullScreenExclusiveModeEXT = + PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) ); #endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) ); - vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) ); - vkResetCommandPool = PFN_vkResetCommandPool( vkGetDeviceProcAddr( device, "vkResetCommandPool" ) ); + vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( + vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) ); + vkReleaseProfilingLockKHR = + PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) ); + vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) ); + vkResetCommandPool = PFN_vkResetCommandPool( vkGetDeviceProcAddr( device, "vkResetCommandPool" ) ); vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ) ); - vkResetEvent = PFN_vkResetEvent( vkGetDeviceProcAddr( device, "vkResetEvent" ) ); - vkResetFences = PFN_vkResetFences( vkGetDeviceProcAddr( device, "vkResetFences" ) ); - vkResetQueryPool = PFN_vkResetQueryPool( vkGetDeviceProcAddr( device, "vkResetQueryPool" ) ); - vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) ); - vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) ); - vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) ); - vkSetEvent = PFN_vkSetEvent( vkGetDeviceProcAddr( device, "vkSetEvent" ) ); - vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) ); + vkResetEvent = PFN_vkResetEvent( vkGetDeviceProcAddr( device, "vkResetEvent" ) ); + vkResetFences = PFN_vkResetFences( vkGetDeviceProcAddr( device, "vkResetFences" ) ); + vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) ); + vkResetQueryPool = PFN_vkResetQueryPool( vkGetDeviceProcAddr( device, "vkResetQueryPool" ) ); + if ( !vkResetQueryPool ) + vkResetQueryPool = vkResetQueryPoolEXT; + vkSetDebugUtilsObjectNameEXT = + PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) ); + vkSetDebugUtilsObjectTagEXT = + PFN_vkSetDebugUtilsObjectTagEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) ); + vkSetEvent = PFN_vkSetEvent( vkGetDeviceProcAddr( device, "vkSetEvent" ) ); + vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) ); vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) ); - vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetDeviceProcAddr( device, "vkSignalSemaphore" ) ); + vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkSetPrivateDataEXT" ) ); vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetDeviceProcAddr( device, "vkSignalSemaphoreKHR" ) ); - vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) ); + vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetDeviceProcAddr( device, "vkSignalSemaphore" ) ); + if ( !vkSignalSemaphore ) + vkSignalSemaphore = vkSignalSemaphoreKHR; vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) ); - vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) ); - vkUnmapMemory = PFN_vkUnmapMemory( vkGetDeviceProcAddr( device, "vkUnmapMemory" ) ); - vkUnregisterObjectsNVX = PFN_vkUnregisterObjectsNVX( vkGetDeviceProcAddr( device, "vkUnregisterObjectsNVX" ) ); - vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) ); - vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) ); + vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) ); + if ( !vkTrimCommandPool ) + vkTrimCommandPool = vkTrimCommandPoolKHR; + vkUninitializePerformanceApiINTEL = + PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) ); + vkUnmapMemory = PFN_vkUnmapMemory( vkGetDeviceProcAddr( device, "vkUnmapMemory" ) ); + vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( + vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) ); + vkUpdateDescriptorSetWithTemplate = + PFN_vkUpdateDescriptorSetWithTemplate( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) ); + if ( !vkUpdateDescriptorSetWithTemplate ) + vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR; vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ) ); - vkWaitForFences = PFN_vkWaitForFences( vkGetDeviceProcAddr( device, "vkWaitForFences" ) ); - vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetDeviceProcAddr( device, "vkWaitSemaphores" ) ); +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + vkUpdateVideoSessionParametersKHR = + PFN_vkUpdateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkUpdateVideoSessionParametersKHR" ) ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + vkWaitForFences = PFN_vkWaitForFences( vkGetDeviceProcAddr( device, "vkWaitForFences" ) ); vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetDeviceProcAddr( device, "vkWaitSemaphoresKHR" ) ); - vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) ); - vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) ); - vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) ); - vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) ); - vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) ); - vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) ); - vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) ); - vkQueueSubmit = PFN_vkQueueSubmit( vkGetDeviceProcAddr( device, "vkQueueSubmit" ) ); - vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) ); + vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetDeviceProcAddr( device, "vkWaitSemaphores" ) ); + if ( !vkWaitSemaphores ) + vkWaitSemaphores = vkWaitSemaphoresKHR; + vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR( + vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ) ); + } + }; + +} // namespace VULKAN_HPP_NAMESPACE + +namespace std +{ + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const & accelerationStructureKHR ) const + VULKAN_HPP_NOEXCEPT + { + return std::hash{}( + static_cast( accelerationStructureKHR ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureNV const & accelerationStructureNV ) const + VULKAN_HPP_NOEXCEPT + { + return std::hash{}( + static_cast( accelerationStructureNV ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::Buffer const & buffer ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( buffer ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferView const & bufferView ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( bufferView ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandBuffer const & commandBuffer ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( commandBuffer ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandPool const & commandPool ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( commandPool ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT const & debugReportCallbackEXT ) const + VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( debugReportCallbackEXT ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT const & debugUtilsMessengerEXT ) const + VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( debugUtilsMessengerEXT ) ); + } + }; + + template <> + struct hash + { + std::size_t + operator()( VULKAN_HPP_NAMESPACE::DeferredOperationKHR const & deferredOperationKHR ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( deferredOperationKHR ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorPool const & descriptorPool ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( descriptorPool ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorSet const & descriptorSet ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( descriptorSet ) ); + } + }; + + template <> + struct hash + { + std::size_t + operator()( VULKAN_HPP_NAMESPACE::DescriptorSetLayout const & descriptorSetLayout ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( descriptorSetLayout ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate const & descriptorUpdateTemplate ) const + VULKAN_HPP_NOEXCEPT + { + return std::hash{}( + static_cast( descriptorUpdateTemplate ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::Device const & device ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( device ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceMemory const & deviceMemory ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( deviceMemory ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayKHR const & displayKHR ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( displayKHR ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayModeKHR const & displayModeKHR ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( displayModeKHR ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::Event const & event ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( event ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::Fence const & fence ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( fence ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::Framebuffer const & framebuffer ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( framebuffer ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::Image const & image ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( image ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageView const & imageView ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( imageView ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV const & indirectCommandsLayoutNV ) const + VULKAN_HPP_NOEXCEPT + { + return std::hash{}( + static_cast( indirectCommandsLayoutNV ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::Instance const & instance ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( instance ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL const & performanceConfigurationINTEL ) + const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( + static_cast( performanceConfigurationINTEL ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevice const & physicalDevice ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( physicalDevice ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::Pipeline const & pipeline ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( pipeline ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCache const & pipelineCache ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( pipelineCache ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineLayout const & pipelineLayout ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( pipelineLayout ) ); + } + }; + + template <> + struct hash + { + std::size_t + operator()( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT const & privateDataSlotEXT ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( privateDataSlotEXT ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::QueryPool const & queryPool ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( queryPool ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::Queue const & queue ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( queue ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPass const & renderPass ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( renderPass ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::Sampler const & sampler ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( sampler ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion const & samplerYcbcrConversion ) const + VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( samplerYcbcrConversion ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::Semaphore const & semaphore ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( semaphore ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::ShaderModule const & shaderModule ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( shaderModule ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfaceKHR const & surfaceKHR ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( surfaceKHR ) ); + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::SwapchainKHR const & swapchainKHR ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( swapchainKHR ) ); + } + }; + + template <> + struct hash + { + std::size_t + operator()( VULKAN_HPP_NAMESPACE::ValidationCacheEXT const & validationCacheEXT ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( validationCacheEXT ) ); + } + }; + +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoSessionKHR const & videoSessionKHR ) const VULKAN_HPP_NOEXCEPT + { + return std::hash{}( static_cast( videoSessionKHR ) ); } }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ -} // namespace VULKAN_HPP_NAMESPACE +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR const & videoSessionParametersKHR ) const + VULKAN_HPP_NOEXCEPT + { + return std::hash{}( + static_cast( videoSessionParametersKHR ) ); + } + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ +} // namespace std #endif diff --git a/external/vulkan/windows/include/vulkan/vulkan_android.h b/external/vulkan/windows/include/vulkan/vulkan_android.h index 9b8d3e27..2160e3e7 100644 --- a/external/vulkan/windows/include/vulkan/vulkan_android.h +++ b/external/vulkan/windows/include/vulkan/vulkan_android.h @@ -2,19 +2,9 @@ #define VULKAN_ANDROID_H_ 1 /* -** Copyright (c) 2015-2019 The Khronos Group Inc. +** Copyright 2015-2021 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ /* diff --git a/external/vulkan/windows/include/vulkan/vulkan_beta.h b/external/vulkan/windows/include/vulkan/vulkan_beta.h new file mode 100644 index 00000000..9aebb1ab --- /dev/null +++ b/external/vulkan/windows/include/vulkan/vulkan_beta.h @@ -0,0 +1,704 @@ +#ifndef VULKAN_BETA_H_ +#define VULKAN_BETA_H_ 1 + +/* +** Copyright 2015-2021 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +#define VK_KHR_video_queue 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR) +#define VK_KHR_VIDEO_QUEUE_SPEC_VERSION 1 +#define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue" + +typedef enum VkQueryResultStatusKHR { + VK_QUERY_RESULT_STATUS_ERROR_KHR = -1, + VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0, + VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1, + VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkQueryResultStatusKHR; + +typedef enum VkVideoCodecOperationFlagBitsKHR { + VK_VIDEO_CODEC_OPERATION_INVALID_BIT_KHR = 0, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT = 0x00010000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_EXT = 0x00000001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_EXT = 0x00000002, +#endif + VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoCodecOperationFlagBitsKHR; +typedef VkFlags VkVideoCodecOperationFlagsKHR; + +typedef enum VkVideoChromaSubsamplingFlagBitsKHR { + VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_BIT_KHR = 0, + VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0x00000001, + VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0x00000002, + VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0x00000004, + VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0x00000008, + VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoChromaSubsamplingFlagBitsKHR; +typedef VkFlags VkVideoChromaSubsamplingFlagsKHR; + +typedef enum VkVideoComponentBitDepthFlagBitsKHR { + VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0, + VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0x00000001, + VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0x00000004, + VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0x00000010, + VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoComponentBitDepthFlagBitsKHR; +typedef VkFlags VkVideoComponentBitDepthFlagsKHR; + +typedef enum VkVideoCapabilitiesFlagBitsKHR { + VK_VIDEO_CAPABILITIES_PROTECTED_CONTENT_BIT_KHR = 0x00000001, + VK_VIDEO_CAPABILITIES_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0x00000002, + VK_VIDEO_CAPABILITIES_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoCapabilitiesFlagBitsKHR; +typedef VkFlags VkVideoCapabilitiesFlagsKHR; + +typedef enum VkVideoSessionCreateFlagBitsKHR { + VK_VIDEO_SESSION_CREATE_DEFAULT_KHR = 0, + VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0x00000001, + VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoSessionCreateFlagBitsKHR; +typedef VkFlags VkVideoSessionCreateFlagsKHR; +typedef VkFlags VkVideoBeginCodingFlagsKHR; +typedef VkFlags VkVideoEndCodingFlagsKHR; + +typedef enum VkVideoCodingControlFlagBitsKHR { + VK_VIDEO_CODING_CONTROL_DEFAULT_KHR = 0, + VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001, + VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoCodingControlFlagBitsKHR; +typedef VkFlags VkVideoCodingControlFlagsKHR; + +typedef enum VkVideoCodingQualityPresetFlagBitsKHR { + VK_VIDEO_CODING_QUALITY_PRESET_DEFAULT_BIT_KHR = 0, + VK_VIDEO_CODING_QUALITY_PRESET_NORMAL_BIT_KHR = 0x00000001, + VK_VIDEO_CODING_QUALITY_PRESET_POWER_BIT_KHR = 0x00000002, + VK_VIDEO_CODING_QUALITY_PRESET_QUALITY_BIT_KHR = 0x00000004, + VK_VIDEO_CODING_QUALITY_PRESET_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoCodingQualityPresetFlagBitsKHR; +typedef VkFlags VkVideoCodingQualityPresetFlagsKHR; +typedef struct VkVideoQueueFamilyProperties2KHR { + VkStructureType sType; + void* pNext; + VkVideoCodecOperationFlagsKHR videoCodecOperations; +} VkVideoQueueFamilyProperties2KHR; + +typedef struct VkVideoProfileKHR { + VkStructureType sType; + void* pNext; + VkVideoCodecOperationFlagBitsKHR videoCodecOperation; + VkVideoChromaSubsamplingFlagsKHR chromaSubsampling; + VkVideoComponentBitDepthFlagsKHR lumaBitDepth; + VkVideoComponentBitDepthFlagsKHR chromaBitDepth; +} VkVideoProfileKHR; + +typedef struct VkVideoProfilesKHR { + VkStructureType sType; + void* pNext; + uint32_t profileCount; + const VkVideoProfileKHR* pProfiles; +} VkVideoProfilesKHR; + +typedef struct VkVideoCapabilitiesKHR { + VkStructureType sType; + void* pNext; + VkVideoCapabilitiesFlagsKHR capabilityFlags; + VkDeviceSize minBitstreamBufferOffsetAlignment; + VkDeviceSize minBitstreamBufferSizeAlignment; + VkExtent2D videoPictureExtentGranularity; + VkExtent2D minExtent; + VkExtent2D maxExtent; + uint32_t maxReferencePicturesSlotsCount; + uint32_t maxReferencePicturesActiveCount; +} VkVideoCapabilitiesKHR; + +typedef struct VkPhysicalDeviceVideoFormatInfoKHR { + VkStructureType sType; + const void* pNext; + VkImageUsageFlags imageUsage; + const VkVideoProfilesKHR* pVideoProfiles; +} VkPhysicalDeviceVideoFormatInfoKHR; + +typedef struct VkVideoFormatPropertiesKHR { + VkStructureType sType; + void* pNext; + VkFormat format; +} VkVideoFormatPropertiesKHR; + +typedef struct VkVideoPictureResourceKHR { + VkStructureType sType; + const void* pNext; + VkOffset2D codedOffset; + VkExtent2D codedExtent; + uint32_t baseArrayLayer; + VkImageView imageViewBinding; +} VkVideoPictureResourceKHR; + +typedef struct VkVideoReferenceSlotKHR { + VkStructureType sType; + const void* pNext; + int8_t slotIndex; + const VkVideoPictureResourceKHR* pPictureResource; +} VkVideoReferenceSlotKHR; + +typedef struct VkVideoGetMemoryPropertiesKHR { + VkStructureType sType; + const void* pNext; + uint32_t memoryBindIndex; + VkMemoryRequirements2* pMemoryRequirements; +} VkVideoGetMemoryPropertiesKHR; + +typedef struct VkVideoBindMemoryKHR { + VkStructureType sType; + const void* pNext; + uint32_t memoryBindIndex; + VkDeviceMemory memory; + VkDeviceSize memoryOffset; + VkDeviceSize memorySize; +} VkVideoBindMemoryKHR; + +typedef struct VkVideoSessionCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t queueFamilyIndex; + VkVideoSessionCreateFlagsKHR flags; + const VkVideoProfileKHR* pVideoProfile; + VkFormat pictureFormat; + VkExtent2D maxCodedExtent; + VkFormat referencePicturesFormat; + uint32_t maxReferencePicturesSlotsCount; + uint32_t maxReferencePicturesActiveCount; +} VkVideoSessionCreateInfoKHR; + +typedef struct VkVideoSessionParametersCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoSessionParametersKHR videoSessionParametersTemplate; + VkVideoSessionKHR videoSession; +} VkVideoSessionParametersCreateInfoKHR; + +typedef struct VkVideoSessionParametersUpdateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t updateSequenceCount; +} VkVideoSessionParametersUpdateInfoKHR; + +typedef struct VkVideoBeginCodingInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoBeginCodingFlagsKHR flags; + VkVideoCodingQualityPresetFlagsKHR codecQualityPreset; + VkVideoSessionKHR videoSession; + VkVideoSessionParametersKHR videoSessionParameters; + uint32_t referenceSlotCount; + const VkVideoReferenceSlotKHR* pReferenceSlots; +} VkVideoBeginCodingInfoKHR; + +typedef struct VkVideoEndCodingInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoEndCodingFlagsKHR flags; +} VkVideoEndCodingInfoKHR; + +typedef struct VkVideoCodingControlInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoCodingControlFlagsKHR flags; +} VkVideoCodingControlInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice physicalDevice, const VkVideoProfileKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties); +typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession); +typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionKHR)(VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pVideoSessionMemoryRequirementsCount, VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements); +typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t videoSessionBindMemoryCount, const VkVideoBindMemoryKHR* pVideoSessionBindMemories); +typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters); +typedef VkResult (VKAPI_PTR *PFN_vkUpdateVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo); +typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkCmdBeginVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo); +typedef void (VKAPI_PTR *PFN_vkCmdEndVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo); +typedef void (VKAPI_PTR *PFN_vkCmdControlVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR( + VkPhysicalDevice physicalDevice, + const VkVideoProfileKHR* pVideoProfile, + VkVideoCapabilitiesKHR* pCapabilities); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, + uint32_t* pVideoFormatPropertyCount, + VkVideoFormatPropertiesKHR* pVideoFormatProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionKHR( + VkDevice device, + const VkVideoSessionCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkVideoSessionKHR* pVideoSession); + +VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionKHR( + VkDevice device, + VkVideoSessionKHR videoSession, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetVideoSessionMemoryRequirementsKHR( + VkDevice device, + VkVideoSessionKHR videoSession, + uint32_t* pVideoSessionMemoryRequirementsCount, + VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements); + +VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR( + VkDevice device, + VkVideoSessionKHR videoSession, + uint32_t videoSessionBindMemoryCount, + const VkVideoBindMemoryKHR* pVideoSessionBindMemories); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR( + VkDevice device, + const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkVideoSessionParametersKHR* pVideoSessionParameters); + +VKAPI_ATTR VkResult VKAPI_CALL vkUpdateVideoSessionParametersKHR( + VkDevice device, + VkVideoSessionParametersKHR videoSessionParameters, + const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo); + +VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionParametersKHR( + VkDevice device, + VkVideoSessionParametersKHR videoSessionParameters, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkCmdBeginVideoCodingKHR( + VkCommandBuffer commandBuffer, + const VkVideoBeginCodingInfoKHR* pBeginInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndVideoCodingKHR( + VkCommandBuffer commandBuffer, + const VkVideoEndCodingInfoKHR* pEndCodingInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdControlVideoCodingKHR( + VkCommandBuffer commandBuffer, + const VkVideoCodingControlInfoKHR* pCodingControlInfo); +#endif + + +#define VK_KHR_video_decode_queue 1 +#define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 1 +#define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue" + +typedef enum VkVideoDecodeFlagBitsKHR { + VK_VIDEO_DECODE_DEFAULT_KHR = 0, + VK_VIDEO_DECODE_RESERVED_0_BIT_KHR = 0x00000001, + VK_VIDEO_DECODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoDecodeFlagBitsKHR; +typedef VkFlags VkVideoDecodeFlagsKHR; +typedef struct VkVideoDecodeInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoDecodeFlagsKHR flags; + VkOffset2D codedOffset; + VkExtent2D codedExtent; + VkBuffer srcBuffer; + VkDeviceSize srcBufferOffset; + VkDeviceSize srcBufferRange; + VkVideoPictureResourceKHR dstPictureResource; + const VkVideoReferenceSlotKHR* pSetupReferenceSlot; + uint32_t referenceSlotCount; + const VkVideoReferenceSlotKHR* pReferenceSlots; +} VkVideoDecodeInfoKHR; + +typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pFrameInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR( + VkCommandBuffer commandBuffer, + const VkVideoDecodeInfoKHR* pFrameInfo); +#endif + + +#define VK_KHR_portability_subset 1 +#define VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION 1 +#define VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME "VK_KHR_portability_subset" +typedef struct VkPhysicalDevicePortabilitySubsetFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 constantAlphaColorBlendFactors; + VkBool32 events; + VkBool32 imageViewFormatReinterpretation; + VkBool32 imageViewFormatSwizzle; + VkBool32 imageView2DOn3DImage; + VkBool32 multisampleArrayImage; + VkBool32 mutableComparisonSamplers; + VkBool32 pointPolygons; + VkBool32 samplerMipLodBias; + VkBool32 separateStencilMaskRef; + VkBool32 shaderSampleRateInterpolationFunctions; + VkBool32 tessellationIsolines; + VkBool32 tessellationPointMode; + VkBool32 triangleFans; + VkBool32 vertexAttributeAccessBeyondStride; +} VkPhysicalDevicePortabilitySubsetFeaturesKHR; + +typedef struct VkPhysicalDevicePortabilitySubsetPropertiesKHR { + VkStructureType sType; + void* pNext; + uint32_t minVertexInputBindingStrideAlignment; +} VkPhysicalDevicePortabilitySubsetPropertiesKHR; + + + +#define VK_KHR_video_encode_queue 1 +#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 2 +#define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue" + +typedef enum VkVideoEncodeFlagBitsKHR { + VK_VIDEO_ENCODE_DEFAULT_KHR = 0, + VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR = 0x00000001, + VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeFlagBitsKHR; +typedef VkFlags VkVideoEncodeFlagsKHR; + +typedef enum VkVideoEncodeRateControlFlagBitsKHR { + VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR = 0, + VK_VIDEO_ENCODE_RATE_CONTROL_RESET_BIT_KHR = 0x00000001, + VK_VIDEO_ENCODE_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeRateControlFlagBitsKHR; +typedef VkFlags VkVideoEncodeRateControlFlagsKHR; + +typedef enum VkVideoEncodeRateControlModeFlagBitsKHR { + VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR = 0, + VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 1, + VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 2, + VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeRateControlModeFlagBitsKHR; +typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR; +typedef struct VkVideoEncodeInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoEncodeFlagsKHR flags; + uint32_t qualityLevel; + VkExtent2D codedExtent; + VkBuffer dstBitstreamBuffer; + VkDeviceSize dstBitstreamBufferOffset; + VkDeviceSize dstBitstreamBufferMaxRange; + VkVideoPictureResourceKHR srcPictureResource; + const VkVideoReferenceSlotKHR* pSetupReferenceSlot; + uint32_t referenceSlotCount; + const VkVideoReferenceSlotKHR* pReferenceSlots; +} VkVideoEncodeInfoKHR; + +typedef struct VkVideoEncodeRateControlInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoEncodeRateControlFlagsKHR flags; + VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode; + uint32_t averageBitrate; + uint16_t peakToAverageBitrateRatio; + uint16_t frameRateNumerator; + uint16_t frameRateDenominator; + uint32_t virtualBufferSizeInMs; +} VkVideoEncodeRateControlInfoKHR; + +typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR( + VkCommandBuffer commandBuffer, + const VkVideoEncodeInfoKHR* pEncodeInfo); +#endif + + +#define VK_EXT_video_encode_h264 1 +#include "vk_video/vulkan_video_codec_h264std.h" +#include "vk_video/vulkan_video_codec_h264std_encode.h" +#define VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION 1 +#define VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_EXT_video_encode_h264" + +typedef enum VkVideoEncodeH264CapabilitiesFlagBitsEXT { + VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT = 0x00000001, + VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT = 0x00000002, + VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT = 0x00000004, + VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT = 0x00000008, + VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT = 0x00000010, + VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT = 0x00000020, + VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT = 0x00000040, + VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT = 0x00000080, + VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT = 0x00000100, + VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT = 0x00000200, + VK_VIDEO_ENCODE_H264_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT = 0x00000400, + VK_VIDEO_ENCODE_H264_CAPABILITIES_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkVideoEncodeH264CapabilitiesFlagBitsEXT; +typedef VkFlags VkVideoEncodeH264CapabilitiesFlagsEXT; + +typedef enum VkVideoEncodeH264InputModeFlagBitsEXT { + VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT = 0x00000001, + VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT = 0x00000002, + VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT = 0x00000004, + VK_VIDEO_ENCODE_H264_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkVideoEncodeH264InputModeFlagBitsEXT; +typedef VkFlags VkVideoEncodeH264InputModeFlagsEXT; + +typedef enum VkVideoEncodeH264OutputModeFlagBitsEXT { + VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT = 0x00000001, + VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT = 0x00000002, + VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT = 0x00000004, + VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkVideoEncodeH264OutputModeFlagBitsEXT; +typedef VkFlags VkVideoEncodeH264OutputModeFlagsEXT; + +typedef enum VkVideoEncodeH264CreateFlagBitsEXT { + VK_VIDEO_ENCODE_H264_CREATE_DEFAULT_EXT = 0, + VK_VIDEO_ENCODE_H264_CREATE_RESERVED_0_BIT_EXT = 0x00000001, + VK_VIDEO_ENCODE_H264_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkVideoEncodeH264CreateFlagBitsEXT; +typedef VkFlags VkVideoEncodeH264CreateFlagsEXT; +typedef struct VkVideoEncodeH264CapabilitiesEXT { + VkStructureType sType; + const void* pNext; + VkVideoEncodeH264CapabilitiesFlagsEXT flags; + VkVideoEncodeH264InputModeFlagsEXT inputModeFlags; + VkVideoEncodeH264OutputModeFlagsEXT outputModeFlags; + VkExtent2D minPictureSizeInMbs; + VkExtent2D maxPictureSizeInMbs; + VkExtent2D inputImageDataAlignment; + uint8_t maxNumL0ReferenceForP; + uint8_t maxNumL0ReferenceForB; + uint8_t maxNumL1Reference; + uint8_t qualityLevelCount; + VkExtensionProperties stdExtensionVersion; +} VkVideoEncodeH264CapabilitiesEXT; + +typedef struct VkVideoEncodeH264SessionCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkVideoEncodeH264CreateFlagsEXT flags; + VkExtent2D maxPictureSizeInMbs; + const VkExtensionProperties* pStdExtensionVersion; +} VkVideoEncodeH264SessionCreateInfoEXT; + +typedef struct VkVideoEncodeH264SessionParametersAddInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t spsStdCount; + const StdVideoH264SequenceParameterSet* pSpsStd; + uint32_t ppsStdCount; + const StdVideoH264PictureParameterSet* pPpsStd; +} VkVideoEncodeH264SessionParametersAddInfoEXT; + +typedef struct VkVideoEncodeH264SessionParametersCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t maxSpsStdCount; + uint32_t maxPpsStdCount; + const VkVideoEncodeH264SessionParametersAddInfoEXT* pParametersAddInfo; +} VkVideoEncodeH264SessionParametersCreateInfoEXT; + +typedef struct VkVideoEncodeH264DpbSlotInfoEXT { + VkStructureType sType; + const void* pNext; + int8_t slotIndex; + const StdVideoEncodeH264PictureInfo* pStdPictureInfo; +} VkVideoEncodeH264DpbSlotInfoEXT; + +typedef struct VkVideoEncodeH264NaluSliceEXT { + VkStructureType sType; + const void* pNext; + const StdVideoEncodeH264SliceHeader* pSliceHeaderStd; + uint32_t mbCount; + uint8_t refFinalList0EntryCount; + const VkVideoEncodeH264DpbSlotInfoEXT* pRefFinalList0Entries; + uint8_t refFinalList1EntryCount; + const VkVideoEncodeH264DpbSlotInfoEXT* pRefFinalList1Entries; + uint32_t precedingNaluBytes; + uint8_t minQp; + uint8_t maxQp; +} VkVideoEncodeH264NaluSliceEXT; + +typedef struct VkVideoEncodeH264VclFrameInfoEXT { + VkStructureType sType; + const void* pNext; + uint8_t refDefaultFinalList0EntryCount; + const VkVideoEncodeH264DpbSlotInfoEXT* pRefDefaultFinalList0Entries; + uint8_t refDefaultFinalList1EntryCount; + const VkVideoEncodeH264DpbSlotInfoEXT* pRefDefaultFinalList1Entries; + uint32_t naluSliceEntryCount; + const VkVideoEncodeH264NaluSliceEXT* pNaluSliceEntries; + const VkVideoEncodeH264DpbSlotInfoEXT* pCurrentPictureInfo; +} VkVideoEncodeH264VclFrameInfoEXT; + +typedef struct VkVideoEncodeH264EmitPictureParametersEXT { + VkStructureType sType; + const void* pNext; + uint8_t spsId; + VkBool32 emitSpsEnable; + uint32_t ppsIdEntryCount; + const uint8_t* ppsIdEntries; +} VkVideoEncodeH264EmitPictureParametersEXT; + +typedef struct VkVideoEncodeH264ProfileEXT { + VkStructureType sType; + const void* pNext; + StdVideoH264ProfileIdc stdProfileIdc; +} VkVideoEncodeH264ProfileEXT; + + + +#define VK_EXT_video_decode_h264 1 +#include "vk_video/vulkan_video_codec_h264std_decode.h" +#define VK_EXT_VIDEO_DECODE_H264_SPEC_VERSION 1 +#define VK_EXT_VIDEO_DECODE_H264_EXTENSION_NAME "VK_EXT_video_decode_h264" + +typedef enum VkVideoDecodeH264FieldLayoutFlagBitsEXT { + VK_VIDEO_DECODE_H264_PROGRESSIVE_PICTURES_ONLY_EXT = 0, + VK_VIDEO_DECODE_H264_FIELD_LAYOUT_LINE_INTERLACED_PLANE_BIT_EXT = 0x00000001, + VK_VIDEO_DECODE_H264_FIELD_LAYOUT_SEPARATE_INTERLACED_PLANE_BIT_EXT = 0x00000002, + VK_VIDEO_DECODE_H264_FIELD_LAYOUT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkVideoDecodeH264FieldLayoutFlagBitsEXT; +typedef VkFlags VkVideoDecodeH264FieldLayoutFlagsEXT; +typedef VkFlags VkVideoDecodeH264CreateFlagsEXT; +typedef struct VkVideoDecodeH264ProfileEXT { + VkStructureType sType; + const void* pNext; + StdVideoH264ProfileIdc stdProfileIdc; + VkVideoDecodeH264FieldLayoutFlagsEXT fieldLayout; +} VkVideoDecodeH264ProfileEXT; + +typedef struct VkVideoDecodeH264CapabilitiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxLevel; + VkOffset2D fieldOffsetGranularity; + VkExtensionProperties stdExtensionVersion; +} VkVideoDecodeH264CapabilitiesEXT; + +typedef struct VkVideoDecodeH264SessionCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkVideoDecodeH264CreateFlagsEXT flags; + const VkExtensionProperties* pStdExtensionVersion; +} VkVideoDecodeH264SessionCreateInfoEXT; + +typedef struct VkVideoDecodeH264SessionParametersAddInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t spsStdCount; + const StdVideoH264SequenceParameterSet* pSpsStd; + uint32_t ppsStdCount; + const StdVideoH264PictureParameterSet* pPpsStd; +} VkVideoDecodeH264SessionParametersAddInfoEXT; + +typedef struct VkVideoDecodeH264SessionParametersCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t maxSpsStdCount; + uint32_t maxPpsStdCount; + const VkVideoDecodeH264SessionParametersAddInfoEXT* pParametersAddInfo; +} VkVideoDecodeH264SessionParametersCreateInfoEXT; + +typedef struct VkVideoDecodeH264PictureInfoEXT { + VkStructureType sType; + const void* pNext; + const StdVideoDecodeH264PictureInfo* pStdPictureInfo; + uint32_t slicesCount; + const uint32_t* pSlicesDataOffsets; +} VkVideoDecodeH264PictureInfoEXT; + +typedef struct VkVideoDecodeH264MvcEXT { + VkStructureType sType; + const void* pNext; + const StdVideoDecodeH264Mvc* pStdMvc; +} VkVideoDecodeH264MvcEXT; + +typedef struct VkVideoDecodeH264DpbSlotInfoEXT { + VkStructureType sType; + const void* pNext; + const StdVideoDecodeH264ReferenceInfo* pStdReferenceInfo; +} VkVideoDecodeH264DpbSlotInfoEXT; + + + +#define VK_EXT_video_decode_h265 1 +#include "vk_video/vulkan_video_codec_h265std.h" +#include "vk_video/vulkan_video_codec_h265std_decode.h" +#define VK_EXT_VIDEO_DECODE_H265_SPEC_VERSION 1 +#define VK_EXT_VIDEO_DECODE_H265_EXTENSION_NAME "VK_EXT_video_decode_h265" +typedef VkFlags VkVideoDecodeH265CreateFlagsEXT; +typedef struct VkVideoDecodeH265ProfileEXT { + VkStructureType sType; + const void* pNext; + StdVideoH265ProfileIdc stdProfileIdc; +} VkVideoDecodeH265ProfileEXT; + +typedef struct VkVideoDecodeH265CapabilitiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxLevel; + VkExtensionProperties stdExtensionVersion; +} VkVideoDecodeH265CapabilitiesEXT; + +typedef struct VkVideoDecodeH265SessionCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkVideoDecodeH265CreateFlagsEXT flags; + const VkExtensionProperties* pStdExtensionVersion; +} VkVideoDecodeH265SessionCreateInfoEXT; + +typedef struct VkVideoDecodeH265SessionParametersAddInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t spsStdCount; + const StdVideoH265SequenceParameterSet* pSpsStd; + uint32_t ppsStdCount; + const StdVideoH265PictureParameterSet* pPpsStd; +} VkVideoDecodeH265SessionParametersAddInfoEXT; + +typedef struct VkVideoDecodeH265SessionParametersCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t maxSpsStdCount; + uint32_t maxPpsStdCount; + const VkVideoDecodeH265SessionParametersAddInfoEXT* pParametersAddInfo; +} VkVideoDecodeH265SessionParametersCreateInfoEXT; + +typedef struct VkVideoDecodeH265PictureInfoEXT { + VkStructureType sType; + const void* pNext; + StdVideoDecodeH265PictureInfo* pStdPictureInfo; + uint32_t slicesCount; + const uint32_t* pSlicesDataOffsets; +} VkVideoDecodeH265PictureInfoEXT; + +typedef struct VkVideoDecodeH265DpbSlotInfoEXT { + VkStructureType sType; + const void* pNext; + const StdVideoDecodeH265ReferenceInfo* pStdReferenceInfo; +} VkVideoDecodeH265DpbSlotInfoEXT; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/external/vulkan/windows/include/vulkan/vulkan_core.h b/external/vulkan/windows/include/vulkan/vulkan_core.h index ea96fc43..3b4fe629 100644 --- a/external/vulkan/windows/include/vulkan/vulkan_core.h +++ b/external/vulkan/windows/include/vulkan/vulkan_core.h @@ -2,19 +2,9 @@ #define VULKAN_CORE_H_ 1 /* -** Copyright (c) 2015-2019 The Khronos Group Inc. +** Copyright 2015-2021 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ /* @@ -31,40 +21,82 @@ extern "C" { #define VK_VERSION_1_0 1 #include "vk_platform.h" + +#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; + + +#ifndef VK_USE_64_BIT_PTR_DEFINES + #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) + #define VK_USE_64_BIT_PTR_DEFINES 1 + #else + #define VK_USE_64_BIT_PTR_DEFINES 0 + #endif +#endif + + +#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE + #if (VK_USE_64_BIT_PTR_DEFINES==1) + #if __cplusplus >= 201103L || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L)) + #define VK_NULL_HANDLE nullptr + #else + #define VK_NULL_HANDLE ((void*)0) + #endif + #else + #define VK_NULL_HANDLE 0ULL + #endif +#endif +#ifndef VK_NULL_HANDLE + #define VK_NULL_HANDLE 0 +#endif + + +#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE + #if (VK_USE_64_BIT_PTR_DEFINES==1) + #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object; + #else + #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; + #endif +#endif + +// DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead. #define VK_MAKE_VERSION(major, minor, patch) \ - (((major) << 22) | ((minor) << 12) | (patch)) + ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch))) // DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead. //#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0 +#define VK_MAKE_API_VERSION(variant, major, minor, patch) \ + ((((uint32_t)(variant)) << 29) | (((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch))) + // Vulkan 1.0 version number -#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0 +#define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0 -#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22) -#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff) -#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff) // Version of this file -#define VK_HEADER_VERSION 131 - +#define VK_HEADER_VERSION 176 -#define VK_NULL_HANDLE 0 +// Complete version of this file +#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 2, VK_HEADER_VERSION) +// DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead. +#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22) -#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; - +// DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead. +#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU) -#if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE) -#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) - #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object; -#else - #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; -#endif -#endif +// DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead. +#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU) -typedef uint32_t VkFlags; +#define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29) +#define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22) & 0x7FU) +#define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU) +#define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU) typedef uint32_t VkBool32; +typedef uint64_t VkDeviceAddress; typedef uint64_t VkDeviceSize; +typedef uint32_t VkFlags; typedef uint32_t VkSampleMask; +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage) VK_DEFINE_HANDLE(VkInstance) VK_DEFINE_HANDLE(VkPhysicalDevice) VK_DEFINE_HANDLE(VkDevice) @@ -73,8 +105,6 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore) VK_DEFINE_HANDLE(VkCommandBuffer) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView) @@ -82,37 +112,29 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool) -#define VK_LOD_CLAMP_NONE 1000.0f -#define VK_REMAINING_MIP_LEVELS (~0U) -#define VK_REMAINING_ARRAY_LAYERS (~0U) -#define VK_WHOLE_SIZE (~0ULL) #define VK_ATTACHMENT_UNUSED (~0U) -#define VK_TRUE 1 -#define VK_FALSE 0 +#define VK_FALSE 0U +#define VK_LOD_CLAMP_NONE 1000.0F #define VK_QUEUE_FAMILY_IGNORED (~0U) +#define VK_REMAINING_ARRAY_LAYERS (~0U) +#define VK_REMAINING_MIP_LEVELS (~0U) #define VK_SUBPASS_EXTERNAL (~0U) -#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256 -#define VK_UUID_SIZE 16 -#define VK_MAX_MEMORY_TYPES 32 -#define VK_MAX_MEMORY_HEAPS 16 -#define VK_MAX_EXTENSION_NAME_SIZE 256 -#define VK_MAX_DESCRIPTION_SIZE 256 - -typedef enum VkPipelineCacheHeaderVersion { - VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1, - VK_PIPELINE_CACHE_HEADER_VERSION_BEGIN_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE, - VK_PIPELINE_CACHE_HEADER_VERSION_END_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE, - VK_PIPELINE_CACHE_HEADER_VERSION_RANGE_SIZE = (VK_PIPELINE_CACHE_HEADER_VERSION_ONE - VK_PIPELINE_CACHE_HEADER_VERSION_ONE + 1), - VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF -} VkPipelineCacheHeaderVersion; +#define VK_TRUE 1U +#define VK_WHOLE_SIZE (~0ULL) +#define VK_MAX_MEMORY_TYPES 32U +#define VK_MAX_MEMORY_HEAPS 16U +#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256U +#define VK_UUID_SIZE 16U +#define VK_MAX_EXTENSION_NAME_SIZE 256U +#define VK_MAX_DESCRIPTION_SIZE 256U typedef enum VkResult { VK_SUCCESS = 0, @@ -148,14 +170,17 @@ typedef enum VkResult { VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000, VK_ERROR_NOT_PERMITTED_EXT = -1000174001, VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000, + VK_THREAD_IDLE_KHR = 1000268000, + VK_THREAD_DONE_KHR = 1000268001, + VK_OPERATION_DEFERRED_KHR = 1000268002, + VK_OPERATION_NOT_DEFERRED_KHR = 1000268003, + VK_PIPELINE_COMPILE_REQUIRED_EXT = 1000297000, VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY, VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE, VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION, VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS, VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS, - VK_RESULT_BEGIN_RANGE = VK_ERROR_UNKNOWN, - VK_RESULT_END_RANGE = VK_INCOMPLETE, - VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_UNKNOWN + 1), + VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED_EXT, VK_RESULT_MAX_ENUM = 0x7FFFFFFF } VkResult; @@ -345,6 +370,63 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000, VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001, VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR = 1000023000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR = 1000023002, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR = 1000023003, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR = 1000023004, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR = 1000023011, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000023012, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR = 1000023013, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001, +#endif VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000, VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001, VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002, @@ -352,6 +434,58 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001, VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002, VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000, + VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT = 1000038000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT = 1000038001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000038002, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000038003, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT = 1000038004, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT = 1000038005, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT = 1000038006, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT = 1000038007, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT = 1000038008, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT = 1000040000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT = 1000040001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT = 1000040002, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT = 1000040003, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT = 1000040004, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000040005, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000040006, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT = 1000040007, +#endif VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000, VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000, @@ -384,12 +518,6 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001, VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002, VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000, - VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000, - VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001, - VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002, - VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003, - VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004, - VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005, VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000, VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000, VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000, @@ -453,17 +581,43 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001, VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002, VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000, + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000150007, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = 1000150009, + VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010, + VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011, + VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = 1000150013, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = 1000150014, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = 1000150020, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001, + VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015, + VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016, + VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013, VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001, VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000, - VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002, VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003, VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004, VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005, VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000, VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001, +#endif VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002, @@ -491,6 +645,27 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000, VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT = 1000187000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT = 1000187001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000187002, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000187003, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT = 1000187004, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT = 1000187005, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT = 1000187006, +#endif VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000, VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001, @@ -507,7 +682,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000, VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000, - VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = 1000210000, + VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000, VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001, VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002, VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003, @@ -517,6 +692,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000, VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001, VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = 1000215000, VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001, @@ -524,8 +700,14 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = 1000225000, VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = 1000225001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = 1000225002, + VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000, + VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000, VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001, @@ -550,7 +732,9 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = 1000259000, VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = 1000259001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = 1000259002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = 1000265000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000, VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001, VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002, @@ -558,8 +742,82 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004, VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = 1000276000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000, + VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001, + VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002, + VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003, + VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004, + VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005, + VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000, + VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000, + VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001, + VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = 1000286000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001, + VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002, + VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = 1000295000, + VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = 1000295001, + VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = 1000295002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = 1000297000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000, + VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001, + VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = 1000314000, + VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = 1000314001, + VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = 1000314002, + VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = 1000314003, + VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = 1000314004, + VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = 1000314005, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = 1000314006, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = 1000314007, + VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008, + VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = 1000325000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001, + VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001, + VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = 1000335000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000, + VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = 1000337000, + VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = 1000337001, + VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = 1000337002, + VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = 1000337003, + VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = 1000337004, + VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = 1000337005, + VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = 1000337006, + VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = 1000337007, + VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008, + VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009, + VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000, + VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000, + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000, + VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001, + VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002, + VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000, + VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001, + VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002, + VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000, + VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000, + VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000, + VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, @@ -618,8 +876,8 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO, VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO, VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR, VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS, VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES, @@ -658,6 +916,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO, VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO, VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO, + VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES, @@ -673,29 +932,138 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO, VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES, - VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO, - VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO, - VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1), VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF } VkStructureType; +typedef enum VkImageLayout { + VK_IMAGE_LAYOUT_UNDEFINED = 0, + VK_IMAGE_LAYOUT_GENERAL = 1, + VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2, + VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3, + VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4, + VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5, + VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6, + VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7, + VK_IMAGE_LAYOUT_PREINITIALIZED = 8, + VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000, + VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001, + VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000, + VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001, + VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002, + VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003, + VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002, +#endif + VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000, + VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003, + VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000, + VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = 1000314000, + VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = 1000314001, + VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, + VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, + VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV, + VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, + VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, + VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, + VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, + VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF +} VkImageLayout; + +typedef enum VkObjectType { + VK_OBJECT_TYPE_UNKNOWN = 0, + VK_OBJECT_TYPE_INSTANCE = 1, + VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2, + VK_OBJECT_TYPE_DEVICE = 3, + VK_OBJECT_TYPE_QUEUE = 4, + VK_OBJECT_TYPE_SEMAPHORE = 5, + VK_OBJECT_TYPE_COMMAND_BUFFER = 6, + VK_OBJECT_TYPE_FENCE = 7, + VK_OBJECT_TYPE_DEVICE_MEMORY = 8, + VK_OBJECT_TYPE_BUFFER = 9, + VK_OBJECT_TYPE_IMAGE = 10, + VK_OBJECT_TYPE_EVENT = 11, + VK_OBJECT_TYPE_QUERY_POOL = 12, + VK_OBJECT_TYPE_BUFFER_VIEW = 13, + VK_OBJECT_TYPE_IMAGE_VIEW = 14, + VK_OBJECT_TYPE_SHADER_MODULE = 15, + VK_OBJECT_TYPE_PIPELINE_CACHE = 16, + VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17, + VK_OBJECT_TYPE_RENDER_PASS = 18, + VK_OBJECT_TYPE_PIPELINE = 19, + VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20, + VK_OBJECT_TYPE_SAMPLER = 21, + VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22, + VK_OBJECT_TYPE_DESCRIPTOR_SET = 23, + VK_OBJECT_TYPE_FRAMEBUFFER = 24, + VK_OBJECT_TYPE_COMMAND_POOL = 25, + VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000, + VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000, + VK_OBJECT_TYPE_SURFACE_KHR = 1000000000, + VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000, + VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000, + VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001, + VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001, +#endif + VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000, + VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000, + VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000, + VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, + VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000, + VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000, + VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000, + VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000, + VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE, + VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION, + VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF +} VkObjectType; + +typedef enum VkVendorId { + VK_VENDOR_ID_VIV = 0x10001, + VK_VENDOR_ID_VSI = 0x10002, + VK_VENDOR_ID_KAZAN = 0x10003, + VK_VENDOR_ID_CODEPLAY = 0x10004, + VK_VENDOR_ID_MESA = 0x10005, + VK_VENDOR_ID_POCL = 0x10006, + VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF +} VkVendorId; + +typedef enum VkPipelineCacheHeaderVersion { + VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1, + VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF +} VkPipelineCacheHeaderVersion; + typedef enum VkSystemAllocationScope { VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1, VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2, VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3, VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4, - VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND, - VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE, - VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1), VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF } VkSystemAllocationScope; typedef enum VkInternalAllocationType { VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0, - VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE, - VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE, - VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1), VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF } VkInternalAllocationType; @@ -941,6 +1309,12 @@ typedef enum VkFormat { VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = 1000066011, VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = 1000066012, VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = 1000066013, + VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = 1000330000, + VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = 1000330001, + VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = 1000330002, + VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = 1000330003, + VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = 1000340000, + VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = 1000340001, VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM, VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM, VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM, @@ -975,41 +1349,29 @@ typedef enum VkFormat { VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM, VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM, VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM, - VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED, - VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK, - VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1), VK_FORMAT_MAX_ENUM = 0x7FFFFFFF } VkFormat; -typedef enum VkImageType { - VK_IMAGE_TYPE_1D = 0, - VK_IMAGE_TYPE_2D = 1, - VK_IMAGE_TYPE_3D = 2, - VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D, - VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D, - VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1), - VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF -} VkImageType; - typedef enum VkImageTiling { VK_IMAGE_TILING_OPTIMAL = 0, VK_IMAGE_TILING_LINEAR = 1, VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000, - VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL, - VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR, - VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1), VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF } VkImageTiling; +typedef enum VkImageType { + VK_IMAGE_TYPE_1D = 0, + VK_IMAGE_TYPE_2D = 1, + VK_IMAGE_TYPE_3D = 2, + VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF +} VkImageType; + typedef enum VkPhysicalDeviceType { VK_PHYSICAL_DEVICE_TYPE_OTHER = 0, VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1, VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2, VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3, VK_PHYSICAL_DEVICE_TYPE_CPU = 4, - VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER, - VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU, - VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1), VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF } VkPhysicalDeviceType; @@ -1017,56 +1379,37 @@ typedef enum VkQueryType { VK_QUERY_TYPE_OCCLUSION = 0, VK_QUERY_TYPE_PIPELINE_STATISTICS = 1, VK_QUERY_TYPE_TIMESTAMP = 2, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR = 1000299000, +#endif VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004, VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000, + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000, + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001, VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000, VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000, - VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION, - VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP, - VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1), VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF } VkQueryType; typedef enum VkSharingMode { VK_SHARING_MODE_EXCLUSIVE = 0, VK_SHARING_MODE_CONCURRENT = 1, - VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE, - VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT, - VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1), VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF } VkSharingMode; -typedef enum VkImageLayout { - VK_IMAGE_LAYOUT_UNDEFINED = 0, - VK_IMAGE_LAYOUT_GENERAL = 1, - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2, - VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3, - VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4, - VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5, - VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6, - VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7, - VK_IMAGE_LAYOUT_PREINITIALIZED = 8, - VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000, - VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001, - VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000, - VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001, - VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002, - VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003, - VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002, - VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000, - VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003, - VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000, - VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, - VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, - VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, - VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, - VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, - VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, - VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED, - VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED, - VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1), - VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF -} VkImageLayout; +typedef enum VkComponentSwizzle { + VK_COMPONENT_SWIZZLE_IDENTITY = 0, + VK_COMPONENT_SWIZZLE_ZERO = 1, + VK_COMPONENT_SWIZZLE_ONE = 2, + VK_COMPONENT_SWIZZLE_R = 3, + VK_COMPONENT_SWIZZLE_G = 4, + VK_COMPONENT_SWIZZLE_B = 5, + VK_COMPONENT_SWIZZLE_A = 6, + VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF +} VkComponentSwizzle; typedef enum VkImageViewType { VK_IMAGE_VIEW_TYPE_1D = 0, @@ -1076,126 +1419,9 @@ typedef enum VkImageViewType { VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4, VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5, VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6, - VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D, - VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, - VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1), VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF } VkImageViewType; -typedef enum VkComponentSwizzle { - VK_COMPONENT_SWIZZLE_IDENTITY = 0, - VK_COMPONENT_SWIZZLE_ZERO = 1, - VK_COMPONENT_SWIZZLE_ONE = 2, - VK_COMPONENT_SWIZZLE_R = 3, - VK_COMPONENT_SWIZZLE_G = 4, - VK_COMPONENT_SWIZZLE_B = 5, - VK_COMPONENT_SWIZZLE_A = 6, - VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY, - VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A, - VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1), - VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF -} VkComponentSwizzle; - -typedef enum VkVertexInputRate { - VK_VERTEX_INPUT_RATE_VERTEX = 0, - VK_VERTEX_INPUT_RATE_INSTANCE = 1, - VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX, - VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE, - VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1), - VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF -} VkVertexInputRate; - -typedef enum VkPrimitiveTopology { - VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0, - VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1, - VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2, - VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3, - VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4, - VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5, - VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6, - VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7, - VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8, - VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9, - VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10, - VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST, - VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, - VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1), - VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF -} VkPrimitiveTopology; - -typedef enum VkPolygonMode { - VK_POLYGON_MODE_FILL = 0, - VK_POLYGON_MODE_LINE = 1, - VK_POLYGON_MODE_POINT = 2, - VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000, - VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL, - VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT, - VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1), - VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF -} VkPolygonMode; - -typedef enum VkFrontFace { - VK_FRONT_FACE_COUNTER_CLOCKWISE = 0, - VK_FRONT_FACE_CLOCKWISE = 1, - VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE, - VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE, - VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1), - VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF -} VkFrontFace; - -typedef enum VkCompareOp { - VK_COMPARE_OP_NEVER = 0, - VK_COMPARE_OP_LESS = 1, - VK_COMPARE_OP_EQUAL = 2, - VK_COMPARE_OP_LESS_OR_EQUAL = 3, - VK_COMPARE_OP_GREATER = 4, - VK_COMPARE_OP_NOT_EQUAL = 5, - VK_COMPARE_OP_GREATER_OR_EQUAL = 6, - VK_COMPARE_OP_ALWAYS = 7, - VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER, - VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS, - VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1), - VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF -} VkCompareOp; - -typedef enum VkStencilOp { - VK_STENCIL_OP_KEEP = 0, - VK_STENCIL_OP_ZERO = 1, - VK_STENCIL_OP_REPLACE = 2, - VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3, - VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4, - VK_STENCIL_OP_INVERT = 5, - VK_STENCIL_OP_INCREMENT_AND_WRAP = 6, - VK_STENCIL_OP_DECREMENT_AND_WRAP = 7, - VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP, - VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP, - VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1), - VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF -} VkStencilOp; - -typedef enum VkLogicOp { - VK_LOGIC_OP_CLEAR = 0, - VK_LOGIC_OP_AND = 1, - VK_LOGIC_OP_AND_REVERSE = 2, - VK_LOGIC_OP_COPY = 3, - VK_LOGIC_OP_AND_INVERTED = 4, - VK_LOGIC_OP_NO_OP = 5, - VK_LOGIC_OP_XOR = 6, - VK_LOGIC_OP_OR = 7, - VK_LOGIC_OP_NOR = 8, - VK_LOGIC_OP_EQUIVALENT = 9, - VK_LOGIC_OP_INVERT = 10, - VK_LOGIC_OP_OR_REVERSE = 11, - VK_LOGIC_OP_COPY_INVERTED = 12, - VK_LOGIC_OP_OR_INVERTED = 13, - VK_LOGIC_OP_NAND = 14, - VK_LOGIC_OP_SET = 15, - VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR, - VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET, - VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1), - VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF -} VkLogicOp; - typedef enum VkBlendFactor { VK_BLEND_FACTOR_ZERO = 0, VK_BLEND_FACTOR_ONE = 1, @@ -1216,9 +1442,6 @@ typedef enum VkBlendFactor { VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16, VK_BLEND_FACTOR_SRC1_ALPHA = 17, VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18, - VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO, - VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA, - VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1), VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF } VkBlendFactor; @@ -1274,12 +1497,21 @@ typedef enum VkBlendOp { VK_BLEND_OP_RED_EXT = 1000148043, VK_BLEND_OP_GREEN_EXT = 1000148044, VK_BLEND_OP_BLUE_EXT = 1000148045, - VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD, - VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX, - VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1), VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF } VkBlendOp; +typedef enum VkCompareOp { + VK_COMPARE_OP_NEVER = 0, + VK_COMPARE_OP_LESS = 1, + VK_COMPARE_OP_EQUAL = 2, + VK_COMPARE_OP_LESS_OR_EQUAL = 3, + VK_COMPARE_OP_GREATER = 4, + VK_COMPARE_OP_NOT_EQUAL = 5, + VK_COMPARE_OP_GREATER_OR_EQUAL = 6, + VK_COMPARE_OP_ALWAYS = 7, + VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF +} VkCompareOp; + typedef enum VkDynamicState { VK_DYNAMIC_STATE_VIEWPORT = 0, VK_DYNAMIC_STATE_SCISSOR = 1, @@ -1293,36 +1525,121 @@ typedef enum VkDynamicState { VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000, VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000, VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000, + VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000, VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004, VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006, VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001, + VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000, VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = 1000259000, - VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT, - VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE, - VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1), + VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000, + VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001, + VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002, + VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = 1000267003, + VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = 1000267004, + VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = 1000267005, + VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = 1000267006, + VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = 1000267007, + VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = 1000267008, + VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = 1000267009, + VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = 1000267010, + VK_DYNAMIC_STATE_STENCIL_OP_EXT = 1000267011, + VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000, + VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000, + VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = 1000377001, + VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = 1000377002, + VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003, + VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = 1000377004, + VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000, VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF } VkDynamicState; +typedef enum VkFrontFace { + VK_FRONT_FACE_COUNTER_CLOCKWISE = 0, + VK_FRONT_FACE_CLOCKWISE = 1, + VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF +} VkFrontFace; + +typedef enum VkVertexInputRate { + VK_VERTEX_INPUT_RATE_VERTEX = 0, + VK_VERTEX_INPUT_RATE_INSTANCE = 1, + VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF +} VkVertexInputRate; + +typedef enum VkPrimitiveTopology { + VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0, + VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1, + VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2, + VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3, + VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4, + VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5, + VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6, + VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7, + VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8, + VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9, + VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10, + VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF +} VkPrimitiveTopology; + +typedef enum VkPolygonMode { + VK_POLYGON_MODE_FILL = 0, + VK_POLYGON_MODE_LINE = 1, + VK_POLYGON_MODE_POINT = 2, + VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000, + VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF +} VkPolygonMode; + +typedef enum VkStencilOp { + VK_STENCIL_OP_KEEP = 0, + VK_STENCIL_OP_ZERO = 1, + VK_STENCIL_OP_REPLACE = 2, + VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3, + VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4, + VK_STENCIL_OP_INVERT = 5, + VK_STENCIL_OP_INCREMENT_AND_WRAP = 6, + VK_STENCIL_OP_DECREMENT_AND_WRAP = 7, + VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF +} VkStencilOp; + +typedef enum VkLogicOp { + VK_LOGIC_OP_CLEAR = 0, + VK_LOGIC_OP_AND = 1, + VK_LOGIC_OP_AND_REVERSE = 2, + VK_LOGIC_OP_COPY = 3, + VK_LOGIC_OP_AND_INVERTED = 4, + VK_LOGIC_OP_NO_OP = 5, + VK_LOGIC_OP_XOR = 6, + VK_LOGIC_OP_OR = 7, + VK_LOGIC_OP_NOR = 8, + VK_LOGIC_OP_EQUIVALENT = 9, + VK_LOGIC_OP_INVERT = 10, + VK_LOGIC_OP_OR_REVERSE = 11, + VK_LOGIC_OP_COPY_INVERTED = 12, + VK_LOGIC_OP_OR_INVERTED = 13, + VK_LOGIC_OP_NAND = 14, + VK_LOGIC_OP_SET = 15, + VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF +} VkLogicOp; + +typedef enum VkBorderColor { + VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0, + VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1, + VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2, + VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3, + VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4, + VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5, + VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003, + VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004, + VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF +} VkBorderColor; + typedef enum VkFilter { VK_FILTER_NEAREST = 0, VK_FILTER_LINEAR = 1, VK_FILTER_CUBIC_IMG = 1000015000, VK_FILTER_CUBIC_EXT = VK_FILTER_CUBIC_IMG, - VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST, - VK_FILTER_END_RANGE = VK_FILTER_LINEAR, - VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1), VK_FILTER_MAX_ENUM = 0x7FFFFFFF } VkFilter; -typedef enum VkSamplerMipmapMode { - VK_SAMPLER_MIPMAP_MODE_NEAREST = 0, - VK_SAMPLER_MIPMAP_MODE_LINEAR = 1, - VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_NEAREST, - VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR, - VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_NEAREST + 1), - VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF -} VkSamplerMipmapMode; - typedef enum VkSamplerAddressMode { VK_SAMPLER_ADDRESS_MODE_REPEAT = 0, VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1, @@ -1330,24 +1647,14 @@ typedef enum VkSamplerAddressMode { VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3, VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4, VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE, - VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT, - VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, - VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1), VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF } VkSamplerAddressMode; -typedef enum VkBorderColor { - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0, - VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1, - VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2, - VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3, - VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4, - VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5, - VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK, - VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE, - VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1), - VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF -} VkBorderColor; +typedef enum VkSamplerMipmapMode { + VK_SAMPLER_MIPMAP_MODE_NEAREST = 0, + VK_SAMPLER_MIPMAP_MODE_LINEAR = 1, + VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF +} VkSamplerMipmapMode; typedef enum VkDescriptorType { VK_DESCRIPTOR_TYPE_SAMPLER = 0, @@ -1362,10 +1669,9 @@ typedef enum VkDescriptorType { VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9, VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10, VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000, + VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000, VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, - VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER, - VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, - VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1), + VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000, VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF } VkDescriptorType; @@ -1373,118 +1679,100 @@ typedef enum VkAttachmentLoadOp { VK_ATTACHMENT_LOAD_OP_LOAD = 0, VK_ATTACHMENT_LOAD_OP_CLEAR = 1, VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2, - VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD, - VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE, - VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1), VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF } VkAttachmentLoadOp; typedef enum VkAttachmentStoreOp { VK_ATTACHMENT_STORE_OP_STORE = 0, VK_ATTACHMENT_STORE_OP_DONT_CARE = 1, - VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE, - VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE, - VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1), + VK_ATTACHMENT_STORE_OP_NONE_QCOM = 1000301000, VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF } VkAttachmentStoreOp; typedef enum VkPipelineBindPoint { VK_PIPELINE_BIND_POINT_GRAPHICS = 0, VK_PIPELINE_BIND_POINT_COMPUTE = 1, - VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = 1000165000, - VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS, - VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE, - VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1), + VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000, + VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF } VkPipelineBindPoint; typedef enum VkCommandBufferLevel { VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0, VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1, - VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY, - VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY, - VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1), VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF } VkCommandBufferLevel; typedef enum VkIndexType { VK_INDEX_TYPE_UINT16 = 0, VK_INDEX_TYPE_UINT32 = 1, - VK_INDEX_TYPE_NONE_NV = 1000165000, + VK_INDEX_TYPE_NONE_KHR = 1000165000, VK_INDEX_TYPE_UINT8_EXT = 1000265000, - VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16, - VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32, - VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1), + VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR, VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF } VkIndexType; typedef enum VkSubpassContents { VK_SUBPASS_CONTENTS_INLINE = 0, VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1, - VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE, - VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS, - VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1), VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF } VkSubpassContents; -typedef enum VkObjectType { - VK_OBJECT_TYPE_UNKNOWN = 0, - VK_OBJECT_TYPE_INSTANCE = 1, - VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2, - VK_OBJECT_TYPE_DEVICE = 3, - VK_OBJECT_TYPE_QUEUE = 4, - VK_OBJECT_TYPE_SEMAPHORE = 5, - VK_OBJECT_TYPE_COMMAND_BUFFER = 6, - VK_OBJECT_TYPE_FENCE = 7, - VK_OBJECT_TYPE_DEVICE_MEMORY = 8, - VK_OBJECT_TYPE_BUFFER = 9, - VK_OBJECT_TYPE_IMAGE = 10, - VK_OBJECT_TYPE_EVENT = 11, - VK_OBJECT_TYPE_QUERY_POOL = 12, - VK_OBJECT_TYPE_BUFFER_VIEW = 13, - VK_OBJECT_TYPE_IMAGE_VIEW = 14, - VK_OBJECT_TYPE_SHADER_MODULE = 15, - VK_OBJECT_TYPE_PIPELINE_CACHE = 16, - VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17, - VK_OBJECT_TYPE_RENDER_PASS = 18, - VK_OBJECT_TYPE_PIPELINE = 19, - VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20, - VK_OBJECT_TYPE_SAMPLER = 21, - VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22, - VK_OBJECT_TYPE_DESCRIPTOR_SET = 23, - VK_OBJECT_TYPE_FRAMEBUFFER = 24, - VK_OBJECT_TYPE_COMMAND_POOL = 25, - VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000, - VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000, - VK_OBJECT_TYPE_SURFACE_KHR = 1000000000, - VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000, - VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000, - VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001, - VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000, - VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000, - VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001, - VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000, - VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000, - VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, - VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000, - VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE, - VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION, - VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_UNKNOWN, - VK_OBJECT_TYPE_END_RANGE = VK_OBJECT_TYPE_COMMAND_POOL, - VK_OBJECT_TYPE_RANGE_SIZE = (VK_OBJECT_TYPE_COMMAND_POOL - VK_OBJECT_TYPE_UNKNOWN + 1), - VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF -} VkObjectType; +typedef enum VkAccessFlagBits { + VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001, + VK_ACCESS_INDEX_READ_BIT = 0x00000002, + VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004, + VK_ACCESS_UNIFORM_READ_BIT = 0x00000008, + VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010, + VK_ACCESS_SHADER_READ_BIT = 0x00000020, + VK_ACCESS_SHADER_WRITE_BIT = 0x00000040, + VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080, + VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100, + VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200, + VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400, + VK_ACCESS_TRANSFER_READ_BIT = 0x00000800, + VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000, + VK_ACCESS_HOST_READ_BIT = 0x00002000, + VK_ACCESS_HOST_WRITE_BIT = 0x00004000, + VK_ACCESS_MEMORY_READ_BIT = 0x00008000, + VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000, + VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000, + VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000, + VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000, + VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000, + VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000, + VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000, + VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000, + VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000, + VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000, + VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000, + VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000, + VK_ACCESS_NONE_KHR = 0, + VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR, + VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, + VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV, + VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkAccessFlagBits; +typedef VkFlags VkAccessFlags; -typedef enum VkVendorId { - VK_VENDOR_ID_VIV = 0x10001, - VK_VENDOR_ID_VSI = 0x10002, - VK_VENDOR_ID_KAZAN = 0x10003, - VK_VENDOR_ID_BEGIN_RANGE = VK_VENDOR_ID_VIV, - VK_VENDOR_ID_END_RANGE = VK_VENDOR_ID_KAZAN, - VK_VENDOR_ID_RANGE_SIZE = (VK_VENDOR_ID_KAZAN - VK_VENDOR_ID_VIV + 1), - VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF -} VkVendorId; -typedef VkFlags VkInstanceCreateFlags; +typedef enum VkImageAspectFlagBits { + VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001, + VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002, + VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004, + VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008, + VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010, + VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020, + VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040, + VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080, + VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100, + VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200, + VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400, + VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT, + VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT, + VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT, + VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkImageAspectFlagBits; +typedef VkFlags VkImageAspectFlags; typedef enum VkFormatFeatureFlagBits { VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, @@ -1511,7 +1799,21 @@ typedef enum VkFormatFeatureFlagBits { VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000, VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000, VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000, +#endif + VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000, VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000, + VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000, VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT, VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT, VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT, @@ -1527,21 +1829,6 @@ typedef enum VkFormatFeatureFlagBits { } VkFormatFeatureFlagBits; typedef VkFlags VkFormatFeatureFlags; -typedef enum VkImageUsageFlagBits { - VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, - VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, - VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, - VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, - VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, - VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, - VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, - VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, - VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100, - VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200, - VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkImageUsageFlagBits; -typedef VkFlags VkImageUsageFlags; - typedef enum VkImageCreateFlagBits { VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, @@ -1580,15 +1867,48 @@ typedef enum VkSampleCountFlagBits { } VkSampleCountFlagBits; typedef VkFlags VkSampleCountFlags; -typedef enum VkQueueFlagBits { - VK_QUEUE_GRAPHICS_BIT = 0x00000001, - VK_QUEUE_COMPUTE_BIT = 0x00000002, - VK_QUEUE_TRANSFER_BIT = 0x00000004, - VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, - VK_QUEUE_PROTECTED_BIT = 0x00000010, - VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkQueueFlagBits; -typedef VkFlags VkQueueFlags; +typedef enum VkImageUsageFlagBits { + VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, + VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, + VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, + VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, + VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, + VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, + VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, + VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000, +#endif + VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100, + VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200, + VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, + VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkImageUsageFlagBits; +typedef VkFlags VkImageUsageFlags; +typedef VkFlags VkInstanceCreateFlags; + +typedef enum VkMemoryHeapFlagBits { + VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001, + VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002, + VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT, + VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkMemoryHeapFlagBits; +typedef VkFlags VkMemoryHeapFlags; typedef enum VkMemoryPropertyFlagBits { VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001, @@ -1603,13 +1923,21 @@ typedef enum VkMemoryPropertyFlagBits { } VkMemoryPropertyFlagBits; typedef VkFlags VkMemoryPropertyFlags; -typedef enum VkMemoryHeapFlagBits { - VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001, - VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002, - VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT, - VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkMemoryHeapFlagBits; -typedef VkFlags VkMemoryHeapFlags; +typedef enum VkQueueFlagBits { + VK_QUEUE_GRAPHICS_BIT = 0x00000001, + VK_QUEUE_COMPUTE_BIT = 0x00000002, + VK_QUEUE_TRANSFER_BIT = 0x00000004, + VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, + VK_QUEUE_PROTECTED_BIT = 0x00000010, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040, +#endif + VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkQueueFlagBits; +typedef VkFlags VkQueueFlags; typedef VkFlags VkDeviceCreateFlags; typedef enum VkDeviceQueueCreateFlagBits { @@ -1638,36 +1966,27 @@ typedef enum VkPipelineStageFlagBits { VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000, VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000, - VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000, + VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000, + VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000, VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000, - VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 0x00200000, - VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000, VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000, VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000, VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000, + VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0x00020000, + VK_PIPELINE_STAGE_NONE_KHR = 0, + VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR, + VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, + VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV, VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkPipelineStageFlagBits; typedef VkFlags VkPipelineStageFlags; typedef VkFlags VkMemoryMapFlags; -typedef enum VkImageAspectFlagBits { - VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001, - VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002, - VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004, - VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008, - VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010, - VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020, - VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040, - VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080, - VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100, - VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200, - VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400, - VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT, - VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT, - VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT, - VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkImageAspectFlagBits; -typedef VkFlags VkImageAspectFlags; +typedef enum VkSparseMemoryBindFlagBits { + VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001, + VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkSparseMemoryBindFlagBits; +typedef VkFlags VkSparseMemoryBindFlags; typedef enum VkSparseImageFormatFlagBits { VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, @@ -1677,20 +1996,18 @@ typedef enum VkSparseImageFormatFlagBits { } VkSparseImageFormatFlagBits; typedef VkFlags VkSparseImageFormatFlags; -typedef enum VkSparseMemoryBindFlagBits { - VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001, - VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkSparseMemoryBindFlagBits; -typedef VkFlags VkSparseMemoryBindFlags; - typedef enum VkFenceCreateFlagBits { VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001, VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkFenceCreateFlagBits; typedef VkFlags VkFenceCreateFlags; typedef VkFlags VkSemaphoreCreateFlags; + +typedef enum VkEventCreateFlagBits { + VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR = 0x00000001, + VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkEventCreateFlagBits; typedef VkFlags VkEventCreateFlags; -typedef VkFlags VkQueryPoolCreateFlags; typedef enum VkQueryPipelineStatisticFlagBits { VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, @@ -1707,12 +2024,16 @@ typedef enum VkQueryPipelineStatisticFlagBits { VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkQueryPipelineStatisticFlagBits; typedef VkFlags VkQueryPipelineStatisticFlags; +typedef VkFlags VkQueryPoolCreateFlags; typedef enum VkQueryResultFlagBits { VK_QUERY_RESULT_64_BIT = 0x00000001, VK_QUERY_RESULT_WAIT_BIT = 0x00000002, VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010, +#endif VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkQueryResultFlagBits; typedef VkFlags VkQueryResultFlags; @@ -1740,10 +2061,25 @@ typedef enum VkBufferUsageFlagBits { VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000, +#endif VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800, VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000, VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200, - VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 0x00000400, + VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000, + VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000, + VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400, + VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR, VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT, VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT, VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF @@ -1753,6 +2089,7 @@ typedef VkFlags VkBufferViewCreateFlags; typedef enum VkImageViewCreateFlagBits { VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001, + VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002, VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkImageViewCreateFlagBits; typedef VkFlags VkImageViewCreateFlags; @@ -1761,17 +2098,42 @@ typedef enum VkShaderModuleCreateFlagBits { VK_SHADER_MODULE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkShaderModuleCreateFlagBits; typedef VkFlags VkShaderModuleCreateFlags; + +typedef enum VkPipelineCacheCreateFlagBits { + VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = 0x00000001, + VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkPipelineCacheCreateFlagBits; typedef VkFlags VkPipelineCacheCreateFlags; +typedef enum VkColorComponentFlagBits { + VK_COLOR_COMPONENT_R_BIT = 0x00000001, + VK_COLOR_COMPONENT_G_BIT = 0x00000002, + VK_COLOR_COMPONENT_B_BIT = 0x00000004, + VK_COLOR_COMPONENT_A_BIT = 0x00000008, + VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkColorComponentFlagBits; +typedef VkFlags VkColorComponentFlags; + typedef enum VkPipelineCreateFlagBits { VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001, VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002, VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004, VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008, VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010, + VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000, + VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000, + VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000, + VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000, + VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000, + VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000, + VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000, VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020, VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040, VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080, + VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000, + VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800, + VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = 0x00000100, + VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = 0x00000200, VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE, @@ -1795,21 +2157,22 @@ typedef enum VkShaderStageFlagBits { VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020, VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F, VK_SHADER_STAGE_ALL = 0x7FFFFFFF, - VK_SHADER_STAGE_RAYGEN_BIT_NV = 0x00000100, - VK_SHADER_STAGE_ANY_HIT_BIT_NV = 0x00000200, - VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 0x00000400, - VK_SHADER_STAGE_MISS_BIT_NV = 0x00000800, - VK_SHADER_STAGE_INTERSECTION_BIT_NV = 0x00001000, - VK_SHADER_STAGE_CALLABLE_BIT_NV = 0x00002000, + VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100, + VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200, + VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400, + VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800, + VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000, + VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000, VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040, VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080, + VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR, + VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR, + VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR, + VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR, + VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR, + VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR, VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkShaderStageFlagBits; -typedef VkFlags VkPipelineVertexInputStateCreateFlags; -typedef VkFlags VkPipelineInputAssemblyStateCreateFlags; -typedef VkFlags VkPipelineTessellationStateCreateFlags; -typedef VkFlags VkPipelineViewportStateCreateFlags; -typedef VkFlags VkPipelineRasterizationStateCreateFlags; typedef enum VkCullModeFlagBits { VK_CULL_MODE_NONE = 0, @@ -1819,18 +2182,14 @@ typedef enum VkCullModeFlagBits { VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkCullModeFlagBits; typedef VkFlags VkCullModeFlags; +typedef VkFlags VkPipelineVertexInputStateCreateFlags; +typedef VkFlags VkPipelineInputAssemblyStateCreateFlags; +typedef VkFlags VkPipelineTessellationStateCreateFlags; +typedef VkFlags VkPipelineViewportStateCreateFlags; +typedef VkFlags VkPipelineRasterizationStateCreateFlags; typedef VkFlags VkPipelineMultisampleStateCreateFlags; typedef VkFlags VkPipelineDepthStencilStateCreateFlags; typedef VkFlags VkPipelineColorBlendStateCreateFlags; - -typedef enum VkColorComponentFlagBits { - VK_COLOR_COMPONENT_R_BIT = 0x00000001, - VK_COLOR_COMPONENT_G_BIT = 0x00000002, - VK_COLOR_COMPONENT_B_BIT = 0x00000004, - VK_COLOR_COMPONENT_A_BIT = 0x00000008, - VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkColorComponentFlagBits; -typedef VkFlags VkColorComponentFlags; typedef VkFlags VkPipelineDynamicStateCreateFlags; typedef VkFlags VkPipelineLayoutCreateFlags; typedef VkFlags VkShaderStageFlags; @@ -1842,23 +2201,41 @@ typedef enum VkSamplerCreateFlagBits { } VkSamplerCreateFlagBits; typedef VkFlags VkSamplerCreateFlags; -typedef enum VkDescriptorSetLayoutCreateFlagBits { - VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002, - VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001, - VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT, - VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkDescriptorSetLayoutCreateFlagBits; -typedef VkFlags VkDescriptorSetLayoutCreateFlags; - typedef enum VkDescriptorPoolCreateFlagBits { VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001, VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002, + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 0x00000004, VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT, VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkDescriptorPoolCreateFlagBits; typedef VkFlags VkDescriptorPoolCreateFlags; typedef VkFlags VkDescriptorPoolResetFlags; +typedef enum VkDescriptorSetLayoutCreateFlagBits { + VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002, + VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001, + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 0x00000004, + VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT, + VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkDescriptorSetLayoutCreateFlagBits; +typedef VkFlags VkDescriptorSetLayoutCreateFlags; + +typedef enum VkAttachmentDescriptionFlagBits { + VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001, + VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkAttachmentDescriptionFlagBits; +typedef VkFlags VkAttachmentDescriptionFlags; + +typedef enum VkDependencyFlagBits { + VK_DEPENDENCY_BY_REGION_BIT = 0x00000001, + VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004, + VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002, + VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT, + VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT, + VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkDependencyFlagBits; +typedef VkFlags VkDependencyFlags; + typedef enum VkFramebufferCreateFlagBits { VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001, VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, @@ -1867,66 +2244,20 @@ typedef enum VkFramebufferCreateFlagBits { typedef VkFlags VkFramebufferCreateFlags; typedef enum VkRenderPassCreateFlagBits { + VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002, VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkRenderPassCreateFlagBits; typedef VkFlags VkRenderPassCreateFlags; -typedef enum VkAttachmentDescriptionFlagBits { - VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001, - VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkAttachmentDescriptionFlagBits; -typedef VkFlags VkAttachmentDescriptionFlags; - typedef enum VkSubpassDescriptionFlagBits { VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001, VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002, + VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0x00000004, + VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0x00000008, VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkSubpassDescriptionFlagBits; typedef VkFlags VkSubpassDescriptionFlags; -typedef enum VkAccessFlagBits { - VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001, - VK_ACCESS_INDEX_READ_BIT = 0x00000002, - VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004, - VK_ACCESS_UNIFORM_READ_BIT = 0x00000008, - VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010, - VK_ACCESS_SHADER_READ_BIT = 0x00000020, - VK_ACCESS_SHADER_WRITE_BIT = 0x00000040, - VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080, - VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100, - VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200, - VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400, - VK_ACCESS_TRANSFER_READ_BIT = 0x00000800, - VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000, - VK_ACCESS_HOST_READ_BIT = 0x00002000, - VK_ACCESS_HOST_WRITE_BIT = 0x00004000, - VK_ACCESS_MEMORY_READ_BIT = 0x00008000, - VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000, - VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000, - VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000, - VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000, - VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000, - VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000, - VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000, - VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000, - VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000, - VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000, - VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000, - VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000, - VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkAccessFlagBits; -typedef VkFlags VkAccessFlags; - -typedef enum VkDependencyFlagBits { - VK_DEPENDENCY_BY_REGION_BIT = 0x00000001, - VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004, - VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002, - VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT, - VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT, - VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkDependencyFlagBits; -typedef VkFlags VkDependencyFlags; - typedef enum VkCommandPoolCreateFlagBits { VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, @@ -1969,36 +2300,106 @@ typedef enum VkStencilFaceFlagBits { VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkStencilFaceFlagBits; typedef VkFlags VkStencilFaceFlags; -typedef struct VkApplicationInfo { - VkStructureType sType; - const void* pNext; - const char* pApplicationName; - uint32_t applicationVersion; - const char* pEngineName; - uint32_t engineVersion; - uint32_t apiVersion; -} VkApplicationInfo; +typedef struct VkExtent2D { + uint32_t width; + uint32_t height; +} VkExtent2D; -typedef struct VkInstanceCreateInfo { - VkStructureType sType; - const void* pNext; - VkInstanceCreateFlags flags; - const VkApplicationInfo* pApplicationInfo; - uint32_t enabledLayerCount; - const char* const* ppEnabledLayerNames; - uint32_t enabledExtensionCount; - const char* const* ppEnabledExtensionNames; -} VkInstanceCreateInfo; +typedef struct VkExtent3D { + uint32_t width; + uint32_t height; + uint32_t depth; +} VkExtent3D; -typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)( - void* pUserData, - size_t size, - size_t alignment, - VkSystemAllocationScope allocationScope); +typedef struct VkOffset2D { + int32_t x; + int32_t y; +} VkOffset2D; -typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)( +typedef struct VkOffset3D { + int32_t x; + int32_t y; + int32_t z; +} VkOffset3D; + +typedef struct VkRect2D { + VkOffset2D offset; + VkExtent2D extent; +} VkRect2D; + +typedef struct VkBaseInStructure { + VkStructureType sType; + const struct VkBaseInStructure* pNext; +} VkBaseInStructure; + +typedef struct VkBaseOutStructure { + VkStructureType sType; + struct VkBaseOutStructure* pNext; +} VkBaseOutStructure; + +typedef struct VkBufferMemoryBarrier { + VkStructureType sType; + const void* pNext; + VkAccessFlags srcAccessMask; + VkAccessFlags dstAccessMask; + uint32_t srcQueueFamilyIndex; + uint32_t dstQueueFamilyIndex; + VkBuffer buffer; + VkDeviceSize offset; + VkDeviceSize size; +} VkBufferMemoryBarrier; + +typedef struct VkDispatchIndirectCommand { + uint32_t x; + uint32_t y; + uint32_t z; +} VkDispatchIndirectCommand; + +typedef struct VkDrawIndexedIndirectCommand { + uint32_t indexCount; + uint32_t instanceCount; + uint32_t firstIndex; + int32_t vertexOffset; + uint32_t firstInstance; +} VkDrawIndexedIndirectCommand; + +typedef struct VkDrawIndirectCommand { + uint32_t vertexCount; + uint32_t instanceCount; + uint32_t firstVertex; + uint32_t firstInstance; +} VkDrawIndirectCommand; + +typedef struct VkImageSubresourceRange { + VkImageAspectFlags aspectMask; + uint32_t baseMipLevel; + uint32_t levelCount; + uint32_t baseArrayLayer; + uint32_t layerCount; +} VkImageSubresourceRange; + +typedef struct VkImageMemoryBarrier { + VkStructureType sType; + const void* pNext; + VkAccessFlags srcAccessMask; + VkAccessFlags dstAccessMask; + VkImageLayout oldLayout; + VkImageLayout newLayout; + uint32_t srcQueueFamilyIndex; + uint32_t dstQueueFamilyIndex; + VkImage image; + VkImageSubresourceRange subresourceRange; +} VkImageMemoryBarrier; + +typedef struct VkMemoryBarrier { + VkStructureType sType; + const void* pNext; + VkAccessFlags srcAccessMask; + VkAccessFlags dstAccessMask; +} VkMemoryBarrier; + +typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)( void* pUserData, - void* pOriginal, size_t size, size_t alignment, VkSystemAllocationScope allocationScope); @@ -2019,6 +2420,14 @@ typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)( VkInternalAllocationType allocationType, VkSystemAllocationScope allocationScope); +typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)( + void* pUserData, + void* pOriginal, + size_t size, + size_t alignment, + VkSystemAllocationScope allocationScope); + +typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void); typedef struct VkAllocationCallbacks { void* pUserData; PFN_vkAllocationFunction pfnAllocation; @@ -2028,6 +2437,51 @@ typedef struct VkAllocationCallbacks { PFN_vkInternalFreeNotification pfnInternalFree; } VkAllocationCallbacks; +typedef struct VkApplicationInfo { + VkStructureType sType; + const void* pNext; + const char* pApplicationName; + uint32_t applicationVersion; + const char* pEngineName; + uint32_t engineVersion; + uint32_t apiVersion; +} VkApplicationInfo; + +typedef struct VkFormatProperties { + VkFormatFeatureFlags linearTilingFeatures; + VkFormatFeatureFlags optimalTilingFeatures; + VkFormatFeatureFlags bufferFeatures; +} VkFormatProperties; + +typedef struct VkImageFormatProperties { + VkExtent3D maxExtent; + uint32_t maxMipLevels; + uint32_t maxArrayLayers; + VkSampleCountFlags sampleCounts; + VkDeviceSize maxResourceSize; +} VkImageFormatProperties; + +typedef struct VkInstanceCreateInfo { + VkStructureType sType; + const void* pNext; + VkInstanceCreateFlags flags; + const VkApplicationInfo* pApplicationInfo; + uint32_t enabledLayerCount; + const char* const* ppEnabledLayerNames; + uint32_t enabledExtensionCount; + const char* const* ppEnabledExtensionNames; +} VkInstanceCreateInfo; + +typedef struct VkMemoryHeap { + VkDeviceSize size; + VkMemoryHeapFlags flags; +} VkMemoryHeap; + +typedef struct VkMemoryType { + VkMemoryPropertyFlags propertyFlags; + uint32_t heapIndex; +} VkMemoryType; + typedef struct VkPhysicalDeviceFeatures { VkBool32 robustBufferAccess; VkBool32 fullDrawIndexUint32; @@ -2086,26 +2540,6 @@ typedef struct VkPhysicalDeviceFeatures { VkBool32 inheritedQueries; } VkPhysicalDeviceFeatures; -typedef struct VkFormatProperties { - VkFormatFeatureFlags linearTilingFeatures; - VkFormatFeatureFlags optimalTilingFeatures; - VkFormatFeatureFlags bufferFeatures; -} VkFormatProperties; - -typedef struct VkExtent3D { - uint32_t width; - uint32_t height; - uint32_t depth; -} VkExtent3D; - -typedef struct VkImageFormatProperties { - VkExtent3D maxExtent; - uint32_t maxMipLevels; - uint32_t maxArrayLayers; - VkSampleCountFlags sampleCounts; - VkDeviceSize maxResourceSize; -} VkImageFormatProperties; - typedef struct VkPhysicalDeviceLimits { uint32_t maxImageDimension1D; uint32_t maxImageDimension2D; @@ -2215,6 +2649,13 @@ typedef struct VkPhysicalDeviceLimits { VkDeviceSize nonCoherentAtomSize; } VkPhysicalDeviceLimits; +typedef struct VkPhysicalDeviceMemoryProperties { + uint32_t memoryTypeCount; + VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES]; + uint32_t memoryHeapCount; + VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS]; +} VkPhysicalDeviceMemoryProperties; + typedef struct VkPhysicalDeviceSparseProperties { VkBool32 residencyStandard2DBlockShape; VkBool32 residencyStandard2DMultisampleBlockShape; @@ -2242,24 +2683,6 @@ typedef struct VkQueueFamilyProperties { VkExtent3D minImageTransferGranularity; } VkQueueFamilyProperties; -typedef struct VkMemoryType { - VkMemoryPropertyFlags propertyFlags; - uint32_t heapIndex; -} VkMemoryType; - -typedef struct VkMemoryHeap { - VkDeviceSize size; - VkMemoryHeapFlags flags; -} VkMemoryHeap; - -typedef struct VkPhysicalDeviceMemoryProperties { - uint32_t memoryTypeCount; - VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES]; - uint32_t memoryHeapCount; - VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS]; -} VkPhysicalDeviceMemoryProperties; - -typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void); typedef struct VkDeviceQueueCreateInfo { VkStructureType sType; const void* pNext; @@ -2306,13 +2729,6 @@ typedef struct VkSubmitInfo { const VkSemaphore* pSignalSemaphores; } VkSubmitInfo; -typedef struct VkMemoryAllocateInfo { - VkStructureType sType; - const void* pNext; - VkDeviceSize allocationSize; - uint32_t memoryTypeIndex; -} VkMemoryAllocateInfo; - typedef struct VkMappedMemoryRange { VkStructureType sType; const void* pNext; @@ -2321,26 +2737,19 @@ typedef struct VkMappedMemoryRange { VkDeviceSize size; } VkMappedMemoryRange; +typedef struct VkMemoryAllocateInfo { + VkStructureType sType; + const void* pNext; + VkDeviceSize allocationSize; + uint32_t memoryTypeIndex; +} VkMemoryAllocateInfo; + typedef struct VkMemoryRequirements { VkDeviceSize size; VkDeviceSize alignment; uint32_t memoryTypeBits; } VkMemoryRequirements; -typedef struct VkSparseImageFormatProperties { - VkImageAspectFlags aspectMask; - VkExtent3D imageGranularity; - VkSparseImageFormatFlags flags; -} VkSparseImageFormatProperties; - -typedef struct VkSparseImageMemoryRequirements { - VkSparseImageFormatProperties formatProperties; - uint32_t imageMipTailFirstLod; - VkDeviceSize imageMipTailSize; - VkDeviceSize imageMipTailOffset; - VkDeviceSize imageMipTailStride; -} VkSparseImageMemoryRequirements; - typedef struct VkSparseMemoryBind { VkDeviceSize resourceOffset; VkDeviceSize size; @@ -2367,12 +2776,6 @@ typedef struct VkImageSubresource { uint32_t arrayLayer; } VkImageSubresource; -typedef struct VkOffset3D { - int32_t x; - int32_t y; - int32_t z; -} VkOffset3D; - typedef struct VkSparseImageMemoryBind { VkImageSubresource subresource; VkOffset3D offset; @@ -2403,6 +2806,20 @@ typedef struct VkBindSparseInfo { const VkSemaphore* pSignalSemaphores; } VkBindSparseInfo; +typedef struct VkSparseImageFormatProperties { + VkImageAspectFlags aspectMask; + VkExtent3D imageGranularity; + VkSparseImageFormatFlags flags; +} VkSparseImageFormatProperties; + +typedef struct VkSparseImageMemoryRequirements { + VkSparseImageFormatProperties formatProperties; + uint32_t imageMipTailFirstLod; + VkDeviceSize imageMipTailSize; + VkDeviceSize imageMipTailOffset; + VkDeviceSize imageMipTailStride; +} VkSparseImageMemoryRequirements; + typedef struct VkFenceCreateInfo { VkStructureType sType; const void* pNext; @@ -2484,14 +2901,6 @@ typedef struct VkComponentMapping { VkComponentSwizzle a; } VkComponentMapping; -typedef struct VkImageSubresourceRange { - VkImageAspectFlags aspectMask; - uint32_t baseMipLevel; - uint32_t levelCount; - uint32_t baseArrayLayer; - uint32_t layerCount; -} VkImageSubresourceRange; - typedef struct VkImageViewCreateInfo { VkStructureType sType; const void* pNext; @@ -2542,6 +2951,16 @@ typedef struct VkPipelineShaderStageCreateInfo { const VkSpecializationInfo* pSpecializationInfo; } VkPipelineShaderStageCreateInfo; +typedef struct VkComputePipelineCreateInfo { + VkStructureType sType; + const void* pNext; + VkPipelineCreateFlags flags; + VkPipelineShaderStageCreateInfo stage; + VkPipelineLayout layout; + VkPipeline basePipelineHandle; + int32_t basePipelineIndex; +} VkComputePipelineCreateInfo; + typedef struct VkVertexInputBindingDescription { uint32_t binding; uint32_t stride; @@ -2589,21 +3008,6 @@ typedef struct VkViewport { float maxDepth; } VkViewport; -typedef struct VkOffset2D { - int32_t x; - int32_t y; -} VkOffset2D; - -typedef struct VkExtent2D { - uint32_t width; - uint32_t height; -} VkExtent2D; - -typedef struct VkRect2D { - VkOffset2D offset; - VkExtent2D extent; -} VkRect2D; - typedef struct VkPipelineViewportStateCreateInfo { VkStructureType sType; const void* pNext; @@ -2719,16 +3123,6 @@ typedef struct VkGraphicsPipelineCreateInfo { int32_t basePipelineIndex; } VkGraphicsPipelineCreateInfo; -typedef struct VkComputePipelineCreateInfo { - VkStructureType sType; - const void* pNext; - VkPipelineCreateFlags flags; - VkPipelineShaderStageCreateInfo stage; - VkPipelineLayout layout; - VkPipeline basePipelineHandle; - int32_t basePipelineIndex; -} VkComputePipelineCreateInfo; - typedef struct VkPushConstantRange { VkShaderStageFlags stageFlags; uint32_t offset; @@ -2766,21 +3160,29 @@ typedef struct VkSamplerCreateInfo { VkBool32 unnormalizedCoordinates; } VkSamplerCreateInfo; -typedef struct VkDescriptorSetLayoutBinding { - uint32_t binding; - VkDescriptorType descriptorType; - uint32_t descriptorCount; - VkShaderStageFlags stageFlags; - const VkSampler* pImmutableSamplers; -} VkDescriptorSetLayoutBinding; +typedef struct VkCopyDescriptorSet { + VkStructureType sType; + const void* pNext; + VkDescriptorSet srcSet; + uint32_t srcBinding; + uint32_t srcArrayElement; + VkDescriptorSet dstSet; + uint32_t dstBinding; + uint32_t dstArrayElement; + uint32_t descriptorCount; +} VkCopyDescriptorSet; -typedef struct VkDescriptorSetLayoutCreateInfo { - VkStructureType sType; - const void* pNext; - VkDescriptorSetLayoutCreateFlags flags; - uint32_t bindingCount; - const VkDescriptorSetLayoutBinding* pBindings; -} VkDescriptorSetLayoutCreateInfo; +typedef struct VkDescriptorBufferInfo { + VkBuffer buffer; + VkDeviceSize offset; + VkDeviceSize range; +} VkDescriptorBufferInfo; + +typedef struct VkDescriptorImageInfo { + VkSampler sampler; + VkImageView imageView; + VkImageLayout imageLayout; +} VkDescriptorImageInfo; typedef struct VkDescriptorPoolSize { VkDescriptorType type; @@ -2804,17 +3206,21 @@ typedef struct VkDescriptorSetAllocateInfo { const VkDescriptorSetLayout* pSetLayouts; } VkDescriptorSetAllocateInfo; -typedef struct VkDescriptorImageInfo { - VkSampler sampler; - VkImageView imageView; - VkImageLayout imageLayout; -} VkDescriptorImageInfo; +typedef struct VkDescriptorSetLayoutBinding { + uint32_t binding; + VkDescriptorType descriptorType; + uint32_t descriptorCount; + VkShaderStageFlags stageFlags; + const VkSampler* pImmutableSamplers; +} VkDescriptorSetLayoutBinding; -typedef struct VkDescriptorBufferInfo { - VkBuffer buffer; - VkDeviceSize offset; - VkDeviceSize range; -} VkDescriptorBufferInfo; +typedef struct VkDescriptorSetLayoutCreateInfo { + VkStructureType sType; + const void* pNext; + VkDescriptorSetLayoutCreateFlags flags; + uint32_t bindingCount; + const VkDescriptorSetLayoutBinding* pBindings; +} VkDescriptorSetLayoutCreateInfo; typedef struct VkWriteDescriptorSet { VkStructureType sType; @@ -2829,30 +3235,6 @@ typedef struct VkWriteDescriptorSet { const VkBufferView* pTexelBufferView; } VkWriteDescriptorSet; -typedef struct VkCopyDescriptorSet { - VkStructureType sType; - const void* pNext; - VkDescriptorSet srcSet; - uint32_t srcBinding; - uint32_t srcArrayElement; - VkDescriptorSet dstSet; - uint32_t dstBinding; - uint32_t dstArrayElement; - uint32_t descriptorCount; -} VkCopyDescriptorSet; - -typedef struct VkFramebufferCreateInfo { - VkStructureType sType; - const void* pNext; - VkFramebufferCreateFlags flags; - VkRenderPass renderPass; - uint32_t attachmentCount; - const VkImageView* pAttachments; - uint32_t width; - uint32_t height; - uint32_t layers; -} VkFramebufferCreateInfo; - typedef struct VkAttachmentDescription { VkAttachmentDescriptionFlags flags; VkFormat format; @@ -2870,6 +3252,18 @@ typedef struct VkAttachmentReference { VkImageLayout layout; } VkAttachmentReference; +typedef struct VkFramebufferCreateInfo { + VkStructureType sType; + const void* pNext; + VkFramebufferCreateFlags flags; + VkRenderPass renderPass; + uint32_t attachmentCount; + const VkImageView* pAttachments; + uint32_t width; + uint32_t height; + uint32_t layers; +} VkFramebufferCreateInfo; + typedef struct VkSubpassDescription { VkSubpassDescriptionFlags flags; VkPipelineBindPoint pipelineBindPoint; @@ -2951,21 +3345,6 @@ typedef struct VkImageSubresourceLayers { uint32_t layerCount; } VkImageSubresourceLayers; -typedef struct VkImageCopy { - VkImageSubresourceLayers srcSubresource; - VkOffset3D srcOffset; - VkImageSubresourceLayers dstSubresource; - VkOffset3D dstOffset; - VkExtent3D extent; -} VkImageCopy; - -typedef struct VkImageBlit { - VkImageSubresourceLayers srcSubresource; - VkOffset3D srcOffsets[2]; - VkImageSubresourceLayers dstSubresource; - VkOffset3D dstOffsets[2]; -} VkImageBlit; - typedef struct VkBufferImageCopy { VkDeviceSize bufferOffset; uint32_t bufferRowLength; @@ -3003,6 +3382,21 @@ typedef struct VkClearRect { uint32_t layerCount; } VkClearRect; +typedef struct VkImageBlit { + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffsets[2]; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffsets[2]; +} VkImageBlit; + +typedef struct VkImageCopy { + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffset; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffset; + VkExtent3D extent; +} VkImageCopy; + typedef struct VkImageResolve { VkImageSubresourceLayers srcSubresource; VkOffset3D srcOffset; @@ -3011,38 +3405,6 @@ typedef struct VkImageResolve { VkExtent3D extent; } VkImageResolve; -typedef struct VkMemoryBarrier { - VkStructureType sType; - const void* pNext; - VkAccessFlags srcAccessMask; - VkAccessFlags dstAccessMask; -} VkMemoryBarrier; - -typedef struct VkBufferMemoryBarrier { - VkStructureType sType; - const void* pNext; - VkAccessFlags srcAccessMask; - VkAccessFlags dstAccessMask; - uint32_t srcQueueFamilyIndex; - uint32_t dstQueueFamilyIndex; - VkBuffer buffer; - VkDeviceSize offset; - VkDeviceSize size; -} VkBufferMemoryBarrier; - -typedef struct VkImageMemoryBarrier { - VkStructureType sType; - const void* pNext; - VkAccessFlags srcAccessMask; - VkAccessFlags dstAccessMask; - VkImageLayout oldLayout; - VkImageLayout newLayout; - uint32_t srcQueueFamilyIndex; - uint32_t dstQueueFamilyIndex; - VkImage image; - VkImageSubresourceRange subresourceRange; -} VkImageMemoryBarrier; - typedef struct VkRenderPassBeginInfo { VkStructureType sType; const void* pNext; @@ -3053,37 +3415,6 @@ typedef struct VkRenderPassBeginInfo { const VkClearValue* pClearValues; } VkRenderPassBeginInfo; -typedef struct VkDispatchIndirectCommand { - uint32_t x; - uint32_t y; - uint32_t z; -} VkDispatchIndirectCommand; - -typedef struct VkDrawIndexedIndirectCommand { - uint32_t indexCount; - uint32_t instanceCount; - uint32_t firstIndex; - int32_t vertexOffset; - uint32_t firstInstance; -} VkDrawIndexedIndirectCommand; - -typedef struct VkDrawIndirectCommand { - uint32_t vertexCount; - uint32_t instanceCount; - uint32_t firstVertex; - uint32_t firstInstance; -} VkDrawIndirectCommand; - -typedef struct VkBaseOutStructure { - VkStructureType sType; - struct VkBaseOutStructure* pNext; -} VkBaseOutStructure; - -typedef struct VkBaseInStructure { - VkStructureType sType; - const struct VkBaseInStructure* pNext; -} VkBaseInStructure; - typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance); typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator); typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices); @@ -4024,22 +4355,19 @@ VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands( #define VK_VERSION_1_1 1 // Vulkan 1.1 version number -#define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0)// Patch version should always be set to 0 +#define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate) -#define VK_MAX_DEVICE_GROUP_SIZE 32 -#define VK_LUID_SIZE 8 -#define VK_QUEUE_FAMILY_EXTERNAL (~0U-1) +#define VK_MAX_DEVICE_GROUP_SIZE 32U +#define VK_LUID_SIZE 8U +#define VK_QUEUE_FAMILY_EXTERNAL (~1U) typedef enum VkPointClippingBehavior { VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0, VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1, VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES, VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY, - VK_POINT_CLIPPING_BEHAVIOR_BEGIN_RANGE = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES, - VK_POINT_CLIPPING_BEHAVIOR_END_RANGE = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY, - VK_POINT_CLIPPING_BEHAVIOR_RANGE_SIZE = (VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY - VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES + 1), VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF } VkPointClippingBehavior; @@ -4048,9 +4376,6 @@ typedef enum VkTessellationDomainOrigin { VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1, VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT, VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT, - VK_TESSELLATION_DOMAIN_ORIGIN_BEGIN_RANGE = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT, - VK_TESSELLATION_DOMAIN_ORIGIN_END_RANGE = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT, - VK_TESSELLATION_DOMAIN_ORIGIN_RANGE_SIZE = (VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT - VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT + 1), VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF } VkTessellationDomainOrigin; @@ -4065,9 +4390,6 @@ typedef enum VkSamplerYcbcrModelConversion { VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709, VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601, VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020, - VK_SAMPLER_YCBCR_MODEL_CONVERSION_BEGIN_RANGE = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY, - VK_SAMPLER_YCBCR_MODEL_CONVERSION_END_RANGE = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020, - VK_SAMPLER_YCBCR_MODEL_CONVERSION_RANGE_SIZE = (VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 - VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY + 1), VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF } VkSamplerYcbcrModelConversion; @@ -4076,9 +4398,6 @@ typedef enum VkSamplerYcbcrRange { VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1, VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL, VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW, - VK_SAMPLER_YCBCR_RANGE_BEGIN_RANGE = VK_SAMPLER_YCBCR_RANGE_ITU_FULL, - VK_SAMPLER_YCBCR_RANGE_END_RANGE = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW, - VK_SAMPLER_YCBCR_RANGE_RANGE_SIZE = (VK_SAMPLER_YCBCR_RANGE_ITU_NARROW - VK_SAMPLER_YCBCR_RANGE_ITU_FULL + 1), VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF } VkSamplerYcbcrRange; @@ -4087,9 +4406,6 @@ typedef enum VkChromaLocation { VK_CHROMA_LOCATION_MIDPOINT = 1, VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN, VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT, - VK_CHROMA_LOCATION_BEGIN_RANGE = VK_CHROMA_LOCATION_COSITED_EVEN, - VK_CHROMA_LOCATION_END_RANGE = VK_CHROMA_LOCATION_MIDPOINT, - VK_CHROMA_LOCATION_RANGE_SIZE = (VK_CHROMA_LOCATION_MIDPOINT - VK_CHROMA_LOCATION_COSITED_EVEN + 1), VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF } VkChromaLocation; @@ -4097,9 +4413,6 @@ typedef enum VkDescriptorUpdateTemplateType { VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0, VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1, VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_END_RANGE = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET + 1), VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF } VkDescriptorUpdateTemplateType; @@ -4155,6 +4468,7 @@ typedef enum VkExternalMemoryHandleTypeFlagBits { VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400, VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080, VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, @@ -4219,6 +4533,8 @@ typedef enum VkExternalSemaphoreHandleTypeFlagBits { VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010, + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0x00000080, + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, @@ -4378,8 +4694,6 @@ typedef struct VkMemoryRequirements2 { VkMemoryRequirements memoryRequirements; } VkMemoryRequirements2; -typedef VkMemoryRequirements2 VkMemoryRequirements2KHR; - typedef struct VkSparseImageMemoryRequirements2 { VkStructureType sType; void* pNext; @@ -4905,11 +5219,10 @@ VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport( #define VK_VERSION_1_2 1 // Vulkan 1.2 version number -#define VK_API_VERSION_1_2 VK_MAKE_VERSION(1, 2, 0)// Patch version should always be set to 0 +#define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0 -typedef uint64_t VkDeviceAddress; -#define VK_MAX_DRIVER_NAME_SIZE 256 -#define VK_MAX_DRIVER_INFO_SIZE 256 +#define VK_MAX_DRIVER_NAME_SIZE 256U +#define VK_MAX_DRIVER_INFO_SIZE 256U typedef enum VkDriverId { VK_DRIVER_ID_AMD_PROPRIETARY = 1, @@ -4924,6 +5237,9 @@ typedef enum VkDriverId { VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10, VK_DRIVER_ID_GGP_PROPRIETARY = 11, VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12, + VK_DRIVER_ID_MESA_LLVMPIPE = 13, + VK_DRIVER_ID_MOLTENVK = 14, + VK_DRIVER_ID_COREAVI_PROPRIETARY = 15, VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY, VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE, VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV, @@ -4936,9 +5252,6 @@ typedef enum VkDriverId { VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER, VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY, VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY, - VK_DRIVER_ID_BEGIN_RANGE = VK_DRIVER_ID_AMD_PROPRIETARY, - VK_DRIVER_ID_END_RANGE = VK_DRIVER_ID_BROADCOM_PROPRIETARY, - VK_DRIVER_ID_RANGE_SIZE = (VK_DRIVER_ID_BROADCOM_PROPRIETARY - VK_DRIVER_ID_AMD_PROPRIETARY + 1), VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF } VkDriverId; @@ -4949,9 +5262,6 @@ typedef enum VkShaderFloatControlsIndependence { VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY, VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL, VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE, - VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_BEGIN_RANGE = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY, - VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_END_RANGE = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE, - VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_RANGE_SIZE = (VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE - VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY + 1), VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF } VkShaderFloatControlsIndependence; @@ -4962,9 +5272,6 @@ typedef enum VkSamplerReductionMode { VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN, VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX, - VK_SAMPLER_REDUCTION_MODE_BEGIN_RANGE = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, - VK_SAMPLER_REDUCTION_MODE_END_RANGE = VK_SAMPLER_REDUCTION_MODE_MAX, - VK_SAMPLER_REDUCTION_MODE_RANGE_SIZE = (VK_SAMPLER_REDUCTION_MODE_MAX - VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE + 1), VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF } VkSamplerReductionMode; @@ -4973,9 +5280,6 @@ typedef enum VkSemaphoreType { VK_SEMAPHORE_TYPE_TIMELINE = 1, VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY, VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE, - VK_SEMAPHORE_TYPE_BEGIN_RANGE = VK_SEMAPHORE_TYPE_BINARY, - VK_SEMAPHORE_TYPE_END_RANGE = VK_SEMAPHORE_TYPE_TIMELINE, - VK_SEMAPHORE_TYPE_RANGE_SIZE = (VK_SEMAPHORE_TYPE_TIMELINE - VK_SEMAPHORE_TYPE_BINARY + 1), VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF } VkSemaphoreType; @@ -5662,6 +5966,16 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) #define VK_KHR_SURFACE_SPEC_VERSION 25 #define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface" +typedef enum VkPresentModeKHR { + VK_PRESENT_MODE_IMMEDIATE_KHR = 0, + VK_PRESENT_MODE_MAILBOX_KHR = 1, + VK_PRESENT_MODE_FIFO_KHR = 2, + VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3, + VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000, + VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001, + VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkPresentModeKHR; + typedef enum VkColorSpaceKHR { VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0, VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001, @@ -5681,25 +5995,9 @@ typedef enum VkColorSpaceKHR { VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000, VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT, - VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, - VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, - VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1), VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF } VkColorSpaceKHR; -typedef enum VkPresentModeKHR { - VK_PRESENT_MODE_IMMEDIATE_KHR = 0, - VK_PRESENT_MODE_MAILBOX_KHR = 1, - VK_PRESENT_MODE_FIFO_KHR = 2, - VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3, - VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000, - VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001, - VK_PRESENT_MODE_BEGIN_RANGE_KHR = VK_PRESENT_MODE_IMMEDIATE_KHR, - VK_PRESENT_MODE_END_RANGE_KHR = VK_PRESENT_MODE_FIFO_RELAXED_KHR, - VK_PRESENT_MODE_RANGE_SIZE_KHR = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1), - VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF -} VkPresentModeKHR; - typedef enum VkSurfaceTransformFlagBitsKHR { VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001, VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002, @@ -5712,7 +6010,6 @@ typedef enum VkSurfaceTransformFlagBitsKHR { VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100, VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF } VkSurfaceTransformFlagBitsKHR; -typedef VkFlags VkSurfaceTransformFlagsKHR; typedef enum VkCompositeAlphaFlagBitsKHR { VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, @@ -5722,6 +6019,7 @@ typedef enum VkCompositeAlphaFlagBitsKHR { VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF } VkCompositeAlphaFlagBitsKHR; typedef VkFlags VkCompositeAlphaFlagsKHR; +typedef VkFlags VkSurfaceTransformFlagsKHR; typedef struct VkSurfaceCapabilitiesKHR { uint32_t minImageCount; uint32_t maxImageCount; @@ -5941,6 +6239,7 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR) #define VK_KHR_DISPLAY_SPEC_VERSION 23 #define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display" +typedef VkFlags VkDisplayModeCreateFlagsKHR; typedef enum VkDisplayPlaneAlphaFlagBitsKHR { VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, @@ -5950,28 +6249,12 @@ typedef enum VkDisplayPlaneAlphaFlagBitsKHR { VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF } VkDisplayPlaneAlphaFlagBitsKHR; typedef VkFlags VkDisplayPlaneAlphaFlagsKHR; -typedef VkFlags VkDisplayModeCreateFlagsKHR; typedef VkFlags VkDisplaySurfaceCreateFlagsKHR; -typedef struct VkDisplayPropertiesKHR { - VkDisplayKHR display; - const char* displayName; - VkExtent2D physicalDimensions; - VkExtent2D physicalResolution; - VkSurfaceTransformFlagsKHR supportedTransforms; - VkBool32 planeReorderPossible; - VkBool32 persistentContent; -} VkDisplayPropertiesKHR; - typedef struct VkDisplayModeParametersKHR { VkExtent2D visibleRegion; uint32_t refreshRate; } VkDisplayModeParametersKHR; -typedef struct VkDisplayModePropertiesKHR { - VkDisplayModeKHR displayMode; - VkDisplayModeParametersKHR parameters; -} VkDisplayModePropertiesKHR; - typedef struct VkDisplayModeCreateInfoKHR { VkStructureType sType; const void* pNext; @@ -5979,6 +6262,11 @@ typedef struct VkDisplayModeCreateInfoKHR { VkDisplayModeParametersKHR parameters; } VkDisplayModeCreateInfoKHR; +typedef struct VkDisplayModePropertiesKHR { + VkDisplayModeKHR displayMode; + VkDisplayModeParametersKHR parameters; +} VkDisplayModePropertiesKHR; + typedef struct VkDisplayPlaneCapabilitiesKHR { VkDisplayPlaneAlphaFlagsKHR supportedAlpha; VkOffset2D minSrcPosition; @@ -5996,6 +6284,16 @@ typedef struct VkDisplayPlanePropertiesKHR { uint32_t currentStackIndex; } VkDisplayPlanePropertiesKHR; +typedef struct VkDisplayPropertiesKHR { + VkDisplayKHR display; + const char* displayName; + VkExtent2D physicalDimensions; + VkExtent2D physicalResolution; + VkSurfaceTransformFlagsKHR supportedTransforms; + VkBool32 planeReorderPossible; + VkBool32 persistentContent; +} VkDisplayPropertiesKHR; + typedef struct VkDisplaySurfaceCreateInfoKHR { VkStructureType sType; const void* pNext; @@ -6458,7 +6756,7 @@ typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeature #define VK_KHR_incremental_present 1 -#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1 +#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2 #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present" typedef struct VkRectLayerKHR { VkOffset2D offset; @@ -6679,9 +6977,6 @@ typedef enum VkPerformanceCounterUnitKHR { VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8, VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9, VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10, - VK_PERFORMANCE_COUNTER_UNIT_BEGIN_RANGE_KHR = VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR, - VK_PERFORMANCE_COUNTER_UNIT_END_RANGE_KHR = VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR, - VK_PERFORMANCE_COUNTER_UNIT_RANGE_SIZE_KHR = (VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR - VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR + 1), VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF } VkPerformanceCounterUnitKHR; @@ -6692,9 +6987,6 @@ typedef enum VkPerformanceCounterScopeKHR { VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR, - VK_PERFORMANCE_COUNTER_SCOPE_BEGIN_RANGE_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, - VK_PERFORMANCE_COUNTER_SCOPE_END_RANGE_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR, - VK_PERFORMANCE_COUNTER_SCOPE_RANGE_SIZE_KHR = (VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR + 1), VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF } VkPerformanceCounterScopeKHR; @@ -6705,15 +6997,14 @@ typedef enum VkPerformanceCounterStorageKHR { VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3, VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4, VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5, - VK_PERFORMANCE_COUNTER_STORAGE_BEGIN_RANGE_KHR = VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR, - VK_PERFORMANCE_COUNTER_STORAGE_END_RANGE_KHR = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR, - VK_PERFORMANCE_COUNTER_STORAGE_RANGE_SIZE_KHR = (VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR - VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR + 1), VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF } VkPerformanceCounterStorageKHR; typedef enum VkPerformanceCounterDescriptionFlagBitsKHR { - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 0x00000001, - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 0x00000002, + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0x00000001, + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0x00000002, + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR, + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR, VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF } VkPerformanceCounterDescriptionFlagBitsKHR; typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR; @@ -6967,6 +7258,8 @@ typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR; typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR; +typedef VkMemoryRequirements2 VkMemoryRequirements2KHR; + typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR; typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); @@ -7228,6 +7521,96 @@ typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryMo +#define VK_KHR_shader_terminate_invocation 1 +#define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1 +#define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation" +typedef struct VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 shaderTerminateInvocation; +} VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR; + + + +#define VK_KHR_fragment_shading_rate 1 +#define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 1 +#define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate" + +typedef enum VkFragmentShadingRateCombinerOpKHR { + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0, + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1, + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2, + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3, + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4, + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 0x7FFFFFFF +} VkFragmentShadingRateCombinerOpKHR; +typedef struct VkFragmentShadingRateAttachmentInfoKHR { + VkStructureType sType; + const void* pNext; + const VkAttachmentReference2* pFragmentShadingRateAttachment; + VkExtent2D shadingRateAttachmentTexelSize; +} VkFragmentShadingRateAttachmentInfoKHR; + +typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkExtent2D fragmentSize; + VkFragmentShadingRateCombinerOpKHR combinerOps[2]; +} VkPipelineFragmentShadingRateStateCreateInfoKHR; + +typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 pipelineFragmentShadingRate; + VkBool32 primitiveFragmentShadingRate; + VkBool32 attachmentFragmentShadingRate; +} VkPhysicalDeviceFragmentShadingRateFeaturesKHR; + +typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR { + VkStructureType sType; + void* pNext; + VkExtent2D minFragmentShadingRateAttachmentTexelSize; + VkExtent2D maxFragmentShadingRateAttachmentTexelSize; + uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio; + VkBool32 primitiveFragmentShadingRateWithMultipleViewports; + VkBool32 layeredShadingRateAttachments; + VkBool32 fragmentShadingRateNonTrivialCombinerOps; + VkExtent2D maxFragmentSize; + uint32_t maxFragmentSizeAspectRatio; + uint32_t maxFragmentShadingRateCoverageSamples; + VkSampleCountFlagBits maxFragmentShadingRateRasterizationSamples; + VkBool32 fragmentShadingRateWithShaderDepthStencilWrites; + VkBool32 fragmentShadingRateWithSampleMask; + VkBool32 fragmentShadingRateWithShaderSampleMask; + VkBool32 fragmentShadingRateWithConservativeRasterization; + VkBool32 fragmentShadingRateWithFragmentShaderInterlock; + VkBool32 fragmentShadingRateWithCustomSampleLocations; + VkBool32 fragmentShadingRateStrictMultiplyCombiner; +} VkPhysicalDeviceFragmentShadingRatePropertiesKHR; + +typedef struct VkPhysicalDeviceFragmentShadingRateKHR { + VkStructureType sType; + void* pNext; + VkSampleCountFlags sampleCounts; + VkExtent2D fragmentSize; +} VkPhysicalDeviceFragmentShadingRateKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates); +typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceFragmentShadingRatesKHR( + VkPhysicalDevice physicalDevice, + uint32_t* pFragmentShadingRateCount, + VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR( + VkCommandBuffer commandBuffer, + const VkExtent2D* pFragmentSize, + const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); +#endif + + #define VK_KHR_spirv_1_4 1 #define VK_KHR_SPIRV_1_4_SPEC_VERSION 1 #define VK_KHR_SPIRV_1_4_EXTENSION_NAME "VK_KHR_spirv_1_4" @@ -7294,6 +7677,41 @@ VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR( #endif +#define VK_KHR_deferred_host_operations 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR) +#define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4 +#define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations" +typedef VkResult (VKAPI_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation); +typedef void (VKAPI_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator); +typedef uint32_t (VKAPI_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation); +typedef VkResult (VKAPI_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation); +typedef VkResult (VKAPI_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR( + VkDevice device, + const VkAllocationCallbacks* pAllocator, + VkDeferredOperationKHR* pDeferredOperation); + +VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR( + VkDevice device, + VkDeferredOperationKHR operation, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR uint32_t VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR( + VkDevice device, + VkDeferredOperationKHR operation); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR( + VkDevice device, + VkDeferredOperationKHR operation); + +VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR( + VkDevice device, + VkDeferredOperationKHR operation); +#endif + + #define VK_KHR_pipeline_executable_properties 1 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties" @@ -7303,9 +7721,6 @@ typedef enum VkPipelineExecutableStatisticFormatKHR { VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1, VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2, VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3, - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BEGIN_RANGE_KHR = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR, - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_END_RANGE_KHR = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR, - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_RANGE_SIZE_KHR = (VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR + 1), VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF } VkPipelineExecutableStatisticFormatKHR; typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR { @@ -7387,9 +7802,465 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR #endif +#define VK_KHR_pipeline_library 1 +#define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1 +#define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library" +typedef struct VkPipelineLibraryCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t libraryCount; + const VkPipeline* pLibraries; +} VkPipelineLibraryCreateInfoKHR; + + + +#define VK_KHR_shader_non_semantic_info 1 +#define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1 +#define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info" + + +#define VK_KHR_synchronization2 1 +typedef uint64_t VkFlags64; +#define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1 +#define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2" +typedef VkFlags64 VkPipelineStageFlags2KHR; + +// Flag bits for VkPipelineStageFlagBits2KHR +typedef VkFlags64 VkPipelineStageFlagBits2KHR; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL; +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL; +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL; +#endif +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL; +static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_FLAG_BITS_2KHR_MAX_ENUM_KHR = 0x7FFFFFFFFFFFFFFFULL; + +typedef VkFlags64 VkAccessFlags2KHR; + +// Flag bits for VkAccessFlagBits2KHR +typedef VkFlags64 VkAccessFlagBits2KHR; +static const VkAccessFlagBits2KHR VK_ACCESS_2_NONE_KHR = 0ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL; +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkAccessFlagBits2KHR VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL; +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkAccessFlagBits2KHR VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL; +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkAccessFlagBits2KHR VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL; +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkAccessFlagBits2KHR VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL; +#endif +static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000; +static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000; +static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000; +static const VkAccessFlagBits2KHR VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL; +static const VkAccessFlagBits2KHR VK_ACCESS_FLAG_BITS_2KHR_MAX_ENUM_KHR = 0x7FFFFFFFFFFFFFFFULL; + + +typedef enum VkSubmitFlagBitsKHR { + VK_SUBMIT_PROTECTED_BIT_KHR = 0x00000001, + VK_SUBMIT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkSubmitFlagBitsKHR; +typedef VkFlags VkSubmitFlagsKHR; +typedef struct VkMemoryBarrier2KHR { + VkStructureType sType; + const void* pNext; + VkPipelineStageFlags2KHR srcStageMask; + VkAccessFlags2KHR srcAccessMask; + VkPipelineStageFlags2KHR dstStageMask; + VkAccessFlags2KHR dstAccessMask; +} VkMemoryBarrier2KHR; + +typedef struct VkBufferMemoryBarrier2KHR { + VkStructureType sType; + const void* pNext; + VkPipelineStageFlags2KHR srcStageMask; + VkAccessFlags2KHR srcAccessMask; + VkPipelineStageFlags2KHR dstStageMask; + VkAccessFlags2KHR dstAccessMask; + uint32_t srcQueueFamilyIndex; + uint32_t dstQueueFamilyIndex; + VkBuffer buffer; + VkDeviceSize offset; + VkDeviceSize size; +} VkBufferMemoryBarrier2KHR; + +typedef struct VkImageMemoryBarrier2KHR { + VkStructureType sType; + const void* pNext; + VkPipelineStageFlags2KHR srcStageMask; + VkAccessFlags2KHR srcAccessMask; + VkPipelineStageFlags2KHR dstStageMask; + VkAccessFlags2KHR dstAccessMask; + VkImageLayout oldLayout; + VkImageLayout newLayout; + uint32_t srcQueueFamilyIndex; + uint32_t dstQueueFamilyIndex; + VkImage image; + VkImageSubresourceRange subresourceRange; +} VkImageMemoryBarrier2KHR; + +typedef struct VkDependencyInfoKHR { + VkStructureType sType; + const void* pNext; + VkDependencyFlags dependencyFlags; + uint32_t memoryBarrierCount; + const VkMemoryBarrier2KHR* pMemoryBarriers; + uint32_t bufferMemoryBarrierCount; + const VkBufferMemoryBarrier2KHR* pBufferMemoryBarriers; + uint32_t imageMemoryBarrierCount; + const VkImageMemoryBarrier2KHR* pImageMemoryBarriers; +} VkDependencyInfoKHR; + +typedef struct VkSemaphoreSubmitInfoKHR { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + uint64_t value; + VkPipelineStageFlags2KHR stageMask; + uint32_t deviceIndex; +} VkSemaphoreSubmitInfoKHR; + +typedef struct VkCommandBufferSubmitInfoKHR { + VkStructureType sType; + const void* pNext; + VkCommandBuffer commandBuffer; + uint32_t deviceMask; +} VkCommandBufferSubmitInfoKHR; + +typedef struct VkSubmitInfo2KHR { + VkStructureType sType; + const void* pNext; + VkSubmitFlagsKHR flags; + uint32_t waitSemaphoreInfoCount; + const VkSemaphoreSubmitInfoKHR* pWaitSemaphoreInfos; + uint32_t commandBufferInfoCount; + const VkCommandBufferSubmitInfoKHR* pCommandBufferInfos; + uint32_t signalSemaphoreInfoCount; + const VkSemaphoreSubmitInfoKHR* pSignalSemaphoreInfos; +} VkSubmitInfo2KHR; + +typedef struct VkPhysicalDeviceSynchronization2FeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 synchronization2; +} VkPhysicalDeviceSynchronization2FeaturesKHR; + +typedef struct VkQueueFamilyCheckpointProperties2NV { + VkStructureType sType; + void* pNext; + VkPipelineStageFlags2KHR checkpointExecutionStageMask; +} VkQueueFamilyCheckpointProperties2NV; + +typedef struct VkCheckpointData2NV { + VkStructureType sType; + void* pNext; + VkPipelineStageFlags2KHR stage; + void* pCheckpointMarker; +} VkCheckpointData2NV; + +typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfoKHR* pDependencyInfo); +typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2KHR stageMask); +typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2KHR)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfoKHR* pDependencyInfos); +typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2KHR)(VkCommandBuffer commandBuffer, const VkDependencyInfoKHR* pDependencyInfo); +typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2KHR)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2KHR stage, VkQueryPool queryPool, uint32_t query); +typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2KHR)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2KHR* pSubmits, VkFence fence); +typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2KHR stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker); +typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointData2NV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2KHR( + VkCommandBuffer commandBuffer, + VkEvent event, + const VkDependencyInfoKHR* pDependencyInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2KHR( + VkCommandBuffer commandBuffer, + VkEvent event, + VkPipelineStageFlags2KHR stageMask); + +VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2KHR( + VkCommandBuffer commandBuffer, + uint32_t eventCount, + const VkEvent* pEvents, + const VkDependencyInfoKHR* pDependencyInfos); + +VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2KHR( + VkCommandBuffer commandBuffer, + const VkDependencyInfoKHR* pDependencyInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2KHR( + VkCommandBuffer commandBuffer, + VkPipelineStageFlags2KHR stage, + VkQueryPool queryPool, + uint32_t query); + +VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2KHR( + VkQueue queue, + uint32_t submitCount, + const VkSubmitInfo2KHR* pSubmits, + VkFence fence); + +VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD( + VkCommandBuffer commandBuffer, + VkPipelineStageFlags2KHR stage, + VkBuffer dstBuffer, + VkDeviceSize dstOffset, + uint32_t marker); + +VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV( + VkQueue queue, + uint32_t* pCheckpointDataCount, + VkCheckpointData2NV* pCheckpointData); +#endif + + +#define VK_KHR_zero_initialize_workgroup_memory 1 +#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1 +#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory" +typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 shaderZeroInitializeWorkgroupMemory; +} VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR; + + + +#define VK_KHR_workgroup_memory_explicit_layout 1 +#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION 1 +#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout" +typedef struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 workgroupMemoryExplicitLayout; + VkBool32 workgroupMemoryExplicitLayoutScalarBlockLayout; + VkBool32 workgroupMemoryExplicitLayout8BitAccess; + VkBool32 workgroupMemoryExplicitLayout16BitAccess; +} VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR; + + + +#define VK_KHR_copy_commands2 1 +#define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1 +#define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2" +typedef struct VkBufferCopy2KHR { + VkStructureType sType; + const void* pNext; + VkDeviceSize srcOffset; + VkDeviceSize dstOffset; + VkDeviceSize size; +} VkBufferCopy2KHR; + +typedef struct VkCopyBufferInfo2KHR { + VkStructureType sType; + const void* pNext; + VkBuffer srcBuffer; + VkBuffer dstBuffer; + uint32_t regionCount; + const VkBufferCopy2KHR* pRegions; +} VkCopyBufferInfo2KHR; + +typedef struct VkImageCopy2KHR { + VkStructureType sType; + const void* pNext; + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffset; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffset; + VkExtent3D extent; +} VkImageCopy2KHR; + +typedef struct VkCopyImageInfo2KHR { + VkStructureType sType; + const void* pNext; + VkImage srcImage; + VkImageLayout srcImageLayout; + VkImage dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkImageCopy2KHR* pRegions; +} VkCopyImageInfo2KHR; + +typedef struct VkBufferImageCopy2KHR { + VkStructureType sType; + const void* pNext; + VkDeviceSize bufferOffset; + uint32_t bufferRowLength; + uint32_t bufferImageHeight; + VkImageSubresourceLayers imageSubresource; + VkOffset3D imageOffset; + VkExtent3D imageExtent; +} VkBufferImageCopy2KHR; + +typedef struct VkCopyBufferToImageInfo2KHR { + VkStructureType sType; + const void* pNext; + VkBuffer srcBuffer; + VkImage dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkBufferImageCopy2KHR* pRegions; +} VkCopyBufferToImageInfo2KHR; + +typedef struct VkCopyImageToBufferInfo2KHR { + VkStructureType sType; + const void* pNext; + VkImage srcImage; + VkImageLayout srcImageLayout; + VkBuffer dstBuffer; + uint32_t regionCount; + const VkBufferImageCopy2KHR* pRegions; +} VkCopyImageToBufferInfo2KHR; + +typedef struct VkImageBlit2KHR { + VkStructureType sType; + const void* pNext; + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffsets[2]; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffsets[2]; +} VkImageBlit2KHR; + +typedef struct VkBlitImageInfo2KHR { + VkStructureType sType; + const void* pNext; + VkImage srcImage; + VkImageLayout srcImageLayout; + VkImage dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkImageBlit2KHR* pRegions; + VkFilter filter; +} VkBlitImageInfo2KHR; + +typedef struct VkImageResolve2KHR { + VkStructureType sType; + const void* pNext; + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffset; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffset; + VkExtent3D extent; +} VkImageResolve2KHR; + +typedef struct VkResolveImageInfo2KHR { + VkStructureType sType; + const void* pNext; + VkImage srcImage; + VkImageLayout srcImageLayout; + VkImage dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkImageResolve2KHR* pRegions; +} VkResolveImageInfo2KHR; + +typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2KHR* pCopyBufferInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2KHR* pCopyImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo); +typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2KHR* pBlitImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2KHR* pResolveImageInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR( + VkCommandBuffer commandBuffer, + const VkCopyBufferInfo2KHR* pCopyBufferInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR( + VkCommandBuffer commandBuffer, + const VkCopyImageInfo2KHR* pCopyImageInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR( + VkCommandBuffer commandBuffer, + const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2KHR( + VkCommandBuffer commandBuffer, + const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2KHR( + VkCommandBuffer commandBuffer, + const VkBlitImageInfo2KHR* pBlitImageInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR( + VkCommandBuffer commandBuffer, + const VkResolveImageInfo2KHR* pResolveImageInfo); +#endif + + #define VK_EXT_debug_report 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT) -#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9 +#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 10 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report" typedef enum VkDebugReportObjectTypeEXT { @@ -7424,19 +8295,15 @@ typedef enum VkDebugReportObjectTypeEXT { VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28, VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29, VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30, - VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31, - VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32, VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33, VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000, + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000, VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000, VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT, - VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, - VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT, - VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1), VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF } VkDebugReportObjectTypeEXT; @@ -7517,9 +8384,6 @@ VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT( typedef enum VkRasterizationOrderAMD { VK_RASTERIZATION_ORDER_STRICT_AMD = 0, VK_RASTERIZATION_ORDER_RELAXED_AMD = 1, - VK_RASTERIZATION_ORDER_BEGIN_RANGE_AMD = VK_RASTERIZATION_ORDER_STRICT_AMD, - VK_RASTERIZATION_ORDER_END_RANGE_AMD = VK_RASTERIZATION_ORDER_RELAXED_AMD, - VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1), VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF } VkRasterizationOrderAMD; typedef struct VkPipelineRasterizationStateRasterizationOrderAMD { @@ -7713,7 +8577,7 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT( #define VK_NVX_image_view_handle 1 -#define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 1 +#define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 2 #define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle" typedef struct VkImageViewHandleInfoNVX { VkStructureType sType; @@ -7723,12 +8587,25 @@ typedef struct VkImageViewHandleInfoNVX { VkSampler sampler; } VkImageViewHandleInfoNVX; +typedef struct VkImageViewAddressPropertiesNVX { + VkStructureType sType; + void* pNext; + VkDeviceAddress deviceAddress; + VkDeviceSize size; +} VkImageViewAddressPropertiesNVX; + typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties); #ifndef VK_NO_PROTOTYPES VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX( VkDevice device, const VkImageViewHandleInfoNVX* pInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX( + VkDevice device, + VkImageView imageView, + VkImageViewAddressPropertiesNVX* pProperties); #endif @@ -7793,9 +8670,6 @@ typedef enum VkShaderInfoTypeAMD { VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0, VK_SHADER_INFO_TYPE_BINARY_AMD = 1, VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2, - VK_SHADER_INFO_TYPE_BEGIN_RANGE_AMD = VK_SHADER_INFO_TYPE_STATISTICS_AMD, - VK_SHADER_INFO_TYPE_END_RANGE_AMD = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD, - VK_SHADER_INFO_TYPE_RANGE_SIZE_AMD = (VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD - VK_SHADER_INFO_TYPE_STATISTICS_AMD + 1), VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF } VkShaderInfoTypeAMD; typedef struct VkShaderResourceUsageAMD { @@ -7916,9 +8790,6 @@ typedef struct VkExportMemoryAllocateInfoNV { typedef enum VkValidationCheckEXT { VK_VALIDATION_CHECK_ALL_EXT = 0, VK_VALIDATION_CHECK_SHADERS_EXT = 1, - VK_VALIDATION_CHECK_BEGIN_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT, - VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_SHADERS_EXT, - VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_SHADERS_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1), VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF } VkValidationCheckEXT; typedef struct VkValidationFlagsEXT { @@ -8011,244 +8882,21 @@ VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT( #endif -#define VK_NVX_device_generated_commands 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX) -#define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3 -#define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands" - -typedef enum VkIndirectCommandsTokenTypeNVX { - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_BEGIN_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_END_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_RANGE_SIZE_NVX = (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX + 1), - VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF -} VkIndirectCommandsTokenTypeNVX; - -typedef enum VkObjectEntryTypeNVX { - VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0, - VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1, - VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2, - VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3, - VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4, - VK_OBJECT_ENTRY_TYPE_BEGIN_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX, - VK_OBJECT_ENTRY_TYPE_END_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX, - VK_OBJECT_ENTRY_TYPE_RANGE_SIZE_NVX = (VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX - VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX + 1), - VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF -} VkObjectEntryTypeNVX; - -typedef enum VkIndirectCommandsLayoutUsageFlagBitsNVX { - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001, - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002, - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004, - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008, - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF -} VkIndirectCommandsLayoutUsageFlagBitsNVX; -typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNVX; - -typedef enum VkObjectEntryUsageFlagBitsNVX { - VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001, - VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002, - VK_OBJECT_ENTRY_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF -} VkObjectEntryUsageFlagBitsNVX; -typedef VkFlags VkObjectEntryUsageFlagsNVX; -typedef struct VkDeviceGeneratedCommandsFeaturesNVX { - VkStructureType sType; - const void* pNext; - VkBool32 computeBindingPointSupport; -} VkDeviceGeneratedCommandsFeaturesNVX; - -typedef struct VkDeviceGeneratedCommandsLimitsNVX { - VkStructureType sType; - const void* pNext; - uint32_t maxIndirectCommandsLayoutTokenCount; - uint32_t maxObjectEntryCounts; - uint32_t minSequenceCountBufferOffsetAlignment; - uint32_t minSequenceIndexBufferOffsetAlignment; - uint32_t minCommandsTokenBufferOffsetAlignment; -} VkDeviceGeneratedCommandsLimitsNVX; - -typedef struct VkIndirectCommandsTokenNVX { - VkIndirectCommandsTokenTypeNVX tokenType; - VkBuffer buffer; - VkDeviceSize offset; -} VkIndirectCommandsTokenNVX; - -typedef struct VkIndirectCommandsLayoutTokenNVX { - VkIndirectCommandsTokenTypeNVX tokenType; - uint32_t bindingUnit; - uint32_t dynamicCount; - uint32_t divisor; -} VkIndirectCommandsLayoutTokenNVX; - -typedef struct VkIndirectCommandsLayoutCreateInfoNVX { - VkStructureType sType; - const void* pNext; - VkPipelineBindPoint pipelineBindPoint; - VkIndirectCommandsLayoutUsageFlagsNVX flags; - uint32_t tokenCount; - const VkIndirectCommandsLayoutTokenNVX* pTokens; -} VkIndirectCommandsLayoutCreateInfoNVX; - -typedef struct VkCmdProcessCommandsInfoNVX { - VkStructureType sType; - const void* pNext; - VkObjectTableNVX objectTable; - VkIndirectCommandsLayoutNVX indirectCommandsLayout; - uint32_t indirectCommandsTokenCount; - const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens; - uint32_t maxSequencesCount; - VkCommandBuffer targetCommandBuffer; - VkBuffer sequencesCountBuffer; - VkDeviceSize sequencesCountOffset; - VkBuffer sequencesIndexBuffer; - VkDeviceSize sequencesIndexOffset; -} VkCmdProcessCommandsInfoNVX; +#define VK_NV_clip_space_w_scaling 1 +#define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1 +#define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling" +typedef struct VkViewportWScalingNV { + float xcoeff; + float ycoeff; +} VkViewportWScalingNV; -typedef struct VkCmdReserveSpaceForCommandsInfoNVX { +typedef struct VkPipelineViewportWScalingStateCreateInfoNV { VkStructureType sType; const void* pNext; - VkObjectTableNVX objectTable; - VkIndirectCommandsLayoutNVX indirectCommandsLayout; - uint32_t maxSequencesCount; -} VkCmdReserveSpaceForCommandsInfoNVX; - -typedef struct VkObjectTableCreateInfoNVX { - VkStructureType sType; - const void* pNext; - uint32_t objectCount; - const VkObjectEntryTypeNVX* pObjectEntryTypes; - const uint32_t* pObjectEntryCounts; - const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags; - uint32_t maxUniformBuffersPerDescriptor; - uint32_t maxStorageBuffersPerDescriptor; - uint32_t maxStorageImagesPerDescriptor; - uint32_t maxSampledImagesPerDescriptor; - uint32_t maxPipelineLayouts; -} VkObjectTableCreateInfoNVX; - -typedef struct VkObjectTableEntryNVX { - VkObjectEntryTypeNVX type; - VkObjectEntryUsageFlagsNVX flags; -} VkObjectTableEntryNVX; - -typedef struct VkObjectTablePipelineEntryNVX { - VkObjectEntryTypeNVX type; - VkObjectEntryUsageFlagsNVX flags; - VkPipeline pipeline; -} VkObjectTablePipelineEntryNVX; - -typedef struct VkObjectTableDescriptorSetEntryNVX { - VkObjectEntryTypeNVX type; - VkObjectEntryUsageFlagsNVX flags; - VkPipelineLayout pipelineLayout; - VkDescriptorSet descriptorSet; -} VkObjectTableDescriptorSetEntryNVX; - -typedef struct VkObjectTableVertexBufferEntryNVX { - VkObjectEntryTypeNVX type; - VkObjectEntryUsageFlagsNVX flags; - VkBuffer buffer; -} VkObjectTableVertexBufferEntryNVX; - -typedef struct VkObjectTableIndexBufferEntryNVX { - VkObjectEntryTypeNVX type; - VkObjectEntryUsageFlagsNVX flags; - VkBuffer buffer; - VkIndexType indexType; -} VkObjectTableIndexBufferEntryNVX; - -typedef struct VkObjectTablePushConstantEntryNVX { - VkObjectEntryTypeNVX type; - VkObjectEntryUsageFlagsNVX flags; - VkPipelineLayout pipelineLayout; - VkShaderStageFlags stageFlags; -} VkObjectTablePushConstantEntryNVX; - -typedef void (VKAPI_PTR *PFN_vkCmdProcessCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo); -typedef void (VKAPI_PTR *PFN_vkCmdReserveSpaceForCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo); -typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNVX)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout); -typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNVX)(VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkCreateObjectTableNVX)(VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable); -typedef void (VKAPI_PTR *PFN_vkDestroyObjectTableNVX)(VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkRegisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const uint32_t* pObjectIndices); -typedef VkResult (VKAPI_PTR *PFN_vkUnregisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX)(VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdProcessCommandsNVX( - VkCommandBuffer commandBuffer, - const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo); - -VKAPI_ATTR void VKAPI_CALL vkCmdReserveSpaceForCommandsNVX( - VkCommandBuffer commandBuffer, - const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNVX( - VkDevice device, - const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout); - -VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNVX( - VkDevice device, - VkIndirectCommandsLayoutNVX indirectCommandsLayout, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateObjectTableNVX( - VkDevice device, - const VkObjectTableCreateInfoNVX* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkObjectTableNVX* pObjectTable); - -VKAPI_ATTR void VKAPI_CALL vkDestroyObjectTableNVX( - VkDevice device, - VkObjectTableNVX objectTable, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkRegisterObjectsNVX( - VkDevice device, - VkObjectTableNVX objectTable, - uint32_t objectCount, - const VkObjectTableEntryNVX* const* ppObjectTableEntries, - const uint32_t* pObjectIndices); - -VKAPI_ATTR VkResult VKAPI_CALL vkUnregisterObjectsNVX( - VkDevice device, - VkObjectTableNVX objectTable, - uint32_t objectCount, - const VkObjectEntryTypeNVX* pObjectEntryTypes, - const uint32_t* pObjectIndices); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( - VkPhysicalDevice physicalDevice, - VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, - VkDeviceGeneratedCommandsLimitsNVX* pLimits); -#endif - - -#define VK_NV_clip_space_w_scaling 1 -#define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1 -#define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling" -typedef struct VkViewportWScalingNV { - float xcoeff; - float ycoeff; -} VkViewportWScalingNV; - -typedef struct VkPipelineViewportWScalingStateCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkBool32 viewportWScalingEnable; - uint32_t viewportCount; - const VkViewportWScalingNV* pViewportWScalings; -} VkPipelineViewportWScalingStateCreateInfoNV; + VkBool32 viewportWScalingEnable; + uint32_t viewportCount; + const VkViewportWScalingNV* pViewportWScalings; +} VkPipelineViewportWScalingStateCreateInfoNV; typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings); @@ -8278,7 +8926,8 @@ VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT( #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter" typedef enum VkSurfaceCounterFlagBitsEXT { - VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001, + VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0x00000001, + VK_SURFACE_COUNTER_VBLANK_EXT = VK_SURFACE_COUNTER_VBLANK_BIT_EXT, VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF } VkSurfaceCounterFlagBitsEXT; typedef VkFlags VkSurfaceCounterFlagsEXT; @@ -8316,25 +8965,16 @@ typedef enum VkDisplayPowerStateEXT { VK_DISPLAY_POWER_STATE_OFF_EXT = 0, VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1, VK_DISPLAY_POWER_STATE_ON_EXT = 2, - VK_DISPLAY_POWER_STATE_BEGIN_RANGE_EXT = VK_DISPLAY_POWER_STATE_OFF_EXT, - VK_DISPLAY_POWER_STATE_END_RANGE_EXT = VK_DISPLAY_POWER_STATE_ON_EXT, - VK_DISPLAY_POWER_STATE_RANGE_SIZE_EXT = (VK_DISPLAY_POWER_STATE_ON_EXT - VK_DISPLAY_POWER_STATE_OFF_EXT + 1), VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF } VkDisplayPowerStateEXT; typedef enum VkDeviceEventTypeEXT { VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0, - VK_DEVICE_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT, - VK_DEVICE_EVENT_TYPE_END_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT, - VK_DEVICE_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT + 1), VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF } VkDeviceEventTypeEXT; typedef enum VkDisplayEventTypeEXT { VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0, - VK_DISPLAY_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT, - VK_DISPLAY_EVENT_TYPE_END_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT, - VK_DISPLAY_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT + 1), VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF } VkDisplayEventTypeEXT; typedef struct VkDisplayPowerInfoEXT { @@ -8476,9 +9116,6 @@ typedef enum VkViewportCoordinateSwizzleNV { VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5, VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6, VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7, - VK_VIEWPORT_COORDINATE_SWIZZLE_BEGIN_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV, - VK_VIEWPORT_COORDINATE_SWIZZLE_END_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV, - VK_VIEWPORT_COORDINATE_SWIZZLE_RANGE_SIZE_NV = (VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV + 1), VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF } VkViewportCoordinateSwizzleNV; typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV; @@ -8506,9 +9143,6 @@ typedef struct VkPipelineViewportSwizzleStateCreateInfoNV { typedef enum VkDiscardRectangleModeEXT { VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0, VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1, - VK_DISCARD_RECTANGLE_MODE_BEGIN_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT, - VK_DISCARD_RECTANGLE_MODE_END_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT, - VK_DISCARD_RECTANGLE_MODE_RANGE_SIZE_EXT = (VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT + 1), VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF } VkDiscardRectangleModeEXT; typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT; @@ -8546,9 +9180,6 @@ typedef enum VkConservativeRasterizationModeEXT { VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0, VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1, VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2, - VK_CONSERVATIVE_RASTERIZATION_MODE_BEGIN_RANGE_EXT = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT, - VK_CONSERVATIVE_RASTERIZATION_MODE_END_RANGE_EXT = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT, - VK_CONSERVATIVE_RASTERIZATION_MODE_RANGE_SIZE_EXT = (VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT + 1), VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF } VkConservativeRasterizationModeEXT; typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT; @@ -8640,15 +9271,14 @@ VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT( #define VK_EXT_queue_family_foreign 1 #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1 #define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign" -#define VK_QUEUE_FAMILY_FOREIGN_EXT (~0U-2) +#define VK_QUEUE_FAMILY_FOREIGN_EXT (~2U) #define VK_EXT_debug_utils 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT) -#define VK_EXT_DEBUG_UTILS_SPEC_VERSION 1 +#define VK_EXT_DEBUG_UTILS_SPEC_VERSION 2 #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils" typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT; -typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT; typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT { VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001, @@ -8657,7 +9287,6 @@ typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT { VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000, VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF } VkDebugUtilsMessageSeverityFlagBitsEXT; -typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT; typedef enum VkDebugUtilsMessageTypeFlagBitsEXT { VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001, @@ -8666,30 +9295,22 @@ typedef enum VkDebugUtilsMessageTypeFlagBitsEXT { VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF } VkDebugUtilsMessageTypeFlagBitsEXT; typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT; -typedef struct VkDebugUtilsObjectNameInfoEXT { +typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT; +typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT; +typedef struct VkDebugUtilsLabelEXT { VkStructureType sType; const void* pNext; - VkObjectType objectType; - uint64_t objectHandle; - const char* pObjectName; -} VkDebugUtilsObjectNameInfoEXT; + const char* pLabelName; + float color[4]; +} VkDebugUtilsLabelEXT; -typedef struct VkDebugUtilsObjectTagInfoEXT { +typedef struct VkDebugUtilsObjectNameInfoEXT { VkStructureType sType; const void* pNext; VkObjectType objectType; uint64_t objectHandle; - uint64_t tagName; - size_t tagSize; - const void* pTag; -} VkDebugUtilsObjectTagInfoEXT; - -typedef struct VkDebugUtilsLabelEXT { - VkStructureType sType; - const void* pNext; - const char* pLabelName; - float color[4]; -} VkDebugUtilsLabelEXT; + const char* pObjectName; +} VkDebugUtilsObjectNameInfoEXT; typedef struct VkDebugUtilsMessengerCallbackDataEXT { VkStructureType sType; @@ -8722,6 +9343,16 @@ typedef struct VkDebugUtilsMessengerCreateInfoEXT { void* pUserData; } VkDebugUtilsMessengerCreateInfoEXT; +typedef struct VkDebugUtilsObjectTagInfoEXT { + VkStructureType sType; + const void* pNext; + VkObjectType objectType; + uint64_t objectHandle; + uint64_t tagName; + size_t tagSize; + const void* pTag; +} VkDebugUtilsObjectTagInfoEXT; + typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo); typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo); typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo); @@ -8932,9 +9563,6 @@ typedef enum VkBlendOverlapEXT { VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0, VK_BLEND_OVERLAP_DISJOINT_EXT = 1, VK_BLEND_OVERLAP_CONJOINT_EXT = 2, - VK_BLEND_OVERLAP_BEGIN_RANGE_EXT = VK_BLEND_OVERLAP_UNCORRELATED_EXT, - VK_BLEND_OVERLAP_END_RANGE_EXT = VK_BLEND_OVERLAP_CONJOINT_EXT, - VK_BLEND_OVERLAP_RANGE_SIZE_EXT = (VK_BLEND_OVERLAP_CONJOINT_EXT - VK_BLEND_OVERLAP_UNCORRELATED_EXT + 1), VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF } VkBlendOverlapEXT; typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT { @@ -8987,9 +9615,6 @@ typedef enum VkCoverageModulationModeNV { VK_COVERAGE_MODULATION_MODE_RGB_NV = 1, VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2, VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3, - VK_COVERAGE_MODULATION_MODE_BEGIN_RANGE_NV = VK_COVERAGE_MODULATION_MODE_NONE_NV, - VK_COVERAGE_MODULATION_MODE_END_RANGE_NV = VK_COVERAGE_MODULATION_MODE_RGBA_NV, - VK_COVERAGE_MODULATION_MODE_RANGE_SIZE_NV = (VK_COVERAGE_MODULATION_MODE_RGBA_NV - VK_COVERAGE_MODULATION_MODE_NONE_NV + 1), VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF } VkCoverageModulationModeNV; typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV; @@ -9096,9 +9721,6 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT) typedef enum VkValidationCacheHeaderVersionEXT { VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1, - VK_VALIDATION_CACHE_HEADER_VERSION_BEGIN_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT, - VK_VALIDATION_CACHE_HEADER_VERSION_END_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT, - VK_VALIDATION_CACHE_HEADER_VERSION_RANGE_SIZE_EXT = (VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT + 1), VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF } VkValidationCacheHeaderVersionEXT; typedef VkFlags VkValidationCacheCreateFlagsEXT; @@ -9188,9 +9810,6 @@ typedef enum VkShadingRatePaletteEntryNV { VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9, VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10, VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11, - VK_SHADING_RATE_PALETTE_ENTRY_BEGIN_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV, - VK_SHADING_RATE_PALETTE_ENTRY_END_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV, - VK_SHADING_RATE_PALETTE_ENTRY_RANGE_SIZE_NV = (VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV + 1), VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF } VkShadingRatePaletteEntryNV; @@ -9199,9 +9818,6 @@ typedef enum VkCoarseSampleOrderTypeNV { VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1, VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2, VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3, - VK_COARSE_SAMPLE_ORDER_TYPE_BEGIN_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV, - VK_COARSE_SAMPLE_ORDER_TYPE_END_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV, - VK_COARSE_SAMPLE_ORDER_TYPE_RANGE_SIZE_NV = (VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV + 1), VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF } VkCoarseSampleOrderTypeNV; typedef struct VkShadingRatePaletteNV { @@ -9281,88 +9897,118 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV( VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV) #define VK_NV_RAY_TRACING_SPEC_VERSION 3 #define VK_NV_RAY_TRACING_EXTENSION_NAME "VK_NV_ray_tracing" -#define VK_SHADER_UNUSED_NV (~0U) - -typedef enum VkAccelerationStructureTypeNV { - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0, - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1, - VK_ACCELERATION_STRUCTURE_TYPE_BEGIN_RANGE_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV, - VK_ACCELERATION_STRUCTURE_TYPE_END_RANGE_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV, - VK_ACCELERATION_STRUCTURE_TYPE_RANGE_SIZE_NV = (VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV + 1), - VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF -} VkAccelerationStructureTypeNV; - -typedef enum VkRayTracingShaderGroupTypeNV { - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0, - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1, - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2, - VK_RAY_TRACING_SHADER_GROUP_TYPE_BEGIN_RANGE_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV, - VK_RAY_TRACING_SHADER_GROUP_TYPE_END_RANGE_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV, - VK_RAY_TRACING_SHADER_GROUP_TYPE_RANGE_SIZE_NV = (VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV + 1), - VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF -} VkRayTracingShaderGroupTypeNV; - -typedef enum VkGeometryTypeNV { - VK_GEOMETRY_TYPE_TRIANGLES_NV = 0, - VK_GEOMETRY_TYPE_AABBS_NV = 1, - VK_GEOMETRY_TYPE_BEGIN_RANGE_NV = VK_GEOMETRY_TYPE_TRIANGLES_NV, - VK_GEOMETRY_TYPE_END_RANGE_NV = VK_GEOMETRY_TYPE_AABBS_NV, - VK_GEOMETRY_TYPE_RANGE_SIZE_NV = (VK_GEOMETRY_TYPE_AABBS_NV - VK_GEOMETRY_TYPE_TRIANGLES_NV + 1), - VK_GEOMETRY_TYPE_MAX_ENUM_NV = 0x7FFFFFFF -} VkGeometryTypeNV; - -typedef enum VkCopyAccelerationStructureModeNV { - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0, - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1, - VK_COPY_ACCELERATION_STRUCTURE_MODE_BEGIN_RANGE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV, - VK_COPY_ACCELERATION_STRUCTURE_MODE_END_RANGE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV, - VK_COPY_ACCELERATION_STRUCTURE_MODE_RANGE_SIZE_NV = (VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV + 1), - VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_NV = 0x7FFFFFFF -} VkCopyAccelerationStructureModeNV; +#define VK_SHADER_UNUSED_KHR (~0U) +#define VK_SHADER_UNUSED_NV VK_SHADER_UNUSED_KHR + +typedef enum VkRayTracingShaderGroupTypeKHR { + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0, + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1, + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2, + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR, + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR, + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR, + VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkRayTracingShaderGroupTypeKHR; +typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV; + + +typedef enum VkGeometryTypeKHR { + VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0, + VK_GEOMETRY_TYPE_AABBS_KHR = 1, + VK_GEOMETRY_TYPE_INSTANCES_KHR = 2, + VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR, + VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR, + VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkGeometryTypeKHR; +typedef VkGeometryTypeKHR VkGeometryTypeNV; + + +typedef enum VkAccelerationStructureTypeKHR { + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0, + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1, + VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2, + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, + VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkAccelerationStructureTypeKHR; +typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV; + + +typedef enum VkCopyAccelerationStructureModeKHR { + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0, + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1, + VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2, + VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3, + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR, + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR, + VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkCopyAccelerationStructureModeKHR; +typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV; + typedef enum VkAccelerationStructureMemoryRequirementsTypeNV { VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0, VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1, VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2, - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BEGIN_RANGE_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV, - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_END_RANGE_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV, - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_RANGE_SIZE_NV = (VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV + 1), VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF } VkAccelerationStructureMemoryRequirementsTypeNV; -typedef enum VkGeometryFlagBitsNV { - VK_GEOMETRY_OPAQUE_BIT_NV = 0x00000001, - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 0x00000002, - VK_GEOMETRY_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF -} VkGeometryFlagBitsNV; -typedef VkFlags VkGeometryFlagsNV; - -typedef enum VkGeometryInstanceFlagBitsNV { - VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 0x00000001, - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 0x00000002, - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 0x00000004, - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 0x00000008, - VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF -} VkGeometryInstanceFlagBitsNV; -typedef VkFlags VkGeometryInstanceFlagsNV; - -typedef enum VkBuildAccelerationStructureFlagBitsNV { - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 0x00000001, - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 0x00000002, - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 0x00000004, - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 0x00000008, - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 0x00000010, - VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF -} VkBuildAccelerationStructureFlagBitsNV; -typedef VkFlags VkBuildAccelerationStructureFlagsNV; +typedef enum VkGeometryFlagBitsKHR { + VK_GEOMETRY_OPAQUE_BIT_KHR = 0x00000001, + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x00000002, + VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR, + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR, + VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkGeometryFlagBitsKHR; +typedef VkFlags VkGeometryFlagsKHR; +typedef VkGeometryFlagsKHR VkGeometryFlagsNV; + +typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV; + + +typedef enum VkGeometryInstanceFlagBitsKHR { + VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001, + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 0x00000002, + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004, + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008, + VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR, + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR, + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR, + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR, + VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkGeometryInstanceFlagBitsKHR; +typedef VkFlags VkGeometryInstanceFlagsKHR; +typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV; + +typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV; + + +typedef enum VkBuildAccelerationStructureFlagBitsKHR { + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002, + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004, + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008, + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR, + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR, + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR, + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR, + VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkBuildAccelerationStructureFlagBitsKHR; +typedef VkFlags VkBuildAccelerationStructureFlagsKHR; +typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV; + +typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV; + typedef struct VkRayTracingShaderGroupCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkRayTracingShaderGroupTypeNV type; - uint32_t generalShader; - uint32_t closestHitShader; - uint32_t anyHitShader; - uint32_t intersectionShader; + VkStructureType sType; + const void* pNext; + VkRayTracingShaderGroupTypeKHR type; + uint32_t generalShader; + uint32_t closestHitShader; + uint32_t anyHitShader; + uint32_t intersectionShader; } VkRayTracingShaderGroupCreateInfoNV; typedef struct VkRayTracingPipelineCreateInfoNV { @@ -9410,11 +10056,11 @@ typedef struct VkGeometryDataNV { } VkGeometryDataNV; typedef struct VkGeometryNV { - VkStructureType sType; - const void* pNext; - VkGeometryTypeNV geometryType; - VkGeometryDataNV geometry; - VkGeometryFlagsNV flags; + VkStructureType sType; + const void* pNext; + VkGeometryTypeKHR geometryType; + VkGeometryDataNV geometry; + VkGeometryFlagsKHR flags; } VkGeometryNV; typedef struct VkAccelerationStructureInfoNV { @@ -9471,14 +10117,43 @@ typedef struct VkPhysicalDeviceRayTracingPropertiesNV { uint32_t maxDescriptorSetAccelerationStructures; } VkPhysicalDeviceRayTracingPropertiesNV; +typedef struct VkTransformMatrixKHR { + float matrix[3][4]; +} VkTransformMatrixKHR; + +typedef VkTransformMatrixKHR VkTransformMatrixNV; + +typedef struct VkAabbPositionsKHR { + float minX; + float minY; + float minZ; + float maxX; + float maxY; + float maxZ; +} VkAabbPositionsKHR; + +typedef VkAabbPositionsKHR VkAabbPositionsNV; + +typedef struct VkAccelerationStructureInstanceKHR { + VkTransformMatrixKHR transform; + uint32_t instanceCustomIndex:24; + uint32_t mask:8; + uint32_t instanceShaderBindingTableRecordOffset:24; + VkGeometryInstanceFlagsKHR flags:8; + uint64_t accelerationStructureReference; +} VkAccelerationStructureInstanceKHR; + +typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV; + typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure); typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator); typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements); typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos); typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset); -typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeNV mode); +typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode); typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysNV)(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth); typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); +typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData); typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData); typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData); typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery); @@ -9521,7 +10196,7 @@ VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV( VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, - VkCopyAccelerationStructureModeNV mode); + VkCopyAccelerationStructureModeKHR mode); VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV( VkCommandBuffer commandBuffer, @@ -9548,6 +10223,14 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV( const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); +VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR( + VkDevice device, + VkPipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void* pData); + VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV( VkDevice device, VkPipeline pipeline, @@ -9612,6 +10295,11 @@ typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT { +#define VK_QCOM_render_pass_shader_resolve 1 +#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4 +#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve" + + #define VK_EXT_global_priority 1 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2 #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority" @@ -9621,9 +10309,6 @@ typedef enum VkQueueGlobalPriorityEXT { VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256, VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512, VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024, - VK_QUEUE_GLOBAL_PRIORITY_BEGIN_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT, - VK_QUEUE_GLOBAL_PRIORITY_END_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT, - VK_QUEUE_GLOBAL_PRIORITY_RANGE_SIZE_EXT = (VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT + 1), VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT = 0x7FFFFFFF } VkQueueGlobalPriorityEXT; typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT { @@ -9699,7 +10384,7 @@ typedef struct VkPipelineCompilerControlCreateInfoAMD { #define VK_EXT_calibrated_timestamps 1 -#define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1 +#define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 2 #define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps" typedef enum VkTimeDomainEXT { @@ -9707,9 +10392,6 @@ typedef enum VkTimeDomainEXT { VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1, VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2, VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3, - VK_TIME_DOMAIN_BEGIN_RANGE_EXT = VK_TIME_DOMAIN_DEVICE_EXT, - VK_TIME_DOMAIN_END_RANGE_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT, - VK_TIME_DOMAIN_RANGE_SIZE_EXT = (VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT - VK_TIME_DOMAIN_DEVICE_EXT + 1), VK_TIME_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF } VkTimeDomainEXT; typedef struct VkCalibratedTimestampInfoEXT { @@ -9768,9 +10450,6 @@ typedef enum VkMemoryOverallocationBehaviorAMD { VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0, VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1, VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2, - VK_MEMORY_OVERALLOCATION_BEHAVIOR_BEGIN_RANGE_AMD = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD, - VK_MEMORY_OVERALLOCATION_BEHAVIOR_END_RANGE_AMD = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD, - VK_MEMORY_OVERALLOCATION_BEHAVIOR_RANGE_SIZE_AMD = (VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD + 1), VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF } VkMemoryOverallocationBehaviorAMD; typedef struct VkDeviceMemoryOverallocationCreateInfoAMD { @@ -10008,40 +10687,28 @@ typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL { #define VK_INTEL_performance_query 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL) -#define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 1 +#define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2 #define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query" typedef enum VkPerformanceConfigurationTypeINTEL { VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0, - VK_PERFORMANCE_CONFIGURATION_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL, - VK_PERFORMANCE_CONFIGURATION_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL, - VK_PERFORMANCE_CONFIGURATION_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL + 1), VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF } VkPerformanceConfigurationTypeINTEL; typedef enum VkQueryPoolSamplingModeINTEL { VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0, - VK_QUERY_POOL_SAMPLING_MODE_BEGIN_RANGE_INTEL = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL, - VK_QUERY_POOL_SAMPLING_MODE_END_RANGE_INTEL = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL, - VK_QUERY_POOL_SAMPLING_MODE_RANGE_SIZE_INTEL = (VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL - VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL + 1), VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF } VkQueryPoolSamplingModeINTEL; typedef enum VkPerformanceOverrideTypeINTEL { VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0, VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1, - VK_PERFORMANCE_OVERRIDE_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL, - VK_PERFORMANCE_OVERRIDE_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL, - VK_PERFORMANCE_OVERRIDE_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL - VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL + 1), VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF } VkPerformanceOverrideTypeINTEL; typedef enum VkPerformanceParameterTypeINTEL { VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0, VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1, - VK_PERFORMANCE_PARAMETER_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL, - VK_PERFORMANCE_PARAMETER_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL, - VK_PERFORMANCE_PARAMETER_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL - VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL + 1), VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF } VkPerformanceParameterTypeINTEL; @@ -10051,9 +10718,6 @@ typedef enum VkPerformanceValueTypeINTEL { VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2, VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3, VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4, - VK_PERFORMANCE_VALUE_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL, - VK_PERFORMANCE_VALUE_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL, - VK_PERFORMANCE_VALUE_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL - VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL + 1), VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF } VkPerformanceValueTypeINTEL; typedef union VkPerformanceValueDataINTEL { @@ -10075,11 +10739,13 @@ typedef struct VkInitializePerformanceApiInfoINTEL { void* pUserData; } VkInitializePerformanceApiInfoINTEL; -typedef struct VkQueryPoolCreateInfoINTEL { +typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL { VkStructureType sType; const void* pNext; VkQueryPoolSamplingModeINTEL performanceCountersSampling; -} VkQueryPoolCreateInfoINTEL; +} VkQueryPoolPerformanceQueryCreateInfoINTEL; + +typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL; typedef struct VkPerformanceMarkerInfoINTEL { VkStructureType sType; @@ -10295,6 +10961,18 @@ typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD { +#define VK_EXT_shader_image_atomic_int64 1 +#define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1 +#define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64" +typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 shaderImageInt64Atomics; + VkBool32 sparseImageInt64Atomics; +} VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT; + + + #define VK_EXT_memory_budget 1 #define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1 #define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget" @@ -10408,16 +11086,15 @@ typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT; #define VK_EXT_validation_features 1 -#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 2 +#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 4 #define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features" typedef enum VkValidationFeatureEnableEXT { VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0, VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1, VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2, - VK_VALIDATION_FEATURE_ENABLE_BEGIN_RANGE_EXT = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT, - VK_VALIDATION_FEATURE_ENABLE_END_RANGE_EXT = VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT, - VK_VALIDATION_FEATURE_ENABLE_RANGE_SIZE_EXT = (VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT + 1), + VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3, + VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4, VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF } VkValidationFeatureEnableEXT; @@ -10429,9 +11106,6 @@ typedef enum VkValidationFeatureDisableEXT { VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4, VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5, VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6, - VK_VALIDATION_FEATURE_DISABLE_BEGIN_RANGE_EXT = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT, - VK_VALIDATION_FEATURE_DISABLE_END_RANGE_EXT = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT, - VK_VALIDATION_FEATURE_DISABLE_RANGE_SIZE_EXT = (VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT + 1), VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF } VkValidationFeatureDisableEXT; typedef struct VkValidationFeaturesEXT { @@ -10461,9 +11135,6 @@ typedef enum VkComponentTypeNV { VK_COMPONENT_TYPE_UINT16_NV = 8, VK_COMPONENT_TYPE_UINT32_NV = 9, VK_COMPONENT_TYPE_UINT64_NV = 10, - VK_COMPONENT_TYPE_BEGIN_RANGE_NV = VK_COMPONENT_TYPE_FLOAT16_NV, - VK_COMPONENT_TYPE_END_RANGE_NV = VK_COMPONENT_TYPE_UINT64_NV, - VK_COMPONENT_TYPE_RANGE_SIZE_NV = (VK_COMPONENT_TYPE_UINT64_NV - VK_COMPONENT_TYPE_FLOAT16_NV + 1), VK_COMPONENT_TYPE_MAX_ENUM_NV = 0x7FFFFFFF } VkComponentTypeNV; @@ -10472,9 +11143,6 @@ typedef enum VkScopeNV { VK_SCOPE_WORKGROUP_NV = 2, VK_SCOPE_SUBGROUP_NV = 3, VK_SCOPE_QUEUE_FAMILY_NV = 5, - VK_SCOPE_BEGIN_RANGE_NV = VK_SCOPE_DEVICE_NV, - VK_SCOPE_END_RANGE_NV = VK_SCOPE_QUEUE_FAMILY_NV, - VK_SCOPE_RANGE_SIZE_NV = (VK_SCOPE_QUEUE_FAMILY_NV - VK_SCOPE_DEVICE_NV + 1), VK_SCOPE_MAX_ENUM_NV = 0x7FFFFFFF } VkScopeNV; typedef struct VkCooperativeMatrixPropertiesNV { @@ -10520,9 +11188,6 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( typedef enum VkCoverageReductionModeNV { VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0, VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1, - VK_COVERAGE_REDUCTION_MODE_BEGIN_RANGE_NV = VK_COVERAGE_REDUCTION_MODE_MERGE_NV, - VK_COVERAGE_REDUCTION_MODE_END_RANGE_NV = VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV, - VK_COVERAGE_REDUCTION_MODE_RANGE_SIZE_NV = (VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV - VK_COVERAGE_REDUCTION_MODE_MERGE_NV + 1), VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF } VkCoverageReductionModeNV; typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV; @@ -10612,9 +11277,6 @@ typedef enum VkLineRasterizationModeEXT { VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1, VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2, VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3, - VK_LINE_RASTERIZATION_MODE_BEGIN_RANGE_EXT = VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, - VK_LINE_RASTERIZATION_MODE_END_RANGE_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, - VK_LINE_RASTERIZATION_MODE_RANGE_SIZE_EXT = (VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT - VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT + 1), VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF } VkLineRasterizationModeEXT; typedef struct VkPhysicalDeviceLineRasterizationFeaturesEXT { @@ -10653,6 +11315,28 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT( #endif +#define VK_EXT_shader_atomic_float 1 +#define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1 +#define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float" +typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 shaderBufferFloat32Atomics; + VkBool32 shaderBufferFloat32AtomicAdd; + VkBool32 shaderBufferFloat64Atomics; + VkBool32 shaderBufferFloat64AtomicAdd; + VkBool32 shaderSharedFloat32Atomics; + VkBool32 shaderSharedFloat32AtomicAdd; + VkBool32 shaderSharedFloat64Atomics; + VkBool32 shaderSharedFloat64AtomicAdd; + VkBool32 shaderImageFloat32Atomics; + VkBool32 shaderImageFloat32AtomicAdd; + VkBool32 sparseImageFloat32Atomics; + VkBool32 sparseImageFloat32AtomicAdd; +} VkPhysicalDeviceShaderAtomicFloatFeaturesEXT; + + + #define VK_EXT_host_query_reset 1 #define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1 #define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset" @@ -10680,6 +11364,90 @@ typedef struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT { +#define VK_EXT_extended_dynamic_state 1 +#define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1 +#define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state" +typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 extendedDynamicState; +} VkPhysicalDeviceExtendedDynamicStateFeaturesEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode); +typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace); +typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology); +typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports); +typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors); +typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers2EXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT( + VkCommandBuffer commandBuffer, + VkCullModeFlags cullMode); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT( + VkCommandBuffer commandBuffer, + VkFrontFace frontFace); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT( + VkCommandBuffer commandBuffer, + VkPrimitiveTopology primitiveTopology); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT( + VkCommandBuffer commandBuffer, + uint32_t viewportCount, + const VkViewport* pViewports); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT( + VkCommandBuffer commandBuffer, + uint32_t scissorCount, + const VkRect2D* pScissors); + +VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT( + VkCommandBuffer commandBuffer, + uint32_t firstBinding, + uint32_t bindingCount, + const VkBuffer* pBuffers, + const VkDeviceSize* pOffsets, + const VkDeviceSize* pSizes, + const VkDeviceSize* pStrides); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 depthTestEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 depthWriteEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT( + VkCommandBuffer commandBuffer, + VkCompareOp depthCompareOp); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 depthBoundsTestEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 stencilTestEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT( + VkCommandBuffer commandBuffer, + VkStencilFaceFlags faceMask, + VkStencilOp failOp, + VkStencilOp passOp, + VkStencilOp depthFailOp, + VkCompareOp compareOp); +#endif + + #define VK_EXT_shader_demote_to_helper_invocation 1 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation" @@ -10691,6 +11459,215 @@ typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT { +#define VK_NV_device_generated_commands 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV) +#define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3 +#define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands" + +typedef enum VkIndirectCommandsTokenTypeNV { + VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF +} VkIndirectCommandsTokenTypeNV; + +typedef enum VkIndirectStateFlagBitsNV { + VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001, + VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkIndirectStateFlagBitsNV; +typedef VkFlags VkIndirectStateFlagsNV; + +typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV { + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0x00000001, + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0x00000002, + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0x00000004, + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkIndirectCommandsLayoutUsageFlagBitsNV; +typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV; +typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV { + VkStructureType sType; + void* pNext; + uint32_t maxGraphicsShaderGroupCount; + uint32_t maxIndirectSequenceCount; + uint32_t maxIndirectCommandsTokenCount; + uint32_t maxIndirectCommandsStreamCount; + uint32_t maxIndirectCommandsTokenOffset; + uint32_t maxIndirectCommandsStreamStride; + uint32_t minSequencesCountBufferOffsetAlignment; + uint32_t minSequencesIndexBufferOffsetAlignment; + uint32_t minIndirectCommandsBufferOffsetAlignment; +} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV; + +typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 deviceGeneratedCommands; +} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV; + +typedef struct VkGraphicsShaderGroupCreateInfoNV { + VkStructureType sType; + const void* pNext; + uint32_t stageCount; + const VkPipelineShaderStageCreateInfo* pStages; + const VkPipelineVertexInputStateCreateInfo* pVertexInputState; + const VkPipelineTessellationStateCreateInfo* pTessellationState; +} VkGraphicsShaderGroupCreateInfoNV; + +typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV { + VkStructureType sType; + const void* pNext; + uint32_t groupCount; + const VkGraphicsShaderGroupCreateInfoNV* pGroups; + uint32_t pipelineCount; + const VkPipeline* pPipelines; +} VkGraphicsPipelineShaderGroupsCreateInfoNV; + +typedef struct VkBindShaderGroupIndirectCommandNV { + uint32_t groupIndex; +} VkBindShaderGroupIndirectCommandNV; + +typedef struct VkBindIndexBufferIndirectCommandNV { + VkDeviceAddress bufferAddress; + uint32_t size; + VkIndexType indexType; +} VkBindIndexBufferIndirectCommandNV; + +typedef struct VkBindVertexBufferIndirectCommandNV { + VkDeviceAddress bufferAddress; + uint32_t size; + uint32_t stride; +} VkBindVertexBufferIndirectCommandNV; + +typedef struct VkSetStateFlagsIndirectCommandNV { + uint32_t data; +} VkSetStateFlagsIndirectCommandNV; + +typedef struct VkIndirectCommandsStreamNV { + VkBuffer buffer; + VkDeviceSize offset; +} VkIndirectCommandsStreamNV; + +typedef struct VkIndirectCommandsLayoutTokenNV { + VkStructureType sType; + const void* pNext; + VkIndirectCommandsTokenTypeNV tokenType; + uint32_t stream; + uint32_t offset; + uint32_t vertexBindingUnit; + VkBool32 vertexDynamicStride; + VkPipelineLayout pushconstantPipelineLayout; + VkShaderStageFlags pushconstantShaderStageFlags; + uint32_t pushconstantOffset; + uint32_t pushconstantSize; + VkIndirectStateFlagsNV indirectStateFlags; + uint32_t indexTypeCount; + const VkIndexType* pIndexTypes; + const uint32_t* pIndexTypeValues; +} VkIndirectCommandsLayoutTokenNV; + +typedef struct VkIndirectCommandsLayoutCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkIndirectCommandsLayoutUsageFlagsNV flags; + VkPipelineBindPoint pipelineBindPoint; + uint32_t tokenCount; + const VkIndirectCommandsLayoutTokenNV* pTokens; + uint32_t streamCount; + const uint32_t* pStreamStrides; +} VkIndirectCommandsLayoutCreateInfoNV; + +typedef struct VkGeneratedCommandsInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineBindPoint pipelineBindPoint; + VkPipeline pipeline; + VkIndirectCommandsLayoutNV indirectCommandsLayout; + uint32_t streamCount; + const VkIndirectCommandsStreamNV* pStreams; + uint32_t sequencesCount; + VkBuffer preprocessBuffer; + VkDeviceSize preprocessOffset; + VkDeviceSize preprocessSize; + VkBuffer sequencesCountBuffer; + VkDeviceSize sequencesCountOffset; + VkBuffer sequencesIndexBuffer; + VkDeviceSize sequencesIndexOffset; +} VkGeneratedCommandsInfoNV; + +typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineBindPoint pipelineBindPoint; + VkPipeline pipeline; + VkIndirectCommandsLayoutNV indirectCommandsLayout; + uint32_t maxSequencesCount; +} VkGeneratedCommandsMemoryRequirementsInfoNV; + +typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo); +typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo); +typedef void (VKAPI_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex); +typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout); +typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV( + VkDevice device, + const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV( + VkCommandBuffer commandBuffer, + const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV( + VkCommandBuffer commandBuffer, + VkBool32 isPreprocessed, + const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV( + VkCommandBuffer commandBuffer, + VkPipelineBindPoint pipelineBindPoint, + VkPipeline pipeline, + uint32_t groupIndex); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV( + VkDevice device, + const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkIndirectCommandsLayoutNV* pIndirectCommandsLayout); + +VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV( + VkDevice device, + VkIndirectCommandsLayoutNV indirectCommandsLayout, + const VkAllocationCallbacks* pAllocator); +#endif + + +#define VK_NV_inherited_viewport_scissor 1 +#define VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION 1 +#define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor" +typedef struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 inheritedViewportScissor2D; +} VkPhysicalDeviceInheritedViewportScissorFeaturesNV; + +typedef struct VkCommandBufferInheritanceViewportScissorInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 viewportScissor2D; + uint32_t viewportDepthCount; + const VkViewport* pViewportDepths; +} VkCommandBufferInheritanceViewportScissorInfoNV; + + + #define VK_EXT_texel_buffer_alignment 1 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment" @@ -10711,9 +11688,930 @@ typedef struct VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT { -#define VK_GOOGLE_user_type 1 -#define VK_GOOGLE_USER_TYPE_SPEC_VERSION 1 -#define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type" +#define VK_QCOM_render_pass_transform 1 +#define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 2 +#define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform" +typedef struct VkRenderPassTransformBeginInfoQCOM { + VkStructureType sType; + void* pNext; + VkSurfaceTransformFlagBitsKHR transform; +} VkRenderPassTransformBeginInfoQCOM; + +typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM { + VkStructureType sType; + void* pNext; + VkSurfaceTransformFlagBitsKHR transform; + VkRect2D renderArea; +} VkCommandBufferInheritanceRenderPassTransformInfoQCOM; + + + +#define VK_EXT_device_memory_report 1 +#define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 2 +#define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report" + +typedef enum VkDeviceMemoryReportEventTypeEXT { + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0, + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1, + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2, + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3, + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4, + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDeviceMemoryReportEventTypeEXT; +typedef VkFlags VkDeviceMemoryReportFlagsEXT; +typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 deviceMemoryReport; +} VkPhysicalDeviceDeviceMemoryReportFeaturesEXT; + +typedef struct VkDeviceMemoryReportCallbackDataEXT { + VkStructureType sType; + const void* pNext; + VkDeviceMemoryReportFlagsEXT flags; + VkDeviceMemoryReportEventTypeEXT type; + uint64_t memoryObjectId; + VkDeviceSize size; + VkObjectType objectType; + uint64_t objectHandle; + uint32_t heapIndex; +} VkDeviceMemoryReportCallbackDataEXT; + +typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)( + const VkDeviceMemoryReportCallbackDataEXT* pCallbackData, + void* pUserData); + +typedef struct VkDeviceDeviceMemoryReportCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkDeviceMemoryReportFlagsEXT flags; + PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback; + void* pUserData; +} VkDeviceDeviceMemoryReportCreateInfoEXT; + + + +#define VK_EXT_robustness2 1 +#define VK_EXT_ROBUSTNESS_2_SPEC_VERSION 1 +#define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2" +typedef struct VkPhysicalDeviceRobustness2FeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 robustBufferAccess2; + VkBool32 robustImageAccess2; + VkBool32 nullDescriptor; +} VkPhysicalDeviceRobustness2FeaturesEXT; + +typedef struct VkPhysicalDeviceRobustness2PropertiesEXT { + VkStructureType sType; + void* pNext; + VkDeviceSize robustStorageBufferAccessSizeAlignment; + VkDeviceSize robustUniformBufferAccessSizeAlignment; +} VkPhysicalDeviceRobustness2PropertiesEXT; + + + +#define VK_EXT_custom_border_color 1 +#define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12 +#define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color" +typedef struct VkSamplerCustomBorderColorCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkClearColorValue customBorderColor; + VkFormat format; +} VkSamplerCustomBorderColorCreateInfoEXT; + +typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxCustomBorderColorSamplers; +} VkPhysicalDeviceCustomBorderColorPropertiesEXT; + +typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 customBorderColors; + VkBool32 customBorderColorWithoutFormat; +} VkPhysicalDeviceCustomBorderColorFeaturesEXT; + + + +#define VK_GOOGLE_user_type 1 +#define VK_GOOGLE_USER_TYPE_SPEC_VERSION 1 +#define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type" + + +#define VK_EXT_private_data 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlotEXT) +#define VK_EXT_PRIVATE_DATA_SPEC_VERSION 1 +#define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data" + +typedef enum VkPrivateDataSlotCreateFlagBitsEXT { + VK_PRIVATE_DATA_SLOT_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkPrivateDataSlotCreateFlagBitsEXT; +typedef VkFlags VkPrivateDataSlotCreateFlagsEXT; +typedef struct VkPhysicalDevicePrivateDataFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 privateData; +} VkPhysicalDevicePrivateDataFeaturesEXT; + +typedef struct VkDevicePrivateDataCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t privateDataSlotRequestCount; +} VkDevicePrivateDataCreateInfoEXT; + +typedef struct VkPrivateDataSlotCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkPrivateDataSlotCreateFlagsEXT flags; +} VkPrivateDataSlotCreateInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlotEXT* pPrivateDataSlot); +typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlotEXT privateDataSlot, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t data); +typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t* pData); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT( + VkDevice device, + const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkPrivateDataSlotEXT* pPrivateDataSlot); + +VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT( + VkDevice device, + VkPrivateDataSlotEXT privateDataSlot, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT( + VkDevice device, + VkObjectType objectType, + uint64_t objectHandle, + VkPrivateDataSlotEXT privateDataSlot, + uint64_t data); + +VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT( + VkDevice device, + VkObjectType objectType, + uint64_t objectHandle, + VkPrivateDataSlotEXT privateDataSlot, + uint64_t* pData); +#endif + + +#define VK_EXT_pipeline_creation_cache_control 1 +#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3 +#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control" +typedef struct VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 pipelineCreationCacheControl; +} VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT; + + + +#define VK_NV_device_diagnostics_config 1 +#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 1 +#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config" + +typedef enum VkDeviceDiagnosticsConfigFlagBitsNV { + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001, + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002, + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004, + VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkDeviceDiagnosticsConfigFlagBitsNV; +typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV; +typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 diagnosticsConfig; +} VkPhysicalDeviceDiagnosticsConfigFeaturesNV; + +typedef struct VkDeviceDiagnosticsConfigCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkDeviceDiagnosticsConfigFlagsNV flags; +} VkDeviceDiagnosticsConfigCreateInfoNV; + + + +#define VK_QCOM_render_pass_store_ops 1 +#define VK_QCOM_render_pass_store_ops_SPEC_VERSION 2 +#define VK_QCOM_render_pass_store_ops_EXTENSION_NAME "VK_QCOM_render_pass_store_ops" + + +#define VK_NV_fragment_shading_rate_enums 1 +#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1 +#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums" + +typedef enum VkFragmentShadingRateTypeNV { + VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0, + VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1, + VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF +} VkFragmentShadingRateTypeNV; + +typedef enum VkFragmentShadingRateNV { + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0, + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1, + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4, + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5, + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6, + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9, + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10, + VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11, + VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12, + VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13, + VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14, + VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15, + VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 0x7FFFFFFF +} VkFragmentShadingRateNV; +typedef struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 fragmentShadingRateEnums; + VkBool32 supersampleFragmentShadingRates; + VkBool32 noInvocationFragmentShadingRates; +} VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV; + +typedef struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV { + VkStructureType sType; + void* pNext; + VkSampleCountFlagBits maxFragmentShadingRateInvocationCount; +} VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV; + +typedef struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkFragmentShadingRateTypeNV shadingRateType; + VkFragmentShadingRateNV shadingRate; + VkFragmentShadingRateCombinerOpKHR combinerOps[2]; +} VkPipelineFragmentShadingRateEnumStateCreateInfoNV; + +typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateEnumNV)(VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateEnumNV( + VkCommandBuffer commandBuffer, + VkFragmentShadingRateNV shadingRate, + const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); +#endif + + +#define VK_EXT_ycbcr_2plane_444_formats 1 +#define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1 +#define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats" +typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 ycbcr2plane444Formats; +} VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT; + + + +#define VK_EXT_fragment_density_map2 1 +#define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1 +#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2" +typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 fragmentDensityMapDeferred; +} VkPhysicalDeviceFragmentDensityMap2FeaturesEXT; + +typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT { + VkStructureType sType; + void* pNext; + VkBool32 subsampledLoads; + VkBool32 subsampledCoarseReconstructionEarlyAccess; + uint32_t maxSubsampledArrayLayers; + uint32_t maxDescriptorSetSubsampledSamplers; +} VkPhysicalDeviceFragmentDensityMap2PropertiesEXT; + + + +#define VK_QCOM_rotated_copy_commands 1 +#define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 1 +#define VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME "VK_QCOM_rotated_copy_commands" +typedef struct VkCopyCommandTransformInfoQCOM { + VkStructureType sType; + const void* pNext; + VkSurfaceTransformFlagBitsKHR transform; +} VkCopyCommandTransformInfoQCOM; + + + +#define VK_EXT_image_robustness 1 +#define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1 +#define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness" +typedef struct VkPhysicalDeviceImageRobustnessFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 robustImageAccess; +} VkPhysicalDeviceImageRobustnessFeaturesEXT; + + + +#define VK_EXT_4444_formats 1 +#define VK_EXT_4444_FORMATS_SPEC_VERSION 1 +#define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats" +typedef struct VkPhysicalDevice4444FormatsFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 formatA4R4G4B4; + VkBool32 formatA4B4G4R4; +} VkPhysicalDevice4444FormatsFeaturesEXT; + + + +#define VK_NV_acquire_winrt_display 1 +#define VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION 1 +#define VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME "VK_NV_acquire_winrt_display" +typedef VkResult (VKAPI_PTR *PFN_vkAcquireWinrtDisplayNV)(VkPhysicalDevice physicalDevice, VkDisplayKHR display); +typedef VkResult (VKAPI_PTR *PFN_vkGetWinrtDisplayNV)(VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR* pDisplay); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkAcquireWinrtDisplayNV( + VkPhysicalDevice physicalDevice, + VkDisplayKHR display); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetWinrtDisplayNV( + VkPhysicalDevice physicalDevice, + uint32_t deviceRelativeId, + VkDisplayKHR* pDisplay); +#endif + + +#define VK_VALVE_mutable_descriptor_type 1 +#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1 +#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type" +typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE { + VkStructureType sType; + void* pNext; + VkBool32 mutableDescriptorType; +} VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE; + +typedef struct VkMutableDescriptorTypeListVALVE { + uint32_t descriptorTypeCount; + const VkDescriptorType* pDescriptorTypes; +} VkMutableDescriptorTypeListVALVE; + +typedef struct VkMutableDescriptorTypeCreateInfoVALVE { + VkStructureType sType; + const void* pNext; + uint32_t mutableDescriptorTypeListCount; + const VkMutableDescriptorTypeListVALVE* pMutableDescriptorTypeLists; +} VkMutableDescriptorTypeCreateInfoVALVE; + + + +#define VK_EXT_vertex_input_dynamic_state 1 +#define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2 +#define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state" +typedef struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 vertexInputDynamicState; +} VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT; + +typedef struct VkVertexInputBindingDescription2EXT { + VkStructureType sType; + void* pNext; + uint32_t binding; + uint32_t stride; + VkVertexInputRate inputRate; + uint32_t divisor; +} VkVertexInputBindingDescription2EXT; + +typedef struct VkVertexInputAttributeDescription2EXT { + VkStructureType sType; + void* pNext; + uint32_t location; + uint32_t binding; + VkFormat format; + uint32_t offset; +} VkVertexInputAttributeDescription2EXT; + +typedef void (VKAPI_PTR *PFN_vkCmdSetVertexInputEXT)(VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetVertexInputEXT( + VkCommandBuffer commandBuffer, + uint32_t vertexBindingDescriptionCount, + const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, + uint32_t vertexAttributeDescriptionCount, + const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions); +#endif + + +#define VK_EXT_extended_dynamic_state2 1 +#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1 +#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2" +typedef struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 extendedDynamicState2; + VkBool32 extendedDynamicState2LogicOp; + VkBool32 extendedDynamicState2PatchControlPoints; +} VkPhysicalDeviceExtendedDynamicState2FeaturesEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdSetPatchControlPointsEXT)(VkCommandBuffer commandBuffer, uint32_t patchControlPoints); +typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEXT)(VkCommandBuffer commandBuffer, VkLogicOp logicOp); +typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetPatchControlPointsEXT( + VkCommandBuffer commandBuffer, + uint32_t patchControlPoints); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 rasterizerDiscardEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 depthBiasEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEXT( + VkCommandBuffer commandBuffer, + VkLogicOp logicOp); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 primitiveRestartEnable); +#endif + + +#define VK_EXT_color_write_enable 1 +#define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1 +#define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable" +typedef struct VkPhysicalDeviceColorWriteEnableFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 colorWriteEnable; +} VkPhysicalDeviceColorWriteEnableFeaturesEXT; + +typedef struct VkPipelineColorWriteCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t attachmentCount; + const VkBool32* pColorWriteEnables; +} VkPipelineColorWriteCreateInfoEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteEnableEXT( + VkCommandBuffer commandBuffer, + uint32_t attachmentCount, + const VkBool32* pColorWriteEnables); +#endif + + +#define VK_KHR_acceleration_structure 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR) +#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 11 +#define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure" + +typedef enum VkBuildAccelerationStructureModeKHR { + VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0, + VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1, + VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkBuildAccelerationStructureModeKHR; + +typedef enum VkAccelerationStructureBuildTypeKHR { + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0, + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1, + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2, + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkAccelerationStructureBuildTypeKHR; + +typedef enum VkAccelerationStructureCompatibilityKHR { + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0, + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1, + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 0x7FFFFFFF +} VkAccelerationStructureCompatibilityKHR; + +typedef enum VkAccelerationStructureCreateFlagBitsKHR { + VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001, + VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkAccelerationStructureCreateFlagBitsKHR; +typedef VkFlags VkAccelerationStructureCreateFlagsKHR; +typedef union VkDeviceOrHostAddressKHR { + VkDeviceAddress deviceAddress; + void* hostAddress; +} VkDeviceOrHostAddressKHR; + +typedef union VkDeviceOrHostAddressConstKHR { + VkDeviceAddress deviceAddress; + const void* hostAddress; +} VkDeviceOrHostAddressConstKHR; + +typedef struct VkAccelerationStructureBuildRangeInfoKHR { + uint32_t primitiveCount; + uint32_t primitiveOffset; + uint32_t firstVertex; + uint32_t transformOffset; +} VkAccelerationStructureBuildRangeInfoKHR; + +typedef struct VkAccelerationStructureGeometryTrianglesDataKHR { + VkStructureType sType; + const void* pNext; + VkFormat vertexFormat; + VkDeviceOrHostAddressConstKHR vertexData; + VkDeviceSize vertexStride; + uint32_t maxVertex; + VkIndexType indexType; + VkDeviceOrHostAddressConstKHR indexData; + VkDeviceOrHostAddressConstKHR transformData; +} VkAccelerationStructureGeometryTrianglesDataKHR; + +typedef struct VkAccelerationStructureGeometryAabbsDataKHR { + VkStructureType sType; + const void* pNext; + VkDeviceOrHostAddressConstKHR data; + VkDeviceSize stride; +} VkAccelerationStructureGeometryAabbsDataKHR; + +typedef struct VkAccelerationStructureGeometryInstancesDataKHR { + VkStructureType sType; + const void* pNext; + VkBool32 arrayOfPointers; + VkDeviceOrHostAddressConstKHR data; +} VkAccelerationStructureGeometryInstancesDataKHR; + +typedef union VkAccelerationStructureGeometryDataKHR { + VkAccelerationStructureGeometryTrianglesDataKHR triangles; + VkAccelerationStructureGeometryAabbsDataKHR aabbs; + VkAccelerationStructureGeometryInstancesDataKHR instances; +} VkAccelerationStructureGeometryDataKHR; + +typedef struct VkAccelerationStructureGeometryKHR { + VkStructureType sType; + const void* pNext; + VkGeometryTypeKHR geometryType; + VkAccelerationStructureGeometryDataKHR geometry; + VkGeometryFlagsKHR flags; +} VkAccelerationStructureGeometryKHR; + +typedef struct VkAccelerationStructureBuildGeometryInfoKHR { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureTypeKHR type; + VkBuildAccelerationStructureFlagsKHR flags; + VkBuildAccelerationStructureModeKHR mode; + VkAccelerationStructureKHR srcAccelerationStructure; + VkAccelerationStructureKHR dstAccelerationStructure; + uint32_t geometryCount; + const VkAccelerationStructureGeometryKHR* pGeometries; + const VkAccelerationStructureGeometryKHR* const* ppGeometries; + VkDeviceOrHostAddressKHR scratchData; +} VkAccelerationStructureBuildGeometryInfoKHR; + +typedef struct VkAccelerationStructureCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureCreateFlagsKHR createFlags; + VkBuffer buffer; + VkDeviceSize offset; + VkDeviceSize size; + VkAccelerationStructureTypeKHR type; + VkDeviceAddress deviceAddress; +} VkAccelerationStructureCreateInfoKHR; + +typedef struct VkWriteDescriptorSetAccelerationStructureKHR { + VkStructureType sType; + const void* pNext; + uint32_t accelerationStructureCount; + const VkAccelerationStructureKHR* pAccelerationStructures; +} VkWriteDescriptorSetAccelerationStructureKHR; + +typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 accelerationStructure; + VkBool32 accelerationStructureCaptureReplay; + VkBool32 accelerationStructureIndirectBuild; + VkBool32 accelerationStructureHostCommands; + VkBool32 descriptorBindingAccelerationStructureUpdateAfterBind; +} VkPhysicalDeviceAccelerationStructureFeaturesKHR; + +typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR { + VkStructureType sType; + void* pNext; + uint64_t maxGeometryCount; + uint64_t maxInstanceCount; + uint64_t maxPrimitiveCount; + uint32_t maxPerStageDescriptorAccelerationStructures; + uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures; + uint32_t maxDescriptorSetAccelerationStructures; + uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures; + uint32_t minAccelerationStructureScratchOffsetAlignment; +} VkPhysicalDeviceAccelerationStructurePropertiesKHR; + +typedef struct VkAccelerationStructureDeviceAddressInfoKHR { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureKHR accelerationStructure; +} VkAccelerationStructureDeviceAddressInfoKHR; + +typedef struct VkAccelerationStructureVersionInfoKHR { + VkStructureType sType; + const void* pNext; + const uint8_t* pVersionData; +} VkAccelerationStructureVersionInfoKHR; + +typedef struct VkCopyAccelerationStructureToMemoryInfoKHR { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureKHR src; + VkDeviceOrHostAddressKHR dst; + VkCopyAccelerationStructureModeKHR mode; +} VkCopyAccelerationStructureToMemoryInfoKHR; + +typedef struct VkCopyMemoryToAccelerationStructureInfoKHR { + VkStructureType sType; + const void* pNext; + VkDeviceOrHostAddressConstKHR src; + VkAccelerationStructureKHR dst; + VkCopyAccelerationStructureModeKHR mode; +} VkCopyMemoryToAccelerationStructureInfoKHR; + +typedef struct VkCopyAccelerationStructureInfoKHR { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureKHR src; + VkAccelerationStructureKHR dst; + VkCopyAccelerationStructureModeKHR mode; +} VkCopyAccelerationStructureInfoKHR; + +typedef struct VkAccelerationStructureBuildSizesInfoKHR { + VkStructureType sType; + const void* pNext; + VkDeviceSize accelerationStructureSize; + VkDeviceSize updateScratchSize; + VkDeviceSize buildScratchSize; +} VkAccelerationStructureBuildSizesInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure); +typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos); +typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresIndirectKHR)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const* ppMaxPrimitiveCounts); +typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructuresKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos); +typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); +typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); +typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo); +typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery); +typedef void (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility); +typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureBuildSizesKHR)(VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR( + VkDevice device, + const VkAccelerationStructureCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkAccelerationStructureKHR* pAccelerationStructure); + +VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR( + VkDevice device, + VkAccelerationStructureKHR accelerationStructure, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresKHR( + VkCommandBuffer commandBuffer, + uint32_t infoCount, + const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, + const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos); + +VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresIndirectKHR( + VkCommandBuffer commandBuffer, + uint32_t infoCount, + const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, + const VkDeviceAddress* pIndirectDeviceAddresses, + const uint32_t* pIndirectStrides, + const uint32_t* const* ppMaxPrimitiveCounts); + +VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructuresKHR( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + uint32_t infoCount, + const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, + const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos); + +VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyAccelerationStructureInfoKHR* pInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR( + VkDevice device, + uint32_t accelerationStructureCount, + const VkAccelerationStructureKHR* pAccelerationStructures, + VkQueryType queryType, + size_t dataSize, + void* pData, + size_t stride); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR( + VkCommandBuffer commandBuffer, + const VkCopyAccelerationStructureInfoKHR* pInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR( + VkCommandBuffer commandBuffer, + const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR( + VkCommandBuffer commandBuffer, + const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); + +VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR( + VkDevice device, + const VkAccelerationStructureDeviceAddressInfoKHR* pInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesKHR( + VkCommandBuffer commandBuffer, + uint32_t accelerationStructureCount, + const VkAccelerationStructureKHR* pAccelerationStructures, + VkQueryType queryType, + VkQueryPool queryPool, + uint32_t firstQuery); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR( + VkDevice device, + const VkAccelerationStructureVersionInfoKHR* pVersionInfo, + VkAccelerationStructureCompatibilityKHR* pCompatibility); + +VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureBuildSizesKHR( + VkDevice device, + VkAccelerationStructureBuildTypeKHR buildType, + const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, + const uint32_t* pMaxPrimitiveCounts, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo); +#endif + + +#define VK_KHR_ray_tracing_pipeline 1 +#define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1 +#define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline" + +typedef enum VkShaderGroupShaderKHR { + VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0, + VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1, + VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2, + VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3, + VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR = 0x7FFFFFFF +} VkShaderGroupShaderKHR; +typedef struct VkRayTracingShaderGroupCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkRayTracingShaderGroupTypeKHR type; + uint32_t generalShader; + uint32_t closestHitShader; + uint32_t anyHitShader; + uint32_t intersectionShader; + const void* pShaderGroupCaptureReplayHandle; +} VkRayTracingShaderGroupCreateInfoKHR; + +typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t maxPipelineRayPayloadSize; + uint32_t maxPipelineRayHitAttributeSize; +} VkRayTracingPipelineInterfaceCreateInfoKHR; + +typedef struct VkRayTracingPipelineCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkPipelineCreateFlags flags; + uint32_t stageCount; + const VkPipelineShaderStageCreateInfo* pStages; + uint32_t groupCount; + const VkRayTracingShaderGroupCreateInfoKHR* pGroups; + uint32_t maxPipelineRayRecursionDepth; + const VkPipelineLibraryCreateInfoKHR* pLibraryInfo; + const VkRayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface; + const VkPipelineDynamicStateCreateInfo* pDynamicState; + VkPipelineLayout layout; + VkPipeline basePipelineHandle; + int32_t basePipelineIndex; +} VkRayTracingPipelineCreateInfoKHR; + +typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 rayTracingPipeline; + VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplay; + VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed; + VkBool32 rayTracingPipelineTraceRaysIndirect; + VkBool32 rayTraversalPrimitiveCulling; +} VkPhysicalDeviceRayTracingPipelineFeaturesKHR; + +typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR { + VkStructureType sType; + void* pNext; + uint32_t shaderGroupHandleSize; + uint32_t maxRayRecursionDepth; + uint32_t maxShaderGroupStride; + uint32_t shaderGroupBaseAlignment; + uint32_t shaderGroupHandleCaptureReplaySize; + uint32_t maxRayDispatchInvocationCount; + uint32_t shaderGroupHandleAlignment; + uint32_t maxRayHitAttributeSize; +} VkPhysicalDeviceRayTracingPipelinePropertiesKHR; + +typedef struct VkStridedDeviceAddressRegionKHR { + VkDeviceAddress deviceAddress; + VkDeviceSize stride; + VkDeviceSize size; +} VkStridedDeviceAddressRegionKHR; + +typedef struct VkTraceRaysIndirectCommandKHR { + uint32_t width; + uint32_t height; + uint32_t depth; +} VkTraceRaysIndirectCommandKHR; + +typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth); +typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); +typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData); +typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress); +typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader); +typedef void (VKAPI_PTR *PFN_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer commandBuffer, uint32_t pipelineStackSize); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR( + VkCommandBuffer commandBuffer, + const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, + const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, + const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, + const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, + uint32_t width, + uint32_t height, + uint32_t depth); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + VkPipelineCache pipelineCache, + uint32_t createInfoCount, + const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, + const VkAllocationCallbacks* pAllocator, + VkPipeline* pPipelines); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( + VkDevice device, + VkPipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void* pData); + +VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR( + VkCommandBuffer commandBuffer, + const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, + const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, + const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, + const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, + VkDeviceAddress indirectDeviceAddress); + +VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetRayTracingShaderGroupStackSizeKHR( + VkDevice device, + VkPipeline pipeline, + uint32_t group, + VkShaderGroupShaderKHR groupShader); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetRayTracingPipelineStackSizeKHR( + VkCommandBuffer commandBuffer, + uint32_t pipelineStackSize); +#endif + + +#define VK_KHR_ray_query 1 +#define VK_KHR_RAY_QUERY_SPEC_VERSION 1 +#define VK_KHR_RAY_QUERY_EXTENSION_NAME "VK_KHR_ray_query" +typedef struct VkPhysicalDeviceRayQueryFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 rayQuery; +} VkPhysicalDeviceRayQueryFeaturesKHR; + #ifdef __cplusplus } diff --git a/external/vulkan/windows/include/vulkan/vulkan_directfb.h b/external/vulkan/windows/include/vulkan/vulkan_directfb.h new file mode 100644 index 00000000..8eaac6e4 --- /dev/null +++ b/external/vulkan/windows/include/vulkan/vulkan_directfb.h @@ -0,0 +1,54 @@ +#ifndef VULKAN_DIRECTFB_H_ +#define VULKAN_DIRECTFB_H_ 1 + +/* +** Copyright 2015-2021 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +#define VK_EXT_directfb_surface 1 +#define VK_EXT_DIRECTFB_SURFACE_SPEC_VERSION 1 +#define VK_EXT_DIRECTFB_SURFACE_EXTENSION_NAME "VK_EXT_directfb_surface" +typedef VkFlags VkDirectFBSurfaceCreateFlagsEXT; +typedef struct VkDirectFBSurfaceCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkDirectFBSurfaceCreateFlagsEXT flags; + IDirectFB* dfb; + IDirectFBSurface* surface; +} VkDirectFBSurfaceCreateInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateDirectFBSurfaceEXT)(VkInstance instance, const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); +typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, IDirectFB* dfb); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateDirectFBSurfaceEXT( + VkInstance instance, + const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); + +VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceDirectFBPresentationSupportEXT( + VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + IDirectFB* dfb); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/external/vulkan/windows/include/vulkan/vulkan_fuchsia.h b/external/vulkan/windows/include/vulkan/vulkan_fuchsia.h index 81ebe55d..d5587157 100644 --- a/external/vulkan/windows/include/vulkan/vulkan_fuchsia.h +++ b/external/vulkan/windows/include/vulkan/vulkan_fuchsia.h @@ -2,19 +2,9 @@ #define VULKAN_FUCHSIA_H_ 1 /* -** Copyright (c) 2015-2019 The Khronos Group Inc. +** Copyright 2015-2021 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ /* @@ -50,6 +40,80 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateImagePipeSurfaceFUCHSIA( VkSurfaceKHR* pSurface); #endif + +#define VK_FUCHSIA_external_memory 1 +#define VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION 1 +#define VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME "VK_FUCHSIA_external_memory" +typedef struct VkImportMemoryZirconHandleInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkExternalMemoryHandleTypeFlagBits handleType; + zx_handle_t handle; +} VkImportMemoryZirconHandleInfoFUCHSIA; + +typedef struct VkMemoryZirconHandlePropertiesFUCHSIA { + VkStructureType sType; + void* pNext; + uint32_t memoryTypeBits; +} VkMemoryZirconHandlePropertiesFUCHSIA; + +typedef struct VkMemoryGetZirconHandleInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkDeviceMemory memory; + VkExternalMemoryHandleTypeFlagBits handleType; +} VkMemoryGetZirconHandleInfoFUCHSIA; + +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryZirconHandleFUCHSIA)(VkDevice device, const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle); +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, zx_handle_t zirconHandle, VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryZirconHandleFUCHSIA( + VkDevice device, + const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, + zx_handle_t* pZirconHandle); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryZirconHandlePropertiesFUCHSIA( + VkDevice device, + VkExternalMemoryHandleTypeFlagBits handleType, + zx_handle_t zirconHandle, + VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties); +#endif + + +#define VK_FUCHSIA_external_semaphore 1 +#define VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION 1 +#define VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_FUCHSIA_external_semaphore" +typedef struct VkImportSemaphoreZirconHandleInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + VkSemaphoreImportFlags flags; + VkExternalSemaphoreHandleTypeFlagBits handleType; + zx_handle_t zirconHandle; +} VkImportSemaphoreZirconHandleInfoFUCHSIA; + +typedef struct VkSemaphoreGetZirconHandleInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + VkExternalSemaphoreHandleTypeFlagBits handleType; +} VkSemaphoreGetZirconHandleInfoFUCHSIA; + +typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreZirconHandleFUCHSIA)(VkDevice device, const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreZirconHandleFUCHSIA)(VkDevice device, const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreZirconHandleFUCHSIA( + VkDevice device, + const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreZirconHandleFUCHSIA( + VkDevice device, + const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, + zx_handle_t* pZirconHandle); +#endif + #ifdef __cplusplus } #endif diff --git a/external/vulkan/windows/include/vulkan/vulkan_ggp.h b/external/vulkan/windows/include/vulkan/vulkan_ggp.h index fd306131..9a6a582c 100644 --- a/external/vulkan/windows/include/vulkan/vulkan_ggp.h +++ b/external/vulkan/windows/include/vulkan/vulkan_ggp.h @@ -2,19 +2,9 @@ #define VULKAN_GGP_H_ 1 /* -** Copyright (c) 2015-2019 The Khronos Group Inc. +** Copyright 2015-2021 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ /* diff --git a/external/vulkan/windows/include/vulkan/vulkan_ios.h b/external/vulkan/windows/include/vulkan/vulkan_ios.h index 72ef1a8a..6e7e6afe 100644 --- a/external/vulkan/windows/include/vulkan/vulkan_ios.h +++ b/external/vulkan/windows/include/vulkan/vulkan_ios.h @@ -2,19 +2,9 @@ #define VULKAN_IOS_H_ 1 /* -** Copyright (c) 2015-2019 The Khronos Group Inc. +** Copyright 2015-2021 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ /* @@ -30,7 +20,7 @@ extern "C" { #define VK_MVK_ios_surface 1 -#define VK_MVK_IOS_SURFACE_SPEC_VERSION 2 +#define VK_MVK_IOS_SURFACE_SPEC_VERSION 3 #define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface" typedef VkFlags VkIOSSurfaceCreateFlagsMVK; typedef struct VkIOSSurfaceCreateInfoMVK { diff --git a/external/vulkan/windows/include/vulkan/vulkan_macos.h b/external/vulkan/windows/include/vulkan/vulkan_macos.h index e6e5deaa..c49b123d 100644 --- a/external/vulkan/windows/include/vulkan/vulkan_macos.h +++ b/external/vulkan/windows/include/vulkan/vulkan_macos.h @@ -2,19 +2,9 @@ #define VULKAN_MACOS_H_ 1 /* -** Copyright (c) 2015-2019 The Khronos Group Inc. +** Copyright 2015-2021 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ /* @@ -30,7 +20,7 @@ extern "C" { #define VK_MVK_macos_surface 1 -#define VK_MVK_MACOS_SURFACE_SPEC_VERSION 2 +#define VK_MVK_MACOS_SURFACE_SPEC_VERSION 3 #define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface" typedef VkFlags VkMacOSSurfaceCreateFlagsMVK; typedef struct VkMacOSSurfaceCreateInfoMVK { diff --git a/external/vulkan/windows/include/vulkan/vulkan_metal.h b/external/vulkan/windows/include/vulkan/vulkan_metal.h index 3dec68c7..5cf4a703 100644 --- a/external/vulkan/windows/include/vulkan/vulkan_metal.h +++ b/external/vulkan/windows/include/vulkan/vulkan_metal.h @@ -2,19 +2,9 @@ #define VULKAN_METAL_H_ 1 /* -** Copyright (c) 2015-2019 The Khronos Group Inc. +** Copyright 2015-2021 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ /* diff --git a/external/vulkan/windows/include/vulkan/vulkan_screen.h b/external/vulkan/windows/include/vulkan/vulkan_screen.h new file mode 100644 index 00000000..92ad9bfa --- /dev/null +++ b/external/vulkan/windows/include/vulkan/vulkan_screen.h @@ -0,0 +1,54 @@ +#ifndef VULKAN_SCREEN_H_ +#define VULKAN_SCREEN_H_ 1 + +/* +** Copyright 2015-2021 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +#define VK_QNX_screen_surface 1 +#define VK_QNX_SCREEN_SURFACE_SPEC_VERSION 1 +#define VK_QNX_SCREEN_SURFACE_EXTENSION_NAME "VK_QNX_screen_surface" +typedef VkFlags VkScreenSurfaceCreateFlagsQNX; +typedef struct VkScreenSurfaceCreateInfoQNX { + VkStructureType sType; + const void* pNext; + VkScreenSurfaceCreateFlagsQNX flags; + struct _screen_context* context; + struct _screen_window* window; +} VkScreenSurfaceCreateInfoQNX; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateScreenSurfaceQNX)(VkInstance instance, const VkScreenSurfaceCreateInfoQNX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); +typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct _screen_window* window); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateScreenSurfaceQNX( + VkInstance instance, + const VkScreenSurfaceCreateInfoQNX* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); + +VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceScreenPresentationSupportQNX( + VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + struct _screen_window* window); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/external/vulkan/windows/include/vulkan/vulkan_vi.h b/external/vulkan/windows/include/vulkan/vulkan_vi.h index 6fb66f9d..9e0dcca2 100644 --- a/external/vulkan/windows/include/vulkan/vulkan_vi.h +++ b/external/vulkan/windows/include/vulkan/vulkan_vi.h @@ -2,19 +2,9 @@ #define VULKAN_VI_H_ 1 /* -** Copyright (c) 2015-2019 The Khronos Group Inc. +** Copyright 2015-2021 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ /* diff --git a/external/vulkan/windows/include/vulkan/vulkan_wayland.h b/external/vulkan/windows/include/vulkan/vulkan_wayland.h index 599d05b2..2a329be9 100644 --- a/external/vulkan/windows/include/vulkan/vulkan_wayland.h +++ b/external/vulkan/windows/include/vulkan/vulkan_wayland.h @@ -2,19 +2,9 @@ #define VULKAN_WAYLAND_H_ 1 /* -** Copyright (c) 2015-2019 The Khronos Group Inc. +** Copyright 2015-2021 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ /* diff --git a/external/vulkan/windows/include/vulkan/vulkan_win32.h b/external/vulkan/windows/include/vulkan/vulkan_win32.h index 20a1dc0e..1b680f0b 100644 --- a/external/vulkan/windows/include/vulkan/vulkan_win32.h +++ b/external/vulkan/windows/include/vulkan/vulkan_win32.h @@ -2,19 +2,9 @@ #define VULKAN_WIN32_H_ 1 /* -** Copyright (c) 2015-2019 The Khronos Group Inc. +** Copyright 2015-2021 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ /* @@ -272,9 +262,6 @@ typedef enum VkFullScreenExclusiveEXT { VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT = 1, VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT = 2, VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT = 3, - VK_FULL_SCREEN_EXCLUSIVE_BEGIN_RANGE_EXT = VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT, - VK_FULL_SCREEN_EXCLUSIVE_END_RANGE_EXT = VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT, - VK_FULL_SCREEN_EXCLUSIVE_RANGE_SIZE_EXT = (VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT - VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT + 1), VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT = 0x7FFFFFFF } VkFullScreenExclusiveEXT; typedef struct VkSurfaceFullScreenExclusiveInfoEXT { diff --git a/external/vulkan/windows/include/vulkan/vulkan_xcb.h b/external/vulkan/windows/include/vulkan/vulkan_xcb.h index 4cc0bc0c..5ba2ad85 100644 --- a/external/vulkan/windows/include/vulkan/vulkan_xcb.h +++ b/external/vulkan/windows/include/vulkan/vulkan_xcb.h @@ -2,19 +2,9 @@ #define VULKAN_XCB_H_ 1 /* -** Copyright (c) 2015-2019 The Khronos Group Inc. +** Copyright 2015-2021 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ /* diff --git a/external/vulkan/windows/include/vulkan/vulkan_xlib.h b/external/vulkan/windows/include/vulkan/vulkan_xlib.h index ee2b48ac..75c75dc2 100644 --- a/external/vulkan/windows/include/vulkan/vulkan_xlib.h +++ b/external/vulkan/windows/include/vulkan/vulkan_xlib.h @@ -2,19 +2,9 @@ #define VULKAN_XLIB_H_ 1 /* -** Copyright (c) 2015-2019 The Khronos Group Inc. +** Copyright 2015-2021 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ /* diff --git a/external/vulkan/windows/include/vulkan/vulkan_xlib_xrandr.h b/external/vulkan/windows/include/vulkan/vulkan_xlib_xrandr.h index 08c4fd72..fa274934 100644 --- a/external/vulkan/windows/include/vulkan/vulkan_xlib_xrandr.h +++ b/external/vulkan/windows/include/vulkan/vulkan_xlib_xrandr.h @@ -2,19 +2,9 @@ #define VULKAN_XLIB_XRANDR_H_ 1 /* -** Copyright (c) 2015-2019 The Khronos Group Inc. +** Copyright 2015-2021 The Khronos Group Inc. ** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. +** SPDX-License-Identifier: Apache-2.0 */ /* diff --git a/external/vulkan/windows/libs/x64/vulkan-1.lib b/external/vulkan/windows/libs/x64/vulkan-1.lib deleted file mode 100644 index 6da8798c5afbdd88c893ec9961d7294a45b5c969..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51718 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

    Z7>)8HFl@F2vR!t6^@r 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 diff --git a/external/vulkan/windows/libs/x86/vulkan-1.lib b/external/vulkan/windows/libs/x86/vulkan-1.lib deleted file mode 100644 index 5f056ab396e05e27db77040dc97eccfde2c04a9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55682 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�WGeTfP@ATlwS_y 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%0Ap~xxdNgHgVKwYGlC5U?LV*H68s2AJw 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∾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≶ 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%0A@&vmWLac5a{Y%(d@jPrkDfe_}Ro+7+2M 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 z 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

*T!?N^OYkaU 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